PsyMcKenzie 150 Postado Março 29, 2013 Share Postado Março 29, 2013 (editado) Bom galera, estou fazendo um script aqui e estou com uma duvida Por exemplo, se o player não fizer tal coisa, ele vai perder life. Já fiz isso, o problema é que o tempo esta sem exausted. Tipo, ele vai perdendo vida sem parar e muito rápido, alguém sabe como coloco um tempo determinado pra vida descer? Outra coisa. O script que estou fazendo, é um creaturescript. Não sei por que, mas quando eu coloco ele no server, nenhum char loga '-' Alguém sabe por que faz isso? Editado Março 29, 2013 por PsyMcKenzie Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/ Compartilhar em outros sites More sharing options...
0 PsyMcKenzie 150 Postado Março 29, 2013 Autor Share Postado Março 29, 2013 Entendi, mas você pode criar direto no script? Como fez com: function checkFood(cid, time) (cid, time) seria os parametros? Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495127 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 29, 2013 Share Postado Março 29, 2013 (editado) @EDIT Entendi mano *----------* Você entendeu agora o princípio de condição. Agora vejamos exemplos de condições com funções booleanas*: if isCreature(cid) then Sempre que houver uma função sem um comparador (<, >, ==, etc), significa == true. Ou seja: if isCreature(cid) == true then Se o player for uma criatura, ficaria assim: if true == true then Ai o script prossegue nesse trecho. Retornar significa o valor que a função possui de acordo com as condições. Ou seja, na condição if isCreature(cid) then, se o player for uma criatura, retornará true, ou seja, o valor da função é true, é verdadeiro. Então, o return true é para saber que a função é verdadeira, mais ou menos isso né? Isso. Se o player for uma criatura, a função isCreature retorna true. @EDIT2 Entendi *-------------------------------* Aew porra! Então essa parte não tem return false pois não é booleana, certo? function onLogin(cid) local tempo = 10 if getPlayerFood(cid) == 0 then doPlayerFeed(cid, 100) end checkFood(cid, tempo) return true end Tipo, se o player tiver food = 0, o return true vai mostrar que é verdadeiro e o script vai executar a parte do doPlayerFeed. Então, não precisa de return false, porque se isso não acontecer, nao pode acontecer outra coisa, certo? Nesse caso, se o player tiver food == 0, não vai retornar nada, o que retorna é dentro da função getPlayerFood(cid), que retorna o número de food dele. Ai faz a comparação: if 0 == 0 then Mas ai o script prossegue e executa o doPlayerFeed porquê a condição é verdadeira. Entendi, mas você pode criar direto no script? Como fez com: function checkFood(cid, time) (cid, time) seria os parametros? Sim sim, isso ai mesmo. Editado Março 29, 2013 por LuckOake Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495130 Compartilhar em outros sites More sharing options...
0 PsyMcKenzie 150 Postado Março 29, 2013 Autor Share Postado Março 29, 2013 Nesse caso, se o player tiver food == 0, não vai retornar nada, o que retorna é dentro da função getPlayerFood(cid), que retorna o número de food dele. Ai faz a comparação: if 0 == 0 then Mas ai o script prossegue e executa o doPlayerFeed porquê a condição é verdadeira.Nesse caso, se o player tiver food == 0, não vai retornar nada, o que retorna é dentro da função getPlayerFood(cid), que retorna o número de food dele. Ai faz a comparação: if 0 == 0 then Mas ai o script prossegue e executa o doPlayerFeed porquê a condição é verdadeira. Então, foi mais ou menos o que eu quis dizer UAHSUHASUA' Tipo, então essa parte não é boleana né? Porque o script executa a parte do doPlayerFeed porquê a condição é verdadeira. Se não fosse verdadeira, não iria acontecer nada certo? por isso não precisa do return false. É isso? Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495137 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 29, 2013 Share Postado Março 29, 2013 (editado) Sim. Se fosse false, não iria acontecer nada que estivesse dentro daquela condição. Agora, observe o seguinte, mesmo a condição sendo verdadeira ou falsa, o checkFood(cid, tempo) vai executar, pois ele não está dentro de nenhuma condição. function onLogin(cid) local tempo = 10 if getPlayerFood(cid) == 0 then doPlayerFeed(cid, 100) end checkFood(cid, tempo) return true end Lembrando, sempre que um return for executado, o script para nesse ponto. Toda função que estiver abaixo é ignorada. Editado Março 29, 2013 por LuckOake Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495142 Compartilhar em outros sites More sharing options...
0 PsyMcKenzie 150 Postado Março 29, 2013 Autor Share Postado Março 29, 2013 Sim. Se fosse false, não iria acontecer nada que estivesse dentro daquela condição. Agora, observe o seguinte, mesmo a condição sendo verdadeira ou falsa, o checkFood(cid, tempo) vai executar, pois ele não está dentro de nenhuma condição. function onLogin(cid) local tempo = 10 if getPlayerFood(cid) == 0 then doPlayerFeed(cid, 100) end checkFood(cid, tempo) return true end Lembrando, sempre que um return for executado, o script para nesse ponto. Toda função que estiver abaixo é ignorada. ------------------------------------------------------------------------- Entendi. O que precisaria pro checkFood(cid, tempo) estar dentro de uma condição? ------------------------------------------------------------------------- Saquei mano, se eu quiser continuar uma função depois de algum return eu devo colocar end? Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495146 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 29, 2013 Share Postado Março 29, 2013 Pra um script estar dentro de uma condição é só ele estar dentro de um if: if 3 == 3 then checkFood(cid, time) end ------------------------------------------------------------------------- Saquei mano, se eu quiser continuar uma função depois de algum return eu devo colocar end? Como assim? Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495147 Compartilhar em outros sites More sharing options...
0 PsyMcKenzie 150 Postado Março 29, 2013 Autor Share Postado Março 29, 2013 Entendi! Aqui: function onLogin(cid) local tempo = 10 if getPlayerFood(cid) == 0 then doPlayerFeed(cid, 100) end checkFood(cid, tempo) return true end Por que o return esta antes do ultimo end, e nao antes do end que fecha o If? --------------------------------------------------------------- Eu quis dizer assim: Se eu tenho uma função com return true, pra eu iniciar outra no mesmo script eu devo colocar end depois do return né? Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495155 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 29, 2013 Share Postado Março 29, 2013 Entendi! Aqui: function onLogin(cid) local tempo = 10 if getPlayerFood(cid) == 0 then doPlayerFeed(cid, 100) end checkFood(cid, tempo) return true end Por que o return esta antes do ultimo end, e nao antes do end que fecha o If? Rapaz, sempre que for fechar uma função principal, use return true. Por quê? Pra te falar a verdade eu não sei. O máximo que eu sei é que você deve evitar usar return false no final de uma função principal. Eu quis dizer assim: Se eu tenho uma função com return true, pra eu iniciar outra no mesmo script eu devo colocar end depois do return né? Sempre que você usar um return, logo depois vem um end. Sempre assim. Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495162 Compartilhar em outros sites More sharing options...
0 PsyMcKenzie 150 Postado Março 29, 2013 Autor Share Postado Março 29, 2013 Entendo, mas se eu fizesse isso, estaria errado? function onLogin(cid) local tempo = 10 if getPlayerFood(cid) == 0 then doPlayerFeed(cid, 100) return true end checkFood(cid, tempo) end --------------------------------------------------------------------------------------- Entendi. Depois do end, ai sim eu posso iniciar uma nova função né? Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495165 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 29, 2013 Share Postado Março 29, 2013 Entendo, mas se eu fizesse isso, estaria errado? function onLogin(cid) local tempo = 10 if getPlayerFood(cid) == 0 then doPlayerFeed(cid, 100) return true end checkFood(cid, tempo) end --------------------------------------------------------------------------------------- Entendi. Depois do end, ai sim eu posso iniciar uma nova função né? Como eu já disse, um return sempre para o script em certo ponto. Como o return tá dentro da condição, se ela for verdadeira, a checagem de food nunca vai acontecer, pois o script vai retornar true e parar naquele ponto e a função checkFood não será executada. Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495169 Compartilhar em outros sites More sharing options...
0 PsyMcKenzie 150 Postado Março 29, 2013 Autor Share Postado Março 29, 2013 Entendi! Mas esse return true ai, vai checar o script inteiro? Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495179 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 29, 2013 Share Postado Março 29, 2013 Rapaz, não entendi direito essa outra pergunta, mas vou explicar o funcionamento de um script: function teste(cid) -- 1: Script reconhece que é uma função if 3 == 3 then -- 2: Script faz a comparação print("Hi") -- 3: Script executa a função se a comparação for verdadeira end -- 4: Termina return true -- 5: Retorna true end -- 6: Termina tudo Traduzindo, o script executa à medida em que os comandos são dados. Se você colocar a linha xx antes da linha yy, o script vai ler e executar primeiro a linha xx. Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495184 Compartilhar em outros sites More sharing options...
0 PsyMcKenzie 150 Postado Março 29, 2013 Autor Share Postado Março 29, 2013 Já entendi, a minha duvida era se o return true iria retornar a parte do if e a parte do check. Já vi que sim. Obrigado pela imensa ajuda LuckOake, você é muito experiente cara. Logo darei outro REP+. Abraços! Posso postar o sistema e colocar os créditos pra voce? Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495190 Compartilhar em outros sites More sharing options...
0 LuckOake 400 Postado Março 29, 2013 Share Postado Março 29, 2013 Claro, mas os créditos são seus, você que fez o script, eu apenas te ajudei a arrumar ele Fico feliz em saber que você conseguiu entender, quando eu vejo que a pessoa quer mesmo aprender eu faço o possível pra ela entender tudo Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495196 Compartilhar em outros sites More sharing options...
0 PsyMcKenzie 150 Postado Março 29, 2013 Autor Share Postado Março 29, 2013 (editado) Mas é uma parte sua Pow, ajudou muito cara... Muito obrigado, de verdade. Pelo menos tu ta disposto a ajudar mesmo, até o fim. Valew. @EDIT Mano, como eu coloco no creaturescripts.xml? as tags.. Editado Março 29, 2013 por PsyMcKenzie Link para o comentário https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/page/2/#findComment-1495198 Compartilhar em outros sites More sharing options...
Pergunta
PsyMcKenzie 150
Bom galera, estou fazendo um script aqui e estou com uma duvida
Por exemplo, se o player não fizer tal coisa, ele vai perder life.
Já fiz isso, o problema é que o tempo esta sem exausted. Tipo, ele
vai perdendo vida sem parar e muito rápido, alguém sabe como coloco
um tempo determinado pra vida descer?
Outra coisa.
O script que estou fazendo, é um creaturescript.
Não sei por que, mas quando eu coloco ele no server, nenhum char loga '-'
Alguém sabe por que faz isso?
Editado por PsyMcKenzieLink para o comentário
https://xtibia.com/forum/topic/210883-erro-em-script-de-creature-script/Compartilhar em outros sites
Top Posters For This Question
20
17
1
1
Popular Days
Mar 29
39
Top Posters For This Question
PsyMcKenzie 20 posts
LuckOake 17 posts
Roksas 1 post
BananaFight 1 post
Popular Days
Mar 29 2013
39 posts
38 respostass a esta questão
Posts Recomendados