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 29/12/2024 19:12:01
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 |
Tuyen Demi-dieu Messages: 460 Localisation: Chez moi |
Bonjour tout le monde!
Alors voila!! Je fais mes débuts dans l'écriture de scripts et pour l'instant ils sont plutot comme chi comme cha... lol! J'ai tenté de faire compter un personnage jusqu'à dix avant de donner l'attaque au personnage joueur... ca a l'air simple sur le papier et même la compilation ne trouve pas d'erreurs, mais comme par hasard bien sur ca ne marche pas du tout dans le jeu!! sniiiiff!!! voici mon script Code : /* Ce script fait attendre le perso pendant 10 secondes avant d'appeler
les gardes qui attaqueront le PC */ //::////////////////////////////////////////////// //:: Created By: Tuyen //:: Created On: 8/04/2003 //::////////////////////////////////////////////// void main() { object oGarde1 = GetObjectByTag("waldogarde1"); object oGarde2 = GetObjectByTag("waldogarde2"); ActionWait (2.0); ActionSpeakString("Je commence a compter..."); ActionWait (2.0); ActionSpeakString("Un..."); ActionWait (2.0); ActionSpeakString("Deux..."); ActionWait (2.0); ActionSpeakString("Trois..."); ActionWait (2.0); ActionSpeakString("Quatre..."); ActionWait (2.0); ActionSpeakString("Cinq..."); ActionWait (2.0); ActionSpeakString("Six..."); ActionWait (2.0); ActionSpeakString("Sept..."); ActionWait (2.0); ActionSpeakString("Huit..."); ActionWait (2.0); ActionSpeakString("Neuf..."); ActionWait (2.0); ActionSpeakString("...Et dix!!!..."); ActionWait (2.0); ActionSpeakString("GAARRRDES!!!!!!!"); AssignCommand(oGarde1, ActionWait(1.0)); AssignCommand(oGarde2, ActionWait(1.0)); AssignCommand(oGarde1, ActionAttack (GetPCSpeaker(),FALSE)); AssignCommand(oGarde2, ActionAttack (GetPCSpeaker(),FALSE)); ActionAttack (GetPCSpeaker(),FALSE); } Je l'ai mis dans "condition d'exécution" après un dialogue... des fois ca marche pas du tout, des fois il peux même compter jusqu'à trois ou quatre... mais après il ne fais plus rien... Comprends paaaa!!!!! Pourriez vous me donner un coup de main siou plait???? ( ce qui m'intrigue c'est que des fois il arrive à compter et d'autres fois non... peut être l'ai-je mis dans un endroit qu'il ne faut pas? |
Revenir en haut | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
Essaie de supprimer les scripts de fin de conversation par défaut (dans l'onglet "autres fichers" de l'éditeur de dialogue). Si ça marche pas, revient nous le dire.
|
Revenir en haut | |
Tuyen Demi-dieu Messages: 460 Localisation: Chez moi |
ben... euh... comment dire? Je n'arrive pas à trouver ton onglet... il y a bien "condition d'exécution", "action conséquente", "autres actions", "commentaires" et "fichiers actuels", mais pas d'onglets "autres fichiers" dans l'éditeur de dialogue...
|
Revenir en haut | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
OK c'est "fichier actuel" (j'ai la version anglaise et en plus j'ai dit ça de mémoire), cependant je dirais que tu fais preuve d'un manque singulier d'indépendance, après tout tu n'avais qu'à chercher les scripts de fin de conversation dans tous les onglets.
|
Revenir en haut | |
Tuyen Demi-dieu Messages: 460 Localisation: Chez moi |
eh bien vois tu c'est exactement ce que j'ai fait, mais cela ne marche pas plus...
|
Revenir en haut | |
Taern Ecuyer Messages: 45 Localisation: 92 |
Pas la peine de me faire remarquer mon sens aigu de l'esthéthisme, je suis déja au courant Pour en revenir au sujet, supprime les deux scripts que je t'ai indiqués, parcequ'un ClearAllActions mal placé ça peut parfois être gênant |
Revenir en haut | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
De plus, tel que tu as fait ton script, les deux gardes vont attaquer presque immédiatement, ce qui peut avoir des conséquences néfastes sur la concentration de celui qui compte...
|
Revenir en haut | |
Tuyen Demi-dieu Messages: 460 Localisation: Chez moi |
Ben j'ai bien supprimé les deux scripts à l'endroit indiqué, mais bon... ca arrange rien. Des fois il compte un peu, des fois il compte pas du tout... Je me demande si ca marche bien ce ActionWait()!! Ou peut être est ce qu'il y a un certain quota de temps pour les scripts réalisés en fin de dialogue?
|
Revenir en haut | |
Jedaï Chevalier Messages: 89 Localisation: Le Havre, ville pourrie |
As-tu lu ma réponse ?
|
Revenir en haut | |
Tuyen Demi-dieu Messages: 460 Localisation: Chez moi |
Oui pour sur! lol! En fait ca posait des problème DEJA avant que j'ajoute les ordres concernant les deux gardes... donc j'en conclut que ce n'était pas ca qui était en cause
|
Revenir en haut | |
Tuyen Demi-dieu Messages: 460 Localisation: Chez moi |
Personne n'aurait une idée pour mon prob? C'est pourtant pas compliqué ce n'est qu'une suite d'actions mais ca marche pas donc snif
Pour résumer j'ai viré les scripts de fin de conversation ainsi que l'attaque des gardes... ca a pas l'air de marcher plus que ca... Snif! C'est un truc tout bête je le sens, mais comme je suis assez naz en script... Merci de me répondre siouplé! |
Revenir en haut | |
Albator003 Invité |
voila ce que je te propose sur le type qui parle (enfin celui qui va compter au moment choisit du dialogue ou action tu met ca
Citation : void main()
ensuite tu crée un script qui dans mon cas sapellera "gardeattack1"
{ object oSpeaker = GetObjectByTag("Tag du gars qui va compter"); DelayCommand(2.0, AssignCommand(oSpeaker, ActionSpeakString("Je commence a compter..."))); DelayCommand(4.0, AssignCommand(oSpeaker, ActionSpeakString("Un..."))); DelayCommand(6.0, AssignCommand(oSpeaker, ActionSpeakString("Deux..."))); DelayCommand(8.0, AssignCommand(oSpeaker, ActionSpeakString("Trois..."))); DelayCommand(10.0, AssignCommand(oSpeaker, ActionSpeakString("Quatre..."))); DelayCommand(12.0, AssignCommand(oSpeaker, ActionSpeakString("Cinq..."))); DelayCommand(14.0, AssignCommand(oSpeaker, ActionSpeakString("Six..."))); DelayCommand(16.0, AssignCommand(oSpeaker, ActionSpeakString("Sept..."))); DelayCommand(18.0, AssignCommand(oSpeaker, ActionSpeakString("Huit..."))); DelayCommand(20.0, AssignCommand(oSpeaker, ActionSpeakString("Neuf..."))); DelayCommand(22.0, AssignCommand(oSpeaker, ActionSpeakString("...Et dix!!!..."))); DelayCommand(24.0, AssignCommand(oSpeaker, ActionSpeakString("GAARRRDES!!!!!!!"))); DelayCommand(25.0, ExecuteScript("gardeattack1", OBJECT_SELF)); DelayCommand(25.0, ExecuteScript("gardeattack2", OBJECT_SELF)); } et tu met ca dedans Citation : void main()
Biensur faire de meme pour le 2eme garde...
{ object oAttack = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC); object oGarde1 = GetObjectByTag("Tag de ton garde 1"); AssignCommand(oGarde1, ActionWait(1.0)); AssignCommand(oGarde1, ActionAttack (oAttack)); } Un truc que je pige pas c que le garde fais que une seul attack ya une tite soluce mais si le mec respawn toujours au meme endroit il va tout le temps se faire defoncer....le truc c de mettre ton garde de faction défenseur mais bon c'est vraiment pas top si qqun vois comment le faire arreter quand le pj est mort ....quil se manifeste |
Revenir en haut | |
Albator003 Invité |
heu rectif je viens de voir ca le get nearestcreature ca le fais pas ....il faut autrechose car si ya 2 pj dans la zone il vont attack le 1er quil voye alors que c pas forcement lui quil fo attacker
|
Revenir en haut | |
Tuyen Demi-dieu Messages: 460 Localisation: Chez moi |
Oki merci bocou pour ton aide albator ... m'en vais tester ça moa!
|
Revenir en haut | |
Albator003 Invité |
bien voila j'ai trouver la chose tu as juste a mettre ce script sur le tu qui va compter(dans un dialogue : dans action conséquente)
Citation : void main()
bon chez moi j'ai toujours le probleme du garde qui fais que une attack...{ object oGarde1 = GetObjectByTag("waldogarde1"); object oGarde2 = GetObjectByTag("waldogarde2"); object oPJ = GetLastSpeaker(); object oSpeaker = GetObjectByTag("Tag du type qui va compter"); DelayCommand(2.0, AssignCommand(oSpeaker, ActionSpeakString("Je commence a compter..."))); DelayCommand(4.0, AssignCommand(oSpeaker, ActionSpeakString("Un..."))); DelayCommand(6.0, AssignCommand(oSpeaker, ActionSpeakString("Deux..."))); DelayCommand(8.0, AssignCommand(oSpeaker, ActionSpeakString("Trois..."))); DelayCommand(10.0, AssignCommand(oSpeaker, ActionSpeakString("Quatre..."))); DelayCommand(12.0, AssignCommand(oSpeaker, ActionSpeakString("Cinq..."))); DelayCommand(14.0, AssignCommand(oSpeaker, ActionSpeakString("Six..."))); DelayCommand(16.0, AssignCommand(oSpeaker, ActionSpeakString("Sept..."))); DelayCommand(18.0, AssignCommand(oSpeaker, ActionSpeakString("Huit..."))); DelayCommand(20.0, AssignCommand(oSpeaker, ActionSpeakString("Neuf..."))); DelayCommand(22.0, AssignCommand(oSpeaker, ActionSpeakString("...Et dix!!!..."))); DelayCommand(24.0, AssignCommand(oSpeaker, ActionSpeakString("GAARRRDES!!!!!!!"))); DelayCommand(25.0,AssignCommand(oGarde1, ActionAttack (oPJ))); DelayCommand(25.0,AssignCommand(oGarde2, ActionAttack (oPJ))); } |
Revenir en haut | |
Tuyen Demi-dieu Messages: 460 Localisation: Chez moi |
mille merci c'est sympa de t'être penché sur la question! ... Chez moi ca marche au poil... Les gardes viennent et attaquent, tout va bien! ... trop de la boulette!!!
|
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