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 05/12/2024 03:36:13
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 |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Bon, voila, je cherche des scripts, voici ce que j'aimerais bien avoir :
Un script de pierre de rapel, on l'utilise, et avant d'etre teleporte, qu'il y ai un effet plutot "malefique" (comme le portail qui s'ouvre quand on invoque un balor autour du pj, et qu'il y est la colone rouge qui tombe du ciel de mise a mal). Ensuite on arrive au portail (portail_rapel) dans une salle et qu'il y est un placable qu'on peut utiliser pour rejoindre le chef de groupe ou retourner la ou on a utiliser la pierre. Voila, j'espere avoir ete clair. |
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Bon ... je sais pas si j'ai ete assez precis.
En fait je cherche a faire une pierre de rapel, je sais deja faire le script, mais j'ai besoin de votre aide pour faire les effets : La pierre s'apel : artefact_rapel Le portail pour arriver s'apel : portail_rapel Il faudrait que lorqu'on active l'objet, il y ai un effet "malefique" comme : Le portail qui s'ouve autour du balor lorsqu'on lance le sort : Portail (les sortes de 3 gros menhirs) et qu'il y ai ensuite la "colone" rouge lorsqu'on lance mise a mal sur quelqu'un qui tombe sur le joueur. ENsuite, l'orsqu'on a utiliser la pierre, on arrive dans la salle du portail et qu' il y ai un placable (une colonne de lumiere par exemple) et que quand on l'utilise, il y ait un dialogue : (placable): "Que voulez vous faire ?" (pj) : "rien" (pj, 2eme choix) : "Aller la ou le chef du goupe se trouve" -> comme l'indique la phrase, ce serait d'aller la ou se trouve le chef de groupe (avec un effet de colonne de feu) (pj, 3eme choix) : "retourner de la d'ou je viens" -> comme l'indique encore la phrase, ce serait d'aller au dernier endroit on l'on a utiliser la pierre de rapel. Merci d'avori suivit jusqu'ici et j'espere que vous pourez me donner ce que je souhaites. @+ |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
pour les effets visuels :
NWScript :
effect eVis1 = EffectVisualEffect(VFX_IMP_HARM); // mise a mal effect eVis2 = EffectVisualEffect(VFX_FNF_SUMMON_GATE); //portail (pas completement sur mais je crois c'est celui la) effect eVis3 = EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_FIRE); //colonne de feu //pour les apeler ApplyEffectToObject(DURATION_TYPE_INSTANT,eVisXXX,oPC); //avecXXX en fonction de l'effet Pour rejoindre le chef de groupe : NWScript :
effect eVis3 = EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_FIRE); object oPC = GetPCSpeaker(); ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis3,oPC); DelayCommand(1.5,AssignCommand(oPC,JumpToObject(GetFactionLeader(oPC)))); Pour le renvoyer là où il est mort : D'abord dans le OnUsed de la pierre, rajouter : NWScript :
object oPC = GetLastUsedBy(); location lPierre = GetLocation(oPC); string sWPRappel = GetName(oPC)+GetPCPublicCDKey(oPC); CreateObject(OBJECT_TYPE_WAYPOINT,"wp_pierre",lPierre,FALSE,"WP_RAPPEL"+sWPRappel); Avant ça, créer un WP de resref "wp_pierre". Dans le dialogue : NWScript :
object oPC = GetPCSpeaker(); string sName = "WP_RAPPEL"+GetName(oPC)+GetPCPublicCDKey(oPC); object oWP = GetObjectByTag(sName); AssignCommand(oPC,JumpToObject(oWP)); Je crois que c'est à peu près ça. En tout cas ça devrait te donner une idée déja... |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
Ah oui, dans le OnUsed de la pierre j'ai oublié de détruire le précédent WP...
rajoute : 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. juste avant le CreateObject() En fait je me rends compte qu'il y a beaucoup plus simple... Oublies tout le reste avec les WP et essaye plutot : Dans le OnItemActivated: NWScript :
object oPC = GetItemActivator(); location lPositionPierre = GetLocation(oPC); SetLocalLocation(oPC,"POSITION_RAPPEL",lPositionPierre); dans le dialogue pour y retourner : NWScript : object oPC = GetPCSpeaker(); location lLoc = GetLocalLocation(oPC,"POSITION_RAPPEL"); AssignCommand(oPC,JumpToLocation(lLoc)); |
Revenir en haut | |
Black Knight Grand Maître Chanteur du Conseil Messages: 1031 Localisation: Fin fond du trou du cul du monde |
Ne pas mettre juste le NOM du joueur, car cela peut créer des bugs avec certains joueurs qui s'amusent a prendre identiquement le même nom que un autre joueur!
_________________ [http] |
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Houla ! J'ai pas tout bien compris moi, il se trouve ou le OnUsed de la pierre ? et qu'est ce que je dois mettre et ou .. parceque la j'ai pas bien compris
En fait si il y avait un truc pour copier coller : Le tag de la pierre est : xdsArtefact_rapel Le tag du portail est : xdsPortail_rapel Voila, je vais essayer de me debrouiller un peu tout seul, enfin bon, si vous pouviez quand meme me dire ce qu'il faut que je fasse ... |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
D'accord j'ai pas été très clair en plus j'ai dit des bétises paske le OnUsed de la pierre y en a pas, c'est le OnItemActvated du module...
Donc... Dans l'événement OnActivateItem du module : NWScript :
object oPC = GetItemActivator(); object oItem = GetItemActivated(); string sTag = GetTag(oItem); if (sTag == "xdsArtefact_rapel") { effect eVis1 = EffectVisualEffect(VFX_IMP_HARM); effect eVis2 = EffectVisualEffect(VFX_FNF_SUMMON_GATE); location lPositionPierre = GetLocation(oPC); ApplyEffectAtLocation(DURATION_TYPE_INSTANT,lPositionPierre,eVis2); DelayCommand(0.3,ApplyEffectToObject(DURATION_TYPE_INSTANT,oPC,eVis1)); SetLocalLocation(oPC,"POSITION_RAPPEL",lPositionPierre); //Enregistre la position sur le joueur object oPortail = GetObjectByTag("xdsPortail_rapel"); DelayCommand(1.0,AssignCommand(oPC,JumpToObject(oPortail))); } Dans l'action conséquente du "rejoindre le chef de groupe" : NWScript :
void main() { effect eVis3 = EffectVisualEffect(VFX_IMP_DIVINE_STRIKE_FIRE); object oPC = GetPCSpeaker(); ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis3,oPC); DelayCommand(1.5,AssignCommand(oPC,JumpToObject(GetFactionLeader(oPC)))); //ajuste la duree du delai } Dans l'action conséquente de retourner au dernier endroit : NWScript :
void main() { object oPC = GetPCSpeaker(); location lLoc = GetLocalLocation(oPC,"POSITION_RAPPEL"); //retrouve la position stockee AssignCommand(oPC,JumpToLocation(lLoc)); } Voila j'espère que c'est plus clair. |
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Bon, j'ai reussi a faire le script de la pierre de rapel, ca donne ca (sauf que j'arrive pas a mettre d'effet de portail et de mise a mal donc si quelqu'un pourait me les inserer) :
NWScript :
void main() { object oActivated=GetItemActivated(); // si l'objet est la pierre de retour on prend l'utilisateur et on le teleporte au portail if (GetTag(oActivated)=="xdsArtefact_rapel") { // enregistre dans oUser l'utilisateur de l'objet object oUser=GetItemActivator(); // On verifie que l'utilisateur est un PJ if (GetIsPC(oUser)) { AssignCommand(oUser, JumpToObject(GetObjectByTag("xdsPortail_rapel"))); } } } Par contre apres je retourne pas au dernier endroit quand je clique dessus dans le dialogue |
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Oups ... j'avais pas vut ton message d'ava,t
|
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Erf, ca marche pas, pour la pierre, bon je vais miom moi @+
|
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
meuh si ça marche, j'ai juste trompé avec les ApplyEffect, dans l'ordre des paramètres, il faut mettre l'effet visuel avant la cible (désolé).
donc : ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eVis2,lPositionPierre); DelayCommand(0.3,ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis1,oPC)); Et augmente le delayCommand du téléport, paske le portail avec 1.0 on le voit pas vraiment (2.0 ça me semble mieux). |
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Ca me mets que c'est pas compile
|
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
NWScript :
void main() { object oPC = GetItemActivator(); object oItem = GetItemActivated(); string sTag = GetTag(oItem); if (sTag == "xdsArtefact_rapel") { effect eVis1 = EffectVisualEffect(VFX_IMP_HARM); effect eVis2 = EffectVisualEffect(VFX_FNF_SUMMON_GATE); location lPositionPierre = GetLocation(oPC); ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eVis2,lPositionPierre); DelayCommand(0.3,ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis1,oPC)); SetLocalLocation(oPC,"POSITION_RAPPEL",lPositionPierre); object oPortail = GetObjectByTag("xdsPortail_rapel"); DelayCommand(2.0,AssignCommand(oPC,JumpToObject(oPortail))); } } Ca ça compile et ça marche chez moi en tout cas... |
Revenir en haut | |
mork Seigneur Messages: 205 Localisation: A landeda, pres de brest |
Ca marche impec ! 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