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 09:39:06
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 |
chevalier blanc Grand Chevalier Messages: 117 Localisation: Sur les Côtes d'Opaline |
(je n'ai pas trouvé de topic semblable sur la recherche, pardonnez moi donc si j'ai mal cherché)
Voilà je me lance dans la customisation sévère pour des équipements un peu spéciaux... des artefacts. J'aimerai savoir comment faire pour que, par exemple, une armure, une fois équipée puisse faire des effets spéciaux sur le pj qui la porte (effet type ghost, voire meme une metamorphose, bouclier magique, etc...) Ou encore comment faire en sorte qu'une arme, a chaque coup porté ou une fois equipée (comme l'armure) puisse faire un effet donné (tremblement de terre style bump, aura maléfique/bénéfique, etc...) Je ne sais pas trop ou faire ce genre de script mais d'apres moi ce n'est pas tres compliqué. Pouvez vous eclairer ma lanterne, ô puissants d'entre les puissants qui détenez le savoir du script ? Dernière édition par chevalier blanc le 20/07/2006 15:02:55; édité 1 fois
|
Revenir en haut | |
Aladar Chevalier Messages: 96 Localisation: Tours |
Citation : une armure, une fois équipée puisse faire des effets spéciaux sur le pj qui la porte (effet type ghost, voire meme une metamorphose, bouclier magique, etc...) Pour qu'une armure, une fois équipée, applique un effet sur le pj, quelque chose comme ça dans le OnEquipItem devrait faire l'affaire (pas testé) :
NWScript :
void main() { object pj = GetPCItemLastEquippedBy(); object item = GetPCItemLastEquipped(); if(GetTag(item) == "armure_fantome") { effect evis = EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE); ApplyEffectToObject(DURATION_TYPE_PERMANENT, evis, pj); } } Si le PJ qui equipe l'item de tag "armure_fantome", alors ça applique l'effet "visage spectral" sur ce dernier. Et pour enlever l'effet lorsqu'il désequippe l'armure, dans le OnUnequipItem : NWScript :
void main() { object pj = GetPCItemLastUnequippedBy(); object item = GetPCItemLastUnequipped(); if(GetTag(item) == "armure_fantome") { effect evis = EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE); RemoveEffect(pj, evis); } } Après c'est facilement modifiable pour ajouter de nombreux objets/effets, par exemple : NWScript :
void main() { object pj = GetPCItemLastEquippedBy(); object item = GetPCItemLastEquipped(); if(GetTag(item) == "armure_fantome") { effect evis = EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE); ApplyEffectToObject(DURATION_TYPE_PERMANENT, evis, pj); } if(GetTag(item) == "tag d'un autre objet") { effect evis2 = autre effet(); Applyblabla( ... ); } if( etc ... ) { ... } } Même chose pour le OnUnequipItem, en esperant que ça puisse t'aider |
Revenir en haut | |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Hmmm faire en sorte qu'une arme fasse tramblement de terre.. je sais pas si c'est possible, enfin avec des armes de jet, car les armes corp à corp il faut leur rajouter la competence "Lancer un sort". Par contre Lancer un Sort et Effet sont different, fait gaff comment tu t'y prend
_________________ [http] |
Revenir en haut | |
chevalier blanc Grand Chevalier Messages: 117 Localisation: Sur les Côtes d'Opaline |
Cool ! merci pour les armures ! j'ai pas encore testé mais ça m'a l'air logique.
Et pour les armes il n'y a pas une fonction qui permet d'activer un effet a l'impact (juste l'effet parce que rajouter "sort au toucher" fait automatiquement un sort) juste un effet pour le fun, pas forcement avec des degats, mais plutot un effet de sort personnalisé. |
Revenir en haut | |
Aladar Chevalier Messages: 96 Localisation: Tours |
Pour les armes, après une courte recherche, j'ai trouvé ce lien qui devrait combler tes attentes
|
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Si tu rajoutes une propriété "sort déclanché au toucher : Pouvoir unique (OnHit)"
Ensuite tu fais un script du même tag que l'arme ou tu décris tes effets, d'ailleurs fais ça pour tous tes objets, un script avec le tag de l'objet et selon les cas : NWScript :
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. C'est beaucoup plus clair que de faire le tri par tag dans les évenements module, tu as tout ce qui concerne un objet dans un même script. Ah et sur le script d'Aladar, le truc pour virer les effets va pas marcher... |
Revenir en haut | |
Aladar Chevalier Messages: 96 Localisation: Tours |
En effet ça ne marche pas
*a trouvé quoi faire de sa soirée* |
Revenir en haut | |
chevalier blanc Grand Chevalier Messages: 117 Localisation: Sur les Côtes d'Opaline |
Ahem... euh
Comment je definis le oPC, l'item et la cible dans ce script ? (désolé mais je suis pas un crack en script ) |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Tu ouvres x2_it_example et tu trouves :
NWScript :
//:///////////////////////// ///////////////////// //:: Example Item Event Script //:: x2_it_example //:: Copyright (c) 2003 Bioware Corp. //:///////////////////////// //////////////////// /* This is an example on how to use the new default module events for NWN to have all code concerning one item in a single file. Note that this system only works, if the following events set on your module OnEquip - x2_mod_def_equ OnUnEquip - x2_mod_def_unequ OnAcquire - x2_mod_def_aqu OnUnAcqucire - x2_mod_def_unaqu OnActivate - x2_mod_def_act */ //:///////////////////////// //////////////////// //:: Created By: Georg Zoeller //:: Created On: 2003-09-10 //:///////////////////////// //////////////////// #include "x2_inc_switches" void main() { int nEvent =GetUserDefinedItemEventNumber(); object oPC; object oItem; SendMessageToPC(GetFirstPC(),IntToString(nEvent)); // * This code runs when the item has the OnHitCastSpell: Unique power property // * and it hits a target(weapon) or is being hit (armor) // * Note that this event fires for non PC creatures as well. if (nEvent ==X2_ITEM_EVENT_ONHITCAST) { oItem = GetSpellCastItem(); // The item casting triggering this spellscript object oSpellOrigin = OBJECT_SELF ; // On a weapon: The one wielding the weapon. On an armor: The one wearing an armor object oSpellTarget = GetSpellTargetObject(); // On a weapon: The one being hit. On an armor: The one hitting the armor oPC = OBJECT_SELF; } // * This code runs when the Unique Power property of the item is used // * Note that this event fires PCs only else if (nEvent == X2_ITEM_EVENT_ACTIVATE) { oPC = GetItemActivator(); oItem = GetItemActivated(); } // * This code runs when the item is equipped // * Note that this event fires PCs only else if (nEvent ==X2_ITEM_EVENT_EQUIP) { oPC = GetPCItemLastEquippedBy(); oItem = GetPCItemLastEquipped(); } // * This code runs when the item is unequipped // * Note that this event fires PCs only else if (nEvent ==X2_ITEM_EVENT_UNEQUIP) { oPC = GetPCItemLastUnequippedBy(); oItem = GetPCItemLastUnequipped(); } // * This code runs when the item is acquired // * Note that this event fires PCs only else if (nEvent == X2_ITEM_EVENT_ACQUIRE) { oPC = GetModuleItemAcquiredBy(); oItem = GetModuleItemAcquired(); } // * This code runs when the item is unaquire d // * Note that this event fires PCs only else if (nEvent == X2_ITEM_EVENT_UNACQUIRE) { oPC = GetModuleItemLostBy(); oItem = GetModuleItemLost(); } //* This code runs when a PC or DM casts a spell from one of the //* standard spellbooks on the item else if (nEvent == X2_ITEM_EVENT_SPELLCAST_AT) { oPC = GetLastSpellCaster(); oItem = GetSpellTargetObject(); } } |
Revenir en haut | |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Sith je t'aime, je n'arrivais pas à comprendre les OnUserDef mais maintenant oui!! *love you *. Mais question, le OnHitCast marche aussi avec les arme de jet, j'imagine bien me faire l'arme de Zeus et a chaque coup un un clair tombe sur la cible, et boum xD
_________________ [http] |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Je crois que ça marche avec les armes de jet, et qu'avec les armes de tir en revanche c'est le projectile qui déclanche le OnHit. C'est simple à verifier d'ailleurs, si tu peux coller un pouvoir OnHit sur une arme de jet c'est que ça marche ^^
|
Revenir en haut | |
chevalier blanc Grand Chevalier Messages: 117 Localisation: Sur les Côtes d'Opaline |
C'est excellent ! Ca marche du tonnerre !
Merci beaucoup à toi Sith pour avoir résolu tout ça Et merci aux autres d'avoir essayé |
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