
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 01/05/2025 00:41:07
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 |
Indur Aubemort Acolyte Messages: 26 Localisation: Marseille |
Bonjour à vous je voudrais connaitre et savoir comment faire pour qu'un objet transforme en créature choisie celui qui l'utilise autant qu'il soit pj ou pnj ?
Exemple => Oeil de balor => je l'utilise et me transforme en balor _________________ PsY| |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() ![]() |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Allons-y
Tout d'abord créer un objet magique (type amulette) et lui donner la propriété (pouvoir unique ou pouvoir unique uniquement sur soi: dans la catégorie lancer un sort) Ensuite lui donner un Nom et un Tag (ici OeilBalor) Puis aller dans Propriétés du module/Evènement/OnActivateItem/ et insérer le script ci-dessous NWScript :
void main() { object oOeil = GetObjectByTag("OeilBalor"); // indique le nom de l'objet qui permet la transformation object oTest = GetItemActivated(); object oPC = GetItemActivator(); object oCible = GetItemActivatedTarget(); if (oOeil == oTest) { ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPolymorph(POLYMORPH_TYPE_BALOR), oCible, 120.0); DelayCommand (110.0, SendMessageToPC(oPC, "L'oeil de Balor a finit son office...")); // 10 secondes avant la fin, le lanceur est averti de l'imminence de la fin } } On pourrait aussi ajouter un script dans le OnAcquireItem pour avertir soit par journal soit par SendMessageToPC que le joueur est en possession d'un objet d'une puissance occulte incomparable... J'aurai tendance à rajouter une aura de terreur pour donner d'avantage de poids à l'évènement... Mais cela alourdi la clarté du propos _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | ![]() ![]() ![]() ![]() |
Indur Aubemort Acolyte Messages: 26 Localisation: Marseille |
Oki ca roule merci et maintenant comment faire pour que la durée de la transformation soit continue?jusqua un repos ou anulement de metamorphose
_________________ PsY| |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() ![]() |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Et voila c'est toujours la même chose... Ils en veulent toujours plus... Bon laisse moi un quart d'heure que j'essaie quelques incantations impies...
_________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | ![]() ![]() ![]() ![]() |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Bien... en consultant les antiques grimoires de Tooth, je t'ai trouvé ceci.. Mais quelques remarques préliminaires... Ce qui suit n'est logique que si la transformation se fait sur le joueur et plus sur sur un PNJ.
NWScript :
// Dans le OnActivateItem du module void main() { object oOeil = GetObjectByTag("OeilBalor"); // indique le nom de l'objet qui permet la transformation object oTest = GetItemActivated(); object oPC = GetItemActivator(); object oCible = GetItemActivatedTarget(); if (oOeil == oTest) { SetLocalInt(GetModule(), "polymorph", 10); // La transformation est permanente ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectPolymorph(POLYMORPH_TYPE_BALOR), oCible); } } NWScript : / A placer dans "OnPlayerRest" du module void main() { object oTarget = GetLastPCRested(); if (GetLocalInt(GetModule(), "polymorph") == 10 && GetItemPossessor(GetObjectByTag("OeilBalor")) == oTarget) { effect eBad = GetFirstEffect(oTarget); //Recherche un effet sur le joueur qui se repose... while(GetIsEffectValid(eBad)) { if (GetEffectType(eBad) == EFFECT_TYPE_POLYMORPH) { //Retire l'effet polymorph. RemoveEffect(oTarget, eBad); } eBad = GetNextEffect(oTarget); } } } _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | ![]() ![]() ![]() ![]() |
Indur Aubemort Acolyte Messages: 26 Localisation: Marseille |
*as honte*Merci pour tout franchement mais une dernuere petite question "Quels sont les codes des transformations?"exemple pr le trasnformer en louper ou tout ce que je veux les codes quoi et ou jdoi les metre.
_________________ PsY| |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() ![]() |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Si tu entends par code de transformation les références des créatures dont tu cherches à prendre l'apparence, tu les trouveras dans l'éditeur de script, dans l'onglet Constantes... Pour toutes les voir... Tapes "POLYMORPH_TYPE_"
et toute la liste se déroule POLYMORPH_TYPE_BADGER -> POLYMORPH_TYPE_ZOMBIE en passant par POLYMORPH_TYPE_WOLF. Il suivit de chercher POLYMORPH_TYPE_BALOR par celui que tu désires et l'apparence changera... Je suis en train de chercher pour ta douche... J'ai une piste ou plutôt un filet d'eau..; Ca marche mais la douche est trop faiblarde... Donc je suis en train de manipuler des boucles pour donner un effet plus conséquent... Enfin je verrai ça demain si le père noël m'en laisse le temps.. En Attendant crée un déclencheur à l'endroit de la douche avec en OnEnter NWScript :
void main() { //object oPC = GetClickingObject(); object oPC = GetEnteringObject(); location Lloc = GetLocation(OBJECT_SELF); if (GetIsPC(oPC)) { ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_MAGIC_PROTECTION),oPC); // CreateObject(OBJECT_TYPE_PLACE ABLE, "plc_waterdrip", Lloc, TRUE); // CreateObject(OBJECT_TYPE_PLACE ABLE, "plc_waterdrip", Lloc, TRUE); CreateObject(OBJECT_TYPE_PLACEABLE, "plc_waterdrip", Lloc, TRUE); } } et OnExit NWScript :
void main() { object oExit = GetExitingObject(); object oDestroy = GetNearestObjectByTag("WaterDrip",OBJECT_SELF,1); if (GetIsPC(oExit)) {DestroyObject(oDestroy);} } Ce sont des scripts de travail donc pas clairs et non anotés... Pourle moment ca marche mais c'est pas très impressionnant _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | ![]() ![]() ![]() ![]() |
Indur Aubemort Acolyte Messages: 26 Localisation: Marseille |
Oki merci par contre le script pour que la métamorphose reste permanante jusqu'à un repos ou annulement ne marche pas...
Celui ci Longbow a écrit : NWScript :
// Dans le OnActivateItem du module void main() { object oOeil = GetObjectByTag("OeilBalor"); // indique le nom de l'objet qui permet la transformation object oTest = GetItemActivated(); object oPC = GetItemActivator(); object oCible = GetItemActivatedTarget(); if (oOeil == oTest) { SetLocalInt(GetModule(), "polymorph", 10); // La transformation est permanente ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectPolymorph(POLYMORPH_TYPE_BALOR), oCible); } } NWScript : / A placer dans "OnPlayerRest" du module void main() { object oTarget = GetLastPCRested(); if (GetLocalInt(GetModule(), "polymorph") == 10 && GetItemPossessor(GetObjectByTag("OeilBalor")) == oTarget) { effect eBad = GetFirstEffect(oTarget); //Recherche un effet sur le joueur qui se repose... while(GetIsEffectValid(eBad)) { if (GetEffectType(eBad) == EFFECT_TYPE_POLYMORPH) { //Retire l'effet polymorph. RemoveEffect(oTarget, eBad); } eBad = GetNextEffect(oTarget); } } } _________________ PsY| |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() ![]() |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
J'en suis très étonné, je viens de relancer le module d'essai qui fonctionne parfaitement... La transformation s'arrête dès que le joueur lance le repos. Encore une fois, désormais uniquement sur soi-même...
Je t'envoie un e-mail avec un module d'essai... en pièce jointe. _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | ![]() ![]() ![]() ![]() |
Indur Aubemort Acolyte Messages: 26 Localisation: Marseille |
Ok mercic a marche et maintenant comment pourais-je faire pour transformer quelqu'un en chauve souris j'ai essayer
PLYMORPH_TYPE_BAT mais ce polymorph n'existe pas . _________________ PsY| |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() ![]() |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Alors là attention c'est du lourd et ca mériterait de rentrer dans la section "personnalisable"..
En effet, il faut modifier des fichiers 2DA et nss... Puis les inclure dans un HakPak... Il me semble avoir déja parlé de cela Citation : Et pour donner l'apparence d'un vieil homme(ou d'une chauve souris) au PJ, c'est POSSIBLE. Il faut pour cela modifier le fichier polymorph.2da, appeareance.2da et nwscript.nss. C'est relativement hardu, mais j'ai déja réussi à donner l'apparence d'un feu follet, d'un Boss Ogre à un PJ... Alors pourquoi pas le vieil homme. Si tu es interressé, je peux t'envoyer les fichiers avec les explications... Attention, il faut connaître le fonctionnement des fichiers .2da Alors je te pose la question... Est-ce que tu maîtrises les 2DA ?_________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | ![]() ![]() ![]() ![]() |
Indur Aubemort Acolyte Messages: 26 Localisation: Marseille |
C'est bon j'abandonne ! lol
_________________ PsY| |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() ![]() |
Longbow Grand Sage du Conseil Messages: 638 Localisation: Orléans |
Mais non, on s'accroche !!
Je viens de poster ... un tutoriel _________________ Rex illeteratus Quasi Asinus Coronatus Jean de Salisbury |
Revenir en haut | ![]() ![]() ![]() ![]() |
edisnotdead Grand Chevalier ![]() Messages: 132 |
salut j ai vu ton tutorial il ma bien aidé par contre avec ton script de polymorphe quand on a deux objet avec le méme tag aucun ne marche ..
c est a dire deux personne avec le meme objet dans une meme piece ne peuvent pas se transformer . ce que j essaye de resoudre en vain jusqua maintenant. tout aide serai la bienvenu^^ edisnotdead |
Revenir en haut | ![]() ![]() ![]() |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Sinon il y a une fonction plus pratique je trouve c'est
NWScript :
// Sets the creature's appearance type to the value specified (uses the APPEARANCE_TYPE_XXX constants) void SetCreatureAppearanceType(object oCreature, int nAppearanceType) Non ? tu as beaucoup plus de forme... _________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
edisnotdead Grand Chevalier ![]() Messages: 132 |
pour les formes ce n est pas un probleme j ai repertorié toute les formes dont j avait besoin dans un hack pakc..
mais merci quand meme.. Ca doit fair 10 beure que je suis dessus je veu trouver *tetu*^^ |
Revenir en haut | ![]() ![]() ![]() |
edisnotdead Grand Chevalier ![]() Messages: 132 |
en fait j ai trouvé la solution mais le seul ick c est que je ne peut plus mettre les autre transformation sans que tous ce lance avec n importe quelle tag voili mon probleme ^^
|
Revenir en haut | ![]() ![]() ![]() |
edisnotdead Grand Chevalier ![]() Messages: 132 |
je vien de m appercevoir que l on comprendra rien a mon probleme avec le message precedent alors je montre mon script modifié
NWScript : // Dans le OnActivateItem du module void main() { object vpolyblanc = GetObjectByTag("polyblanc"); // indique le nom de l'objet qui permet la transformation object vPC = GetItemActivator(); object vCible = GetItemActivatedTarget(); { // La transformation est permanente ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectPolymorph(POLYMORPH_TYPE_DRAGON_WHITE), vCible); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_ICESTORM), vCible); ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_DUR_AURA_COLD), vCible); } { object cpolydemon = GetObjectByTag("polydemon"); // indique le nom de l'objet qui permet la transformation object cTest = GetItemActivated(); object cPC = GetItemActivator(); object cCible = GetItemActivatedTarget(); // La transformation est permanente ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectPolymorph(POLYMORPH_TYPE_BALOR), cCible); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_LOS_EVIL_30), cCible); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_FIRE), cCible); } { object bpolyevil = GetObjectByTag("polyevil"); // indique le nom de l'objet qui permet la transformatio object bPC = GetItemActivator(); object bCible = GetItemActivatedTarget(); { // La transformation est permanente ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectPolymorph(POLYMORPH_TYPE_DEVIL), bCible); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_LOS_EVIL_30), bCible); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_EVIL), bCible); ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_IMP_AURA_NEGATIVE_ENERGY), bCible); } } } |
Revenir en haut | ![]() ![]() ![]() |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Tu ne met pas les tests entre l'objet activé et les tag repertoriés, donc voilà j'ai refait comme sa
NWScript :
void main() { object oPC, oItem; oPC = GetItemActivator(); oItem = GetItemActivated(); string sTag = GetTag(oItem); // object oCible = GetItemActivatedTarget(); // Pouvoir uniquement sur soi donc inutile je pense // qu'il n'y en a pas besoin... if(sTag == "polyblanc") { ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectPolymorph(POLYMORPH_TYPE_DRAGON_WHITE), oPC); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_ICESTORM), oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_DUR_AURA_COLD), oPC); } else if(sTag == "polydemon") { ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectPolymorph(POLYMORPH_TYPE_BALOR), oPC); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_LOS_EVIL_30), oPC); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_FIRE), oPC); } else if(sTag == "polyevil") { ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectPolymorph(POLYMORPH_TYPE_DEVIL), oPC); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_LOS_EVIL_30), oPC); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_GAS_EXPLOSION_EVIL), oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_IMP_AURA_NEGATIVE_ENERGY), oPC); } } Dit si sa marche... _________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr Dernière édition par Ivellios le 22/02/2005 17:29:04; édité 1 fois
|
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
edisnotdead Grand Chevalier ![]() Messages: 132 |
merci ca marche du feu de dieu ^^
|
Revenir en haut | ![]() ![]() ![]() |


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