Ir para conteúdo

Featured Replies

  • Respostas 17
  • Visualizações 303
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Parece que você está tentando aplicar um bônus multiplicador de dano com base no nível do jogador. Eu percebi que você está usando getPlayerDamageMultiplier(pid) para obter o multiplicador de dano do

  • Me desculpe não vi que o tópico era seu @Doidodepeda aconselho a criar outro topico ja que o seu problema é relacionado a lib, me marca e eu te ajudo la.     Exempo de uma action com o

  • Mateus Robeerto
    Mateus Robeerto

    Mano, você fez um script para TFS 1.X, mas o cara que pediu está utilizando o TFS 0.4... Só para te avisar mesmo, rs.

Posted Images

Postado
  • Administrador

Parece que você está tentando aplicar um bônus multiplicador de dano com base no nível do jogador. Eu percebi que você está usando getPlayerDamageMultiplier(pid) para obter o multiplicador de dano do jogador, mas você mencionou que getDamageMultiplier está retornando nil.

Troque a sua função add bonus por essa e faça o teste.

 

local function addBonuses(pid)
    local bonus = getInfo(pid)
    if bonus and bonus.damage_percent then
        local currentMultiplier = getPlayerDamageMultiplier(pid) or 1.0
        setPlayerDamageMultiplier(pid, currentMultiplier + (bonus.damage_percent / 100.0))

        local mensagem = "[SISTEMA DE BÔNUS]\nVocê recebeu um bônus de +" .. bonus.damage_percent .. "% de dano."
        doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, mensagem)
        doRemoveItem(item.uid, 1)
    end
end

Em todo caso essa função getPlayerDamageMultiplier deveria existir nesse contexto, caso não exista você pode adicionar na suas funções existentes ou criar um arquivo separado.

damage_multiplier_lib.lua
 

DamageMultiplierLib = {}

-- Function to get the player's damage multiplier

function DamageMultiplierLib.getPlayerDamageMultiplier(playerId)
    local player = Player(playerId)
    if player then
        return player:getDamageMultiplier()
    end
    return nil
end

-- Function to set the player's damage multiplier

function DamageMultiplierLib.setPlayerDamageMultiplier(playerId, value)
    local player = Player(playerId)
    if player then
        player:setDamageMultiplier(value)
    end
end

-- Return the library table

return DamageMultiplierLib


Se você adicionar essa função a cima então atualizei o seu script na função addBonus

 

-- local DamageMultiplierLib = require("damage_multiplier_lib") LEMBRE-SE DE IMPORTAR A LIB A CIMA PARA FUNCIONA CORRETAMENTE!

-- Your existing code
local function addBonuses(playerId)
    local bonus = getInfo(playerId)
    if bonus and bonus.damage_percent then
        local currentMultiplier = DamageMultiplierLib.getPlayerDamageMultiplier(playerId) or 1.0
        DamageMultiplierLib.setPlayerDamageMultiplier(playerId, currentMultiplier + (bonus.damage_percent / 100.0))

        local mensagem = "[SISTEMA DE BÔNUS]\nVocê recebeu um bônus de +" .. bonus.damage_percent .. "% de dano."
        doPlayerSendTextMessage(playerId, MESSAGE_EVENT_ADVANCE, mensagem)
        doRemoveItem(item.uid, 1)
    end
end

Não testei.
 

Postado
7 horas atrás, Underewar disse:

Parece que você está tentando aplicar um bônus multiplicador de dano com base no nível do jogador. Eu percebi que você está usando getPlayerDamageMultiplier(pid) para obter o multiplicador de dano do jogador, mas você mencionou que getDamageMultiplier está retornando nil.

Troque a sua função add bonus por essa e faça o teste.

 


local function addBonuses(pid)
    local bonus = getInfo(pid)
    if bonus and bonus.damage_percent then
        local currentMultiplier = getPlayerDamageMultiplier(pid) or 1.0
        setPlayerDamageMultiplier(pid, currentMultiplier + (bonus.damage_percent / 100.0))

        local mensagem = "[SISTEMA DE BÔNUS]\nVocê recebeu um bônus de +" .. bonus.damage_percent .. "% de dano."
        doPlayerSendTextMessage(pid, MESSAGE_EVENT_ADVANCE, mensagem)
        doRemoveItem(item.uid, 1)
    end
end

Em todo caso essa função getPlayerDamageMultiplier deveria existir nesse contexto, caso não exista você pode adicionar na suas funções existentes ou criar um arquivo separado.

damage_multiplier_lib.lua
 


DamageMultiplierLib = {}

-- Function to get the player's damage multiplier

function DamageMultiplierLib.getPlayerDamageMultiplier(playerId)
    local player = Player(playerId)
    if player then
        return player:getDamageMultiplier()
    end
    return nil
end

-- Function to set the player's damage multiplier

function DamageMultiplierLib.setPlayerDamageMultiplier(playerId, value)
    local player = Player(playerId)
    if player then
        player:setDamageMultiplier(value)
    end
end

-- Return the library table

return DamageMultiplierLib


Se você adicionar essa função a cima então atualizei o seu script na função addBonus

 


-- local DamageMultiplierLib = require("damage_multiplier_lib") LEMBRE-SE DE IMPORTAR A LIB A CIMA PARA FUNCIONA CORRETAMENTE!

-- Your existing code
local function addBonuses(playerId)
    local bonus = getInfo(playerId)
    if bonus and bonus.damage_percent then
        local currentMultiplier = DamageMultiplierLib.getPlayerDamageMultiplier(playerId) or 1.0
        DamageMultiplierLib.setPlayerDamageMultiplier(playerId, currentMultiplier + (bonus.damage_percent / 100.0))

        local mensagem = "[SISTEMA DE BÔNUS]\nVocê recebeu um bônus de +" .. bonus.damage_percent .. "% de dano."
        doPlayerSendTextMessage(playerId, MESSAGE_EVENT_ADVANCE, mensagem)
        doRemoveItem(item.uid, 1)
    end
end

Não testei.
 

Fiz tudo q voce falou. (eu acho) kk

Porem deu esse error ! =[

error.png

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo