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 18:47:18


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Zanon-blood
Acolyte
Inscrit le: 25 Jan 2005
Messages: 38
Répondre en citant
Posté le : 03/02/2006 21:43:10 Sujet du message : Scripte de set

Bonjour a tous Very Happy

j'ait esséyer de fair un script que quand je rassemble 4 objets qui sont épée armure bouclier casque qui ont un éffet et qui donne des points de vie que quand les 4 morceaux sont rasembler Confused

mait vu que je suis pas douer en scipte je demande votre aide

merci d'avence Embarassed
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
castorus
Acolyte
Inscrit le: 24 Déc 2005
Messages: 23
Répondre en citant
Posté le : 03/02/2006 23:04:16 Sujet du message :

Alors, cher ami, nous allons donc aborder ensemble ce sujet qu'est l'effet appliquer sur un objet si il s'équipe de 4 items définis ^^.

il faut savoir que les script de NWN sont déclenchés (appellés) par des events (evenement) definis par le programme Neverwinter Night lui même.

l'event que nous utiliseront sera donc un événement se déclenchant dès qu'une créature s'équipe d'un item.

Le module en lui meme comporte un event agissant ainsi, il s'agit de l'event OnPlayerEquipItem il se trouve dans :
Editer -> Propriétées du module -> Evénements

voici donc le script que nous mettrons en l'event OnPlayerEquipItem via son boutton edit :

NWScript :

int GetIsEquipped(string ResRefItem,object oCreature);





void main()
{
object oPC = GetPCItemLastEquippedBy();
string sResRefObj1 = "obj1"; /*Remplacer le texte entre guillemet pour le vrai ResRef de vos objets qui soignent.*/
string sResRefObj2 = "obj2";
string sResRefObj3 = "obj3";
string sResRefObj4 = "obj4";
int PV = GetMaxHitPoints(oPC);
int PVActuel = GetCurrentHitPoints(oPC);
int DiffPV = PV-PVActuel;


    if((GetIsEquipped(sResRefObj1,oPC)==1)&&
      (GetIsEquipped(sResRefObj2,oPC)==1)&&
      (GetIsEquipped(sResRefObj3,oPC)==1)&&
      (GetIsEquipped(sResRefObj4,oPC)==1))
      {
      ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(DiffPV),oPC);
      ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_HEALING_L),oPC);
      SendMessageToPC(oPC,"Votre equipement semble vous affecter de pouvoir mystiques qui vous soigne efficacement !");
      }


}


int GetIsEquipped(string ResRefItem,object oCreature)
{
int i = 0;
int HasItem = 0;

      while(i<=NUM_INVENTORY_SLOTS)
      {
        if(GetResRef(GetItemInSlot(i,oCreature))==ResRefItem)
        {
        HasItem = 1;
        }
      i++;
      }

return HasItem;
}
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.




Ainsi, dès que vous vous équiperez des 4 items prédefinis par leur tag un effet soignant tous les pv du joueurs s'étant équipé de tous les items précisé s'effectuera ^^ .Si ce script ne te conviens pas, précise moi les changements à effectuer , je prendreais les mesures nécessaires ^^.


BYEBYE
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Zanon-blood
Acolyte
Inscrit le: 25 Jan 2005
Messages: 38
Répondre en citant
Posté le : 04/02/2006 00:17:19 Sujet du message :

C'est cool vraiment c'est toute a fait sa mait Very Happy
c'est possible de faire plusieur equipement avec des effet different 5 équipement qui ont chacun 4 morceau et des effet different Embarassed
et aussi de maitre un effet qui dur temp que on a les 4 morceau de l'armure 1 effet de mort un autre de feu de froid de terre et de foudre. Embarassed

et merci deja pour sa
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
castorus
Acolyte
Inscrit le: 24 Déc 2005
Messages: 23
Répondre en citant
Posté le : 04/02/2006 00:40:53 Sujet du message :

Oui c'est possible, mais je te demanderais les effets produit par les les cinq lot de 4 items ainsi que les effets visuels qu'ils prduiront sur leur possesseur. ^^
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Zanon-blood
Acolyte
Inscrit le: 25 Jan 2005
Messages: 38
Répondre en citant
Posté le : 04/02/2006 01:06:30 Sujet du message :

allor pour chaque set d'armure de la mort
VFX_DUR_PROTECTION_EVIL_MAJOR comme effet qui dur
augmente les point de vie
la 2 eme lui de la foudre
VFX_DUR_PROTECTION_GOOD_MAJOR
augmente la dextérite
le 3 eme lui du feu
VFX_DUR_AURA_FIRE
augmente la constitusion
le 4 eme lui de le terre
VFX_DUR_IOUNSTONE
augmente la force
le 5 eme lui de l'eau
VFX_DUR_ELEMENTAL_SHIELD
augmente la sagesse
Dernière édition par Zanon-blood le 04/02/2006 01:17:09; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
castorus
Acolyte
Inscrit le: 24 Déc 2005
Messages: 23
Répondre en citant
Posté le : 04/02/2006 01:10:57 Sujet du message :

Arf problème, les constantes d'effets visuels pouvant duré sont ceux commençant par VFX_DUR_
car les autres leurs effets visuels ne peuvent pas êtres prolongés malheureusement ils auront un effet visuel instantanément. Il faut donc malheureusement en choisir un autre. Je te propose de m'ajouter a ta liste de contact msn :
castorus9@hotmail.com je pourrais t'aider pleinement.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Zanon-blood
Acolyte
Inscrit le: 25 Jan 2005
Messages: 38
Répondre en citant
Posté le : 04/02/2006 01:13:07 Sujet du message :

oui j'ai vue mon ereur je re fait.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Zanon-blood
Acolyte
Inscrit le: 25 Jan 2005
Messages: 38
Répondre en citant
Posté le : 04/02/2006 01:18:01 Sujet du message :

excuse moi pour cette faute
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
castorus
Acolyte
Inscrit le: 24 Déc 2005
Messages: 23
Répondre en citant
Posté le : 04/02/2006 01:19:34 Sujet du message :

Pas besoin de s'excuser ^^ si on savait tout sans faire d'erreur tu n'aurais pas besoin de ce forum ^^ on a tous débuter alors profite de ce que tu auras appris simplement ne te pose pas d'autre questions^^
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
castorus
Acolyte
Inscrit le: 24 Déc 2005
Messages: 23
Répondre en citant
Posté le : 05/02/2006 02:01:52 Sujet du message :

Voici donc le script complet :

NWScript :

int GetIsEquipped(string ResRefItem,object oCreature);





void main()
{
object oPC = GetPCItemLastEquippedBy();
int PV = GetMaxHitPoints(oPC);
int PVActuel = GetCurrentHitPoints(oPC);
int DiffPV = PV-PVActuel;




      //Set d'armure de la Mort.
string sResRefObj1 = "obj1"; /*Remplacer le texte entre guillemet pour le vrai ResRef de vos objets qui soignent.*/
string sResRefObj2 = "obj2";
string sResRefObj3 = "obj3";
string sResRefObj4 = "obj4";

    if((GetIsEquipped(sResRefObj1,oPC)==1)&&
      (GetIsEquipped(sResRefObj2,oPC)==1)&&
      (GetIsEquipped(sResRefObj3,oPC)==1)&&
      (GetIsEquipped(sResRefObj4,oPC)==1))
      {
      ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(DiffPV),oPC);
      ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR),oPC);
      SendMessageToPC(oPC,"Votre equipement semble vous affecter de pouvoir mystiques qui vous soigne efficacement !");
      }

      //set d'armure de la foudre
string sResRefObjDeux1 = "obj1"; /*Remplacer le texte entre guillemet pour le vrai ResRef de vos objets qui soignent.*/
string sResRefObjDeux2 = "obj2";
string sResRefObjDeux3 = "obj3";
string sResRefObjDeux4 = "obj4";

    if((GetIsEquipped(sResRefObjDeux1,oPC)==1)&&
      (GetIsEquipped(sResRefObjDeux2,oPC)==1)&&
      (GetIsEquipped(sResRefObjDeux3,oPC)==1)&&
      (GetIsEquipped(sResRefObjDeux4,oPC)==1))
      {
      ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectAbilityIncrease(ABILITY_DEXTERITY,12),oPC);
      ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MAJOR),oPC);
      SendMessageToPC(oPC,"Votre equipement semble vous affecter de pouvoir mystiques qui vous soigne efficacement !");
      }




      //set d'armure du feu
string sResRefObjTrois1 = "obj1"; /*Remplacer le texte entre guillemet pour le vrai ResRef de vos objets qui soignent.*/
string sResRefObjTrois2 = "obj2";
string sResRefObjTrois3 = "obj3";
string sResRefObjTrois4 = "obj4";

    if((GetIsEquipped(sResRefObjTrois1,oPC)==1)&&
      (GetIsEquipped(sResRefObjTrois2,oPC)==1)&&
      (GetIsEquipped(sResRefObjTrois3,oPC)==1)&&
      (GetIsEquipped(sResRefObjTrois4,oPC)==1))
      {
      ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectAbilityIncrease(ABILITY_CONSTITUTION,12),oPC);
      ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectVisualEffect(VFX_DUR_AURA_FIRE),oPC);
      SendMessageToPC(oPC,"Votre equipement semble vous affecter de pouvoir mystiques qui vous soigne efficacement !");
      }




      //set d'armure de la terre
string sResRefObjQuatre1 = "obj1"; /*Remplacer le texte entre guillemet pour le vrai ResRef de vos objets qui soignent.*/
string sResRefObjQuatre2 = "obj2";
string sResRefObjQuatre3 = "obj3";
string sResRefObjQuatre4 = "obj4";

    if((GetIsEquipped(sResRefObjQuatre1,oPC)==1)&&
      (GetIsEquipped(sResRefObjQuatre2,oPC)==1)&&
      (GetIsEquipped(sResRefObjQuatre3,oPC)==1)&&
      (GetIsEquipped(sResRefObjQuatre4,oPC)==1))
      {
      ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectAbilityIncrease(ABILITY_STRENGTH,12),oPC);
      ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_DUR_IOUNSTONE),oPC);
      SendMessageToPC(oPC,"Votre equipement semble vous affecter de pouvoir mystiques qui vous soigne efficacement !");
      }




      //set d'armure de l'eau
string sResRefObjCinq1 = "obj1"; /*Remplacer le texte entre guillemet pour le vrai ResRef de vos objets qui soignent.*/
string sResRefObjCinq2 = "obj2";
string sResRefObjCinq3 = "obj3";
string sResRefObjCinq4 = "obj4";

    if((GetIsEquipped(sResRefObjCinq1,oPC)==1)&&
      (GetIsEquipped(sResRefObjCinq2,oPC)==1)&&
      (GetIsEquipped(sResRefObjCinq3,oPC)==1)&&
      (GetIsEquipped(sResRefObjCinq4,oPC)==1))
      {
      ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectAbilityIncrease(ABILITY_WISDOM,12),oPC);
      ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD),oPC);
      SendMessageToPC(oPC,"Votre equipement semble vous affecter de pouvoir mystiques qui vous soigne efficacement !");
      }

}


int GetIsEquipped(string ResRefItem,object oCreature)
{
int i = 0;
int HasItem = 0;

      while(i<=NUM_INVENTORY_SLOTS)
      {
        if(GetResRef(GetItemInSlot(i,oCreature))==ResRefItem)
        {
        HasItem = 1;
        }
      i++;
      }

return HasItem;
}
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.



BYEBYE ^^
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé 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 59.656ms