J’ai réussi à faire quelque chose qui peut t’intéresser, sachant que c’est pour un module solo. Pour un module multi, c’est peut-être un peu plus compliqué…
Voilà :
Dans le OnEnter de la zone de départ de ton module tu mets ce script :
void main()
{
if (GetLocalInt(GetFirstPC(),"nDefini")!=1 && GetDeity(GetFirstPC())=="Vampire")
{
effect eCa=EffectACIncrease(6);
effect eForce=EffectAbilityIncrease(ABILITY_STRENGTH,6);
effect eDex=EffectAbilityIncrease(ABILITY_DEXTERITY,4);
effect eInt=EffectAbilityIncrease(ABILITY_INTELLIGENCE,2);
effect eSag=EffectAbilityIncrease(ABILITY_WISDOM,2);
effect eChar=EffectAbilityIncrease(ABILITY_CHARISMA,4);
effect eCon=EffectAbilityIncrease(ABILITY_CONSTITUTION,4);
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eCa,GetFirstPC());
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eForce,GetFirstPC());
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eDex,GetFirstPC());
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eInt,GetFirstPC());
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eSag,GetFirstPC());
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eChar,GetFirstPC());
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eCon,GetFirstPC());
SetLocalInt(GetFirstPC(),"nCompteur",0);
SetLocalInt(GetFirstPC(),"nDefini",1);
}
}
Ce script sert à vérifier si l’ethnie est « Vampire », et dans ce cas il accorde des bonus et initialise une variable locale nCompteur.
Après, sur le HeartBeat de ton module tu mets ça :
void main()
{
if (GetIsDay() && GetDeity(GetFirstPC())=="Vampire")
{
int nCount=GetLocalInt(GetFirstPC(),"nCompteur");
if (nCount > 9)
{
effect eBrule=EffectDamage(2,DAMAGE_TYPE_DIVINE);
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eBrule,GetFirstPC());
SetLocalInt(GetFirstPC(),"nCompteur",0);
}
else SetLocalInt(GetFirstPC(),"nCompteur",nCount+1);
}
}
Ou alors tu le mets sur le heartbeat de chaque zone extérieure, si tu veux que les vampires puissent se déplacer le jour dans les zones d’intérieur sans avoir à subir de dégâts…
Ce deuxième script incrémente la variable locale nCompteur de 1 à chaque heartbeat et vérifie si c’est supérieur à 9 : dans ce cas on inflige les dégâts et on remet le compteur à zéro. Tout ceci si le joueur est un vampire bien-sûr.
A toi maintenant d’ajuster la fréquence et la gravité de ces dégâts, dans le deuxième script.
Dans cet exemple, c’est 2 pv toutes les minutes.
Attention aussi à la différence entre « Vampire » et « vampire »…
Pour la régénération, ça ne doit pas être très compliqué, tu peux par ex donner aux vampires un objet magique utilisable une fois par jour qui permet de faire des sorts de soin…facile à faire juste avec Aurora il me semble.