La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 05/12/2024 03:36:13


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 20/11/2005 13:18:50 Sujet du message : Cherche scripts !

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 Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 20/11/2005 15:47:43 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 20/11/2005 19:41:23 Sujet du message :

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


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.


Pour rejoindre le chef de groupe :

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.


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);
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.


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));

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.


Je crois que c'est à peu près ça. En tout cas ça devrait te donner une idée déja...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 21/11/2005 02:03:41 Sujet du message :

Ah oui, dans le OnUsed de la pierre j'ai oublié de détruire le précédent WP...

rajoute :
NWScript :


object oOldWP = GetOjectByTag(sWPRappel);

if (GetIsObjectValid(oOldWP)) DestroyObject(oOldWP);

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);
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.


dans le dialogue pour y retourner :

NWScript :

object oPC = GetPCSpeaker();
location lLoc = GetLocalLocation(oPC,"POSITION_RAPPEL");

AssignCommand(oPC,JumpToLocation(lLoc));
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.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 21/11/2005 08:10:02 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 21/11/2005 18:06:05 Sujet du message :

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 Very Happy

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 Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 21/11/2005 18:32:32 Sujet du message :

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)));

}
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.


Dans l'action conséquente du "rejoindre le chef de groupe" :

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.


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));
}

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.


Voila j'espère que c'est plus clair.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 21/11/2005 18:49:18 Sujet du message :

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")));
}

}
}

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.


Par contre apres je retourne pas au dernier endroit quand je clique dessus dans le dialogue
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 21/11/2005 18:59:23 Sujet du message :

Oups ... j'avais pas vut ton message d'ava,t Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 21/11/2005 19:05:28 Sujet du message :

Erf, ca marche pas, pour la pierre, bon je vais miom moi @+
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 21/11/2005 20:06:40 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 22/11/2005 17:35:46 Sujet du message :

Ca me mets que c'est pas compile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 22/11/2005 19:19:01 Sujet du message :

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)));

}
}
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.


Ca ça compile et ça marche chez moi en tout cas...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 22/11/2005 20:28:04 Sujet du message :

Ca marche impec ! merci !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger 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 74.092ms