Ir para conteúdo

Featured Replies

Postado

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.

  • Respostas 22
  • Visualizações 1.7k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Tenta assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, CO

  • Tenta assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, CO

  • Vamo lá, tenta isto: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_

Postado
  • 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

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
  • 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

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.

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