La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 03/08/2025 05:22:11


  Page 2 sur 2 ¤ Aller à la page Précédente  1, 2

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 01/05/2006 20:52:04 Sujet du message :

Ton premier while et le deuxième donnent une boucle infinie sauf si oPC = GetFirstPC, c'est ptet ça plutot qui fait planter le module (quoique, en général ça plante pas un TMI mais bon.)
 
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 : 01/05/2006 23:08:44 Sujet du message :

Une suggestion, que je vais tester de mon coté ^^

Remplacer GetFirtPC() par GetFirstObjectInArea() en mettant des PNJs/plaçables dans la zone pour voir si les boucles sont correctes, et le cas échant, pouvoir les débugger sans avoir besoin de tester le tout en multi ^^.

Si j'ai une idée, ou si le 2e script de Lylver fonctionne, je vous tiens au courrant !
 
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 : 01/05/2006 23:32:12 Sujet du message :

Bravo Lylver !

Je viens de tester avec ton script corrigé, et la "méthode" exposée précédement, et cela marche parfaitement !

Je ne vois pas pourquoi cela ne marcherait pas dans ce cas avec des joueurs !

Je pense que le problème est résolu ...
 
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 : 02/05/2006 07:07:09 Sujet du message :

Ha oui exact, je viens de revoir mon script et j'ai completement oublier de mettre les GetNextPC() Razz

Bon avec ca, ca devrait marcher :

NWScript :
void main()
{
object oPC = GetLastUsedBy();
object oPJ = GetFirstPC();
int nCustom = 9000;
while(oPJ != OBJECT_INVALID)
{
SetLocalInt(GetModule(), "PJ_LIST", GetLocalInt(GetModule(), "PJ_LIST")+1);
oPJ = GetNextPC();
}
int nPlayer = GetLocalInt(GetModule(), "PJ_LIST");
int nMax = 0;
object oPJ1 = GetFirstPC();
while(oPJ1 != OBJECT_INVALID && nMax < nPlayer)
{
nCustom++;
nMax++;
SetCustomToken(nCustom, GetName(oPJ1)+" ("+GetPCPlayerName(oPJ1)+")");
nCustom = nCustom;
nMax = nMax;
oPJ1 = GetNextPC();
}
nMax = nMax;
nCustom = nCustom;
while(nMax <= 32)
{
nCustom++;
nMax++;
SetCustomToken(nCustom, "Place non prise");
nCustom = nCustom;
nMax = nMax;
}
ActionStartConversation(oPC, "", TRUE);
}
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.


EDIT: voila ca marche perfect, testé Smile
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 03/05/2006 10:53:25 Sujet du message :

Merci beaucoup Lylver et Black Knight !

Ca fonctionne impec, c'est génial. ^^

J'ai juste des petits problèmes pour récupérer les variables ensuite (nCount et oPJ) mais la première partie est en tout cas résolue !

Merci beaucoup ! Very Happy
 
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 : 03/05/2006 11:55:08 Sujet du message :

De rien, mais la je cherche une solution pour evité de mettre 32 script dans les Action des phrases, mais pas moyen, ils ont pas inventé le GetCustomToken, c'est dommage Sad
_________________
[http]
 
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 : 03/05/2006 11:56:47 Sujet du message :

Fais un menu. (cf Lylver et ses scripts magiques)
 
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 : 03/05/2006 13:23:04 Sujet du message :

Salut Djezebel !

Pour récupérer ensuite les variables , c'est très simple, fais comme Lylver te disait dans l'un de ses premiers posts. Tu fais 5 petits scripts genre celui que tu m'as envoyé, que tu appelles pj_custom1, pj_custom2, etc ...

Ensuite, dans chaque script tu mets nCount à 1 pour pj_custom1, à 2 pour pj_custom2, etc ...

comme dans l'exemple ci-dessous :

NWScript :
void main()
{

object oPC = GetPCSpeaker();
//int nCount = //GetLocalInt(oPC, "PJ_ITEM"); // Remplace cette ligne par la suivante
// pour chacun de tes scripts en action taken tu change la valeur de nCount Ex: pj_custom : nCount =1; / pj_custom2 nCount=2; etc ...
int nCount = 1;

object oPJ = GetLocalObject(oPC, "PJ_CUSTOM"+IntToString(nCount));

string sArea = GetName(GetArea(oPJ));
string sName = GetName(oPJ);

ActionSpeakString(sName+" est ici "+sArea);
SendMessageToPC(oPC,IntToString(nCount));
}
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.


Voilà, à bientôt !
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 03/05/2006 16:37:41 Sujet du message :

Salut et tout d'abord félicitation , je me répète mais bon:grin:Very Happy l'idée est exellente, et le script pareil!!! je l'ai testé et ça fonction nikel, par contre juste un truc, pour le dernier script, moi il ne me met que "est ici".... j'ai l'impression que oPJ est mal définit mais je ne serais dire pourquoi.... en tout cas il me donne ni le nom du joueur si la zone ou il est....
Ha oui chose importante je ne l'ai pas testé en multi...
Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 04/05/2006 09:04:40 Sujet du message :

Bon, à deux joueurs, j'ai effectivement réussi à donner le nom et la localisation.

Le souci venait que :

int nCount = GetLocalInt(oPC, "PJ_ITEM");

Ca ne fonctionnait pas correctement.
Par contre si je mets :

int nCount = 1;

Il n'y a aucun souci pour voir le nom et la localisation de l'autre personnage.

Je n'ai pas pu tester pour les autres, mais je suppose que ça doit fonctionner.

Donc en somme, Viduc, il faut mettre dans le action conséquente du <CUSTOM3601> le script d'Enki un peu plus haut.
Pour le <CUSTOM3602>, il faudra changer le nCount =1; par nCount =2 ainsi de suite.

Il ne reste plus qu'à tester à trois joueurs ^^

Merci à tous de votre participation. Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 04/05/2006 11:56:42 Sujet du message :

Oui, en fait, on ne peut pas se servir de nCount = GetLocalInt(oPC, "PJ_ITEM");
, il est "consommé" pour l'affichage du dialogue et vaut zéro une fois que ce dernier est utilisable par le joueur.

il faut utiliser i = 1, 2 ,3 ,4 ,5 de façon statique comme pour les numéros des CUSTOM TOKENS pour les scripts pj_custom(i)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 04/05/2006 14:26:10 Sujet du message :

bah c'est ce que j'avais fait pourtant.... j'avais bien pigé pourquoi il fallait mettre une valeur fixe... non chez moi ça marche pas je ne pige pas, je chercherais quand j'aurais un peu de temps^^...

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 2 sur 2 ¤ Aller à la page Précédente  1, 2


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 36.064ms