Ir para conteúdo
  • Cadastre-se

Normal Spell que precise de items para ser castada


Posts Recomendados

Bom dia, estou criando uma spell, que so pode ser usada se o player tiver um arco equipado e que tenha pelo menos um tipo de flecha no inventario.

 

O script que fiz foi esse: 
 

Spoiler

local x = {2456, 8855, 8858, 7438, 8854, 8856} --Os arcos que precisam estar equipados

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 6)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 6)

local area = createCombatArea({
	{1, 1, 1},
	{1, 3, 1},
	{1, 1, 1}
})
setCombatArea(combat, area)

function onGetFormulaValues(cid, level, distance, attack, factor)
    min = -(level + (skill * 2) + (attack * 3/2)) * 1
    max = -(level + (skill * 2) + (attack * 3/2)) * 1
return min, max
end
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")


function onCastSpell(cid, var)
	local y = getPlayerSlotItem(cid, 5) -- id do item na mão direita
	local z = getPlayerSlotItem(cid, 6) --id do item na mão esquerda
	if isInArray(x, y) or isInArray(x, z) then
		if getPlayerItemCount(cid, 2546) >= 1 then -- flecha necessaria
			doPlayerRemoveItem(cid, 2546, 1) 
			doCombat(cid, combat, var)
				else
			doSendMagicEffect(getCreaturePosition(cid), 2)
			doSendAnimatedText(getCreaturePosition(cid), "You need at least 1 Burst Arrow", 33)
			end
		else
			doSendMagicEffect(getCreaturePosition(cid), 2)
			doSendAnimatedText(getCreaturePosition(cid), "You must equip a Bow", 33)
			end
	return true
end

 

 

Eu comecei fazendo ela pelo meio, pedindo apenas as flechas para a magia ser castada, e ela funcionou perfeitamente, entretanto, ao pedir um arco equipado como requisito, a spell passou a não funcionar direito, quando eu casto aparece apenas as palavras "You must" e solta a fumacinha.

 

Podem me ajudar a encontrar e erro dela D:?

Editado por Hoad
Escrevi no lugar errado x_x (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

tem alguns erros de lógica no seu script, vamos lá:

 

local y = getPlayerSlotItem(cid, 5) -- id do item na mão direita
	local z = getPlayerSlotItem(cid, 6) --id do item na mão esquerda
	if isInArray(x, y) or isInArray(x, z) then

essa função que vc atribuiu a y e z retorna o item em si, vc quer verificar o id dele então precisaria de .itemid. Mas antes vc precisa garantir que isso exista então

local y = getPlayerSlotItem(cid, 5) -- id do item na mão direita
local z = getPlayerSlotItem(cid, 6) --id do item na mão esquerda
    if (y.uid > 0 and isInArray(x, y.itemid)) or (z.uid > 0 and isInArray(x, z.itemid)) then

 

 


Ao final a gente precisa botar return false nos casos onde a spell não vai pra nao dar exhaust/consumir mana atoa:

 

 

Spoiler

function onCastSpell(cid, var)
	local y = getPlayerSlotItem(cid, 5)
	local z = getPlayerSlotItem(cid, 6)
	if (y.uid > 0 and isInArray(x, y.itemid)) or (z.uid > 0 and isInArray(x, z.itemid)) then
		if getPlayerItemCount(cid, 2546) >= 1 then -- flecha necessaria
			doPlayerRemoveItem(cid, 2546, 1) 
			doCombat(cid, combat, var)
		else
			doSendMagicEffect(getCreaturePosition(cid), 2)
			doSendAnimatedText(getCreaturePosition(cid), "You need at least 1 Burst Arrow", 33)
		return false
		end
	else
		doSendMagicEffect(getCreaturePosition(cid), 2)
		doSendAnimatedText(getCreaturePosition(cid), "You must equip a Bow", 33)
	return false
	end
return true
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 Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por hydrolyss
      Boa Noite galera do TK,
      tipo quando eu escrevo no "News"
       
      Ex:
      Oi Oi Oi Oi
      Xau Xau Xau
       
      quando eu coloco não vem dessa forma , vem dessa : 
       
      Oi Oi Oi Xau Xau Xau
       
      Teria como eu modificar algo pra usar esses espaços ou colocar algo no lugar como </space/>
       
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo