Postado Janeiro 15, 2016 9 anos no primeiro ele não conseguiu achar o item então creio q a forma correta seja a segunda mesmo.. porém na segunda ele não conseguiu retornar o ataque do item por essa função. Agora você vai ter q me ajudar a entender o porquê diso.. Troca o seu script por esse daqui local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) function onGetFormulaValues(cid, level, skill) local arma= getPlayerWeapon(cid) print(arma.id) print(arma.uid) local darma= getItemAttribute(arma, "attack") local darma2 = getItemAttribute(arma.uid, "attack") print("Darma é: "..darma) print("Darma dois é: "..darma2) local skillsword= getPlayerSkill(cid, 2) local forca= getPlayerStorageValue(cid, 70001) local agilidade= getPlayerStorageValue(cid, 70003) min = -(level*0.25) + -(forca*0.5) + -(agilidade*0.2) + -(skillsword*0.4) + -darma max = -(level*0.35) + -(forca*0.6) + -(agilidade*0.3) + -(skillsword*0.8) + -darma return min, max end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onUseWeapon(cid, var) return doCombat(cid, combat, var) end Repita o teste duas vezes, uma com a arma na mão direita e uma com a arma na mão esquerda. Me manda um print do que aparece no seu console nos dois casos.
Postado Janeiro 15, 2016 9 anos Autor 13 minutos atrás, xWhiteWolf disse: no primeiro ele não conseguiu achar o item então creio q a forma correta seja a segunda mesmo.. porém na segunda ele não conseguiu retornar o ataque do item por essa função. Agora você vai ter q me ajudar a entender o porquê diso.. Troca o seu script por esse daqui local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) function onGetFormulaValues(cid, level, skill) local arma= getPlayerWeapon(cid) print(arma.id) print(arma.uid) local darma= getItemAttribute(arma, "attack") local darma2 = getItemAttribute(arma.uid, "attack") print("Darma é: "..darma) print("Darma dois é: "..darma2) local skillsword= getPlayerSkill(cid, 2) local forca= getPlayerStorageValue(cid, 70001) local agilidade= getPlayerStorageValue(cid, 70003) min = -(level*0.25) + -(forca*0.5) + -(agilidade*0.2) + -(skillsword*0.4) + -darma max = -(level*0.35) + -(forca*0.6) + -(agilidade*0.3) + -(skillsword*0.8) + -darma return min, max end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onUseWeapon(cid, var) return doCombat(cid, combat, var) end Repita o teste duas vezes, uma com a arma na mão direita e uma com a arma na mão esquerda. Me manda um print do que aparece no seu console nos dois casos. O primeiro esta na minha esquerda e o segundo na direita, a arma nao atacou em nenhuma das maos, a outra mao deixei vazia. O ataque da arma e 14 [15/01/2016 14:45:25] 70000 [15/01/2016 14:45:25] [Error - Weapon Interface] [15/01/2016 14:45:25] In a callback: data/weapons/scripts/sword.lua:onGetFormulaValues [15/01/2016 14:45:25] (Unknown script file) [15/01/2016 14:45:25] Description: [15/01/2016 14:45:25] (luaGetItemAttribute) Item not found [15/01/2016 14:45:25] [Error - Weapon Interface] [15/01/2016 14:45:25] In a callback: data/weapons/scripts/sword.lua:onGetFormulaValues [15/01/2016 14:45:25] (Unknown script file) [15/01/2016 14:45:25] Description: [15/01/2016 14:45:25] data/weapons/scripts/sword.lua:13: attempt to concatenate local 'darma' (a nil value) [15/01/2016 14:45:35] 70000 [15/01/2016 14:45:35] [Error - Weapon Interface] [15/01/2016 14:45:35] In a callback: data/weapons/scripts/sword.lua:onGetFormulaValues [15/01/2016 14:45:35] (Unknown script file) [15/01/2016 14:45:35] Description: [15/01/2016 14:45:35] (luaGetItemAttribute) Item not found [15/01/2016 14:45:35] [Error - Weapon Interface] [15/01/2016 14:45:35] In a callback: data/weapons/scripts/sword.lua:onGetFormulaValues [15/01/2016 14:45:35] (Unknown script file) [15/01/2016 14:45:35] Description: [15/01/2016 14:45:35] data/weapons/scripts/sword.lua:13: attempt to concatenate local 'darma' (a nil value)
Postado Janeiro 15, 2016 9 anos o id da arma que vc tá utilizando é 70000? pelo q parece seu getItemAttribute tá bugada, vc tem as sources do seu servidor? Só por curiosidade, vc usa o crying damson 0.3.6 versão 8.54 do tibia?
Postado Janeiro 15, 2016 9 anos Autor O item eu criei pelo dat editor e inseri td certo, uso LostServer a sorce 8.6, o id do item é 12621. Mas é preciso inserir em algum lugar da source?
Postado Janeiro 15, 2016 9 anos se não funcionar assim eu lamento mas vc vai ter q achar outra função pra pegar o ataque da arma.. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) function onGetFormulaValues(cid, level, skill) arma= getPlayerWeapon(cid) darma= getItemAttribute(arma.uid, "attack") print("Darma é: "..darma) local skillsword= getPlayerSkill(cid, 2) local forca= getPlayerStorageValue(cid, 70001) local agilidade= getPlayerStorageValue(cid, 70003) min = -(level*0.25) -(forca*0.5) -(agilidade*0.2) -(skillsword*0.4) -darma max = -(level*0.35) -(forca*0.6) -(agilidade*0.3) -(skillsword*0.8) -darma return min, max end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onUseWeapon(cid, var) return doCombat(cid, combat, var) end
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.