La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 14:56:08


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
Posté le : 23/07/2006 11:23:32 Sujet du message : [résolu !] Script pour lanceur de sort pnj

Bonjour à toutes et à tous.

Je suis à la recherche d'un script qui me serait bien utile pour mes magos pnjs. En effet, leur taux de mortalité en face d'un guerrier ou d'un pretre boosté avec tous ses sorts et objets... ça ne lui laisse pas beaucoup de chance, à part par groupe de 8 dans les rencontres.

Donc voilà, je souhaiterais en fait que quand mon pnj lanceur de sort spawne, il soit deja tout boosté avec des sorts. Je crois qu'il existe une fonction qui fait ça dans les scripts de nwn par défaut (onspawn, onheartbeat...?) mais j'ai du mal à tout comprendre.

Quelqu'un pour éclairer ma lanterne ?
Dernière édition par chevalier blanc le 24/07/2006 12:51:32; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 23/07/2006 11:29:55 Sujet du message :

Dans le OnSpawn de la creature tu met ApplyEffectToObject() patati patata et les sorts seront mis dès qu'il aura spawn.
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
Posté le : 23/07/2006 12:11:09 Sujet du message :

Euh... désolé d'avoir à te dire ça mais, j'ai rien compris du tout.

Ca c'est le script par defaut :
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.
Spoiler :
NWScript :
//:Confused///////////////////////// /////////////////////
//:: Default: On Spawn In
//:: NW_C2_DEFAULT9
//:: Copyright (c) 2001 Bioware Corp.
//:Confused///////////////////////// ////////////////////
/*
    Determines the course of action to be taken
    after having just been spawned in
*/

//:Confused///////////////////////// ////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 25, 2001
//:Confused///////////////////////// ////////////////////
#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"

void main()
{
// OPTIONAL BEHAVIORS (Comment In or Out to Activate ) ****************************** ****************************** ****************
    //SetSpawnInCondition(NW_FLAG_ SPECIAL_CONVERSATION);
    //SetSpawnInCondition(NW_FLAG_ SPECIAL_COMBAT_CONVERSATION);
                // This causes the creature to say a special greeting in their conversation file
                // upon Perceiving the player. Attach the [NW_D2_GenCheck.nss] script to the desired
                // greeting in order to designate it. As the creature is actually saying this to
                // himself, don't attach any player responses to the greeting.

    //SetSpawnInCondition(NW_FLAG_ SHOUT_ATTACK_MY_TARGET);
                // This will set the listening pattern on the NPC to attack when allies call
    //SetSpawnInCondition(NW_FLAG_ STEALTH);
                // If the NPC has stealth and they are a rogue go into stealth mode
    //SetSpawnInCondition(NW_FLAG_ SEARCH);
                // If the NPC has Search go into Search Mode
    //SetSpawnInCondition(NW_FLAG_ SET_WARNINGS);
                // This will set the NPC to give a warning to non-enemies before attacking

    //SetSpawnInCondition(NW_FLAG_ SLEEP);
                //Creatures that spawn in during the night will be asleep.
    //SetSpawnInCondition(NW_FLAG_ DAY_NIGHT_POSTING);
    //SetSpawnInCondition(NW_FLAG_ APPEAR_SPAWN_IN_ANIMATION);
    //SetSpawnInCondition(NW_FLAG_ IMMOBILE_AMBIENT_ANIMATIONS);
    //SetSpawnInCondition(NW_FLAG_ AMBIENT_ANIMATIONS);
                //This will play Ambient Animations until the NPC sees an enemy or is cleared.
                //NOTE that these animations will play automatically for Encounter Creatures.

    // NOTE: ONLY ONE OF THE FOLOOWING ESCAPE COMMANDS SHOULD EVER BE ACTIVATED AT ANY ONE TIME.
    //SetSpawnInCondition(NW_FLAG_ ESCAPE_RETURN);    // OPTIONAL BEHAVIOR (Flee to a way point and return a short time later.)
    //SetSpawnInCondition(NW_FLAG_ ESCAPE_LEAVE);    // OPTIONAL BEHAVIOR (Flee to a way point and do not return.)
    //SetSpawnInCondition(NW_FLAG_ TELEPORT_LEAVE);  // OPTIONAL BEHAVIOR (Teleport to safety and do not return.)
    //SetSpawnInCondition(NW_FLAG_ TELEPORT_RETURN);  // OPTIONAL BEHAVIOR (Teleport to safety and return a short time later.)

// CUSTOM USER DEFINED EVENTS
/*
    The following settings will allow the user to fire one of the blank user defined events in the NW_D2_DefaultD.  Like the
    On Spawn In script this script is meant to be customized by the end user to allow for unique behaviors.  The user defined
    events user 1000 - 1010
*/

    //SetSpawnInCondition(NW_FLAG_ HEARTBEAT_EVENT);        //OPTIONAL BEHAVIOR - Fire User Defined Event 1001
    //SetSpawnInCondition(NW_FLAG_ PERCIEVE_EVENT);        //OPTIONAL BEHAVIOR - Fire User Defined Event 1002
    //SetSpawnInCondition(NW_FLAG_ ATTACK_EVENT);          //OPTIONAL BEHAVIOR - Fire User Defined Event 1005
    //SetSpawnInCondition(NW_FLAG_ DAMAGED_EVENT);          //OPTIONAL BEHAVIOR - Fire User Defined Event 1006
    //SetSpawnInCondition(NW_FLAG_ DISTURBED_EVENT);        //OPTIONAL BEHAVIOR - Fire User Defined Event 1008
    //SetSpawnInCondition(NW_FLAG_ END_COMBAT_ROUND_EVENT); //OPTIONAL BEHAVIOR - Fire User Defined Event 1003
    //SetSpawnInCondition(NW_FLAG_ ON_DIALOGUE_EVENT);      //OPTIONAL BEHAVIOR - Fire User Defined Event 1004
    //SetSpawnInCondition(NW_FLAG_ DEATH_EVENT);            //OPTIONAL BEHAVIOR - Fire User Defined Event 1007

// DEFAULT GENERIC BEHAVIOR (DO NOT TOUCH) ****************************** ****************************** *****************************
    SetListeningPatterns(); // Goes through and sets up which shouts the NPC will listen to.
    WalkWayPoints(); // Optional Parameter: void WalkWayPoints(int nRun = FALSE, float fPause = 1.0)
                              // 1. Looks to see if any Way Points in the module have the tag "WP_" + NPC TAG + "_0X", if so walk them
                              // 2. If the tag of the Way Point is "POST_" + NPC TAG the creature will return this way point after
                              //    combat.
    GenerateNPCTreasure(); //* Use this to create a small amount of treasure on the creature
    SetListenPattern(OBJECT_SELF, "**", 20600); //listen to all text
    SetLocalInt(OBJECT_SELF, "hls_Listening", 1); //listen to all text
    SetListening(OBJECT_SELF, TRUE); //be sure NPC is listening
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Je le met ou ton ApplyEffectToObject() patati patata ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 23/07/2006 12:54:30 Sujet du message :

Ce que tu cherches c'est le TalentAdvancedBuff().

C'est une fonction qui fait ce que tu veux : booster un PNJ instantanément.

Dans le HeartBeat par défaut, il y a une vérification, qui lance cette fonction si un flag est à TRUE sur le PNJ (je me rappele pas e nom du flag)

Donc tu peux changer le OnSpawn de ton PNJ pour mettre ce flag en route (si ça se trouve il y a une partie commentée correspondante), comme ça en présence d'ennemis à moins de 40 mètres il se retrouve boosté à bloc.

Le script est vieux et a pas été mis à jour depuis longtemps, ce qui fait que pas mal de sorts parmis les plus récents sont oubliés... J'ai posté une correction sur NWN-Système, avec plus de sorts de boost, regarde à l'occasion.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
Posté le : 23/07/2006 13:10:44 Sujet du message :

Ok ok ok donc je récapitule...

1) faire un script OnHeartBeat du style
NWScript :
void main
{
ExecuteScript("machinchose");
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

2) compiler ton script de nwn systeme sous le nom "machinchose"
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.
Spoiler :
NWScript :

///version modifiee de TalentAdvancedBuff()
///(x0_i0_talent)
///bAllClassSpell :
///  TRUE : le lanceur verifiera s'il possede les sorts de toutes les classes
///  FALSE : (defaut) seulement les sorts ou il possede des niveaux
/// renvoie TRUE si le buff a lieu FALSE sinon
/// Par Sith Vicious
/////////////////////////
#include "x0_inc_generic"

int MyBuff(float fDistance, int bInstant = TRUE, int bAllClassSpell = FALSE)
{
    object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF, 1, CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY);
    if(GetIsObjectValid(oPC))
    {
        if(GetDistanceToObject(oPC) <= fDistance)
        {
            //int bPaladin = GetLevelByClass(CLASS_TYPE_PALADIN);
            int bMage = bAllClassSpell || GetLevelByClass(CLASS_TYPE_WIZARD) || GetLevelByClass(CLASS_TYPE_SORCERER) || GetLevelByClass(CLASS_TYPE_BARD);
            int bDruid = bAllClassSpell || GetLevelByClass(CLASS_TYPE_DRUID);
            int bRanger = bAllClassSpell || GetLevelByClass(CLASS_TYPE_RANGER);
            int bCleric = bAllClassSpell || GetLevelByClass(CLASS_TYPE_CLERIC);
            //int bBard = GetLevelByClass(CLASS_TYPE_BARD);

            if (bDruid || bRanger) SummonAnimalCompanion();
            if (bMage) SummonFamiliar();

            if(!GetIsFighting(OBJECT_SELF))
            {
                ClearActions(CLEAR_X0_I0_TALENT_AdvancedBuff);
                //Combat Protections
                if(GetHasSpell(SPELL_PREMONITION) && !GetHasSpellEffect(SPELL_PREMONITION))
                {
                    ActionCastSpellAtObject(SPELL_PREMONITION, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_GREATER_STONESKIN)&& !GetHasSpellEffect(SPELL_GREATER_STONESKIN))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_STONESKIN, OBJECT_SELF, METAMAGIC_NONE, 0, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_STONESKIN)&& !GetHasSpellEffect(SPELL_STONESKIN))
                {
                    ActionCastSpellAtObject(SPELL_STONESKIN, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_BARKSKIN)&& !GetHasSpellEffect(SPELL_BARKSKIN))
                {
                    ActionCastSpellAtObject(SPELL_STONESKIN, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Visage Protections
                if(GetHasSpell(SPELL_SHADOW_SHIELD)&& !GetHasSpellEffect(SPELL_SHADOW_SHIELD))
                {
                    ActionCastSpellAtObject(SPELL_SHADOW_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_ETHEREAL_VISAGE)&& !GetHasSpellEffect(SPELL_ETHEREAL_VISAGE))
                {
                    ActionCastSpellAtObject(SPELL_ETHEREAL_VISAGE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_GHOSTLY_VISAGE)&& !GetHasSpellEffect(SPELL_GHOSTLY_VISAGE))
                {
                    ActionCastSpellAtObject(SPELL_GHOSTLY_VISAGE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_DISPLACEMENT)&& !GetHasSpellEffect(SPELL_DISPLACEMENT))
                {
                    ActionCastSpellAtObject(SPELL_DISPLACEMENT, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Mantle Protections
                if(GetHasSpell(SPELL_GREATER_SPELL_MANTLE)&& !GetHasSpellEffect(SPELL_GREATER_SPELL_MANTLE))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_SPELL_MANTLE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SPELL_MANTLE)&& !GetHasSpellEffect(SPELL_SPELL_MANTLE))
                {
                    ActionCastSpellAtObject(SPELL_SPELL_MANTLE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_LESSER_SPELL_MANTLE)&& !GetHasSpellEffect(SPELL_LESSER_SPELL_MANTLE))
                {
                    ActionCastSpellAtObject(SPELL_LESSER_SPELL_MANTLE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                // Globes
                if(GetHasSpell(SPELL_GLOBE_OF_INVULNERABILITY)&& !GetHasSpellEffect(SPELL_GLOBE_OF_INVULNERABILITY))
                {
                    ActionCastSpellAtObject(SPELL_GLOBE_OF_INVULNERABILITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_MINOR_GLOBE_OF_INVULNERABILITY)&& !GetHasSpellEffect(SPELL_MINOR_GLOBE_OF_INVULNERABILITY))
                {
                    ActionCastSpellAtObject(SPELL_MINOR_GLOBE_OF_INVULNERABILITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //Misc Protections
                if(GetHasSpell(SPELL_ELEMENTAL_SHIELD)&& !GetHasSpellEffect(SPELL_ELEMENTAL_SHIELD))
                {
                    ActionCastSpellAtObject(SPELL_ELEMENTAL_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if (GetHasSpell(SPELL_MESTILS_ACID_SHEATH)&& !GetHasSpellEffect(SPELL_MESTILS_ACID_SHEATH))
                {
                    ActionCastSpellAtObject(SPELL_MESTILS_ACID_SHEATH, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if (GetHasSpell(SPELL_DEATH_ARMOR)&& !GetHasSpellEffect(SPELL_DEATH_ARMOR))
                {
                    ActionCastSpellAtObject(SPELL_DEATH_ARMOR, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //Elemental Protections
                if(GetHasSpell(SPELL_ENERGY_BUFFER)&& !GetHasSpellEffect(SPELL_ENERGY_BUFFER))
                {
                    ActionCastSpellAtObject(SPELL_ENERGY_BUFFER, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_PROTECTION_FROM_ELEMENTS)&& !GetHasSpellEffect(SPELL_PROTECTION_FROM_ELEMENTS))
                {
                    ActionCastSpellAtObject(SPELL_PROTECTION_FROM_ELEMENTS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_RESIST_ELEMENTS)&& !GetHasSpellEffect(SPELL_RESIST_ELEMENTS))
                {
                    ActionCastSpellAtObject(SPELL_RESIST_ELEMENTS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_ENDURE_ELEMENTS)&& !GetHasSpellEffect(SPELL_ENDURE_ELEMENTS))
                {
                    ActionCastSpellAtObject(SPELL_ENDURE_ELEMENTS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //Mental Protections
                if(GetHasSpell(SPELL_MIND_BLANK)&& !GetHasSpellEffect(SPELL_MIND_BLANK))
                {
                    ActionCastSpellAtObject(SPELL_MIND_BLANK, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_LESSER_MIND_BLANK)&& !GetHasSpellEffect(SPELL_LESSER_MIND_BLANK))
                {
                    ActionCastSpellAtObject(SPELL_LESSER_MIND_BLANK, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_CLARITY)&& !GetHasSpellEffect(SPELL_CLARITY))
                {
                    ActionCastSpellAtObject(SPELL_CLARITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Summon Ally
                if (GetAssociate(ASSOCIATE_TYPE_SUMMONED)==OBJECT_INVALID)
                {
                if(GetHasSpell(SPELL_ELEMENTAL_SWARM))
                {
                    ActionCastSpellAtLocation(SPELL_ELEMENTAL_SWARM, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_BLACK_BLADE_OF_DISASTER))
                {
                    ActionCastSpellAtLocation(SPELL_BLACK_BLADE_OF_DISASTER, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_MORDENKAINENS_SWORD))
                {
                    ActionCastSpellAtLocation(SPELL_MORDENKAINENS_SWORD, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_IX))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_IX, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_GREATER_PLANAR_BINDING))
                {
                    ActionCastSpellAtLocation(SPELL_GREATER_PLANAR_BINDING, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_VIII))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_VIII, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_VII))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_VII, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_PLANAR_BINDING))
                {
                    ActionCastSpellAtLocation(SPELL_PLANAR_BINDING, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_PLANAR_ALLY))
                {
                    ActionCastSpellAtLocation(SPELL_PLANAR_ALLY, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_VI))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_VI, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_LESSER_PLANAR_BINDING))
                {
                    ActionCastSpellAtLocation(SPELL_LESSER_PLANAR_BINDING, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_V))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_V, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_IV))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_IV, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_ANIMATE_DEAD))
                {
                    ActionCastSpellAtLocation(SPELL_ANIMATE_DEAD, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_III))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_III, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_II))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_II, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_I))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_I, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SHELGARNS_PERSISTENT_BLADE))
                {
                    ActionCastSpellAtLocation(SPELL_SHELGARNS_PERSISTENT_BLADE, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                }

                //boost carac
                if(GetHasSpell(SPELL_GREATER_BULLS_STRENGTH) && !GetHasSpellEffect(SPELL_GREATER_BULLS_STRENGTH))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_BULLS_STRENGTH, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_BULLS_STRENGTH) && !GetHasSpellEffect(SPELL_BULLS_STRENGTH))
                {
                    ActionCastSpellAtObject(SPELL_BULLS_STRENGTH, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_EAGLE_SPLENDOR) && !GetHasSpellEffect(SPELL_GREATER_EAGLE_SPLENDOR))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_EAGLE_SPLENDOR, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_EAGLE_SPLEDOR) && !GetHasSpellEffect(SPELL_EAGLE_SPLEDOR))
                {
                    ActionCastSpellAtObject(SPELL_EAGLE_SPLEDOR, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_CATS_GRACE) && !GetHasSpellEffect(SPELL_GREATER_CATS_GRACE))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_CATS_GRACE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_CATS_GRACE) && !GetHasSpellEffect(SPELL_CATS_GRACE))
                {
                    ActionCastSpellAtObject(SPELL_CATS_GRACE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_FOXS_CUNNING) && !GetHasSpellEffect(SPELL_GREATER_FOXS_CUNNING))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_FOXS_CUNNING, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_FOXS_CUNNING) && !GetHasSpellEffect(SPELL_FOXS_CUNNING))
                {
                    ActionCastSpellAtObject(SPELL_FOXS_CUNNING, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_OWLS_WISDOM) && !GetHasSpellEffect(SPELL_GREATER_OWLS_WISDOM))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_OWLS_WISDOM, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_OWLS_WISDOM) && !GetHasSpellEffect(SPELL_OWLS_WISDOM))
                {
                    ActionCastSpellAtObject(SPELL_OWLS_WISDOM, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_ENDURANCE) && !GetHasSpellEffect(SPELL_GREATER_ENDURANCE))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_ENDURANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_ENDURANCE) && !GetHasSpellEffect(SPELL_ENDURANCE))
                {
                    ActionCastSpellAtObject(SPELL_ENDURANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //Autres protections
                if(GetHasSpell(SPELL_DEATH_WARD) && !GetHasSpellEffect(SPELL_DEATH_WARD))
                {
                    ActionCastSpellAtObject(SPELL_DEATH_WARD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_FREEDOM_OF_MOVEMENT) && !GetHasSpellEffect(SPELL_FREEDOM_OF_MOVEMENT))
                {
                    ActionCastSpellAtObject(SPELL_FREEDOM_OF_MOVEMENT, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_NEGATIVE_ENERGY_PROTECTION) && !GetHasSpellEffect(SPELL_NEGATIVE_ENERGY_PROTECTION))
                {
                    ActionCastSpellAtObject(SPELL_NEGATIVE_ENERGY_PROTECTION, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_PROTECTION_FROM_SPELLS) && !GetHasSpellEffect(SPELL_PROTECTION_FROM_SPELLS))
                {
                    ActionCastSpellAtObject(SPELL_PROTECTION_FROM_SPELLS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_SHIELD_OF_FAITH) && !GetHasSpellEffect(SPELL_SHIELD_OF_FAITH))
                {
                    ActionCastSpellAtObject(SPELL_SHIELD_OF_FAITH, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_SPELL_RESISTANCE) && !GetHasSpellEffect(SPELL_SPELL_RESISTANCE))
                {
                    ActionCastSpellAtObject(SPELL_SPELL_RESISTANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Autres boost
                if(GetHasSpell(SPELL_BLESS) && !GetHasSpellEffect(SPELL_BLESS))
                {
                    ActionCastSpellAtObject(SPELL_BLESS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_AID) && !GetHasSpellEffect(SPELL_AID))
                {
                    ActionCastSpellAtObject(SPELL_AID, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_MASS_HASTE) && !GetHasSpellEffect(SPELL_MASS_HASTE))
                {
                    ActionCastSpellAtObject(SPELL_MASS_HASTE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_HASTE) && !GetHasSpellEffect(SPELL_HASTE))
                {
                    ActionCastSpellAtObject(SPELL_HASTE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_RESISTANCE) && !GetHasSpellEffect(SPELL_RESISTANCE))
                {
                    ActionCastSpellAtObject(SPELL_RESISTANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //invisibilite
                if(GetHasSpell(SPELL_IMPROVED_INVISIBILITY) && !GetHasSpellEffect(SPELL_IMPROVED_INVISIBILITY))
                {
                    ActionCastSpellAtObject(SPELL_IMPROVED_INVISIBILITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_INVISIBILITY_SPHERE) && !GetHasSpellEffect(SPELL_INVISIBILITY_SPHERE))
                {
                    ActionCastSpellAtObject(SPELL_INVISIBILITY_SPHERE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_INVISIBILITY) && !GetHasSpellEffect(SPELL_INVISIBILITY))
                {
                    ActionCastSpellAtObject(SPELL_INVISIBILITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Armes magiques
                if(GetHasSpell(SPELL_GREATER_MAGIC_WEAPON) && !GetHasSpellEffect(SPELL_GREATER_MAGIC_WEAPON))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_MAGIC_WEAPON, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_DARKFIRE) && !GetHasSpellEffect(SPELL_DARKFIRE))
                {
                    ActionCastSpellAtObject(SPELL_DARKFIRE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_MAGIC_WEAPON) && !GetHasSpellEffect(SPELL_MAGIC_WEAPON))
                {
                    ActionCastSpellAtObject(SPELL_MAGIC_WEAPON, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_BLESS_WEAPON) && !GetHasSpellEffect(SPELL_BLESS_WEAPON))
                {
                    ActionCastSpellAtObject(SPELL_BLESS_WEAPON, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_KEEN_EDGE) && !GetHasSpellEffect(SPELL_KEEN_EDGE))
                {
                    ActionCastSpellAtObject(SPELL_KEEN_EDGE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //vision
                if(GetHasSpell(SPELL_TRUE_SEEING) && !GetHasSpellEffect(SPELL_TRUE_SEEING))
                {
                    ActionCastSpellAtObject(SPELL_TRUE_SEEING, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_CLAIRAUDIENCE_AND_CLAIRVOYANCE) && !GetHasSpellEffect(SPELL_CLAIRAUDIENCE_AND_CLAIRVOYANCE))
                {
                    ActionCastSpellAtObject(SPELL_CLAIRAUDIENCE_AND_CLAIRVOYANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //DRUIDE

                if (bDruid || bRanger)
                {
                    if(GetHasSpell(SPELL_GREATER_MAGIC_FANG))
                    {
                        ActionCastSpellAtObject(SPELL_GREATER_MAGIC_FANG, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                    else if(GetHasSpell(SPELL_MAGIC_FANG))
                    {
                        ActionCastSpellAtObject(SPELL_MAGIC_FANG, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                    if (bDruid)
                    {
                        if(GetHasSpell(SPELL_AURA_OF_VITALITY)&& !GetHasSpellEffect(SPELL_AURA_OF_VITALITY))
                        {
                            ActionCastSpellAtObject(SPELL_AURA_OF_VITALITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                        }

                        if(GetHasSpell(SPELL_BLOOD_FRENZY)&& !GetHasSpellEffect(SPELL_BLOOD_FRENZY))
                        {
                            ActionCastSpellAtObject(SPELL_BLOOD_FRENZY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                        }
                    }
                }

                //MAGES ENSOS BARDES
                if (bMage)
                {
                    if(GetHasSpell(SPELL_SHIELD) && !GetHasSpellEffect(SPELL_SHIELD))
                    {
                        ActionCastSpellAtObject(SPELL_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_MAGE_ARMOR) && !GetHasSpellEffect(SPELL_MAGE_ARMOR))
                    {
                        ActionCastSpellAtObject(SPELL_MAGE_ARMOR, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_IRONGUTS) && !GetHasSpellEffect(SPELL_IRONGUTS))
                    {
                        ActionCastSpellAtObject(SPELL_IRONGUTS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                }

                //PRETRES
                if (bCleric)
                {
                    if(GetHasSpell(SPELL_DIVINE_SHIELD) && !GetHasSpellEffect(SPELL_DIVINE_SHIELD))
                    {
                        ActionCastSpellAtObject(SPELL_DIVINE_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_DIVINE_POWER) && !GetHasSpellEffect(SPELL_DIVINE_POWER))
                    {
                        ActionCastSpellAtObject(SPELL_DIVINE_POWER, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_ENTROPIC_SHIELD) && !GetHasSpellEffect(SPELL_ENTROPIC_SHIELD))
                    {
                        ActionCastSpellAtObject(SPELL_ENTROPIC_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_MAGIC_VESTMENT) && !GetHasSpellEffect(SPELL_ENTROPIC_SHIELD))
                    {
                        ActionCastSpellAtObject(SPELL_MAGIC_VESTMENT, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                    if(GetHasSpell(SPELL_UNDEATHS_ETERNAL_FOE) && !GetHasSpellEffect(SPELL_UNDEATHS_ETERNAL_FOE))
                    {
                        ActionCastSpellAtObject(SPELL_UNDEATHS_ETERNAL_FOE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                }
                return TRUE;
            }
        }
    }
    return FALSE;
}
Le code a colorer syntaxiquement est trop long (plus de 10240 caractères) et risque de ne pas s'afficher du tout. Vous pouvez le voir en version colorée ici.

afin d'eviter de surcharger le onheartbeat...

3) ben ... normalement ca doit marcher !

Je me suis pas trompé ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 23/07/2006 14:02:24 Sujet du message :

Dans les grandes lignes c'est ça.

Juste là mon script est une fonction, donc il faut lui ajouter un main() qui appele cette fonction.

Et déplacer la vérification qu'il y a un ennemi à portée dans le HeartBeat du PNJ. Et dernière chose, ça doit se lancer qu'une fois donc jouer sur une variable pour savoir si ça a déjà été lancé ou pas.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
Posté le : 23/07/2006 14:10:23 Sujet du message :


Sith Vicious a écrit :
Et déplacer la vérification qu'il y a un ennemi à portée dans le HeartBeat du PNJ. Et dernière chose, ça doit se lancer qu'une fois donc jouer sur une variable pour savoir si ça a déjà été lancé ou pas.
oulà ... ça se complique Embarassed
Je me la joue encore un peu boulet mais bon... je fais comment Confused
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 23/07/2006 14:16:25 Sujet du message :

Main() :

NWScript :Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Hmm dans le heartbeat tu fais que si il y a un ennemi dans la zone (prés de ton mage) et bien tu active la fonction.
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
Posté le : 23/07/2006 14:27:19 Sujet du message :

Pour le main j'avais compris Very Happy

J'ai fait un script comme ca pour le OnHeartBeat :
NWScript :Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Je suis sur la bonne piste ?
Pour la variable j'ai pas tout compris non plus Confused
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
Posté le : 23/07/2006 14:37:15 Sujet du message :

NWScript :
void main()
{
    object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF, 1, CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY);

    if(GetIsObjectValid(oPC))
        {
        if(GetLocalInt(OBJECT_SELF,"BOOST") == 0 )
        ExecuteScript("machinchose",OBJECT_SELF);
        SetLocalInt(OBJECT_SELF,"BOOST",1);
        }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Hem j'ai fait ça ...en mettant la variable "BOOST" sur le pnj à 0 par défaut, est ce que ce sera mieux qu'avant ?
Dernière édition par chevalier blanc le 23/07/2006 15:00:20; édité 2 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Noon
Héros
Inscrit le: 15 Jan 2005
Messages: 272
Localisation: Entre Vannes et les RO
Répondre en citant
Posté le : 23/07/2006 14:57:15 Sujet du message :

Salut, j'avais trouvé un système un peu différent sur le Vault pour faire des contingences (les sorts se lancent dès qu'il voit une créature, j'ai rajouté les sorts des addons):

NWScript :
//:Confused//////////////////////////////////////////////
//:: Pseudo Contingency Script!!!!
//:: Used to buff up those mages a bit before combat..
//:: 01/12/03, by BrianDahlquist/Plas
//:Confused/////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
/*
  Instructions: Put this Script in the SpellCasters :OnPerception: script. Give
  the caster a Tag in the format PCS_XX_YY_ZZ, where

    XX,YY,ZZ = All integers, between 00-31, to pick which spell is cast when
                the wizard sees a hostile player.

  Tag MUST be full 12 characters long. If you only want to cast one or two spells,
  put in '00' for the parameter.

  00 = Cast no Spell.
//Level One Spells
  01 = MageArmor
  02 = ProtectionFromLaw
  41 = Shield
//Level Two Spells
  03 = ResistElements
  04 = CatsGrace
  05 = Endurance
  06 = Ghostly Visage
  07 = See Invisibility
  32 = invisibility
//Level Three Spells
  08 = Haste
  09 = MagicCircleAgainst Good
  10 = ProtectionFromElements
  33 = Massinv
//Level Four Spells
  11 = ImprovedInvis
  12 = MinorGlobeOfInvulnerability
  13 = PolyMorph Self
  14 = StoneSkin
//Level Five Spells
  15 = ElementalShield
  16 = EnergyBuffer
  17 = LesserSpellMantle
  42 = MestilsAcidSheath
//Level SixSpells
  18 = EtherealVisage
  19 = GlobeOfInvulnerability
  20 = GreaterStoneSkin
  21 = MassHaste
  22 = TensersTransformation
  23 = TrueSeeing
//Level Seven Spells
  24 = ProtectionFromSpells
  25 = ShadowShield
  26 = SpellMantle
//Level EightSpells
  27 = MindBlank
  28 = Premonition
//Level NineSpells
  29 = GreaterSpellMantle
  30 = ShapeChange
  31 = TimeStop
//LeveL Priest
  34 = Aid
  35 = Bless
  36 = Divine Power
  37 = Prayer
  38 = regenerate
//LeveL Epic
  39 = Epicwarding
  40 = MageArmor

*/
////////////////////////////////////////////////////////////////////////////////
#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"

void CastContingencySpell(int SpellNumber)
{
    switch(SpellNumber)
    {
      case 00:
          break;

      //level 1 spells

      case 1:
              ActionCastSpellAtObject(SPELL_MAGE_ARMOR,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 2:
              ActionCastSpellAtObject(SPELL_PROTECTION_FROM_LAW,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 41:
              ActionCastSpellAtObject(SPELL_SHIELD,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      //level 2 spells
      case 3:
              ActionCastSpellAtObject(SPELL_RESIST_ELEMENTS,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 4:
              ActionCastSpellAtObject(SPELL_CATS_GRACE,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 5:
              ActionCastSpellAtObject(SPELL_ENDURANCE,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 6:
              ActionCastSpellAtObject(SPELL_GHOSTLY_VISAGE,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 32:
              ActionCastSpellAtObject(SPELL_INVISIBILITY,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 7:
              ActionCastSpellAtObject(SPELL_SEE_INVISIBILITY,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);              ActionCastSpellAtObject(SPELL_PROTECTION_FROM_LAW,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
        //Level 3 SPells
      case 8:
              ActionCastSpellAtObject(SPELL_HASTE,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 9:
              ActionCastSpellAtObject(SPELL_MAGIC_CIRCLE_AGAINST_GOOD,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 10:
              ActionCastSpellAtObject(SPELL_PROTECTION_FROM_ELEMENTS,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
        case 33:
              ActionCastSpellAtObject(SPELL_INVISIBILITY_SPHERE,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
        case 44:
              ActionCastSpellAtObject(SPELL_DISPLACEMENT,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      //Level 4 Spells
      case 11:
              ActionCastSpellAtObject(SPELL_IMPROVED_INVISIBILITY,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 12:
              ActionCastSpellAtObject(SPELL_MINOR_GLOBE_OF_INVULNERABILITY,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 13:
              ActionCastSpellAtObject(SPELL_POLYMORPH_SELF,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 14:
              ActionCastSpellAtObject(SPELL_STONESKIN,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      //Level 5 Spells
      case 15:
              ActionCastSpellAtObject(SPELL_ELEMENTAL_SHIELD,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 16:
              ActionCastSpellAtObject(SPELL_ENERGY_BUFFER,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 17:
              ActionCastSpellAtObject(SPELL_LESSER_SPELL_MANTLE,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
        case 42:
              ActionCastSpellAtObject(SPELL_MESTILS_ACID_SHEATH,OBJECT_SELF,METAMAGIC_ANY,TRUE,28,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      //Level 6 Spells
      case 18:
              ActionCastSpellAtObject(SPELL_ETHEREAL_VISAGE,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 19:
              ActionCastSpellAtObject(SPELL_GLOBE_OF_INVULNERABILITY,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 20:
              ActionCastSpellAtObject(SPELL_GREATER_STONESKIN,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 21:
              ActionCastSpellAtObject(SPELL_MASS_HASTE,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 22:
              ActionCastSpellAtObject(SPELL_TENSERS_TRANSFORMATION,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 23:
              ActionCastSpellAtObject(SPELL_TRUE_SEEING,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      //Level 7 Spells
      case 24:
              ActionCastSpellAtObject(SPELL_PROTECTION_FROM_SPELLS,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 25:
              ActionCastSpellAtObject(SPELL_SHADOW_SHIELD,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 26:
              ActionCastSpellAtObject(SPELL_SPELL_MANTLE,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      //Level 8 SPells
      case 27:
              ActionCastSpellAtObject(SPELL_MIND_BLANK,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 28:
              ActionCastSpellAtObject(SPELL_PREMONITION,OBJECT_SELF,METAMAGIC_ANY,TRUE,25,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      //Level 9 Spells
      case 29:
              ActionCastSpellAtObject(SPELL_GREATER_SPELL_MANTLE,OBJECT_SELF,METAMAGIC_ANY,TRUE,28,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 30:
              ActionCastSpellAtObject(SPELL_SHAPECHANGE,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 31:
              ActionCastSpellAtObject(SPELL_TIME_STOP,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      //Level Priest
      case 35:
              ActionCastSpellAtObject(SPELL_BLESS,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 34:
              ActionCastSpellAtObject(SPELL_AID,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 36:
              ActionCastSpellAtObject(SPELL_DIVINE_POWER,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 37:
              ActionCastSpellAtObject(SPELL_PRAYER,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 38:
              ActionCastSpellAtObject(SPELL_REGENERATE,OBJECT_SELF,METAMAGIC_ANY,TRUE,20,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
      case 43:
              ActionUseFeat(FEAT_DIVINE_SHIELD,OBJECT_SELF);
              break;
        //LeveL Epic
        case 39:
              ActionCastSpellAtObject(695,OBJECT_SELF,METAMAGIC_ANY,TRUE,28,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
        case 40:
              ActionCastSpellAtObject(SPELL_EPIC_MAGE_ARMOR,OBJECT_SELF,METAMAGIC_ANY,TRUE,28,PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
              break;
    }
}



void main()
{

//////////////////////////////////////////////////////////////////////////////////
//  This Section Has The Default Bioware OnPerception Script  -nw_c2_default2-. I
//  did NOT write this, and do NOT take credit for it. Only thier for proper AI
//  reactions.
//////////////////////////////////////////////////////////////////////////////////

    //If the last perception event was hearing based or if someone vanished then go to search mode
    if ((GetLastPerceptionVanished()) && GetIsEnemy(GetLastPerceived()))
    {
        object oGone = GetLastPerceived();
        if((GetAttemptedAttackTarget() == GetLastPerceived() ||
          GetAttemptedSpellTarget() == GetLastPerceived() ||
          GetAttackTarget() == GetLastPerceived()) && GetArea(GetLastPerceived()) != GetArea(OBJECT_SELF))
        {
          ClearAllActions();
          DetermineCombatRound();
        }
    }
    //Do not bother checking the last target seen if already fighting
    else if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
    {
        //Check if the last percieved creature was actually seen
        if(GetLastPerceptionSeen())
        {
            if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL))
            {
                DetermineSpecialBehavior();
            }
            else if(GetIsEnemy(GetLastPerceived()))
            {
                if(!GetHasEffect(EFFECT_TYPE_SLEEP))
                {
                    SetFacingPoint(GetPosition(GetLastPerceived()));
                    SpeakString("NW_I_WAS_ATTACKED", TALKVOLUME_SILENT_TALK);
                    DetermineCombatRound();
                }
            }
            //Linked up to the special conversation check to initiate a special one-off conversation
            //to get the PCs attention
            else if(GetSpawnInCondition(NW_FLAG_SPECIAL_CONVERSATION) && GetIsPC(GetLastPerceived()))
            {
                ActionStartConversation(OBJECT_SELF);
            }
        }
    }
    if(GetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT) && GetLastPerceptionSeen())
    {
        SignalEvent(OBJECT_SELF, EventUserDefined(1002));
    }

////////////////////////////////////////////////////////////////////////////////
// End of Bioware Default Script.
// Now Goes through the SelectionProcess of filtering out the Other creatures
// And Finding out WHat Spells to Cast.
////////////////////////////////////////////////////////////////////////////////

    object oNoticed = GetLastPerceived();

    int DoOnce = GetLocalInt(OBJECT_SELF,"ContCheck");

//Will Cast it when Wizard Sees an Object of A different Faction.
if(  !GetFactionEqual(oNoticed,OBJECT_SELF)&&GetLastPerceptionSeen() )
        {
              SetLocalInt(OBJECT_SELF,"ContCheck",1);            //So we dont Cast the spells for EVERY hostile Player

              string CreatureTag = GetTag(OBJECT_SELF);          //Get the Tag of the Creature.
              int StringTagLength = GetStringLength(CreatureTag); //Get the TagLength.

              string CastCheck = GetSubString(CreatureTag, 0,3);  //Get first 3 figures in tag, to Verify it starts with SC

//only run the script if the first letters in the Tag are PCS,and the taglength is 12.Just to make sure
//that people actually REMEMBER to change the tag name, and put enough parameters in it.

          if((CastCheck == "PCS")&&(StringTagLength==12))
                {
                      ClearAllActions();
                    //disect each part of the Tag - each of the three spells, and the visual.
                      int Spell1 = StringToInt(GetSubString(CreatureTag,4,2));
                      int Spell2 = StringToInt(GetSubString(CreatureTag,7,2));
                      int Spell3 = StringToInt(GetSubString(CreatureTag,10,2));
                    //CastTheSpells Themselves.
                      CastContingencySpell(Spell1);
                      CastContingencySpell(Spell2);
                      CastContingencySpell(Spell3);
                      SpeakString ("Declencheur de sort");
                }
        }
}
Le code a colorer syntaxiquement est trop long (plus de 10240 caractères) et risque de ne pas s'afficher du tout. Vous pouvez le voir en version colorée ici.


A mettre dans le OnPerception des PNJ hostiles, les neutres se mettant à t'attaquer sans devenir hostiles.
=> Ou alors à la fin d'un dialogue avec un changement de faction du PNJ pour qu'il attaque à la fin.
Attention, tel quel, si le script est dans le OnPreception, il se relance dès que le PJ invoque un allié.
_________________
Beshaba me protège, Tymora guide mes tirs.

The Cake is a lie !

Mes modules NwN2:De Vieilles Rencontres! et De Vieilles Rencontres2
Double Avenir sur le Nwvault
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 23/07/2006 15:09:20 Sujet du message :

>Chevalier Blanc

Ouaip c'est pas mal, juste rajoute une vérification de distance, pas la peine de lancer le buff si le PJ est a l'autre bout de la carte :

NWScript :

void main()
{
    object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF, 1, CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY);

    if(GetIsObjectValid(oPC) && GetDistanceBetween(OBJECT_SELF, oPC) <= 30.0)
        {
        if(GetLocalInt(OBJECT_SELF,"BOOST") == 0 )
        ExecuteScript("machinchose",OBJECT_SELF);
        SetLocalInt(OBJECT_SELF,"BOOST",1);
        }
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Ensuite si t'as modifié machin chose en rajoutant à la fin :

NWScript :Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Tu peux même du coup virer le paramètre distance et la vérification de la présence d'un PJ dans la fonction, puisque c'est déjà fait avant de lancer le script.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
Posté le : 23/07/2006 15:24:00 Sujet du message :

Du coup les scripts deviennent :

Dans le OnHeartBeat :

NWScript :Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Et mon script machinchose :

Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.
Spoiler :
NWScript :
///version modifiee de TalentAdvancedBuff()
///(x0_i0_talent)
///bAllClassSpell :
///  TRUE : le lanceur verifiera s'il possede les sorts de toutes les classes
///  FALSE : (defaut) seulement les sorts ou il possede des niveaux
/// renvoie TRUE si le buff a lieu FALSE sinon
/// Par Sith Vicious
/////////////////////////
#include "x0_inc_generic"

void main()
{
int MyBuff(float fDistance, int bInstant = TRUE, int bAllClassSpell = FALSE)
{
   
            //int bPaladin = GetLevelByClass(CLASS_TYPE_PALADIN);
            int bMage = bAllClassSpell || GetLevelByClass(CLASS_TYPE_WIZARD) || GetLevelByClass(CLASS_TYPE_SORCERER) || GetLevelByClass(CLASS_TYPE_BARD);
            int bDruid = bAllClassSpell || GetLevelByClass(CLASS_TYPE_DRUID);
            int bRanger = bAllClassSpell || GetLevelByClass(CLASS_TYPE_RANGER);
            int bCleric = bAllClassSpell || GetLevelByClass(CLASS_TYPE_CLERIC);
            //int bBard = GetLevelByClass(CLASS_TYPE_BARD);

            if (bDruid || bRanger) SummonAnimalCompanion();
            if (bMage) SummonFamiliar();

            if(!GetIsFighting(OBJECT_SELF))
            {
                ClearActions(CLEAR_X0_I0_TALENT_AdvancedBuff);
                //Combat Protections
                if(GetHasSpell(SPELL_PREMONITION) && !GetHasSpellEffect(SPELL_PREMONITION))
                {
                    ActionCastSpellAtObject(SPELL_PREMONITION, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_GREATER_STONESKIN)&& !GetHasSpellEffect(SPELL_GREATER_STONESKIN))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_STONESKIN, OBJECT_SELF, METAMAGIC_NONE, 0, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_STONESKIN)&& !GetHasSpellEffect(SPELL_STONESKIN))
                {
                    ActionCastSpellAtObject(SPELL_STONESKIN, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_BARKSKIN)&& !GetHasSpellEffect(SPELL_BARKSKIN))
                {
                    ActionCastSpellAtObject(SPELL_STONESKIN, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Visage Protections
                if(GetHasSpell(SPELL_SHADOW_SHIELD)&& !GetHasSpellEffect(SPELL_SHADOW_SHIELD))
                {
                    ActionCastSpellAtObject(SPELL_SHADOW_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_ETHEREAL_VISAGE)&& !GetHasSpellEffect(SPELL_ETHEREAL_VISAGE))
                {
                    ActionCastSpellAtObject(SPELL_ETHEREAL_VISAGE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_GHOSTLY_VISAGE)&& !GetHasSpellEffect(SPELL_GHOSTLY_VISAGE))
                {
                    ActionCastSpellAtObject(SPELL_GHOSTLY_VISAGE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_DISPLACEMENT)&& !GetHasSpellEffect(SPELL_DISPLACEMENT))
                {
                    ActionCastSpellAtObject(SPELL_DISPLACEMENT, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Mantle Protections
                if(GetHasSpell(SPELL_GREATER_SPELL_MANTLE)&& !GetHasSpellEffect(SPELL_GREATER_SPELL_MANTLE))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_SPELL_MANTLE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SPELL_MANTLE)&& !GetHasSpellEffect(SPELL_SPELL_MANTLE))
                {
                    ActionCastSpellAtObject(SPELL_SPELL_MANTLE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_LESSER_SPELL_MANTLE)&& !GetHasSpellEffect(SPELL_LESSER_SPELL_MANTLE))
                {
                    ActionCastSpellAtObject(SPELL_LESSER_SPELL_MANTLE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                // Globes
                if(GetHasSpell(SPELL_GLOBE_OF_INVULNERABILITY)&& !GetHasSpellEffect(SPELL_GLOBE_OF_INVULNERABILITY))
                {
                    ActionCastSpellAtObject(SPELL_GLOBE_OF_INVULNERABILITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_MINOR_GLOBE_OF_INVULNERABILITY)&& !GetHasSpellEffect(SPELL_MINOR_GLOBE_OF_INVULNERABILITY))
                {
                    ActionCastSpellAtObject(SPELL_MINOR_GLOBE_OF_INVULNERABILITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //Misc Protections
                if(GetHasSpell(SPELL_ELEMENTAL_SHIELD)&& !GetHasSpellEffect(SPELL_ELEMENTAL_SHIELD))
                {
                    ActionCastSpellAtObject(SPELL_ELEMENTAL_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if (GetHasSpell(SPELL_MESTILS_ACID_SHEATH)&& !GetHasSpellEffect(SPELL_MESTILS_ACID_SHEATH))
                {
                    ActionCastSpellAtObject(SPELL_MESTILS_ACID_SHEATH, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if (GetHasSpell(SPELL_DEATH_ARMOR)&& !GetHasSpellEffect(SPELL_DEATH_ARMOR))
                {
                    ActionCastSpellAtObject(SPELL_DEATH_ARMOR, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //Elemental Protections
                if(GetHasSpell(SPELL_ENERGY_BUFFER)&& !GetHasSpellEffect(SPELL_ENERGY_BUFFER))
                {
                    ActionCastSpellAtObject(SPELL_ENERGY_BUFFER, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_PROTECTION_FROM_ELEMENTS)&& !GetHasSpellEffect(SPELL_PROTECTION_FROM_ELEMENTS))
                {
                    ActionCastSpellAtObject(SPELL_PROTECTION_FROM_ELEMENTS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_RESIST_ELEMENTS)&& !GetHasSpellEffect(SPELL_RESIST_ELEMENTS))
                {
                    ActionCastSpellAtObject(SPELL_RESIST_ELEMENTS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_ENDURE_ELEMENTS)&& !GetHasSpellEffect(SPELL_ENDURE_ELEMENTS))
                {
                    ActionCastSpellAtObject(SPELL_ENDURE_ELEMENTS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //Mental Protections
                if(GetHasSpell(SPELL_MIND_BLANK)&& !GetHasSpellEffect(SPELL_MIND_BLANK))
                {
                    ActionCastSpellAtObject(SPELL_MIND_BLANK, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_LESSER_MIND_BLANK)&& !GetHasSpellEffect(SPELL_LESSER_MIND_BLANK))
                {
                    ActionCastSpellAtObject(SPELL_LESSER_MIND_BLANK, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_CLARITY)&& !GetHasSpellEffect(SPELL_CLARITY))
                {
                    ActionCastSpellAtObject(SPELL_CLARITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Summon Ally
                if (GetAssociate(ASSOCIATE_TYPE_SUMMONED)==OBJECT_INVALID)
                {
                if(GetHasSpell(SPELL_ELEMENTAL_SWARM))
                {
                    ActionCastSpellAtLocation(SPELL_ELEMENTAL_SWARM, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_BLACK_BLADE_OF_DISASTER))
                {
                    ActionCastSpellAtLocation(SPELL_BLACK_BLADE_OF_DISASTER, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_MORDENKAINENS_SWORD))
                {
                    ActionCastSpellAtLocation(SPELL_MORDENKAINENS_SWORD, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_IX))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_IX, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_GREATER_PLANAR_BINDING))
                {
                    ActionCastSpellAtLocation(SPELL_GREATER_PLANAR_BINDING, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_VIII))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_VIII, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_VII))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_VII, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_PLANAR_BINDING))
                {
                    ActionCastSpellAtLocation(SPELL_PLANAR_BINDING, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_PLANAR_ALLY))
                {
                    ActionCastSpellAtLocation(SPELL_PLANAR_ALLY, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_VI))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_VI, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_LESSER_PLANAR_BINDING))
                {
                    ActionCastSpellAtLocation(SPELL_LESSER_PLANAR_BINDING, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_V))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_V, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_IV))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_IV, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_ANIMATE_DEAD))
                {
                    ActionCastSpellAtLocation(SPELL_ANIMATE_DEAD, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_III))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_III, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_II))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_II, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_I))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_I, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SHELGARNS_PERSISTENT_BLADE))
                {
                    ActionCastSpellAtLocation(SPELL_SHELGARNS_PERSISTENT_BLADE, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                }

                //boost carac
                if(GetHasSpell(SPELL_GREATER_BULLS_STRENGTH) && !GetHasSpellEffect(SPELL_GREATER_BULLS_STRENGTH))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_BULLS_STRENGTH, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_BULLS_STRENGTH) && !GetHasSpellEffect(SPELL_BULLS_STRENGTH))
                {
                    ActionCastSpellAtObject(SPELL_BULLS_STRENGTH, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_EAGLE_SPLENDOR) && !GetHasSpellEffect(SPELL_GREATER_EAGLE_SPLENDOR))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_EAGLE_SPLENDOR, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_EAGLE_SPLEDOR) && !GetHasSpellEffect(SPELL_EAGLE_SPLEDOR))
                {
                    ActionCastSpellAtObject(SPELL_EAGLE_SPLEDOR, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_CATS_GRACE) && !GetHasSpellEffect(SPELL_GREATER_CATS_GRACE))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_CATS_GRACE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_CATS_GRACE) && !GetHasSpellEffect(SPELL_CATS_GRACE))
                {
                    ActionCastSpellAtObject(SPELL_CATS_GRACE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_FOXS_CUNNING) && !GetHasSpellEffect(SPELL_GREATER_FOXS_CUNNING))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_FOXS_CUNNING, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_FOXS_CUNNING) && !GetHasSpellEffect(SPELL_FOXS_CUNNING))
                {
                    ActionCastSpellAtObject(SPELL_FOXS_CUNNING, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_OWLS_WISDOM) && !GetHasSpellEffect(SPELL_GREATER_OWLS_WISDOM))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_OWLS_WISDOM, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_OWLS_WISDOM) && !GetHasSpellEffect(SPELL_OWLS_WISDOM))
                {
                    ActionCastSpellAtObject(SPELL_OWLS_WISDOM, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_ENDURANCE) && !GetHasSpellEffect(SPELL_GREATER_ENDURANCE))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_ENDURANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_ENDURANCE) && !GetHasSpellEffect(SPELL_ENDURANCE))
                {
                    ActionCastSpellAtObject(SPELL_ENDURANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //Autres protections
                if(GetHasSpell(SPELL_DEATH_WARD) && !GetHasSpellEffect(SPELL_DEATH_WARD))
                {
                    ActionCastSpellAtObject(SPELL_DEATH_WARD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_FREEDOM_OF_MOVEMENT) && !GetHasSpellEffect(SPELL_FREEDOM_OF_MOVEMENT))
                {
                    ActionCastSpellAtObject(SPELL_FREEDOM_OF_MOVEMENT, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_NEGATIVE_ENERGY_PROTECTION) && !GetHasSpellEffect(SPELL_NEGATIVE_ENERGY_PROTECTION))
                {
                    ActionCastSpellAtObject(SPELL_NEGATIVE_ENERGY_PROTECTION, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_PROTECTION_FROM_SPELLS) && !GetHasSpellEffect(SPELL_PROTECTION_FROM_SPELLS))
                {
                    ActionCastSpellAtObject(SPELL_PROTECTION_FROM_SPELLS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_SHIELD_OF_FAITH) && !GetHasSpellEffect(SPELL_SHIELD_OF_FAITH))
                {
                    ActionCastSpellAtObject(SPELL_SHIELD_OF_FAITH, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_SPELL_RESISTANCE) && !GetHasSpellEffect(SPELL_SPELL_RESISTANCE))
                {
                    ActionCastSpellAtObject(SPELL_SPELL_RESISTANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Autres boost
                if(GetHasSpell(SPELL_BLESS) && !GetHasSpellEffect(SPELL_BLESS))
                {
                    ActionCastSpellAtObject(SPELL_BLESS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_AID) && !GetHasSpellEffect(SPELL_AID))
                {
                    ActionCastSpellAtObject(SPELL_AID, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_MASS_HASTE) && !GetHasSpellEffect(SPELL_MASS_HASTE))
                {
                    ActionCastSpellAtObject(SPELL_MASS_HASTE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_HASTE) && !GetHasSpellEffect(SPELL_HASTE))
                {
                    ActionCastSpellAtObject(SPELL_HASTE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_RESISTANCE) && !GetHasSpellEffect(SPELL_RESISTANCE))
                {
                    ActionCastSpellAtObject(SPELL_RESISTANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //invisibilite
                if(GetHasSpell(SPELL_IMPROVED_INVISIBILITY) && !GetHasSpellEffect(SPELL_IMPROVED_INVISIBILITY))
                {
                    ActionCastSpellAtObject(SPELL_IMPROVED_INVISIBILITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_INVISIBILITY_SPHERE) && !GetHasSpellEffect(SPELL_INVISIBILITY_SPHERE))
                {
                    ActionCastSpellAtObject(SPELL_INVISIBILITY_SPHERE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_INVISIBILITY) && !GetHasSpellEffect(SPELL_INVISIBILITY))
                {
                    ActionCastSpellAtObject(SPELL_INVISIBILITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Armes magiques
                if(GetHasSpell(SPELL_GREATER_MAGIC_WEAPON) && !GetHasSpellEffect(SPELL_GREATER_MAGIC_WEAPON))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_MAGIC_WEAPON, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_DARKFIRE) && !GetHasSpellEffect(SPELL_DARKFIRE))
                {
                    ActionCastSpellAtObject(SPELL_DARKFIRE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_MAGIC_WEAPON) && !GetHasSpellEffect(SPELL_MAGIC_WEAPON))
                {
                    ActionCastSpellAtObject(SPELL_MAGIC_WEAPON, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_BLESS_WEAPON) && !GetHasSpellEffect(SPELL_BLESS_WEAPON))
                {
                    ActionCastSpellAtObject(SPELL_BLESS_WEAPON, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_KEEN_EDGE) && !GetHasSpellEffect(SPELL_KEEN_EDGE))
                {
                    ActionCastSpellAtObject(SPELL_KEEN_EDGE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //vision
                if(GetHasSpell(SPELL_TRUE_SEEING) && !GetHasSpellEffect(SPELL_TRUE_SEEING))
                {
                    ActionCastSpellAtObject(SPELL_TRUE_SEEING, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_CLAIRAUDIENCE_AND_CLAIRVOYANCE) && !GetHasSpellEffect(SPELL_CLAIRAUDIENCE_AND_CLAIRVOYANCE))
                {
                    ActionCastSpellAtObject(SPELL_CLAIRAUDIENCE_AND_CLAIRVOYANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //DRUIDE

                if (bDruid || bRanger)
                {
                    if(GetHasSpell(SPELL_GREATER_MAGIC_FANG))
                    {
                        ActionCastSpellAtObject(SPELL_GREATER_MAGIC_FANG, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                    else if(GetHasSpell(SPELL_MAGIC_FANG))
                    {
                        ActionCastSpellAtObject(SPELL_MAGIC_FANG, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                    if (bDruid)
                    {
                        if(GetHasSpell(SPELL_AURA_OF_VITALITY)&& !GetHasSpellEffect(SPELL_AURA_OF_VITALITY))
                        {
                            ActionCastSpellAtObject(SPELL_AURA_OF_VITALITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                        }

                        if(GetHasSpell(SPELL_BLOOD_FRENZY)&& !GetHasSpellEffect(SPELL_BLOOD_FRENZY))
                        {
                            ActionCastSpellAtObject(SPELL_BLOOD_FRENZY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                        }
                    }
                }

                //MAGES ENSOS BARDES
                if (bMage)
                {
                    if(GetHasSpell(SPELL_SHIELD) && !GetHasSpellEffect(SPELL_SHIELD))
                    {
                        ActionCastSpellAtObject(SPELL_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_MAGE_ARMOR) && !GetHasSpellEffect(SPELL_MAGE_ARMOR))
                    {
                        ActionCastSpellAtObject(SPELL_MAGE_ARMOR, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_IRONGUTS) && !GetHasSpellEffect(SPELL_IRONGUTS))
                    {
                        ActionCastSpellAtObject(SPELL_IRONGUTS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                }

                //PRETRES
                if (bCleric)
                {
                    if(GetHasSpell(SPELL_DIVINE_SHIELD) && !GetHasSpellEffect(SPELL_DIVINE_SHIELD))
                    {
                        ActionCastSpellAtObject(SPELL_DIVINE_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_DIVINE_POWER) && !GetHasSpellEffect(SPELL_DIVINE_POWER))
                    {
                        ActionCastSpellAtObject(SPELL_DIVINE_POWER, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_ENTROPIC_SHIELD) && !GetHasSpellEffect(SPELL_ENTROPIC_SHIELD))
                    {
                        ActionCastSpellAtObject(SPELL_ENTROPIC_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_MAGIC_VESTMENT) && !GetHasSpellEffect(SPELL_ENTROPIC_SHIELD))
                    {
                        ActionCastSpellAtObject(SPELL_MAGIC_VESTMENT, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                    if(GetHasSpell(SPELL_UNDEATHS_ETERNAL_FOE) && !GetHasSpellEffect(SPELL_UNDEATHS_ETERNAL_FOE))
                    {
                        ActionCastSpellAtObject(SPELL_UNDEATHS_ETERNAL_FOE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                }
                return TRUE;
            }
        }
    }
    return FALSE;
}
AssignCommand(OBJECT_SELF,MyBuff(50.0));
}
Le code a colorer syntaxiquement est trop long (plus de 10240 caractères) et risque de ne pas s'afficher du tout. Vous pouvez le voir en version colorée ici.


C'est ca si j'ai bien compris ? *aime bien passer pour un blaireau sanguinaire Laughing *
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 23/07/2006 15:41:50 Sujet du message :

Presque :

NWScript :

void MyBuff(int bInstant = TRUE, bAllClassSpell = FALSE)
{

}

void main()
{
AssignCommand(OBJECT_SELF,MyBuff());

}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Oups, un truc que j'avais pas vu : change le type de fonction (la c'est int passe la en void et vire les 2 return TRUE et FALSE de la fin)

et dis moi si ça marche ^^
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
Posté le : 23/07/2006 15:50:35 Sujet du message :

Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.
Spoiler :
NWScript :

#include "x0_inc_generic"



void MyBuff(int bInstant = TRUE, bAllClassSpell = FALSE)
{
 
            //int bPaladin = GetLevelByClass(CLASS_TYPE_PALADIN);
            int bMage = bAllClassSpell || GetLevelByClass(CLASS_TYPE_WIZARD) || GetLevelByClass(CLASS_TYPE_SORCERER) || GetLevelByClass(CLASS_TYPE_BARD);
            int bDruid = bAllClassSpell || GetLevelByClass(CLASS_TYPE_DRUID);
            int bRanger = bAllClassSpell || GetLevelByClass(CLASS_TYPE_RANGER);
            int bCleric = bAllClassSpell || GetLevelByClass(CLASS_TYPE_CLERIC);
            //int bBard = GetLevelByClass(CLASS_TYPE_BARD);

            if (bDruid || bRanger) SummonAnimalCompanion();
            if (bMage) SummonFamiliar();

            if(!GetIsFighting(OBJECT_SELF))
            {
                ClearActions(CLEAR_X0_I0_TALENT_AdvancedBuff);
                //Combat Protections
                if(GetHasSpell(SPELL_PREMONITION) && !GetHasSpellEffect(SPELL_PREMONITION))
                {
                    ActionCastSpellAtObject(SPELL_PREMONITION, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_GREATER_STONESKIN)&& !GetHasSpellEffect(SPELL_GREATER_STONESKIN))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_STONESKIN, OBJECT_SELF, METAMAGIC_NONE, 0, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_STONESKIN)&& !GetHasSpellEffect(SPELL_STONESKIN))
                {
                    ActionCastSpellAtObject(SPELL_STONESKIN, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_BARKSKIN)&& !GetHasSpellEffect(SPELL_BARKSKIN))
                {
                    ActionCastSpellAtObject(SPELL_STONESKIN, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Visage Protections
                if(GetHasSpell(SPELL_SHADOW_SHIELD)&& !GetHasSpellEffect(SPELL_SHADOW_SHIELD))
                {
                    ActionCastSpellAtObject(SPELL_SHADOW_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_ETHEREAL_VISAGE)&& !GetHasSpellEffect(SPELL_ETHEREAL_VISAGE))
                {
                    ActionCastSpellAtObject(SPELL_ETHEREAL_VISAGE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_GHOSTLY_VISAGE)&& !GetHasSpellEffect(SPELL_GHOSTLY_VISAGE))
                {
                    ActionCastSpellAtObject(SPELL_GHOSTLY_VISAGE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_DISPLACEMENT)&& !GetHasSpellEffect(SPELL_DISPLACEMENT))
                {
                    ActionCastSpellAtObject(SPELL_DISPLACEMENT, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Mantle Protections
                if(GetHasSpell(SPELL_GREATER_SPELL_MANTLE)&& !GetHasSpellEffect(SPELL_GREATER_SPELL_MANTLE))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_SPELL_MANTLE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SPELL_MANTLE)&& !GetHasSpellEffect(SPELL_SPELL_MANTLE))
                {
                    ActionCastSpellAtObject(SPELL_SPELL_MANTLE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_LESSER_SPELL_MANTLE)&& !GetHasSpellEffect(SPELL_LESSER_SPELL_MANTLE))
                {
                    ActionCastSpellAtObject(SPELL_LESSER_SPELL_MANTLE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                // Globes
                if(GetHasSpell(SPELL_GLOBE_OF_INVULNERABILITY)&& !GetHasSpellEffect(SPELL_GLOBE_OF_INVULNERABILITY))
                {
                    ActionCastSpellAtObject(SPELL_GLOBE_OF_INVULNERABILITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_MINOR_GLOBE_OF_INVULNERABILITY)&& !GetHasSpellEffect(SPELL_MINOR_GLOBE_OF_INVULNERABILITY))
                {
                    ActionCastSpellAtObject(SPELL_MINOR_GLOBE_OF_INVULNERABILITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //Misc Protections
                if(GetHasSpell(SPELL_ELEMENTAL_SHIELD)&& !GetHasSpellEffect(SPELL_ELEMENTAL_SHIELD))
                {
                    ActionCastSpellAtObject(SPELL_ELEMENTAL_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if (GetHasSpell(SPELL_MESTILS_ACID_SHEATH)&& !GetHasSpellEffect(SPELL_MESTILS_ACID_SHEATH))
                {
                    ActionCastSpellAtObject(SPELL_MESTILS_ACID_SHEATH, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if (GetHasSpell(SPELL_DEATH_ARMOR)&& !GetHasSpellEffect(SPELL_DEATH_ARMOR))
                {
                    ActionCastSpellAtObject(SPELL_DEATH_ARMOR, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //Elemental Protections
                if(GetHasSpell(SPELL_ENERGY_BUFFER)&& !GetHasSpellEffect(SPELL_ENERGY_BUFFER))
                {
                    ActionCastSpellAtObject(SPELL_ENERGY_BUFFER, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_PROTECTION_FROM_ELEMENTS)&& !GetHasSpellEffect(SPELL_PROTECTION_FROM_ELEMENTS))
                {
                    ActionCastSpellAtObject(SPELL_PROTECTION_FROM_ELEMENTS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_RESIST_ELEMENTS)&& !GetHasSpellEffect(SPELL_RESIST_ELEMENTS))
                {
                    ActionCastSpellAtObject(SPELL_RESIST_ELEMENTS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_ENDURE_ELEMENTS)&& !GetHasSpellEffect(SPELL_ENDURE_ELEMENTS))
                {
                    ActionCastSpellAtObject(SPELL_ENDURE_ELEMENTS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //Mental Protections
                if(GetHasSpell(SPELL_MIND_BLANK)&& !GetHasSpellEffect(SPELL_MIND_BLANK))
                {
                    ActionCastSpellAtObject(SPELL_MIND_BLANK, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_LESSER_MIND_BLANK)&& !GetHasSpellEffect(SPELL_LESSER_MIND_BLANK))
                {
                    ActionCastSpellAtObject(SPELL_LESSER_MIND_BLANK, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_CLARITY)&& !GetHasSpellEffect(SPELL_CLARITY))
                {
                    ActionCastSpellAtObject(SPELL_CLARITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Summon Ally
                if (GetAssociate(ASSOCIATE_TYPE_SUMMONED)==OBJECT_INVALID)
                {
                if(GetHasSpell(SPELL_ELEMENTAL_SWARM))
                {
                    ActionCastSpellAtLocation(SPELL_ELEMENTAL_SWARM, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_BLACK_BLADE_OF_DISASTER))
                {
                    ActionCastSpellAtLocation(SPELL_BLACK_BLADE_OF_DISASTER, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_MORDENKAINENS_SWORD))
                {
                    ActionCastSpellAtLocation(SPELL_MORDENKAINENS_SWORD, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_IX))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_IX, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_GREATER_PLANAR_BINDING))
                {
                    ActionCastSpellAtLocation(SPELL_GREATER_PLANAR_BINDING, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_VIII))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_VIII, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_VII))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_VII, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_PLANAR_BINDING))
                {
                    ActionCastSpellAtLocation(SPELL_PLANAR_BINDING, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_PLANAR_ALLY))
                {
                    ActionCastSpellAtLocation(SPELL_PLANAR_ALLY, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_VI))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_VI, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_LESSER_PLANAR_BINDING))
                {
                    ActionCastSpellAtLocation(SPELL_LESSER_PLANAR_BINDING, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_V))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_V, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_IV))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_IV, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_ANIMATE_DEAD))
                {
                    ActionCastSpellAtLocation(SPELL_ANIMATE_DEAD, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_III))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_III, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_II))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_II, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SUMMON_CREATURE_I))
                {
                    ActionCastSpellAtLocation(SPELL_SUMMON_CREATURE_I, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_SHELGARNS_PERSISTENT_BLADE))
                {
                    ActionCastSpellAtLocation(SPELL_SHELGARNS_PERSISTENT_BLADE, GetLocation(OBJECT_SELF), METAMAGIC_NONE, FALSE, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                }

                //boost carac
                if(GetHasSpell(SPELL_GREATER_BULLS_STRENGTH) && !GetHasSpellEffect(SPELL_GREATER_BULLS_STRENGTH))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_BULLS_STRENGTH, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_BULLS_STRENGTH) && !GetHasSpellEffect(SPELL_BULLS_STRENGTH))
                {
                    ActionCastSpellAtObject(SPELL_BULLS_STRENGTH, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_EAGLE_SPLENDOR) && !GetHasSpellEffect(SPELL_GREATER_EAGLE_SPLENDOR))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_EAGLE_SPLENDOR, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_EAGLE_SPLEDOR) && !GetHasSpellEffect(SPELL_EAGLE_SPLEDOR))
                {
                    ActionCastSpellAtObject(SPELL_EAGLE_SPLEDOR, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_CATS_GRACE) && !GetHasSpellEffect(SPELL_GREATER_CATS_GRACE))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_CATS_GRACE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_CATS_GRACE) && !GetHasSpellEffect(SPELL_CATS_GRACE))
                {
                    ActionCastSpellAtObject(SPELL_CATS_GRACE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_FOXS_CUNNING) && !GetHasSpellEffect(SPELL_GREATER_FOXS_CUNNING))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_FOXS_CUNNING, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_FOXS_CUNNING) && !GetHasSpellEffect(SPELL_FOXS_CUNNING))
                {
                    ActionCastSpellAtObject(SPELL_FOXS_CUNNING, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_OWLS_WISDOM) && !GetHasSpellEffect(SPELL_GREATER_OWLS_WISDOM))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_OWLS_WISDOM, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_OWLS_WISDOM) && !GetHasSpellEffect(SPELL_OWLS_WISDOM))
                {
                    ActionCastSpellAtObject(SPELL_OWLS_WISDOM, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_GREATER_ENDURANCE) && !GetHasSpellEffect(SPELL_GREATER_ENDURANCE))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_ENDURANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_ENDURANCE) && !GetHasSpellEffect(SPELL_ENDURANCE))
                {
                    ActionCastSpellAtObject(SPELL_ENDURANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //Autres protections
                if(GetHasSpell(SPELL_DEATH_WARD) && !GetHasSpellEffect(SPELL_DEATH_WARD))
                {
                    ActionCastSpellAtObject(SPELL_DEATH_WARD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_FREEDOM_OF_MOVEMENT) && !GetHasSpellEffect(SPELL_FREEDOM_OF_MOVEMENT))
                {
                    ActionCastSpellAtObject(SPELL_FREEDOM_OF_MOVEMENT, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_NEGATIVE_ENERGY_PROTECTION) && !GetHasSpellEffect(SPELL_NEGATIVE_ENERGY_PROTECTION))
                {
                    ActionCastSpellAtObject(SPELL_NEGATIVE_ENERGY_PROTECTION, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_PROTECTION_FROM_SPELLS) && !GetHasSpellEffect(SPELL_PROTECTION_FROM_SPELLS))
                {
                    ActionCastSpellAtObject(SPELL_PROTECTION_FROM_SPELLS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_SHIELD_OF_FAITH) && !GetHasSpellEffect(SPELL_SHIELD_OF_FAITH))
                {
                    ActionCastSpellAtObject(SPELL_SHIELD_OF_FAITH, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_SPELL_RESISTANCE) && !GetHasSpellEffect(SPELL_SPELL_RESISTANCE))
                {
                    ActionCastSpellAtObject(SPELL_SPELL_RESISTANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Autres boost
                if(GetHasSpell(SPELL_BLESS) && !GetHasSpellEffect(SPELL_BLESS))
                {
                    ActionCastSpellAtObject(SPELL_BLESS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_AID) && !GetHasSpellEffect(SPELL_AID))
                {
                    ActionCastSpellAtObject(SPELL_AID, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                if(GetHasSpell(SPELL_MASS_HASTE) && !GetHasSpellEffect(SPELL_MASS_HASTE))
                {
                    ActionCastSpellAtObject(SPELL_MASS_HASTE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_HASTE) && !GetHasSpellEffect(SPELL_HASTE))
                {
                    ActionCastSpellAtObject(SPELL_HASTE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_RESISTANCE) && !GetHasSpellEffect(SPELL_RESISTANCE))
                {
                    ActionCastSpellAtObject(SPELL_RESISTANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //invisibilite
                if(GetHasSpell(SPELL_IMPROVED_INVISIBILITY) && !GetHasSpellEffect(SPELL_IMPROVED_INVISIBILITY))
                {
                    ActionCastSpellAtObject(SPELL_IMPROVED_INVISIBILITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_INVISIBILITY_SPHERE) && !GetHasSpellEffect(SPELL_INVISIBILITY_SPHERE))
                {
                    ActionCastSpellAtObject(SPELL_INVISIBILITY_SPHERE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_INVISIBILITY) && !GetHasSpellEffect(SPELL_INVISIBILITY))
                {
                    ActionCastSpellAtObject(SPELL_INVISIBILITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //Armes magiques
                if(GetHasSpell(SPELL_GREATER_MAGIC_WEAPON) && !GetHasSpellEffect(SPELL_GREATER_MAGIC_WEAPON))
                {
                    ActionCastSpellAtObject(SPELL_GREATER_MAGIC_WEAPON, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_DARKFIRE) && !GetHasSpellEffect(SPELL_DARKFIRE))
                {
                    ActionCastSpellAtObject(SPELL_DARKFIRE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_MAGIC_WEAPON) && !GetHasSpellEffect(SPELL_MAGIC_WEAPON))
                {
                    ActionCastSpellAtObject(SPELL_MAGIC_WEAPON, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_BLESS_WEAPON) && !GetHasSpellEffect(SPELL_BLESS_WEAPON))
                {
                    ActionCastSpellAtObject(SPELL_BLESS_WEAPON, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                if(GetHasSpell(SPELL_KEEN_EDGE) && !GetHasSpellEffect(SPELL_KEEN_EDGE))
                {
                    ActionCastSpellAtObject(SPELL_KEEN_EDGE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }

                //vision
                if(GetHasSpell(SPELL_TRUE_SEEING) && !GetHasSpellEffect(SPELL_TRUE_SEEING))
                {
                    ActionCastSpellAtObject(SPELL_TRUE_SEEING, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                else if(GetHasSpell(SPELL_CLAIRAUDIENCE_AND_CLAIRVOYANCE) && !GetHasSpellEffect(SPELL_CLAIRAUDIENCE_AND_CLAIRVOYANCE))
                {
                    ActionCastSpellAtObject(SPELL_CLAIRAUDIENCE_AND_CLAIRVOYANCE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                }
                //DRUIDE

                if (bDruid || bRanger)
                {
                    if(GetHasSpell(SPELL_GREATER_MAGIC_FANG))
                    {
                        ActionCastSpellAtObject(SPELL_GREATER_MAGIC_FANG, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                    else if(GetHasSpell(SPELL_MAGIC_FANG))
                    {
                        ActionCastSpellAtObject(SPELL_MAGIC_FANG, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                    if (bDruid)
                    {
                        if(GetHasSpell(SPELL_AURA_OF_VITALITY)&& !GetHasSpellEffect(SPELL_AURA_OF_VITALITY))
                        {
                            ActionCastSpellAtObject(SPELL_AURA_OF_VITALITY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                        }

                        if(GetHasSpell(SPELL_BLOOD_FRENZY)&& !GetHasSpellEffect(SPELL_BLOOD_FRENZY))
                        {
                            ActionCastSpellAtObject(SPELL_BLOOD_FRENZY, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                        }
                    }
                }

                //MAGES ENSOS BARDES
                if (bMage)
                {
                    if(GetHasSpell(SPELL_SHIELD) && !GetHasSpellEffect(SPELL_SHIELD))
                    {
                        ActionCastSpellAtObject(SPELL_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_MAGE_ARMOR) && !GetHasSpellEffect(SPELL_MAGE_ARMOR))
                    {
                        ActionCastSpellAtObject(SPELL_MAGE_ARMOR, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_IRONGUTS) && !GetHasSpellEffect(SPELL_IRONGUTS))
                    {
                        ActionCastSpellAtObject(SPELL_IRONGUTS, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                }

                //PRETRES
                if (bCleric)
                {
                    if(GetHasSpell(SPELL_DIVINE_SHIELD) && !GetHasSpellEffect(SPELL_DIVINE_SHIELD))
                    {
                        ActionCastSpellAtObject(SPELL_DIVINE_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_DIVINE_POWER) && !GetHasSpellEffect(SPELL_DIVINE_POWER))
                    {
                        ActionCastSpellAtObject(SPELL_DIVINE_POWER, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_ENTROPIC_SHIELD) && !GetHasSpellEffect(SPELL_ENTROPIC_SHIELD))
                    {
                        ActionCastSpellAtObject(SPELL_ENTROPIC_SHIELD, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }

                    if(GetHasSpell(SPELL_MAGIC_VESTMENT) && !GetHasSpellEffect(SPELL_ENTROPIC_SHIELD))
                    {
                        ActionCastSpellAtObject(SPELL_MAGIC_VESTMENT, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                    if(GetHasSpell(SPELL_UNDEATHS_ETERNAL_FOE) && !GetHasSpellEffect(SPELL_UNDEATHS_ETERNAL_FOE))
                    {
                        ActionCastSpellAtObject(SPELL_UNDEATHS_ETERNAL_FOE, OBJECT_SELF, METAMAGIC_NONE, FALSE, 0, PROJECTILE_PATH_TYPE_DEFAULT, bInstant);
                    }
                }
               
            }
       
   
   
}
void main()
{
AssignCommand(OBJECT_SELF,MyBuff(50.0));
}
Le code a colorer syntaxiquement est trop long (plus de 10240 caractères) et risque de ne pas s'afficher du tout. Vous pouvez le voir en version colorée ici.


comme ça ? Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 23/07/2006 16:05:03 Sujet du message :

Ba faut testé mon coco Razz
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
Posté le : 23/07/2006 16:11:32 Sujet du message :

Bon je viens de tester. yavais une coquille a la declaration de la fonction au depart (manquait un int) et la il me fait une declaration d'erreur : ERREUR : DECLARATION DOES NOT MATCH PARAMETERS

sur cette ligne :
NWScript :Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 23/07/2006 17:03:41 Sujet du message :

Nan !

Vire le 50.0 puisque tu as viré le paramètre de distance !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
chevalier blanc
Grand Chevalier
Inscrit le: 28 Mar 2005
Messages: 117
Localisation: Sur les Côtes d'Opaline
Répondre en citant
Posté le : 23/07/2006 17:22:14 Sujet du message :

Bon ça à l'air de fonctionner... je vous tiens au courant si ya des problèmes.

merci quand meme de votre infinie patiente envers un pauvre bougre comme moi Surprised
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 154.711ms