script:l'ethnie vampire

Répondre
Partager Rechercher
T'as vraiment fait des trucs bizarres avec mon script....
Avec mon script originel, tu aurais du mettre les script OnEnter et OnExit sur les zones d'intérieur et de nuit éternelle, mais avec le script que t'as modifié, tu devrais les mettre sur les zones exterieur jour/nuit et c'est tout....

Mais franchement dire qu'on est à l'extérieur quand bInterieur est à TRUE, c'est pas le top....
Je te propose donc les modifs suivantes :
Code PHP:

//Ceci est à mettre dans le OnClientEnter de ton module :

//Une fonction qui vérifie la nature de oPC et lui applique
//des effets spéciaux s'il est un vampire
void Vampireobject oPC );

void Vampireobject oPC ){
    
    if ( 
GetIsPCoPC ) && GetStringLowerCaseGetSubRaceoPC ) ) == "vampire" ){
        
        
effect eCa ExtraordinaryEffectEffectACIncrease(6) );
        
effect eForce ExtraordinaryEffectEffectAbilityIncreaseABILITY_STRENGTH) );
        
effect eDex ExtraordinaryEffectEffectAbilityIncreaseABILITY_DEXTERITY) );
        
effect eInt ExtraordinaryEffectEffectAbilityIncreaseABILITY_INTELLIGENCE) );
        
effect eSag ExtraordinaryEffectEffectAbilityIncreaseABILITY_WISDOM) );
        
effect eChar ExtraordinaryEffectEffectAbilityIncreaseABILITY_CHARISMA) );
        
effect eCon ExtraordinaryEffectEffectAbilityIncreaseABILITY_CONSTITUTION) );
        
//Attention mettre la même périodicité pour les effets que pour le
        //script "ohb_vampire"
        
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeCaoPC1.0f );
        
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeForceoPC1.0f );
        
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeDexoPC1.0f );
        
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeIntoPC1.0f );
        
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeSagoPC1.0f );
        
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeCharoPC1.0f );
        
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeConoPC1.0f );
        
        
//On lance l'exécution du script qui grillera les vampires imprudents
        //Change ici le délai entre chaque exécution du script
        
DelayCommand1.0fExecuteScript"ohb_vampire" );
        
    }
    
}

void main(){
    
    
//On récupère le PJ qui entre dans le module
    
object oPJ GetEnteringObject();
    
    
//Si c'est un vampire, on lui applique les effets
    
VampireoPJ );

    
    
//Tu peux mettre ton code "normal" ici :-)
    
}


//Script "ohb_vampire"

void main(){
    
    {
        
        
object oSelf OBJECT_SELF;
        
effect eCa ExtraordinaryEffectEffectACIncrease(6) );
        
effect eForce ExtraordinaryEffectEffectAbilityIncreaseABILITY_STRENGTH) );
        
effect eDex ExtraordinaryEffectEffectAbilityIncreaseABILITY_DEXTERITY) );
        
effect eInt ExtraordinaryEffectEffectAbilityIncreaseABILITY_INTELLIGENCE) );
        
effect eSag ExtraordinaryEffectEffectAbilityIncreaseABILITY_WISDOM) );
        
effect eChar ExtraordinaryEffectEffectAbilityIncreaseABILITY_CHARISMA) );
        
effect eCon ExtraordinaryEffectEffectAbilityIncreaseABILITY_CONSTITUTION) );
        
//Attention mettre la même périodicité pour les effets que pour le
        //script "ohb_vampire"
        
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeCaoSelf1.0f );
        
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeForceoSelf1.0f );
        
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeDexoSelf1.0f );
        
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeIntoSelf1.0f );
        
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeSagoSelf1.0f );
        
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeCharoSelf1.0f );
        
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeConoSelf1.0f );
        
        if( (
GetIsDawn() || GetIsDay()) && !GetLocalIntoSelf"bInterieur" ) ){
                       
            
ApplyEffectToObject (DURATION_TYPE_INSTANTEffectDamage1DAMAGE_TYPE_MAGICAL,DAMAGE_POWER_NORMAL), oSelf);

            
ApplyEffectToObject (DURATION_TYPE_INSTANT,EffectVisualEffect (VFX_FNF_SMOKE_PUFF), oSelf);
            
            
//Tu peux rajouter des effets spéciaux ou un avertissement si tu veux
            
        
}
        
    }
    
    
//Change ici le délai entre chaque exécution du script
    
DelayCommand1.0fExecuteScript"ohb_vampire" );
    
}


//OnEnter sur une zone d'intérieur ou de nuit éternelle :

void main(){
    
    
object oPJ GetEnteringObject();
    
    if( 
GetIsPCoPJ ) ){
        
        
SetLocalIntoPJ"bInterieur"TRUE );
        
    }
    
    
//Tu peux mettre le reste de ton code ici
    
}

//OnExit sur une zone d'intérieur ou de nuit éternelle :

void main(){
    
    
object oPJ GetExitingObject();
    
    if( 
GetIsPCoPJ ) ){
        
        
DeleteLocalIntoPJ"bInterieur" );
        
    }
    
    
//Tu peux mettre le reste de ton code ici
    

Remplace tous les scripts, j'ai corrigé plusieurs petits trucs.
Ca intègre toutes tes modifications, et je t'assure que si tu fais tous bien comme c'est indiqué, ça marchera !
Arf, excuse moi Jedaï, il suffit juste de ne pas appliquer les scripts OnEnter et OnExit sur les zones "Safe" pour le vampire, tu as mille fois raison...Désolé du dérangement

J'ai tellement bucher sur ce truc que j'en vient à oublier les évidences...

En tous cas, merci de m'avoir tous mis au propre.

Reste le problème du OnRest maintenant, je vais essayer de repiquer les scripts Subrace des HCR, je crois que la vérité est par là.

EDIT//:Je viens de résoudre le problèmes des effets permanents, ca roule. Merci encore à tous de votre aide.
Répondre

Connectés sur ce fil

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