Ir para conteúdo

Featured Replies

Postado
Spoiler

-- NORMAL ATTACK

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0)


-- PASSIVE ATK

local function weaponType(cid)
    local weapons = {[1] = 24, [2] = 26, [3] = 25}
    return weapons[getItemWeaponType(getPlayerWeapon(cid).uid)]
end

local function choose(...)
    local arg = {...}
    return arg[math.random(1,#arg)]
end

local function check_pos(fromPos, toPos)
    x = fromPos.x - toPos.x
    y = fromPos.y - toPos.y
    if (x == -1) and (y == -1) then
        return choose({-1, -1}, {-1, 0}, {0, -1})
    elseif (x == 0) and (y == -1) then
        return choose({-1, -1}, {0, -1}, {1, -1})
    elseif (x == 1) and (y == -1) then
        return choose({0, -1}, {1, -1}, {1, 0})
    elseif (x == -1) and (y == 0) then
        return choose({-1, -1}, {-1, 0}, {-1, 1})
    elseif (x == 1) and (y == 0) then
        return choose({1, -1}, {1, 0}, {1, 1})
    elseif (x == -1) and (y == 1) then
        return choose({-1, 0}, {-1, 1}, {0, 1})
    elseif (x == 0) and (y == 1) then
        return choose({-1, 1}, {0, 1}, {1, 1})
    elseif (x == 1) and (y == 1) then
        return choose({0, 1}, {1, 0}, {1, 1})
    else
        return choose({-1, -1}, {-1, 0}, {0, -1}, {-1, -1}, {0, -1}, {1, -1}, {0, -1}, {1, -1}, {1, 0}, {-1, -1}, {-1, 0}, {-1, 1}, {1, -1}, {1, 0}, {1, 1}, {-1, 0}, {-1, 1}, {0, 1}, {-1, 1}, {0, 1}, {1, 1}, {0, 1}, {1, 0}, {1, 1})
    end
end

local function distEffect(cid)
    player_pos = getCreaturePosition(cid)
    target_pos = getCreaturePosition(getCreatureTarget(cid))
    var = check_pos(player_pos, target_pos)
    start_pos = {x = player_pos.x+var[1], y = player_pos.y+var[2], z = player_pos.z}
    final_pos = {x = target_pos.x+(var[1]*-1), y = target_pos.y+(var[2]*-1), z = target_pos.z}
    doSendDistanceShoot(start_pos, final_pos, weaponType(cid))
end

local combat_passive = createCombatObject()
setCombatParam(combat_passive, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

function onGetFormulaValues(cid, level, skill, attack, element, factor)
    local levelTotal = level / 5
    local skillTotal = skill * attack
    local min = levelTotal + (skillTotal * 0.01)
    local max = levelTotal + (skillTotal * 0.03)
    distEffect(cid)
    return -math.ceil(min), -math.ceil(max), -math.random(levelTotal + (element * skill * 0.01), levelTotal + (element * skill * 0.01))
end

setCombatCallback(combat_passive, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")


function onUseWeapon(cid, var)
    doCombat(cid, combat, var)
    if isPlayer(getCreatureTarget(cid)) then
        addEvent(doCombat, choose(100, 200, 300), cid, combat_passive, var)
    end
    return true    
end

 

Spoiler

[8/12/2020 17:36:28] [Error - Weapon Interface] 
[8/12/2020 17:36:28] In a callback: data/weapons/scripts/LV600/Melee.lua:onGetFormulaValues
[8/12/2020 17:36:28] (Unknown script file)
[8/12/2020 17:36:28] Description: 
[8/12/2020 17:36:28] (LuaInterface::luaGetThingPosition) Thing not found

[8/12/2020 17:36:29] [Error - Weapon Interface] 
[8/12/2020 17:36:29] In a callback: data/weapons/scripts/LV600/Melee.lua:onGetFormulaValues
[8/12/2020 17:36:29] (Unknown script file)
[8/12/2020 17:36:29] Description: 
[8/12/2020 17:36:29] data/weapons/scripts/LV600/Melee.lua:23: attempt to index local 'toPos' (a boolean value)

Eu fiz esse script e ele fuciona como esperado, porem tem algumas situações que da esse erro no addevent

Essa é a maneira correta de fazer esse script?

Editado por iTzBrHue3 (veja o histórico de edições)

Resolvido por FlameArcixt

Ir para solução
  • Respostas 6
  • Visualizações 734
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Obrigado,  consegui arrumar não sabia que poderia se fazer uma função dentro do addEvent

Postado

A função onGetFormulaValues(cid, level, skill, attack, element, factor) não aceita cid  como valido, o certo seria thing, ao menos o que eu li é isso.

 

O outro erro, [8/12/2020 17:36:29] data/weapons/scripts/LV600/Melee.lua:23: attempt to index local 'toPos' (a boolean value)

Diz que o valor toPos não é boolean, ou seja, ele não é numérico.

Postado
  • Autor
1 hora atrás, FlameArcixt disse:

A função onGetFormulaValues(cid, level, skill, attack, element, factor) não aceita cid  como valido, o certo seria thing, ao menos o que eu li é isso.

 

O outro erro, [8/12/2020 17:36:29] data/weapons/scripts/LV600/Melee.lua:23: attempt to index local 'toPos' (a boolean value)

Diz que o valor toPos não é boolean, ou seja, ele não é numérico.

me liguei nisso tbm, só que esse erro acontece quando o player que ataca perde o target(quando sobe escada, morre), quando eu tiro o addEvent esse erro para de acontecer, eu queria saber como deixa com o addEvent pq esse delay dele deixa o negocio saindo mais bonito

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