Ir para conteúdo
  • Cadastre-se

Posts Recomendados

 

Gente me expliquem pq esse script nao funciona tentei varias coisas mas nada ate agora

Script:


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, item)
local arma= getPlayerWeapon(cid).id
darma= getItemAttribute(item.arma, "attack")
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

erro do Lua:

[13/01/2016 16:42:38] [Error - Weapon Interface] 
[13/01/2016 16:42:38] In a callback: data/weapons/scripts/sword.lua:onGetFormulaValues
[13/01/2016 16:42:38] (Unknown script file)
[13/01/2016 16:42:38] Description: 
[13/01/2016 16:42:38] data/weapons/scripts/sword.lua:10: attempt to index local 'item' (a number value)

Agradeço desde ja.

Link para o post
Compartilhar em outros sites

Tenta assim:

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, item)
local arma= getPlayerWeapon(cid).itemid
darma= getItemAttribute(arma.uid, 'attack')
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

Pra que que vc usa o 'script'? Porque aí fica mais fácil pra eu testar aqui...

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites

pra definir o dano da espada, so q eu quero fazer um script geral, que ja pegue o ataque da espada do itens.xml e dps modifique de acordo cm a agilidade e forca

Link para o post
Compartilhar em outros sites
17 horas atrás, Xagah disse:

Tenta assim:


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, item)
local arma= getPlayerWeapon(cid).itemid
darma= getItemAttribute(arma.uid, 'attack')
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

Pra que que vc usa o 'script'? Porque aí fica mais fácil pra eu testar aqui...

Cara não funcionou deu esse erro:

[14/01/2016 13:57:18] [Error - Weapon Interface] 
[14/01/2016 13:57:18] In a callback: data/weapons/scripts/sword.lua:onGetFormulaValues
[14/01/2016 13:57:18] (Unknown script file)
[14/01/2016 13:57:18] Description: 
[14/01/2016 13:57:18] data/weapons/scripts/sword.lua:10: attempt to index local 'arma' (a number value)

 

Editado por user33 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Tenta assim:

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, item)
local arma= getPlayerWeapon(cid).uid
darma= getItemAttribute(arma.uid, 'attack')
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

 

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites
27 minutos atrás, Xagah disse:

Tenta assim:


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, item)
local arma= getPlayerWeapon(cid).uid
darma= getItemAttribute(arma.uid, 'attack')
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

 

Ainda continua dando o msm erro eu nao csg revoler:

[14/01/2016 20:31:53] [Error - Weapon Interface] 
[14/01/2016 20:31:53] In a callback: data/weapons/scripts/sword.lua:onGetFormulaValues
[14/01/2016 20:31:53] (Unknown script file)
[14/01/2016 20:31:53] Description: 
[14/01/2016 20:31:53] data/weapons/scripts/sword.lua:10: attempt to index local 'arma' (a number value)

 

Link para o post
Compartilhar em outros sites

Vamo lá, tenta isto:

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, item)
local arma= getPlayerWeapon(cid)
local darma= getItemAttack(arma)
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

 

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites
44 minutos atrás, Xagah disse:

Vamo lá, tenta isto:


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, item)
local arma= getPlayerWeapon(cid)
local darma= getItemAttack(arma)
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

 

Cara eu nao entendo de todo jeito ou retorna nill ou fala q nao e um numero como aconteceu antes, erro do lua:

[14/01/2016 21:28:18] [Error - Weapon Interface] 
[14/01/2016 21:28:18] In a callback: data/weapons/scripts/sword.lua:onGetFormulaValues
[14/01/2016 21:28:18] (Unknown script file)
[14/01/2016 21:28:18] Description: 
[14/01/2016 21:28:18] data/weapons/scripts/sword.lua:10: attempt to call global 'getItemAttack' (a nil value)

 

Link para o post
Compartilhar em outros sites

Mais um teste:

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, item)
	-- local arma= getPlayerWeapon(cid)
	-- local darma= getItemAttack(arma)
	local skillsword= getPlayerSkill(cid, 2)
	local forca= getPlayerStorageValue(cid, 70001)
	local agilidade= getPlayerStorageValue(cid, 70003)
	local item1 = getPlayerSlotItem(cid, CONST_SLOT_LEFT)
	local item2 = getPlayerSlotItem(cid, CONST_SLOT_RIGHT)
	local atk, atk1, atk2 = 0, 0, 0

	if item1.uid ~= 0 then
		atk1 = getItemAttack(item1.uid)
	end
	
	if item2.uid ~= 0 then
		atk2 = getItemAttack(item2.uid)
	end
	
	if atk1 > atk2 then
		atk = atk1
	else
		atk = atk2
end

	min = -(level*0.25) + -(forca*0.5) + -(agilidade*0.2) + -(skillsword*0.4) + -atk
	max = -(level*0.35) + -(forca*0.6) + -(agilidade*0.3) + -(skillsword*0.8) + -atk
	return min, max
	
end


setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onUseWeapon(cid, var)
	return doCombat(cid, combat, var)
end

Edited:

 

Tinha um trecho diferente. Copia agora.

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

5YkRF3w.gif

 

 

 

 

 

 

CzysZUR.gifytaam6k.png

 

 

Link para o post
Compartilhar em outros sites
11 minutos atrás, Xagah disse:

Mais um teste:


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, item)
	-- local arma= getPlayerWeapon(cid)
	-- local darma= getItemAttack(arma)
	local skillsword= getPlayerSkill(cid, 2)
	local forca= getPlayerStorageValue(cid, 70001)
	local agilidade= getPlayerStorageValue(cid, 70003)
	local item1 = getPlayerSlotItem(cid, CONST_SLOT_LEFT)
	local item2 = getPlayerSlotItem(cid, CONST_SLOT_RIGHT)
	local atk, atk1, atk2 = 0, 0, 0

	if item1.uid ~= 0 then
		atk1 = getItemAttack(item1.uid)
	end
	
	if item2.uid ~= 0 then
		atk2 = getItemAttack(item2.uid)
	end
	
	if atk1 > atk2 then
		atk = atk1
	else
		atk = atk2
end

	min = -(level*0.25) + -(forca*0.5) + -(agilidade*0.2) + -(skillsword*0.4) + -atk
	max = -(level*0.35) + -(forca*0.6) + -(agilidade*0.3) + -(skillsword*0.8) + -atk
	return min, max
	
end


setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

function onUseWeapon(cid, var)
	return doCombat(cid, combat, var)
end

Edited:

 

Tinha um trecho diferente. Copia agora.

 

 

Cara o erro continua o mesmo eu ainda tentei trocar o 0 por nil pra ve se ia mas nem assim

erro do lua:

[14/01/2016 21:50:43] [Error - Weapon Interface] 
[14/01/2016 21:50:43] In a callback: data/weapons/scripts/sword.lua:onGetFormulaValues
[14/01/2016 21:50:43] (Unknown script file)
[14/01/2016 21:50:43] Description: 
[14/01/2016 21:50:43] data/weapons/scripts/sword.lua:10: attempt to call global 'getItemAttack' (a nil value)

 

Link para o post
Compartilhar em outros sites

Bom, o problema principal é que você fez uma pequena cagadinha no código, como seu próprio server diz:

[13/01/2016 16:42:38] [Error - Weapon Interface] 
[13/01/2016 16:42:38] In a callback: data/weapons/scripts/sword.lua:onGetFormulaValues
[13/01/2016 16:42:38] (Unknown script file)
[13/01/2016 16:42:38] Description: 
[13/01/2016 16:42:38] data/weapons/scripts/sword.lua:10: attempt to index local 'item' (a number value)

Erro no callback onGetFormulaValues descrição:
Linha 10-> tentou indexar uma variável local chamada item (um valor numérico).

Linha 10 -> darma= getItemAttribute(item.arma, "attack")
pegar o atributo do item cujo uid seja 'item.arma' e o atributo que eu quero é "attack". OK, mas oque é item.arma? Em nenhum momento você definiu oque era item e a arma está definida como 

local arma= getPlayerWeapon(cid).id

arma é um variável que vai armazenar o id da arma.
Então nessas linhas aí a única coisa que vc fez foi pedir pro console te retornar item.id (o campo id da tabela item) só que item não é uma tabela (por isso erro de index..)

Tá, mas oque é item? A resposta correta seria um grandiosíssimo "NADA", item na vdd está como parâmetro do callback mas essa function o terceiro parâmetro é a skill do player, não o item que ele utiliza.

function onGetFormulaValues(cid, level, item)
local arma= getPlayerWeapon(cid).id
darma= getItemAttribute(item.arma, "attack")


O correto seria



Se der erro troca arma por arma.uid ali no darma
 

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)
local darma= getItemAttribute(arma, "attack")
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

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
9 minutos atrás, xWhiteWolf disse:

Bom, o problema principal é que você fez uma pequena cagadinha no código, como seu próprio server diz:


[13/01/2016 16:42:38] [Error - Weapon Interface] 
[13/01/2016 16:42:38] In a callback: data/weapons/scripts/sword.lua:onGetFormulaValues
[13/01/2016 16:42:38] (Unknown script file)
[13/01/2016 16:42:38] Description: 
[13/01/2016 16:42:38] data/weapons/scripts/sword.lua:10: attempt to index local 'item' (a number value)

Erro no callback onGetFormulaValues descrição:
Linha 10-> tentou indexar uma variável local chamada item (um valor numérico).

Linha 10 -> darma= getItemAttribute(item.arma, "attack")
pegar o atributo do item cujo uid seja 'item.arma' e o atributo que eu quero é "attack". OK, mas oque é item.arma? Em nenhum momento você definiu oque era item e a arma está definida como 


local arma= getPlayerWeapon(cid).id

arma é um variável que vai armazenar o id da arma.
Então nessas linhas aí a única coisa que vc fez foi pedir pro console te retornar item.id (o campo id da tabela item) só que item não é uma tabela (por isso erro de index..)

Tá, mas oque é item? A resposta correta seria um grandiosíssimo "NADA", item na vdd está como parâmetro do callback mas essa function o terceiro parâmetro é a skill do player, não o item que ele utiliza.


function onGetFormulaValues(cid, level, item)
local arma= getPlayerWeapon(cid).id
darma= getItemAttribute(item.arma, "attack")


O correto seria

 



Se der erro troca arma por arma.uid ali no darma
 


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)
local darma= getItemAttribute(arma, "attack")
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

WhiteWOlf deu esse erro no seu script:

[14/01/2016 22:29:55] [Error - Weapon Interface] 
[14/01/2016 22:29:55] In a callback: data/weapons/scripts/sword.lua:onGetFormulaValues
[14/01/2016 22:29:55] (Unknown script file)
[14/01/2016 22:29:55] Description: 
[14/01/2016 22:29:55] (luaGetItemAttribute) Item not found

[14/01/2016 22:29:55] [Error - Weapon Interface] 
[14/01/2016 22:29:55] In a callback: data/weapons/scripts/sword.lua:onGetFormulaValues
[14/01/2016 22:29:55] (Unknown script file)
[14/01/2016 22:29:55] Description: 
[14/01/2016 22:29:55] data/weapons/scripts/sword.lua:15: attempt to perform arithmetic on local 'darma' (a nil value)

Se eu colocar o arma.uid no darma da isso:

[14/01/2016 22:31:47] [Error - Weapon Interface] 
[14/01/2016 22:31:47] In a callback: data/weapons/scripts/sword.lua:onGetFormulaValues
[14/01/2016 22:31:47] (Unknown script file)
[14/01/2016 22:31:47] Description: 
[14/01/2016 22:31:47] data/weapons/scripts/sword.lua:15: attempt to perform arithmetic on local 'darma' (a nil value)

 

Link para o post
Compartilhar em outros sites

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.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
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)

 

Link para o post
Compartilhar em outros sites

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?

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

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?

Link para o post
Compartilhar em outros sites

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

 

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo