Ir para conteúdo

[action] Como Reconhecer Target Do Player


renatotbreis

Posts Recomendados

aiai diacho... er...

outra das minhas dúvidas complicadas que ninguém sabe resolver :angry:

 

seguinte: a minha spell acerta um alvo mirado pelo player. focada. ao acertar, o chão sobre os pés do alvo sobe e ele é empurrado pra trás.

-eu não consigo fazer com que o alvo DO PLAYER seja identificado como o alvo a ser movido pra trás...

 

pelo amor de deus, olha q nem acredito em deus, me ajudem com essa spell e com a spell que precisa de distância mínima pra funcionar!

obrigado :cry:

 

braço!

Editado por TheTNT
Link para o comentário
Compartilhar em outros sites

Se eu entendi ela pega quem ele está "atacando"

 

Se for tente usar essa função

 

getCreatureTarget(cid)

 

 

O resto não entendi bem

Se poder explicar melhor eu tento ajudar

 

Qualquer coisa tem as funções :

 

http://www.xtibia.com/forum/Pasta-Data-Fun...tml#entry635865

Link para o comentário
Compartilhar em outros sites

@up

 

isso q vc quer q aconteça

 

OU acontece e vc n quer q aconteça (nó na lingua)

 

Isso que ele descreveu é o que está acontecendo, e ele não quer que aconteça. Ele quer que o spell faça aparecer uma pedra no local onde o alvo estava e faça com que o alvo se afasta do usuário, dependendo da posição do usuário do spell.

Por exemplo, se o usuário estiver virado pra direita, o alvo se afastar indo pra direita quando for atingido. Obviamente não passando por paredes.

( Faço parte do projeto dele :whistle: )

 

PS : UHUUU! Sou camponês agora! <<<<<----------

Editado por JamesRocket
Link para o comentário
Compartilhar em outros sites

Bom, existe um array se não me engano, que nele estão todos ground tiles (que você pode andar).

 

É só você usar este array e também a function getThingFromPos(pos) com stackpos 1 para descobrir se o tile que ele vai ser empurrado é ground ou não.

Link para o comentário
Compartilhar em outros sites

eu não sei como fazer, não conheço como mexer com array e essas coisas de scripter em actions, eu to mesmo estudando isso, mas leva tempo pra aprender tudo. você pode me mostrar como fazer?

 

o script da spell é esse:

local combatDist = createCombatObject()
setCombatParam(combatDist, COMBAT_PARAM_TYPE, 1)
setCombatParam(combatDist, COMBAT_PARAM_EFFECT, 34)
setCombatParam(combatDist, COMBAT_PARAM_CREATEITEM, 5750)
function onGetFormulaValues(cid, level)
min = -(level * 1.8)
max = -(level * 3.6)
return min, max
end
setCombatCallback(combatDist, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)

target = getCreatureTarget(cid)
pos = getThingPos(getCreatureTarget(cid))
dir = getPlayerLookDir(cid)

if(target ~= 0) then

if dir == 0 then
newpos = {x=pos.x, y=pos.y-1, z=pos.z}
elseif dir == 2 then
	newpos = {x=pos.x, y=pos.y+1, z=pos.z}
	elseif dir == 1 then
		newpos = {x=pos.x+1, y=pos.y, z=pos.z}
		elseif dir == 3 then
			newpos = {x=pos.x-1, y=pos.y, z=pos.z}

doMoveCreature(target, newpos)
end

		doCombat(cid, combatDist, numberToVariant(target))
end

return

end

 

os 3 problemas são:

-o alvo só vai para cima quando a spell é usada;

-o alvo atravessa paredes e outras coisas assim;

-preciso que o item de id 5750 seja criado no lugar onde o monstro estava antes de ser movido.

 

pode me ajudar?

braço!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...