
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.







La date/heure actuelle est 19/04/2025 20:51: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 |
Eldorane Héros Messages: 298 Localisation: Moselle |
Salut,
lors d'un dialogue, est il possible que le PNJ qui parle puisse savoir s'il s'adresse à un ou plusieurs PJ. Dans ce cas je pourrais mettre une condition dans le dialogue qui permettrait de faire des phrases genre : "Bonjour, vous êtes seul" (si un PJ) "Bonjour, vous êtes plusieurs" (si plusieurs PJ) _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ Dernière édition par Eldorane le 16/04/2005 02:44:25; édité 1 fois
|
Revenir en haut | ![]() ![]() ![]() |
Eldorane Héros Messages: 298 Localisation: Moselle |
On peut pas faire un script du genre :
NWScript :
void main() { object oPC = GetFirstObjectInArea(); // si il y a encore des objets dans la zone while(GetIsObjectValid(oPC)==TRUE) { // et si cet objet est un joueur if(GetIsPC(oPC)) { SetLocalInt(oPC(), "NBRjoueurs", +1); } oPC = GetNextObjectInArea(); } } (j'ai récupéré le script de Longbow. Je sais c'est pas du langage scripté correct, mais c'est pour faire avancer le schlimi... schmidi... le bordel) Avec ça on pourrait presque compter le nombre de joueurs ! _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | ![]() ![]() ![]() |
Stan Grand Chevalier Messages: 126 |
NWScript :
int StartingConditional() { int iResult=FALSE; float nDistance = 10.0; object oPC = GetPCSpeaker(); object oTest = GetFirstObjectInShape(SHAPE_SPHERE, nDistance, GetLocation(oPC)); while (oTest != OBJECT_INVALID){ if (GetIsPC(oTest)) {iResult=TRUE; oTest=OBJECT_INVALID;} else oTest = GetNextObjectInShape(SHAPE_SPHERE, nDistance, GetLocation(oPC)); } return iResult; } Cela devrait retourner Oui si un autre Pj se trouve dans un rayon de 10mètre autour du PJ qui parle. Sauf si tu veux vérifier une map entière mais là c'est exagéré, le PNJ peut pas dire qu'il parle à plusieurs personne si y'a un PJ à l'autre bout de la carte avec 4 murs qui doit les séparer ![]() |
Revenir en haut | ![]() ![]() ![]() |
Eldorane Héros Messages: 298 Localisation: Moselle |
Citation : Sauf si tu veux vérifier une map entière mais là c'est exagéré, le PNJ peut pas dire qu'il parle à plusieurs personne si y'a un PJ à l'autre bout de la carte avec 4 murs qui doit les séparer ça me parait cohérent ! ![]() _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | ![]() ![]() ![]() |
Eldorane Héros Messages: 298 Localisation: Moselle |
J'ai testé : j'ai fais un dialogue avec 2 lignes pour le PROPRIETAIRE,
-l'une s'il y a un seul PJ -l'autre s'il y en a plusieurs. Effectivement en jeu c'est la première ligne qui apparait. Mais j'ai mis 2 réponses possible : -l'une s'il y a un seul PJ -l'autre s'il y en a plusieurs. là les deux apparaissent !! C'est normal ? _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | ![]() ![]() ![]() |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
En tout cas pour la phrase propriétaire normal que sa marche tu la mise en première, il faut mettre celle avec plusieurs en première car si sa return FALSE la phrase ne sera pas afficher et laissera place a la seconde
![]() Sinon oui je pense que c'est normal que sa marche pas Stan test si c'est un PJ mais oublie d'exclure le PJ qui parle, donc forcement sa renvoie toujours TRUE ![]() NWScript :
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à voilou... _________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
Stan Grand Chevalier Messages: 126 |
Oui honte sur moi
![]() Sinon pr le faire fonctionne, tu peux toujours inverser le true et le false en faisant un second script.Chacun des deux serait à mettre sur le condition d'éxécution de tes phrases. |
Revenir en haut | ![]() ![]() ![]() |
Eldorane Héros Messages: 298 Localisation: Moselle |
![]() enfin... ![]() heu.... j'ai rien compris... ![]() _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | ![]() ![]() ![]() |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
Prenons un dialogue comme sa :
[1]+[PNJ]Phrase plusieurs joueurs [2]+--[PJ]Réponse plusieurs joueurs [3]+[PNJ]Phrase un joueur [4]+--[PJ]Réponse un joueur Et en [1] tu place le script de Stan en mettant la modif dans conditions d'executions... _________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
Eldorane Héros Messages: 298 Localisation: Moselle |
ah c'est plus clair là
![]() ![]() _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | ![]() ![]() ![]() |
Eldorane Héros Messages: 298 Localisation: Moselle |
Mais ça ne marche toujours pas :
NWScript :
int StartingConditional() { int iResult=FALSE; float nDistance = 10.0; object oPC = GetPCSpeaker(); object oTest = GetFirstObjectInShape(SHAPE_SPHERE, nDistance, GetLocation(oPC)); while (oTest != OBJECT_INVALID) { if (GetIsPC(oTest) && oTest != oPC) else oTest = GetNextObjectInShape(SHAPE_SPHERE, nDistance, GetLocation(oPC)); } return iResult; } ERREUR : "else" WITHOUT "if" STATEMENT. là il m'engueule carément ! _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | ![]() ![]() ![]() |
Ivellios Légende vivante Messages: 447 Localisation: Poitiers |
NWScript : int StartingConditional() { int iResult=FALSE; float nDistance = 10.0; object oPC = GetPCSpeaker(); object oTest = GetFirstObjectInShape(SHAPE_SPHERE, nDistance, GetLocation(oPC)); while (oTest != OBJECT_INVALID) { if (GetIsPC(oTest) && oTest != oPC) { iResult=TRUE; oTest=OBJECT_INVALID; } else { oTest = GetNextObjectInShape(SHAPE_SPHERE, nDistance, GetLocation(oPC)); } } return iResult; } _________________ Scripts, systèmes, fonctions,... c'est par ici... Pyjama pour castor, une vocation, un avenir sûr |
Revenir en haut | ![]() ![]() ![]() ![]() ![]() |
Stan Grand Chevalier Messages: 126 |
MDR Eldorane, forcement si tu remplaces la ligne du If sans rajouter l'instruction qu'il faut faire, ça fache Aurora, elle est capricieuse cette demoiselle
![]() Merci Ivellios pour la correction ![]() |
Revenir en haut | ![]() ![]() ![]() |
Eldorane Héros Messages: 298 Localisation: Moselle |
Citation : MDR Eldorane, forcement si tu remplaces la ligne du If sans rajouter l'instruction qu'il faut faire, ça fache Aurora, elle est capricieuse cette demoiselle j'ai remarqué aussi, surtout quand elle me crie dessus ![]() ![]() Mais ça semble marcher !!! je testerais par la suite en multis. MERCI à tous ![]() PS : la prochaine fois, faites comme si javais 2 ans, ce sera plus simple... _________________ Notre little site : Les Héros de la Nuit qui contient le lien vers la page de présentation de notre module, en cours de fabrication ! _________________ |
Revenir en haut | ![]() ![]() ![]() |


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