Ir para conteúdo

Funçao Addhealth(Cid, Amount, Times, Interval, Deny, S)


Posts Recomendados

Alienado: Qual a funçao do script?

Mkalo: Ela vai adicionando vida para o player ate ele ser atacado. (nao exatamente)

 

Bem, como eu nao mexi na source pra fazer (eu nem sei como), a funçao pode ter seus fails classicos, porque ela funciona guardando a life antiga, se voce perder life e ficar com uma life menor que a life antiga, o script para.

 

Bugs:

Se voce healar sua vida com exura gran, e almentar 50 de life e voce perder 10 de life, o script nao ira parar.

 

Function:

function addHealth(cid, amount, times, interval, deny, s)
   return times > 0 and addEvent(function() if isCreature(cid) then if s == nil or s <= getCreatureHealth(cid) then doCreatureAddHealth(cid, amount) addHealth(cid, amount, times-1, interval, deny, getCreatureHealth(cid)) else doSendAnimatedText(getCreaturePos(cid), deny, 180) end end end, interval*1000)
end

 

 

Exemplo de uso:

    addHealth(cid, 100, 10, 2, "LOST", getCreatureHealth(cid))

 

o getCreatureHealth(cid) é opcional, mas impede possiveis bugs.

 

Parametros:

  • amount: Quanto de vida vai adicionar cada vez que for adicionar
  • times: Quantas vezes vai adicionar vida
  • interval: Intervalo em segundos de cada "adicionada"
  • deny: Mensagem em vermelho que subira na cabeça do player (Max 9 letras eu acho)
  • s: Nao use-o ou use com getCreatureHealth(cid) somente.

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

  • 3 weeks later...

Esse "bug" se dar pelo fato de existir na estrutura de controle a expressão de 'igualdade' junto com a expressão 'maior que' associada ao controle do "life" atual.

 

Para maior segurança contra possíveis "bugs" utilize todas as estruturas de controle dentro da função addhelth() ao invés de uma função paralela.

Ao invés de criar e chamar uma nova função; chame a propria função.

 

 

Em matéria de organização de código ficou ótimo a forma com que foi escrita o código.

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

function addHealth(cid, amount, times, interval, deny, cor, s)
   return times > 0 and addEvent(function() if isCreature(cid) then if s == nil or s <= getCreatureHealth(cid) then doCreatureAddHealth(cid, amount) addHealth(cid, amount, times-1, interval, deny, getCreatureHealth(cid)) else doSendAnimatedText(getCreaturePos(cid), deny, cor) end end end, interval*1000)
end

Uma utilidade a mais, cor, obviamente a cor da mensagem que aparecera se perder o heal, no caso "deny".

Como boa parte sabe, é de 1 a 255.

Na verdade é uma inutilidade...

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...