MA

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

Por MatheusGlad, 04 de abr. de 2011 em Mods, funções e outros

script
3
1.2k
MatheusGladM
04 de abril de 2011 às 17:01

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 Abril 4 por MatheusMkalo

3 semanas depois...
satan666S
20 de abril de 2011 às 21:06

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.

1 mês depois...
gluglugugaG
31 de maio de 2011 às 23:50

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...