onStatsChange

WillOliveira
em Scripts

WillOliveira

One Being
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/09/12Posts: 88

Alguem pode explicar essa função?

Shoguns

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 09/10/13Posts: 604

Não uso muito essa função, mas pelo oque mim lembro poder ser usada para Mudas Status de um Player ou deixá-lo Imune á um elemento se tiver uma tal storage.

 
Nao sei

 

WillOliveira

One Being
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/09/12Posts: 88

Não uso muito essa função, mas pelo oque mim lembro poder ser usada para Mudas Status de um Player ou deixá-lo Imune á um elemento se tiver uma tal storage.

não é esse tipo de explicação que eu queria :(

Shoguns

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 09/10/13Posts: 604

Um Exemplo:

 

onStatsChange(cid, attacker, _type, combat, value)

 

os argumentos(arg) podem ter qualquer nome que desejar,so importa a ordem dos mesmos
1ºarg = cid esse n precisa de explicação

 

2ºarg = attacker quem deu o dano(ou healo)

 

3ºarg = _type(n use o nome type,pois type é uma função que pode ser bem util)
o _type pode ser 4 tipos
STATSCHANGE_HEALTHGAIN(quando ganha hp),
STATSCHANGE_HEALTHLOSS(quando perde hp),
STATSCHANGE_MANALOSS(quando perde mana),
STATSCHANGE_MANAGAIN(quando ganha mana)

 

como usa-los?
coloque um if pra checalos
se vc quer quando perder sangue use

if _type == STATSCHANGE_HEALTHLOSS then

 

 

4ºarg = combat o tipo de dano physical,fire,etc. caso queira que seja quan um tipo de dano em epecifico use um "if combat == NomeDoTipoDeDano then"
os tipos de dano podem ser visto na lib 000-constant

 

5ºarg = value o quando de hp ou mana ganho/perdeu

exemplo de script
torna player imunea danos fire enquanto tiver o storage

 

function onStatsChange(cid, attacker, _type, combat, value)
  if _type == STATSCHANGE_HEALTHLOSS then --checa se foi uma perda de hp
    if getPlayerStorageValue(cid,666) == 1 then  --checa o storage
      if combat == COMBAT_FIREDAMAGE then  --checa se foi por dano de fogo
   return false               --retorna falso(encerando o script) sendo assim n muda o hp do jogador
   end
    end
  end
  return true                  --retorna verdadeiro mudando o hp de player
end

 

agora ela compactada e sem comentarios

 

 

function onStatsChange(cid, attacker, _type, combat, value)
  if _type == STATSCHANGE_HEALTHLOSS and getPlayerStorageValue(cid,666) == 1 and combat == COMBAT_FIREDAMAGE then
    return false
  end
  return true
end

 

lembrece de sempre indendar o script pra deixar organizado

 

 

Créditos: lordbug99

 
Nao sei

 

xSONYx

Prostituto
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 26/12/07Posts: 272Char no Tibia: [ADM]Sony

Ótima explicação, função muito boa.

eu uso oculos no show porque elas querem minha alma

dyego2008

Ajudar o Próximo é muito Bom,
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 03/06/08Posts: 508

A explicação ficou ótima

WyvSCRs.png

RigBy

Katrina? Romero Brito?
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 05/02/14Posts: 411Gênero: MasculinoChar no Tibia: Zeh Sergipano

Não so bom com explicação mas so posso fala uma coisa.

 

onStatsChange significa Estatísticas sobre Mudança

Ela a ativada quando muda seu status.

exemplo:

quando o bicho te ataca ela e ativada.

quando você se reala ela e ativada.

sempre que muda algum status no player ela e ativada.

 

paraments

cid -- Quem ativa a função(player)
attacker -- quem te caso o dano
type -- tipo do dano(LOSS ou GAIN)
combat -- tipo do dano como fire, ice..
value -- valor do dano

exemplo de uma script que usa onStatsChange

Unknown heal

 

Duvidas pode fala



DXBXk1i.gif

DuuhCarvalho

:)
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 19/01/12Posts: 988Gênero: MasculinoChar no Tibia: Xerife Woody

Movido para resolvidos .