Ir para conteúdo
  • 0

[Resolvido] ajuda a terminar esse script (actions)


Pergunta

boa noite gente  o meu script deve adicionar um atributo na pokeball do pokemon que esta sumonado logo apos usar um item nele
para os que so entendem de tibia (o meu script deve adicionar um atributo na bota do player logo apos usar um item no seu próprio summon)
E MEU SCRIPT JA ESTA FAZENDO ISSO, ESSA PARTE JA FUNCIONA

porem eu quero que esse atributo seja adicionado na pokeball (bota) apenas se o pokemon (summon) não tenha uma spell especifica
que seria a spell "Psychic"
então eu consegui também fazer ele não adicionar o atributo nos pokemons que tenha essa spell
POREM OS POKEMON QUE NÃO TEM A SPELL E QUE DEVIA ADICIONAR O ATRIBUTO TA GERANDO ERRO
QUERO ARRUMAR ESSE ERRO E PESSO AJUDA NISSO, POR FAVOR

 

SCRIPT ATUAL
 

  Mostrar conteúdo oculto

 

---- pokemon q usei pra teste venonat que possui o psychic no m5 e possui ate o m8 total de 8 moves(spells) usei para demonstar --http://prntscr.com/g435tc
---- usando o item nele para demonstar --http://prntscr.com/g4388z -- podem ver que apareceu a mensagem (seu pokemon possui o movimento Psychic)
----o segundo pokemon q usei é o Blastoise que possui um total de 10 moves(spells)e nenhuma delas é o psychic --http://prntscr.com/g43913
----quando eu uso o item nele aparece a mensaguem (you cannot use this object) e gera erro na distro 

  Mostrar conteúdo oculto


e devia adicionar o atributo --   --http://prntscr.com/g439ng
lembrando tambem que o blastoise possui ate o m10 e o erro acontece no m11, um movimento que ele não tem,
acredito que o erro acontece ao verificar um movimento inexistente
caso eu teste em outro pokemon que possua 5 moves ou seja, ate o m5 e ele tambem não tenha o movimento Psychic o erro sera gerado no m6, ou seja em um poder inesistente, novamente

acredito que tem que adicionar algo que pare a verificação no m10 caso o pokemon tenha apenas ate o m10
 

 



ultima observação isso de verificar eu tirei do (smeargle system)

e vou postar a parte que lhe cabe abaixo para analise 
 

  Mostrar conteúdo oculto

 

 

funções sitadas

  Mostrar conteúdo oculto


ESPERO QUE POSSAM ME AJUDAR

 

 

 

 

 

 

 

 

 

 

 


@Poccnn

@Nogard

@Leoxtibia

Editado por wevertonvrb
Link para o comentário
https://xtibia.com/forum/topic/245930-resolvido-ajuda-a-terminar-esse-script-actions/
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

for index = 1,14 do

if movestable[getCreatureName(tocopy)]["move"..index] and not (isInArray(lockedcds, movestable[getCreatureName(tocopy)].move1.name)) then

doSendFlareEffect(getThingPos(item2.uid))
     doItemSetAttribute(pb.uid, "megaspell1", 1)
    doRemoveItem(item.uid, 1)

 else
      doPlayerSendCancel(cid, "seu pokemon possui o movimento Psychic .")
      end
end

  • 0
  Em 04/08/2017 em 12:13, Poccnn disse:

for index = 1,14 do

if movestable[getCreatureName(tocopy)]["move"..index] and not (isInArray(lockedcds, movestable[getCreatureName(tocopy)].move1.name)) then

doSendFlareEffect(getThingPos(item2.uid))
     doItemSetAttribute(pb.uid, "megaspell1", 1)
    doRemoveItem(item.uid, 1)

 else
      doPlayerSendCancel(cid, "seu pokemon possui o movimento Psychic .")
      end
end

Expand  

do jeito que voce colocou verifica apenas o m1 pois

move1=m1

e caso eu coloque para verificar as outras linhas do jeito que estava antes esta dando o mesmo erro, so mudou o numero da linha mas é o mesmo erro se o pokemon tem ate o move5 gera o erro no move6

tem q arruamr uma maneira de parar a verificação no move5 caso o pokemon tenha apenas ate o move 5

o erro acontece porque.

digamos q o pokemon tenha do move1 ao move5 e tenha a spell no move4

então ele para a verificação no move4 e retorna que o pokemon possui a spell

mas caso o pokemon não possui a spell ele vai pular pro move6 para verificalo tambem, porem o pokemon tem apenas ate o move5 o erro acontece ao tentar verificar um move que o pokemon não possui

  • 0

Tente assim, jovem:

 

  Mostrar conteúdo oculto

 

  • 0
  Em 05/08/2017 em 01:08, Leoxtibia disse:

Tente assim, jovem:

 

  Mostrar conteúdo oculto

 

Expand  

deu esse erro

  Mostrar conteúdo oculto

 

 

uma observação,

eu coloquei a função no some functions na pasta lib

mas caso eu deixe ela junto do script gera o mesmo erro

  • 0
  Citar

local hasmove = false

for index = 1,14 do

if movestable[getCreatureName(tocopy)]["move"..index] and not (isInArray(lockedcds, movestable[getCreatureName(tocopy)].move1.name)) then

hasmove = true

break

end

end

if hasmove then

     doSendFlareEffect(getThingPos(item2.uid))

     doItemSetAttribute(pb.uid, "megaspell1", 1)

    doRemoveItem(item.uid, 1)

 else

      doPlayerSendCancel(cid, "seu pokemon possui o movimento Psychic .")

 end

Expand  

 

  • 0

Mas que porcaria, tinha colocado um "s" a mais em movestable.

 

  Mostrar conteúdo oculto

 

  • 0
  Em 06/08/2017 em 00:17, Leoxtibia disse:

Mas que porcaria, tinha colocado um "s" a mais em movestable.

 

  Mostrar conteúdo oculto

 

Expand  

 

 

GEROU ESSE ERRO

  Mostrar conteúdo oculto

 

 

 

 

  Em 05/08/2017 em 11:23, Poccnn disse:

 

Expand  

CONTINUOU COM O MESMO ERRO QUE FALEI, GERA ERRO NO MOVE INESISTENTE

SE VAI ATE O M5 GERA O ERRO NO M6

A VERIFICAÇÃO NÃO ESTA PARANDO NO ULTIMO MOVE

  • 0

Para que possa ajudar outros.

 

  Mostrar conteúdo oculto

 

  • 0

A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.
Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...