Ir para conteúdo

[Encerrado] Magia Shadow tag


nociam

Posts Recomendados

  • 2 weeks later...

Alguém pelo menos uma ideia de como fazer fazer ficar o target no pokemon A por 60 segundos sem conseguir tirar esse target do pokemon A.

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 3 months later...
  • 7 months later...

Up

 

Palavras do @dalvorsn em

"como faço monster trocar o target?" :

 

Citar

Para um target especifico:

doMonsterSetTarget(cid, target)

 

Para qualquer um da lista de targets:

doMonsterChangeTarget(cid)

 

Resposta baseada em tfs 036

 

Up

 

 

Link para o comentário
Compartilhar em outros sites

Você primeiro precisa pegar as criaturas que estão em volta, os spectators. Apos isso basta para cada um da lista setar o target.

 

getSpectators(centerPos, rangex, rangey[, multifloor = false])

doMonsterSetTarget(cid, target)

 

Além disso, para evitar que troquem de target, como tem uma duração de 60s, aconselho a fazer uma função recursiva que utilize addEvent com um delay razoavel(acho que 1s ja deve ser suficiente, se necessario reduza isso)

Agora a questão é definir quem são os oponentes, quais as caracteristicas que determinam ser um oponente?

 

Seria algo proximo disso:

function focusAttackInArea( target, range, delay, time, counter )	if not isCreature(target) then return end	if not counter then		counter = 0	end	for _, thing in pairs(getSpectators(getThingPosition(target), range, range)) do 		-- verificar aqui se thing.uid é oponente		-- se sim entao		doMonsterSetTarget(thing.uid, target)	end 	if counter < time then		addEvent(focusAttackInArea, delay, range, time, counter + delay)	end endlocal delay = 500 -- mslocal totalTime = 6 * 60 * 1000 -- 6slocal range = 5focusAttackInArea(cid, range, delay, totalTime)

 

Link para o comentário
Compartilhar em outros sites

esta acontecendo um erro 

 

1- ta sempre um erro no console

erro linha 6714 doMonsterSetTarget(thing.uid, target)

Spoiler

[28/08/2016 20:49:13] [Error - TalkAction Interface]
[28/08/2016 20:49:13] data/talkactions/scripts/move1.lua:onSay
[28/08/2016 20:49:13] Description:
[28/08/2016 20:49:13] data/lib/pokemon moves.lua:6714: attempt to index local 'thing' (a number value)
[28/08/2016 20:49:13] stack traceback:
[28/08/2016 20:49:13]  data/lib/pokemon moves.lua:6714: in function 'focusAttackInArea'
[28/08/2016 20:49:13]  data/lib/pokemon moves.lua:6723: in function 'docastspell'
[28/08/2016 20:49:13]  data/talkactions/scripts/move1.lua:288: in function <data/talkactions/scripts/move1.lua:24>
 

2- quanto uso essa magia eu tenho que colocar target na criatura pra funcionar

3- ele perde o target se eu mudar da target

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

9 minutos atrás, nociam disse:

esta acontecendo um erro 

 

1- ta sempre um erro no console

erro linha 6714 doMonsterSetTarget(thing.uid, target)

  Ocultar conteúdo

[28/08/2016 20:49:13] [Error - TalkAction Interface]

[28/08/2016 20:49:13] data/talkactions/scripts/move1.lua:onSay

[28/08/2016 20:49:13] Description:

[28/08/2016 20:49:13] data/lib/pokemon moves.lua:6714: attempt to index local 'thing' (a number value)

[28/08/2016 20:49:13] stack traceback:

[28/08/2016 20:49:13]  data/lib/pokemon moves.lua:6714: in function 'focusAttackInArea'

[28/08/2016 20:49:13]  data/lib/pokemon moves.lua:6723: in function 'docastspell'

[28/08/2016 20:49:13]  data/talkactions/scripts/move1.lua:288: in function <data/talkactions/scripts/move1.lua:24>

 

2- quanto uso essa magia eu tenho que colocar target na criatura pra funcionar

3- ele perde o target se eu mudar da target

Erro meu então, o spectators retorna um uid, e não um thing como eu pensei.

basta mudar de thing.uid para thing, ou renomear no for e usar como uid

for _, uid in pairs(getSpectators(getThingPosition(target), range, range)) do 	-- verificar aqui se uid é oponente	-- se sim entao	doMonsterSetTarget(uid, target)end 

 

Link para o comentário
Compartilhar em outros sites

esta com esse erro agora e tem como fazer pra não aceitar outro target ate acabar a condição desse sistema porque se eu to target em outro pokemon mesmo colocando uma condição ele anula essa magia

 

[28/08/2016 22:29:34] [Error - TalkAction Interface]
[28/08/2016 22:29:34] data/talkactions/scripts/move1.lua:onSay
[28/08/2016 22:29:34] Description:
[28/08/2016 22:29:34] (luaDoMonsterSetTarget) Monster not found

Link para o comentário
Compartilhar em outros sites

19 minutos atrás, nociam disse:

esta com esse erro agora e tem como fazer pra não aceitar outro target ate acabar a condição desse sistema porque se eu to target em outro pokemon mesmo colocando uma condição ele anula essa magia

 

[28/08/2016 22:29:34] [Error - TalkAction Interface]

[28/08/2016 22:29:34] data/talkactions/scripts/move1.lua:onSay

[28/08/2016 22:29:34] Description:

[28/08/2016 22:29:34] (luaDoMonsterSetTarget) Monster not found

Era pra tu fazer alguma verificação se é de fato um oponente né, e provavelmente nisso iria incluir o isMonster(uid), mas ja que nao fez vou fazer um basico

 

for _, uid in pairs(getSpectators(getThingPosition(target), range, range)) do 	if isMonster(uid) then		doMonsterSetTarget(uid, target)	endend 

 

Link para o comentário
Compartilhar em outros sites

  • 1 year later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...