Ir para conteúdo
  • 0

bfs102030

Pergunta

Ola galera preciso de uma ajudinha ake pois nao achei ake em lugar nenhum algo do tipo

eu tenho 2 spells de knight, mas exori e mas exori hur vou postar ake embaixo elas , mas eu gostaria que elas funcionacem da seguinte forma. quanto maior o ATK da arma mais a spell vai arrancar entendeu.? ex tenho uma arma que atk 70 ae com ela a spell bate x ae coloco uma arma na mao de atk 100 ae a spell vai bater mais entende.

gostaria que a formula delas fosse pelo atk da arma... pois pretendo colocar ICE RAPIER com ATK maior porem quando o player soltar a spell com a ICE RAPIER na mao ela ir ritar e quebrar entende ?

abaixo as 2 spells

mas exori hur

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 34)
setCombatParam(combat, COMBAT_PARAM_USECHARGES, true)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -21.9, -17, -23.9, -19)
local arr = {
{1, 1, 1},
{1, 1, 1},
{1, 1, 1},
{0, 1, 0},
{0, 3, 0},
{0, 0, 0},
}
local area = createCombatArea(arr)
setCombatArea(combat, area)
function onCastSpell(cid, var)
local storage = 302010
if getPlayerStorageValue(cid, storage) < 1 then
doPlayerSendCancel(cid, "Desculpe, Você tem que Fazer a [The Spells Quest] para usar está magia.")
return false
end
return doCombat(cid, combat, var)
end
mas exori
--Created with OSM--
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE,COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT,CONST_ME_GROUNDSHAKER)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -3.1, -750, 4.1, -1250)
arr = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
local area = createCombatArea(arr)
setCombatArea(combat, area)
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end


alguem pode ajudar ?


up

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Bom cara, acho que achei uma luz pra você.

Vamos lá:

Antes do local combat, crie uma função

 

function formulaByWeaponDmg(cid, level, skill, attack, p, factor)
min = -(1.2 * (attack * (skill + 5.8) / 25 + (level - 1) / 10) / factor)
max = -(2 * (attack * (skill + 5.8) / 25 + (level - 1) / 10) / factor)
return min, max
end
Troca a linha do setCombatFormula por:
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "formulaByWeaponDmg")
Pronto, agora ele vai bater baseado no dmg da arma tb. Se você quiser que seja só com base no dmg da arma, mude as fórmulas de min e max a seu gosto (attack é o ataque da arma).
Com relação a ice rapier, dentro de onCastSpell coloque:
if(getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid == ID_RAPIER) then
doPlayerRemoveItem(cid, ID_RAPIER, 1)
end

Bom, espero que te ajude. Qualquer coisa me fala.

Link para o comentário
Compartilhar em outros sites

  • 0

amigo desculpa a demora pra responde e pq tive enroladao com outros bugs no server eu coloquei assim olha

 

 

 

function formulaByWeaponDmg(cid, level, skill, attack, p, factor)
min = -(1.2 * (attack * (skill + 5.8) / 25 + (level - 1) / 10) / factor)
max = -(2 * (attack * (skill + 5.8) / 25 + (level - 1) / 10) / factor)
return min, max
end
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE,COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT,CONST_ME_GROUNDSHAKER)
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "formulaByWeaponDmg")
arr = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
local area = createCombatArea(arr)
setCombatArea(combat, area)
function onCastSpell(cid, var)
if(getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid == ID_RAPIER) then
doPlayerRemoveItem(cid, ID_RAPIER, 1)
end
return doCombat(cid, combat, var)
end

 

 

 

ae apareceu isso na distro.. sera que eu que juntei os codigos errado.se puder monta-las pra mim certo agradeco as spells estao la emcima as 2

[10:12:52.548] [Error - Spell Interface]
[10:12:52.548] In a callback: data/spells/scripts/pbot/exori rox ek.lua:formulaB
yWeaponDmg
[10:12:52.548] (Unknown script file)
[10:12:52.548] Description:
[10:12:52.548] data/spells/scripts/pbot/exori rox ek.lua:3: attempt to perform a
rithmetic on local 'factor' (a nil value)
edit > aah esquecei de mensionar que esse err aparece quando solta ela e agora nao esta arrancando nada...
Editado por bfs102030
Link para o comentário
Compartilhar em outros sites

  • 0

Erro meu, no meu servidor tem um bug e o factor eh um parâmetro a mais.

Troca function formulaByWeaponDmg(cid, level, skill, attack, p, factor) por function formulaByWeaponDmg(cid, level, skill, attack, factor)

Link para o comentário
Compartilhar em outros sites

  • 0

ok brigadao


amigo desculpe mais eu tiinha esquecido e testar a parte da ICE RAPIER e agora que fui ver ela nao esta quebrado ao usar a spell

euadicionei na spell a linha

function onCastSpell(cid, var)

if(getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid == ID_2396) then
doPlayerRemoveItem(cid, ID_2396, 1)
end
eu tentei tbm mudar ali onde ta ID RAPIER coloquei o id do item porem nao deu de nenhum geito
poderia me ajudar ?
Link para o comentário
Compartilhar em outros sites

  • 0

nao deu agora o scriipt completo fica assim e da um erro na distro esse erro abaxio olha

 

 

 

function formulaByWeaponDmg(cid, level, skill, attack, factor)
min = -(1.2 * (attack * (skill + 5.3) / 10 + (level - 1) / 10) / factor)
max = -(2 * (attack * (skill + 5.3) / 10 + (level - 1) / 10) / factor)
return min, max
end
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE,COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT,CONST_ME_GROUNDSHAKER)
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "formulaByWeaponDmg")
arr = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
}
local area = createCombatArea(arr)
setCombatArea(combat, area)
if(getPlayerWeapon(cid).itemid == ID_2396) then
doPlayerRemoveItem(cid, ID_2396, 1)
end
return doCombat(cid, combat, var)
end

 

 

 

[19:23:41.280] [Error - LuaInterface::loadFile] data/spells/scripts/pbot/exori r
ox ek.lua:33: '<eof>' expected near 'end'
[19:23:41.280] [Warning - Event::loadScript] Cannot load script (data/spells/scr
ipts/pbot/exori rox ek.lua)
[19:23:41.280] data/spells/scripts/pbot/exori rox ek.lua:33: '<eof>' expected ne
ar 'end'
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...