A função onStatsChange(), serve para mudar os Status do jogador, entre eles: Battle, Healing, Bebado, Poison!
E a função stats_healthloss, nunca vi. Tem certeza que se escreve assim?
info
Grupo: Herói
Registrado: 14/12/10
Posts: 3.6k
Reputação: +846
Gênero: Masculino

A função onStatsChange(), serve para mudar os Status do jogador, entre eles: Battle, Healing, Bebado, Poison!
E a função stats_healthloss, nunca vi. Tem certeza que se escreve assim?
Eu tenho certeza q não escreve assim, só tipo um rascunho da minha mente...
Editado Fevereiro 19 por Snowsz
info
Grupo: Conde
Registrado: 30/10/11
Posts: 625
Reputação: +101
Gênero: Masculino

A função onStatsChange(), serve para mudar os Status do jogador, entre eles: Battle, Healing, Bebado, Poison!
E a função stats_healthloss, nunca vi. Tem certeza que se escreve assim?
wtf
essa é uma função callback de C pra quando uma criatura ganha ou perde hp ou mana
se n sabe n fala
@topico
vamo explica direito
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
Vlw lordbug, rep+ erá tudo que eu precisava!
@Edit
Tinha tudo mesmo tudo tudo bem explicado, explicação total!!!!!!!!!
Editado Fevereiro 21 por Snowsz
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Tópico movido para a seção de dúvidas e pedidos resolvidos.
info
Grupo: Artesão
Registrado: 22/01/12
Posts: 121
Reputação: +23
Char no Tibia: Not...
Bem estou meio enferrujado nos scripts, estou voltando a essa área e estou querendo re-aprender oque não lembro mais, então queria saber como usar onStatsChange(cid, attacker, type, combat, value), também stats_healthloss manaloss não sei bem mais como era mais eu lembro que vi na semana passada em um script dai não lembro direito como é, eu quero saber para que serve, como usar, de todos os tipos...
Agradeço a quem me ajudar, e darei reputação é claro ^^