Système de soif, juste pour une Subrace

Répondre
Partager Rechercher
Voilà, j'ai ce script que j'ai trouvé sur NWn vault, et j'arrive pas à le magouiller comme je veux.

Je voudrais savoir si je ne peux garder que la soif et enlever là faim et de plus, ne l'appliquer qu'a une Subrace et non à toute les races du jeu.

Voilà :

Code PHP:

//Eating/Drinking OnHeartbeat script by Jason Raede
//Put this in the OnHeartbeat event of the mod.
//DO NOT change anything in this except for the damage and ability changes.
 
void main()
{
object oPC GetFirstPC();
int iVar GetLocalInt(oPC"Hungry");
while(
GetIsObjectValid(oPC))
{
if(
iVar 480)
{
effect eEff GetFirstEffect(oPC);
while(
GetIsEffectValid(eEff))
{
RemoveEffect(oPCeEff);
eEff GetNextEffect(oPC);
}
SetLocalInt(oPC"Hungry"iVar 1);
}
else if(
iVar == 480)
{
SetLocalInt(oPC"Hungry"iVar 1);
SendMessageToPC(oPC"You are getting hungry.");
}
else if(
iVar 480)
{
SetLocalInt(oPC"Hungry"iVar 1);
SendMessageToPC(oPC"You are famished.");
effect eDamage EffectDamage(1DAMAGE_TYPE_MAGICALDAMAGE_POWER_PLUS_FIVE);
ApplyEffectToObject(DURATION_TYPE_INSTANTeDamageoPC);
}
int iDrink GetLocalInt(oPC"Thirsty");
if(
iVar 120)
{
effect eEff GetFirstEffect(oPC);
while(
GetIsEffectValid(eEff))
{
RemoveEffect(oPCeEff);
eEff GetNextEffect(oPC);
}
SetLocalInt(oPC"Thirsty"iDrink 1);
}
else if(
iVar == 120)
{
SetLocalInt(oPC"Thirsty"iDrink 1);
SendMessageToPC(oPC"You are getting thirsty");
}
else if(
iVar 120)
{
SetLocalInt(oPC"Thirsty"iDrink 1);
SendMessageToPC(oPC"You are very thirsty.");
int iDice d4(1);
switch(
iDice)
{
case 
0:
{
effect eDamage EffectAbilityDecrease(ABILITY_CONSTITUTION1);
ApplyEffectToObject(DURATION_TYPE_INSTANTeDamageoPC);
break;
}
case 
1:
{
effect eDamage EffectAbilityDecrease(ABILITY_STRENGTH1);
ApplyEffectToObject(DURATION_TYPE_INSTANTeDamageoPC);
break;
}
case 
2:
{
effect eDamage EffectDazed();
ApplyEffectToObject(DURATION_TYPE_INSTANTeDamageoPC);
break;
}
case 
3:
{
effect eDamage EffectKnockdown();
ApplyEffectToObject(DURATION_TYPE_INSTANTeDamageoPC);
break;
}
}
}
oPC GetNextPC();
}

Au fait, j'ai oublié quelque chose en fait, ma Subrace aura juste besoin de trouver un object précis "identifier par le blueprint" pour calmer sa soir, qu'il lootera sur un PJ ou un PNJ.

Merci.
Citation :
Publié par Nosfentor
Voilà, j'ai ce script que j'ai trouvé sur NWn vault, et j'arrive pas à le magouiller comme je veux.

Je voudrais savoir si je ne peux garder que la soif et enlever là faim et de plus, ne l'appliquer qu'a une Subrace et non à toute les races du jeu.

Voilà :

Code PHP:

//Eating/Drinking OnHeartbeat script by Jason Raede
//Put this in the OnHeartbeat event of the mod.
//DO NOT change anything in this except for the damage and ability changes.
 
void main()
{
object oPC GetFirstPC();
sSubRace GetSubRace(oPC)
if(
sSubRace "Nom_de_ta_subrace")
   {
   
int iDrink GetLocalInt(oPC"Thirsty");
   if(
iVar 120)
         {
         
effect eEff GetFirstEffect(oPC);
         while(
GetIsEffectValid(eEff))
            {
            
RemoveEffect(oPCeEff);
            
eEff GetNextEffect(oPC);
            }
         
SetLocalInt(oPC"Thirsty"iDrink 1);
         }
   else if(
iVar == 120)
         {
         
SetLocalInt(oPC"Thirsty"iDrink 1);
         
SendMessageToPC(oPC"You are getting thirsty");
         }
   else if(
iVar 120)
         {
         
SetLocalInt(oPC"Thirsty"iDrink 1);
         
SendMessageToPC(oPC"You are very thirsty.");
         
int iDice d4(1);
         
effect eDamage;
         switch(
iDice)
            {
            case 
0eDamage EffectAbilityDecrease(ABILITY_CONSTITUTION1);   
            break;
            case 
1eDamage EffectAbilityDecrease(ABILITY_STRENGTH1);   
            break;
            case 
2eDamage EffectDazed();
            break;
            case 
3eDamage EffectKnockdown();   
            break;
            }
         
ApplyEffectToObject(DURATION_TYPE_INSTANTeDamageoPC);
         }
   }
oPC GetNextPC();

Au fait, j'ai oublié quelque chose en fait, ma Subrace aura juste besoin de trouver un object précis "identifier par le blueprint" pour calmer sa soir, qu'il lootera sur un PJ ou un PNJ.

Merci.
Voila, j'ai simplifié un peu. L'objet précis, tu le crée avec un pouvoir unique sur soi, et quand il est utilisé, il réduit le localInt qui determine la soif.

Code PHP:

int iDrink GetLocalInt(oPC"Thirsty")
SetLocalInt(oPC,"Thirsty"iDrink n
n = le chiffre que tu veux.
C'ets au début de la première boucle que tu fais ta vérification particulière. Pour l'objet, tu peux mettre une propriété "pouvoir unique" ou "activer objet" qui s'occupera de la variable "Thirsty" :
Code PHP:

void main()
{
    
object oPC GetFirstPC();
    while(
GetIsObjectValid(oPC))
    {
        
// Si le joueur est de la bonne "subrace"
        
if(GetSubRace(oPC) == [Ta subrace ici])
        {
            
int iDrink GetLocalInt(oPC,"Thirsty");
            if(
iVar 120)
            {
                
effect eEff GetFirstEffect(oPC);
                while(
GetIsEffectValid(eEff))
                {
                    
RemoveEffect(oPC,eEff);
                    
eEff GetNextEffect(oPC);
                }
                
SetLocalInt(oPC,"Thirsty",iDrink+1);
            }
            else if(
iVar == 120)
            {
                
SetLocalInt(oPC,"Thirsty",iDrink+1);
                
SendMessageToPC(oPC,"You are getting thirsty");
            }
            else if(
iVar 120)
            {
                
SetLocalInt(oPC,"Thirsty",iDrink+1);
                
SendMessageToPC(oPC,"You are very thirsty.");

                
int iDice d4(1);
                
effect eDamage;
                switch(
iDice)
                {
                    case 
1:
                        
eDamage EffectAbilityDecrease(ABILITY_CONSTITUTION,1);
                        break;

                    case 
2:
                        
eDamage EffectAbilityDecrease(ABILITY_STRENGTH,1);
                        break;

                    case 
3:
                        
eDamage EffectDazed();
                        break;

                    case 
4:
                        
eDamage EffectKnockdown();
                        break;
                }
                
ApplyEffectToObject(DURATION_TYPE_INSTANT,eDamage,oPC);
            }
        }
        
oPC GetNextPC();
    }

[Edit : Mince... Grillée... Mais tu avais oublié le "while(GetIsObjectValid(oPC))", Morethil]
Subrace = Race externe à celle proposées par le jeu.
Looter = Ramasser les objets que laissent les créatures sur elles.
Blueprint = tag inchangeable de l'objet (pour moi...).

Merci à tous pour votre aide, en plus, j'ai compris le fonctionnement.

__________________
http://www.eve-online.com/download/banners/files/88x31_01.gif
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés