Ir para conteúdo

System Dopushcreature By Dokmos


Dokmos

Posts Recomendados

Bom, já vi várias dúvidas em como criar uma spell/action que empurra o player, mas este não entra para paredes/fields/creatures/etc. Como não vi nenhuma resposta, resolvi liberar meu sistema de empurrar uma criatura para a direção que você escolher (como o doMoveCreature - porém não empurra contra obstáculos).

 

ATENÇÃO CONTEÚDO OBSOLETO!!!



ATUALIZADO NESTE OUTRO TÓPICO

http://www.xtibia.com/forum/Dinastias-Dopu...01-t102517.html

 

 

Atenciosamente,

Dokmos

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

Bom, valeu!

Ajudou a muitos..

EDIT:

Mais eu queria saber se tem como eu bota na mesma magia pra ir ou pra north sul leste oeste

em uma só magia, aleatoriamente

e outra!

Não só em spells com target mais em spells com área, se você puder ajudar eu agradeço!

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

@OneDay

 

Tem sim, vou dar um exemplo de direção aleatória...

 

function onSay(cid, words, param)

local target = getCreatureTarget(cid)
local direction = math.random(0,3)

if isCreature(target) == TRUE then
doPushCreature(cid,target,direction)
else
doPlayerSendCancel(cid, "You can only use it on creatures.")
end

end

 

E para utilizar em áreas, é só você pegar a área e localizar o oponente com getThingfromPos e colocar no lugar do target...

Link para o comentário
Compartilhar em outros sites

@OneDay

 

Criei uma spell de exemplo para lhe mostrar em áreas...

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_POFF)

local function event1(parameters)
if isCreature(getThingfromPos(hitpos1).uid) == 1 then
doPushCreature(parameters.cid, getThingfromPos(hitpos1).uid, 0, -1, 1, 500)
elseif isCreature(getThingfromPos(hitpos2).uid) == 1 then
doPushCreature(parameters.cid, getThingfromPos(hitpos2).uid, 0, -1, 1, 500)
elseif isCreature(getThingfromPos(hitpos3).uid) == 1 then
doPushCreature(parameters.cid, getThingfromPos(hitpos3).uid, 0, -1, 1, 500)
end 
end

local arr = {
{0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0},
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function onCastSpell(cid, var)

local pos = getPlayerPosition(cid)
local parameters = { cid = cid, var = positionToVariant(getPlayerPosition(cid)) }

hitpos1 = {x=pos.x, y=(pos.y-1), z=pos.z, stackpos=253}
hitpos2 = {x=pos.x, y=(pos.y-2), z=pos.z, stackpos=253}
hitpos3 = {x=pos.x, y=(pos.y-3), z=pos.z, stackpos=253}

addEvent(event1, 0, parameters)
return doCombat(cid, combat, var)

end

 

@danilowarlord

 

Obrigado :plink:

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

Tem como posta como fazer magia sem ser target empurra?

 

Se sim obrigado, não so muito scripper então não entendi o

 

E para utilizar em áreas, é só você pegar a área e localizar o oponente com getThingfromPos e colocar no lugar do target...[\quote]
Link para o comentário
Compartilhar em outros sites

Bom, eu atualizei o script e coloquei em uma função mais simples para usar...

 

Agora estou bastante ocupado com o Avatar Project, então em breve postarei o novo sistema e mostrarei como colocar em spells, peço desculpas pela falta de tempo...

 

Atenciosamente,

Dokmos

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
×
×
  • Criar Novo...