La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 07/05/2024 09:56:57


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Paiste
Ecuyer
Inscrit le: 25 Mai 2007
Messages: 65
Localisation: Montréal
Répondre en citant
Posté le : 01/12/2007 21:17:09 Sujet du message : Probleme avec un Script de Sous-Race

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




#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;
    }
////////////////////////////////////////////////////////////////////////////////
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.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 02/12/2007 19:53:40 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Paiste
Ecuyer
Inscrit le: 25 Mai 2007
Messages: 65
Localisation: Montréal
Répondre en citant
Posté le : 03/12/2007 12:53:05 Sujet du message :

Merci mais je lai deja essayer...meme que extraordinaire! et rien de tout cela ne fonctionne Sad
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 03/12/2007 18:48:27 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Paiste
Ecuyer
Inscrit le: 25 Mai 2007
Messages: 65
Localisation: Montréal
Répondre en citant
Posté le : 03/12/2007 19:36:28 Sujet du message :

Ohh Yah!!!! ca fonctionne!!! Merci bcp!!!!!EmbarassedVery Happy *Envoit un cheque de 1 million a Ivellios* loL!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Paiste
Ecuyer
Inscrit le: 25 Mai 2007
Messages: 65
Localisation: Montréal
Répondre en citant
Posté le : 03/12/2007 21:59:38 Sujet du message :

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));
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
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 03/12/2007 22:40:32 Sujet du message :

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 Razz)
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger 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 31.835ms