La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 27/11/2024 06:50:10


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
iboop
Voyageur
Inscrit le: 23 Mar 2007
Messages: 3
Répondre en citant
Posté le : 23/03/2007 08:30:41 Sujet du message : Aide Pattern(mais differente de ce que j'ai lue ici :D)

Alors j'ai bien lut le tuto donné ici http://www.system-tek.com/~nwinter/phpbb2/viewtopic.php?p=126413#p126413
mais je n'ai pas trouvé ce qu'il me faut(je débute dans l'utilisation des scripts)

J'aimerais en effet "selectionner" les gens qui peuvent prononcer des mots de passe.
Plus précisemment, j'aimerais que quand un pj a un objet "oItem" (objet defini) il se passe bien ce que l'on a décidé.
Mais je voudrais que quand un pj qui n'a pas l'objet prononce le "mot de passe" ça ne fasse rien.
Pour le moment, tout le monde, objet ou pas objet, peut prononcer le passe avec succes, je n'arrive pas a faire en sorte que le script se lance que si le pj en question possède l'objet...



Voila, merci merci d'avance:D

(c'est pour un multijoueur^^)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 23/03/2007 10:14:52 Sujet du message :

Salut !
Dans ton script qui teste la validité de la phrase prononcée, (soit le OnConversation, soit le OnUserDefined, event OnConversation)tu dois également tester la présence de l'item.

Pour cela, tu peux utiliser la fonction HasItem(); (avec l'include #include "nw_i0_plot" )
donc en gros, si ton pnj entend le bon mot de passe, il teste ensuite l'inventaire du PJ, puis, s'il a l'objet requis, il ouvre la porte, ou fait ce qu'il doit faire.
_________________
Module persistant dans l'univers de Star Wars : Dark Time of the Galaxy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
iboop
Voyageur
Inscrit le: 23 Mar 2007
Messages: 3
Répondre en citant
Posté le : 23/03/2007 17:37:20 Sujet du message :

tout d'abord merci bien de ta réponse Very Happy
En fait oui j'ai d'abord pensé a ça, mais en fait ça ne marche pas. J'ai fait ceci pour Onconv:(j'ai omis les include mais ils y sont bien hein^^ c'est pas le problème Very Happy)

Code :
void main()
{
int iListen = GetListenPatternNumber();
string sPassword;
object oItem = GetObjectByTag("sceptre_revers");
object oItem1 = GetObjectByTag("plan_revers");
object oPC = GetItemPossessor(oItem);
object oPC2 = GetItemPossessor(oItem1);


if (iListen == 101) //verifie l'couteur
if (HasItem (oPC, "sceptre_revers"))
{
sPassword = GetMatchedSubstring(0);

if (sPassword == "bureau" ) // bon pass? Pas bon pass?

{
location lMyLocation = GetLocation(GetObjectByTag("wp_bureau")); //hop la teleportation pour oPC
DelayCommand(1.0, AssignCommand(oPC, JumpToLocation(lMyLocation)));
}

sPassword = GetMatchedSubstring(0);

if (sPassword == "A moi" ) //verifie le pass

{

DelayCommand(1.0, AssignCommand(oPC2, ActionJumpToObject(oPC))); Transporte oPC2 vers oPC

}

}


Le truc, c'est que la, quand le oPC dit "bureau" il va bel et bien au bureau, mais quand oPC2 dit "bureau" et bien oPC2 envois oPC dans le bureau. De même quand Opc dit "a moi" oPC2 va bien a lui, mais quand oPC2 dit "amoi" et bien il se teleporte a oPC. Ce que je voudrais, c'est que seule oPC puisse commander ! c'est a dire que ça ne marche que quand oPC parle.
Le problème la me semble normal, puisque HasItem n'identifie pas qui parle ou qui le listener ecoute, mais qui a tel objet...je voudrais: "si celui qui prononce le passe a tel objet.." pour parler clairement Very Happy
Alors a priori il n'y a pas de fonctions pour ça, néamoins j'ai quelques idées sur la façon de procéder mais ce serait peut être laborieux et, n'étant pas un vétéran....

Donc si quelqu'un a une solution, je suis preneur avec grand plaisir, solution ou astuce, je prend tout Very Happy

Merci a vous tous d'avance Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Anthraxcite
Légende vivante
Inscrit le: 12 Juin 2004
Messages: 372
Localisation: Belgique
Répondre en citant
Posté le : 23/03/2007 21:05:53 Sujet du message :

Ok voici les 2 premières erreurs que je vois :
1)
object oItem = GetObjectByTag("sceptre_revers");
object oItem1 = GetObjectByTag("plan_revers");
Tu récupères des objets sur module grâce à GetObjectByTag, c-à-d des créatures, des plaçables, des objets posés au sol(et encore je suis même pas sûr que celà fonctionne). Pour récupérer des objets dans l'inventaire du joueur il faut spécifier ce joueur, utilises donc plutôt GetItemPossessedBy(object oCreature, string sItemTag); .

2)
object oPC = GetItemPossessor(oItem);
object oPC2 = GetItemPossessor(oItem1);
Pas forcément une erreur(si l'item était récupéré d'une autre manière que celle citée juste au dessus qui necessite la créature en question^^), mais ce n'est pas très orthodoxe comme méthode pour récupérer celui qui a parlé, c'est un peu faire les choses à l'envers. Selon l'évènement la manière de récupérer le joueur ou la créature qui intervient change, ainsi lors d'une conversation tu as pu je suppose déjà utiliser GetPCSpeaker, dans le cas d'un OnConversation on utilise GetLastSpeaker(sauf erreur de ma part, longtemps que je n'ai plus fait de listerner). Inutile de définir 2 variables oPC du coup Smile.

La correction devrait donner quelque chose comme ceci :
object oPC = GetLastSpeaker();
object oSceptre = GetItemPossessedBy(oPC,"sceptre_revers");
object oPlan = GetItemPossessedBy(oPC,"plan_revers");
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
iboop
Voyageur
Inscrit le: 23 Mar 2007
Messages: 3
Répondre en citant
Posté le : 24/03/2007 03:49:43 Sujet du message :

Merci beaucoup Very Happy

Le GetObjectByTag oui je l'ai corrigé je me suis rendu compte de mon erreur en testant mes script IG. J'ai donc corrigé avec un GetItemPossessedBy.

Et merci en effet c'est GetLaskSpeaker que je cherchais!! Je vais tester ça de suite Very Happy

Merci bien Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé 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 25.082ms