GM
pedido

globalevent 1 em 1 minuto ganhar 1 minuto de stamina

Por gmstrikker, 23 de jan. de 2016 em Scripts

resolvido
script
10
1.5k
gmstrikkerG
23 de janeiro de 2016 às 03:41

Eu sei q tem como tirar a perda de stamina, mas eu queria isso pra fazer outra coisa

 

Alguém poderia me fazer um script que de 1 em 1 minuto diminui-se 1 aumenta-se 1 da stamina de todos os players logados?

Night WolfN
23 de janeiro de 2016 às 11:21

versão recursiva (só jogar em login.lua antes do ultimo return true e botar embaixo
cancelStamina(cid)

function cancelStamina (uid)
  if isPlayer(uid) then
    doPlayerAddStamina(uid, 1)
end
addEvent(cancelStamina, 1000, uid)
end

por globalevents fica melhorzinho mas to pelo cel agr

gmstrikkerG
24 de janeiro de 2016 às 04:48

versão recursiva (só jogar em login.lua antes do ultimo return true e botar embaixo

cancelStamina(cid)

function cancelStamina (uid)
  if isPlayer(uid) then
    doPlayerAddStamina(uid, 1)
end
addEvent(cancelStamina, 1000, uid)
end

por globalevents fica melhorzinho mas to pelo cel agr

 

Eu fiz certo/da melhor forma como globalevent?

 

 

<globalevent name="addstamina" interval="60000" event="script" value="addstamina.lua"/>

 

 

function onThink(interval, lastExecution)
    for _, pid in ipairs(getPlayersOnline()) do
        doPlayerAddStamina(pid, 1)
    end
    return TRUE
end
SkullsS
24 de janeiro de 2016 às 05:01

Creio que esta tudo certinho, esta funcionando esse codigo que vc mandou por ultimo?

Night WolfN
24 de janeiro de 2016 às 05:07
Melhor resposta

@@gmstrikker, sim.. só coloca return true porque return TRUE não "existe"

gmstrikkerG
24 de janeiro de 2016 às 21:28

@@gmstrikker, sim.. só coloca return true porque return TRUE não "existe"

 

Ué copiei de outro script aqui que tinha return TRUE, qual a diferença, será q ta dando return 0 em vez de 1 por causa do TRUE em vez de true, me da uma luz aí, tem varios scripts return TRUE

DanihcvD
24 de janeiro de 2016 às 21:37

@@gmstrikker, ao dar return TRUE, vc está retornando uma string basicamente, e não um sinal booleano.


#EDIT: caso o seu pedido já tenha sido resolvido, pf marque o post que melhor respondeu sua duvida como Resolvido (esse botão s eencontra no rodapé de cada post)

Editado Janeiro 24 por Danihcv

gmstrikkerG
24 de janeiro de 2016 às 21:57

@@gmstrikker, ao dar return TRUE, vc está retornando uma string basicamente, e não um sinal booleano.

#EDIT: caso o seu pedido já tenha sido resolvido, pf marque o post que melhor respondeu sua duvida como Resolvido (esse botão s eencontra no rodapé de cada post)

 

Vlw gente, se o wolf disse q vai funcionar eu confio, resolvido

Vlw gente :)

DanihcvD
25 de janeiro de 2016 às 02:34

Tópico movido para dúvidas / pedidos resolvidos.

Night WolfN
25 de janeiro de 2016 às 05:06

Só tem que conferir se seu interval no xml do globalevents é segundos ou milisegundos.. aqui é segundos então seria 60, mas isso é fácil (só ver como está os outros de server save e clean por ex).
A diferença é que vc tem no seu constant.lua escrito TRUE = true e FALSE = false, pq antigamente o povo era idiota e não sabia a diferença entre TRUE (variavel) e true (booleano verdadeiro). Se vc testa num sv q não tem isso escrito em nenhum lugar da lib, nem na source ele vai retornar 'unable to call global TRUE' e o script vai zoar seu servidor. Mesmo possuindo isso, não é uma boa prática pois seu servidor tem que fazer duas checagens na memória -> retorna TRUE -> vê oque TRUE significa ao invés de retornar diretamente verdadeiro. Pode parecer besteira mas num globalevent que roda o tempo todo e juntamente com outros sistemas que vc tem pode acabar lagando algum dia.

@@Danihcv, não é uma string.. é uma variável. String tem aspas simples, dupla (strings de uma linha) ou colchete duplo (string de várias linhas)