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 21:39:23
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 |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Posté le : 13/02/2003 02:14:32 Sujet du message : Le chien policier et l'objet qui apparaît dans un inventaire
Re-re-re-bonjour à tous
Bon ben j'ai résolu tous mes problèmes précédents (grâce à vous et mon QI de 350 ) mais là je re-sèche. Je m'explique : je veux qu'à un moment donné d'une quête, un chien suive le joueur pour le mener vers un autre endroit (eh oui le flair légendaire de l'animal ! D'ailleurs c'est une bonne idée pour les scénariis non ? Mais si.). L'endroit vers lequel le chien emmène le joueur est un arbuste dans lequel devrait être dissimulé une clef. Seulement je voudrais que la clef en question apparaisse seulement quand le chien est arrivé à la destination que je lui ai donné, où il dira un superbe "WAF !" en remuant la queue, et là le joueur découvre la clef dans l'arbuste. Pour l'instant j'ai donc ça : Code : void main()
{ if(GetLocalInt(GetPCSpeaker(), "Etat_Q_Jezir") == 4) { ClearAllActions(); ActionSpeakString("(Woulfy vous mord les chaussures et remue la queue, puis il part avec vous en reniflant le sol)"); AddHenchman(GetPCSpeaker(), OBJECT_SELF); } } ...sur le OnConversation de Woulfy. Et ça : Code : if(GetLocalInt(GetLastUsedBy(), "Etat_Q_Jezir") == 4)
{ AssignCommand(GetLastUsedBy(), ActionSpeakString("Allez Woulfy ! Cherche !")); AssignCommand(GetObjectByTag("Woulfy"), ActionSpeakString("snif... snif... snif... WAF !")); AssignCommand(GetObjectByTag("Woulfy"), ActionMoveToObject(GetObjectByTag("indice_woulfy"), TRUE, 1.0)); DelayCommand(5.0,AssignCommand(GetObjectByTag("Woulfy"), ActionSpeakString("snif..."))); } } ... sur l'object qui déclenche la recherche du chien. "indice_woulfy" est le tag de l'arbuste, et "Woulfy" est le tag de Woulfy le clebs. Original non ? Bon ben déjà, je voudrais savoir si mon code est bon ou pas (je nage en plein flou et je crois que j'ai été bien prétentieux pour un premier scénar') Et puis ensuite, je ne sais pas comment déclencher la suite des opérations à partir du moment où Woulfy est arrivé à l'arbuste : - Comment la clef apparaît-t-elle dans l'arbuste ? (cette clef est déjà créée et affectée à une porte) - Comment demander au logiciel de ne faire exécuter ce script d'apparition qu'à partir du moment où Woulfy arrive à l'arbuste ou à proximité de l'arbuste ? (je suppose avec un déclencheur, OnEnter et OnEnteringObject...) - Quel est l'âge du capitaine ? Voilà, voilà, mille mercis à tous. PS : c'est jouissif ce jeu [/code] _________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | |
Wololo Légende vivante Messages: 385 |
je crois que ton code est bon, mais il y a moyen de le reformater.
Code : if(GetLocalInt(GetLastUsedBy(), "Etat_Q_Jezir") == 4) { AssignCommand(GetLastUsedBy(), ActionSpeakString("Allez Woulfy ! Cherche !")); ActionSpeakString("snif... snif... snif... WAF !"); ActionMoveToObject(GetObjectByTag("indice_woulfy"), TRUE, 1.0); DelayCommand(3.5, ActionSpeakString("snif...")); } } ca doit aussi bien marcher. pour la clé tu mets l'arbre en utilisable, intrigue et possédant un inventaire ('useable', 'plot' et 'has inventory'). Ensuite, tu mets un déclencheur au pied de l'arbre, et sur le OnEnter de ce déclencheur tu regardes si c'est Woolfy. Si c'est le cas, tu crées la clé dans l'inventaire de l'arbre. |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Posté le : 13/02/2003 15:48:46 Sujet du message : Re: Le chien policier et l'objet qui apparaît dans un invent
Oui mais en mettant un arbuste "useable" ça va paraître tout de suite louche au joueur
Pour moi le mieux serait de faire apparaître la clef "dans" l'arbuste (dessus quoi) ; la clef apparaîtrait dans un petit sac. Donc ce que je pense pour ce script : comme tu l'as dis, créer un trigger et le mettre sur le OnEnter, et poser aussi un WP à l'endroit où la clef doit apparaître. Au passage je viens de penser à un truc, si tu coches la case "Statique" sur ton arbuste, je ne sais pas si tu peux agir dessus (auquel cas ce n'est pas grave, tu remplaces par le tag du WP qui sera au même endroit ), et si tu la coche, l'arbuste apparaîtra en surbrillance (donc indice pour le joueur qu'il y a quelque chose à faire avec ). Enfin bref, mettons que le tag du WP soit "WP_clef_Q_Jezir". Sur le OnEnter du trigger je vois quelque chose comme ça : Code : object oWoulfy = GetObjectByTag("Woulfy");
object oWP = GetObjectByTag("WP_clef_Q_Jezir"); location lWP = GetLocation(oWP); void main() { if (GetEnteringObject() == oWoulfy && GetLocalInt(GetFistPC(), "Etat_Q_Jezir") == 4 // ici on vérifie que c'est bien le chien qui entre dans le trigger ET que la variable de la quête est au bon niveau { CreateObject(OBJECT_TYPE_ITEM, "ResRefDeTaClef", lWP); // on crée la clef sur le WP } } Bon, attention c'est 100% de tête donc il se pourrait (c'est même fortement certain ) qu'il y est des erreurs de syntaxe etc... _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Merci pour les tuyaux, mais y a rien à faire, y a une c****** dans le pâté comme dirait l'autre : sur l'objet déclencheur du Woulfy détective j'ai ça :
Code : if(GetLocalInt(GetFirstPC(), "Etat_Q_Jezir") == 4)
{ AssignCommand(GetFirstPC(), ActionSpeakString("Allez Woulfy ! Cherche !")); AssignCommand(GetObjectByTag("Woulfy"), ClearAllActions()); ActionWait(3.0); AssignCommand(GetObjectByTag("Woulfy"), ActionSpeakString("snif... snif... snif...")); ActionWait(2.0); AssignCommand(GetObjectByTag("Woulfy"), ActionSpeakString("WAF !")); AssignCommand(GetObjectByTag("Woulfy"), ActionMoveToObject(GetObjectByTag("WP_clef_Q_Jezir"), TRUE, 1.0)); } } ...où "WP_clef_Q_Jezir" est le tag du déclencheur sur lequel Woulfy doit arriver. Je précise que ce déclencheur se trouve dans une autre zone, je ne sais pas si ça a une influence, si on doit préciser la zone en plus du tag object. Seulement quand je teste, voilà ce que j'ai : 1 - Woulfy dit "WAF !" 2 - Et APRES, le joueur dit "Allez Woulfy ! Cherche !" ...alors que logiquement déjà, ce devrait être le contraire. Et puis ensuite, plus rien, cet abruti de chien reste là à me regarder donc je ne sais même pas si le reste fonctionne. Sinon pour l'optimisation du code, ben je verrai plus tard, je voudrais déjà qu'il fonctionne comme ça ce serait plutôt bien Encore un p'tit coup de pouce siouplé ? Merci à tous !!! _________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | |
finipe Grand Sage du Conseil Messages: 519 Localisation: Nantes |
Eeeeuh bon voilà, excusez-moi d'être un assisté j'ai plus ou moins résolu mon problème, en utilisant non pas ActionMoveToObject, mais ActionMoveToLocation, avec de WayPoints. Le truc c'est que ma destination était assez lointaine et donc j'ai dû faire ça en plusieurs étapes (y compris un ActionJumpToLocation pour changer de zone).
N'empêche que j'ai toujours pas pigé pourquoi ça marchait pas avec ActionMoveToObject, donc si quelqu'un pouvait me briefer ce serait super bien (j'ai décortiqué des scripts identiques dans d'autres scénarios, et franchement j'ai pas trouvé où était mon erreur). Merci à tous ! PS : Woulfy a eu son nonos _________________ » Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine » 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII |
Revenir en haut | |
Cassin Papa-poule(t) & poissard intemporel Messages: 7471 Localisation: 6 bis rue de la Couveuse, Poulailler 39b |
Je vois pas trop ce qui cloche avec le ActionMoveToObject, mais bon, c'est vrai que je n'ai encore jamais fait de déplacement inter-zones, donc...
Sinon, plutôt que d'utiliser des ActionWait, je te conseillerais plutôt des DelayCommand, j'ai toujours trouvé que ça marchait beaucoup mieux (j'ai toujours eu des problèmes de timing avec ActionWait... ) _________________ Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ? http://cassin1306.spaces.live.com |
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