La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 22:00:43


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
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 Smile

Bon ben j'ai résolu tous mes problèmes précédents (grâce à vous Very Happy et mon QI de 350 Very Happy) 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 Very Happy[/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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Wololo
Légende vivante
Inscrit le: 13 Déc 2002
Messages: 385
Répondre en citant
Posté le : 13/02/2003 12:37:31 Sujet du message :

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 Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
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 Wink

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 Wink ), et si tu la coche, l'arbuste apparaîtra en surbrillance (donc indice pour le joueur qu'il y a quelque chose à faire avec Very Happy).

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 Very Happy) qu'il y est des erreurs de syntaxe etc... Wink
_________________
Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ?

http://cassin1306.spaces.live.com
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 13/02/2003 23:34:08 Sujet du message :

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

Encore un p'tit coup de pouce siouplé ? Shocked

Merci à tous !!! Smile
_________________
» 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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 14/02/2003 02:13:57 Sujet du message :

Eeeeuh bon voilà, excusez-moi d'être un assisté Very Happy 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 Laughing
_________________
» 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 Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Cassin
Papa-poule(t) & poissard intemporel
Inscrit le: 16 Sep 2002
Messages: 7471
Localisation: 6 bis rue de la Couveuse, Poulailler 39b
Répondre en citant
Posté le : 14/02/2003 08:38:18 Sujet du message :

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


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... Confused)
_________________
Aventure ! Camaraderie ! Et acier sur acier ! Les ingrédients légendaires ! Hein Bouh ?

http://cassin1306.spaces.live.com
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur 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 43.453ms