La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 27/12/2024 19:35:24
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
Paiste Ecuyer Messages: 65 Localisation: Montréal |
Je vous explique mon probleme....jai introduit un script de sous-race dans mon module...cela fonctionne tres bien, sauf quand le PJ se repose il perd tout ses pouvoirs....J'aimerais donc trouver une facon de corriger se probleme plutot genant.... Je voudrais aussi preciser que mon script de repos pour l'instant est ceci de nwn par default! voici mon script de sous-race pour vous donner une idee du style de script.
NWScript : ///////////modified by: AZAZEL 27 oct 2007
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.#include "god_inc" #include "cad_detcorps" void main() { GodClientEnter(); //////////////////////////////////////////////////////////////////////////////// //// Subrace OnStart script ////////////////////////////////////////////// //// Created by: harv711 ////////////////////////////////////////////// //// Created on: October 1, 2003 ////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// object oPC = GetEnteringObject(); int nLvL1 = GetLevelByPosition(1, oPC); int nLvL2 = GetLevelByPosition(2, oPC); int nLvL3 = GetLevelByPosition(3, oPC); int iSpellResist = 11 + nLvL1 + nLvL2 + nLvL3; int iGenResit = 5 + ((nLvL1 + nLvL2 + nLvL3)/2); int iPercentVampyre = 20 + nLvL1 + nLvL2 + nLvL3; //////////////////////////////////////////////////////////////////////////////// effect eAbilityInCHA2 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityIncrease(ABILITY_CHARISMA, 2))); effect eAbilityInCON2 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityIncrease(ABILITY_CONSTITUTION, 2))); effect eAbilityInDEX2 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityIncrease(ABILITY_DEXTERITY, 2))); effect eAbilityInINT2 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityIncrease(ABILITY_INTELLIGENCE, 2))); effect eAbilityInSTR1 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityIncrease(ABILITY_STRENGTH, 1))); effect eAbilityInSTR2 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityIncrease(ABILITY_STRENGTH, 2))); effect eAbilityInWIS2 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityIncrease(ABILITY_WISDOM, 2))); //////////////////////////////////////////////////////////////////////////////// effect eAbilityDeCHA1 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityDecrease(ABILITY_CHARISMA, 1))); effect eAbilityDeCHA2 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityDecrease(ABILITY_CHARISMA, 2))); effect eAbilityDeCHA4 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityDecrease(ABILITY_CHARISMA, 4))); effect eAbilityDeCON2 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityDecrease(ABILITY_CONSTITUTION, 2))); effect eAbilityDeCON4 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityDecrease(ABILITY_CONSTITUTION, 4))); effect eAbilityDeDEX2 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityDecrease(ABILITY_DEXTERITY, 2))); effect eAbilityDeINT1 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityDecrease(ABILITY_INTELLIGENCE, 1))); effect eAbilityDeINT2 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityDecrease(ABILITY_INTELLIGENCE, 2))); effect eAbilityDeSTR2 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityDecrease(ABILITY_STRENGTH, 2))); effect eAbilityDeWIS2 = ExtraordinaryEffect( SupernaturalEffect(EffectAbilityDecrease(ABILITY_WISDOM, 2))); //////////////////////////////////////////////////////////////////////////////// effect eSkillInAnimal2 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillIncrease(SKILL_ANIMAL_EMPATHY, 2))); effect eSkillInAppraise2 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillIncrease(SKILL_APPRAISE, 2))); effect eSkillInHeal2 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillIncrease(SKILL_HEAL, 2))); effect eSkillInHide2 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillIncrease(SKILL_HIDE, 2))); effect eSkillInListen2 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillIncrease(SKILL_LISTEN, 2))); effect eSkillInListen1 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillIncrease(SKILL_LISTEN, 1))); effect eSkillInMoveSilent4 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillIncrease(SKILL_MOVE_SILENTLY, 4))); effect eSkillInOpenLock2 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillIncrease(SKILL_OPEN_LOCK, 2))); effect eSkillInPerform2 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillIncrease(SKILL_PERFORM, 2))); effect eSkillInSpellCraft2 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillIncrease(SKILL_SPELLCRAFT, 2))); effect eSkillInSpot2 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillIncrease(SKILL_SPOT, 2))); effect eSkillInSpot1 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillIncrease(SKILL_SPOT, 1))); effect eSkillInTumble2 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillIncrease(SKILL_TUMBLE, 2))); //////////////////////////////////////////////////////////////////////////////// effect eSkillDeAppraise2 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillDecrease(SKILL_APPRAISE, 2))); effect eSkillDeMoveSilent2 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillDecrease(SKILL_MOVE_SILENTLY, 2))); effect eSkillDePerform2 = ExtraordinaryEffect( SupernaturalEffect(EffectSkillDecrease(SKILL_PERFORM, 2))); //////////////////////////////////////////////////////////////////////////////// effect eDarkvision = EffectVisualEffect (VFX_DUR_ULTRAVISION); effect eAcIncrease = ExtraordinaryEffect( SupernaturalEffect(EffectACIncrease(1, AC_DODGE_BONUS, AC_VS_DAMAGE_TYPE_ALL))); effect eAcIncrease4 = ExtraordinaryEffect( SupernaturalEffect(EffectACIncrease(4, AC_DODGE_BONUS, AC_VS_DAMAGE_TYPE_ALL))); effect eAttack = ExtraordinaryEffect( SupernaturalEffect(EffectAttackIncrease(1, ATTACK_BONUS_OFFHAND))); effect eLink1 = ExtraordinaryEffect( SupernaturalEffect(EffectLinkEffects(eAbilityInWIS2, eAbilityDeCHA2))); effect eLink2 = ExtraordinaryEffect( SupernaturalEffect(EffectLinkEffects(eAbilityDeINT2, eAbilityDeCHA2))); effect eSpellResist = ExtraordinaryEffect( SupernaturalEffect(EffectSpellResistanceIncrease(iSpellResist))); effect eDrowWill = ExtraordinaryEffect( SupernaturalEffect(EffectSavingThrowIncrease(SAVING_THROW_WILL, 2, SAVING_THROW_TYPE_SPELL))); effect eResistAcis5 = ExtraordinaryEffect( SupernaturalEffect(EffectDamageResistance(DAMAGE_TYPE_ACID, 5, 0))); effect eResistCold5 = ExtraordinaryEffect( SupernaturalEffect(EffectDamageResistance(DAMAGE_TYPE_COLD, 5, 0))); effect eResistFire5 = ExtraordinaryEffect( SupernaturalEffect(EffectDamageResistance(DAMAGE_TYPE_FIRE, 5, 0))); effect eResistElec5 = ExtraordinaryEffect( SupernaturalEffect(EffectDamageResistance(DAMAGE_TYPE_ELECTRICAL, 5, 0))); effect eResistGenasiElec = ExtraordinaryEffect( SupernaturalEffect(EffectDamageResistance(DAMAGE_TYPE_ELECTRICAL, iGenResit, 0))); effect eResistGenasiBlunt = ExtraordinaryEffect( SupernaturalEffect(EffectDamageResistance(DAMAGE_TYPE_BLUDGEONING, iGenResit, 0))); effect eResistGenasiFire = ExtraordinaryEffect( SupernaturalEffect(EffectDamageResistance(DAMAGE_TYPE_FIRE, iGenResit, 0))); effect eResistGenasiAcid = ExtraordinaryEffect( SupernaturalEffect(EffectDamageResistance(DAMAGE_TYPE_ACID, iGenResit, 0))); effect eSavingThrowIn2 = ExtraordinaryEffect( SupernaturalEffect(EffectSavingThrowIncrease(SAVING_THROW_ALL, 2, SAVING_THROW_TYPE_ALL))); effect eSavingThrowDe1 = ExtraordinaryEffect( SupernaturalEffect(EffectSavingThrowDecrease(SAVING_THROW_ALL, 1, SAVING_THROW_TYPE_ALL))); effect eResistGenasiCold = ExtraordinaryEffect( SupernaturalEffect(EffectDamageResistance(DAMAGE_TYPE_COLD, iGenResit, 0))); effect eImmuneParalysis = ExtraordinaryEffect( SupernaturalEffect(EffectImmunity(IMMUNITY_TYPE_PARALYSIS))); effect eImmuneSneak = ExtraordinaryEffect( SupernaturalEffect(EffectImmunity(IMMUNITY_TYPE_SNEAK_ATTACK))); effect eImmuneSleep = ExtraordinaryEffect( SupernaturalEffect(EffectImmunity(IMMUNITY_TYPE_SLEEP))); effect eImmuneCharm = ExtraordinaryEffect( SupernaturalEffect(EffectImmunity(IMMUNITY_TYPE_CHARM))); effect eImmuneFear = ExtraordinaryEffect( SupernaturalEffect(EffectImmunity(IMMUNITY_TYPE_FEAR))); effect eImmuneDominate = ExtraordinaryEffect( SupernaturalEffect(EffectImmunity(IMMUNITY_TYPE_DOMINATE))); effect eImmuneSilence = ExtraordinaryEffect( SupernaturalEffect(EffectImmunity(IMMUNITY_TYPE_SILENCE))); effect eSavingThrowNegative = ExtraordinaryEffect( SupernaturalEffect(EffectSavingThrowIncrease(SAVING_THROW_ALL, 2, SAVING_THROW_TYPE_NEGATIVE))); effect eSavingThrowPositive5 = ExtraordinaryEffect( SupernaturalEffect(EffectSavingThrowDecrease(SAVING_THROW_ALL, 5, SAVING_THROW_TYPE_POSITIVE))); effect eNegativeDamageIncrease = ExtraordinaryEffect( SupernaturalEffect(EffectDamageImmunityIncrease(DAMAGE_TYPE_NEGATIVE, iPercentVampyre))); if(GetLocalInt(oPC, "HasSubRace") != 1) { //////////////////////////////////////////////////////////////////////////////// ///////////// Tom's Sub-Races ////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// if(GetSubRace(oPC)== "Vampyre" && GetHasFeat(FEAT_BLOODED, oPC)) { ApplyEffectToObject(DURATION_TYPE_PERMANENT, eAbilityInSTR2, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eAbilityInDEX2, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eAbilityInCHA2, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eAbilityDeCON4, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eImmuneSneak, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eImmuneSleep, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eImmuneCharm, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eImmuneDominate, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSavingThrowNegative, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSavingThrowPositive5, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eNegativeDamageIncrease, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eDarkvision, oPC); return; } //////////////////////////////////////////////////////////////////////////////// ///////////// Vistani Sub-Races //////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// if(GetHasFeat(FEAT_SKILL_FOCUS_LORE, oPC) && GetSubRace(oPC)== "Half-Vistani: Canjar" && GetRacialType(oPC)== RACIAL_TYPE_HUMAN) { ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink1, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSkillInSpellCraft2, oPC); return; } //////////////////////////////////////////////////////////////////////////////// if(GetSubRace(oPC)== "Half-Vistani: Corvara" && GetRacialType(oPC)== RACIAL_TYPE_HUMAN && GetHasFeat(FEAT_SKILL_FOCUS_LORE, oPC)) { ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink1, oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSkillInOpenLock2, oPC); return; } //////////////////////////////////////////////////////////////////////////////// |
Revenir en haut | |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Passe tes effets utisés en SupernaturalEffect.
_________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | |
Paiste Ecuyer Messages: 65 Localisation: Montréal |
Merci mais je lai deja essayer...meme que extraordinaire! et rien de tout cela ne fonctionne
|
Revenir en haut | |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
C'est normal (j'avais juste lu la partie application, les déclarations étaient trop longues ^^).
En gros tu as trois types d'effets : - Les Magiques - Les "Extraordinaires" - Les "Supernaturels" Les Magiques se dissipent par le dispell et le repos. Les "Extras" se dissipent par le repos uniquement (et non le dispell). Les "SuperN" ne se dissipent ni par le dispell, ni par le repos. (on ommet le fait de pouvoir dissiper par script) Toi ce que tu as fait dans tes déclarations : - Tu as pris un effet - Tu le transforme en SuperN - Tu le transforme en Extras Forcemment c'est la dernière transformation qui compte (c'est un SUBTYPE qui change à chaque fois), donc du coup ça revient à la même chose que si tu avais fait en Extras simplement. Met tes effets en SuperN seulement et ça devrait marcher (enfin chez moi ça a toujours marché). Voilà ;p _________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | |
Paiste Ecuyer Messages: 65 Localisation: Montréal |
Ohh Yah!!!! ca fonctionne!!! Merci bcp!!!!! *Envoit un cheque de 1 million a Ivellios* loL!
|
Revenir en haut | |
Paiste Ecuyer Messages: 65 Localisation: Montréal |
ohhh un autre probleme arrive...quand il repawn il perd tout ses pouvoir.... *je vais pleurer*
voici se quoi sa lair apres avoir modifier...biensur c'est seulement une petite parti du script! NWScript : ////////////////////////////// ////////////////////////////// //////////////////// //// Subrace OnStart script ////////////////////////////// //////////////// //// Created by: harv711 ////////////////////////////// //////////////// //// Created on: October 1, 2003 ////////////////////////////// //////////////// ////////////////////////////// ////////////////////////////// //////////////////// ////////////////////////////// ////////////////////////////// //////////////////// object oPC = GetEnteringObject(); int nLvL1 = GetLevelByPosition(1, oPC); int nLvL2 = GetLevelByPosition(2, oPC); int nLvL3 = GetLevelByPosition(3, oPC); int iSpellResist = 11 + nLvL1 + nLvL2 + nLvL3; int iGenResit = 5 + ((nLvL1 + nLvL2 + nLvL3)/2); int iPercentVampyre = 20 + nLvL1 + nLvL2 + nLvL3; ////////////////////////////// ////////////////////////////// //////////////////// effect eAbilityInCHA2 = SupernaturalEffect (EffectAbilityIncrease(ABILITY_CHARISMA, 2)); effect eAbilityInCON2 = SupernaturalEffect(EffectAbilityIncrease(ABILITY_CONSTITUTION, 2)); effect eAbilityInDEX2 = SupernaturalEffect(EffectAbilityIncrease(ABILITY_DEXTERITY, 2)); effect eAbilityInINT2 = SupernaturalEffect(EffectAbilityIncrease(ABILITY_INTELLIGENCE, 2)); effect eAbilityInSTR1 = SupernaturalEffect(EffectAbilityIncrease(ABILITY_STRENGTH, 1)); effect eAbilityInSTR2 = SupernaturalEffect(EffectAbilityIncrease(ABILITY_STRENGTH, 2)); effect eAbilityInWIS2 = SupernaturalEffect(EffectAbilityIncrease(ABILITY_WISDOM, 2)); |
Revenir en haut | |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Tu réappliques les effets de la même façon que sur le OnClientEnter mais ce coup ci sur le Respawn.
A ta place je ferais une refonte de mon script de OnClientEnter, il y a beaucoup d'effets de déclarés c'est vraiment trop le bordel je trouve (c'est subjectif), pour ma part je repartirai dans des fonctions par races par exemples, ce qui te permettrais d'y refaire appel plus facilement par la suite (OnPlayerRespawn au hasard ^^). Bonne chance ;p (400 messages en passant ) _________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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