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 23/11/2024 12:59:16
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 |
Aladar Chevalier Messages: 96 Localisation: Tours |
Bonsoir,
j'ai essayé, pour faire un test, de créer une boucle qui chercherait un effet sur un PJ. Le probleme est que j'ai du mal, il semble que je n'ai pas très bien compris comment les utiliser. J'ai passé pas mal de temps à chercher mon erreur et, meme si j'arrive à obtenir des resultats presque concluant, je ne parviens pas à la faire fonctionner comme je le voudrais. Voilà le code : NWScript :
void main() { object oPJ = GetLastUsedBy(); effect eEffect = EffectInvisibility(EFFECT_TYPE_INVISIBILITY ||EFFECT_TYPE_IMPROVEDINVISIBILITY ||EFFECT_TYPE_SANCTUARY); eEffect = GetFirstEffect(oPJ); int vu = 1;//Si vu reste a 1, alors le pj n'est pas invisible while(GetIsEffectValid(eEffect) && vu == 1) { if(!GetEffectType(eEffect))//Si aucun des effets n'est valide, on passe vu a 0 { vu = 0; } eEffect = GetNextEffect(oPJ); } if(vu == 1) FloatingTextStringOnCreature("Tu es invisible", oPJ); else FloatingTextStringOnCreature("Tu n'es pas invisible", oPJ); } Le but ; Si oPJ est sous l'effet de eEffect (invis, invis sup ou sanctuaire), un message "Tu es invisible" apparait, sinon, "tu n'es pas invisible". Plutot que de continuer à faire moultes modifications desquelles je ne suis pas sur de tirer de conclusions, je m'en remets za vous Aussi j'aurai voulu que quelqu'un m'explique ou est mon erreur. Merci d'avance. |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Ta boucle est bonne, c'est le test sur l'effet qui ne l'est pas.
Essaye ça ça doit marcher : NWScript :
void main() { object oPC = GetLastUsedBy(); int bVisible = TRUE; effect eEffect = GetFirstEffect(oPC); int nType; while (GetIsEffectValid(eEffect)) { nType = GetEffectType(eEffect); if (nType == EFFECT_TYPE_INVISIBILITY || nType == EFFECT_TYPE_IMPROVEDINVISIBILITY || nType == EFFECT_TYPE_SANCTUARY) { bVisible = FALSE; break; } eEffect = GetNextEffect(oPC); } if (bVisible) FloatingTextStringOnCreature("Tu n'es pas invisible", oPC); else FloatingTextStringOnCreature("Tu es invisible", oPC); } Tu ne peux pas vraiment comparer des effets, juste travailler sur des effets actifs en passant par le type d'effet. un truc comme : NWScript :
effect eInvis = EffectInvisibility(INVISIBILITY_TYPE_IMPROVED); if (GetFirstEffect(oPC) == eInvis) blablabla ne marche pas, car ça n'est pas une comparaison de type, mais de l'effet proprement dit, or l'un c'est celui qui est sur le joueur et l'autre est tout à fait virtuel. |
Revenir en haut | |
Aladar Chevalier Messages: 96 Localisation: Tours |
Ah d'accord
Le pire, c'est que je le savais... J'etais tellement persuadé que le probleme venait de la boucle que j'ai absolument pas fait gaffe à ca. Forcement, ca marche beaucoup mieux ainsi ! Grand merci |
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