La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 14/05/2024 12:19:04


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 17/03/2006 21:19:59 Sujet du message : Besoin d'aide pour un <CUSTOM?>

Salut a tous

Je suis en train de travaille sur un dialogue de serveuse dans une auberge.

Voici l'idée :

-Que voulez vous ?
--Une bonne bière fraiche !
---Bien, c'est 5 po, autre chose ?*
----Oui
-----**Retour au menu
----Non
-----C'est (+Nombre de pièce d'or)**
------Les voici***



*Script de l'ActionConséquente :

NWScript :
void main()
{
object oObject = GetObjectByTag ("COMMANDE");//L'objet pour enregistrer la commande
SetLocalInt(oObject, "note", 5);
}
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.


**
là est le problème ^^

***Toujours dans l'ActionConséquente :

NWScript :
void main()
{
int nTot = GetLocalInt (GetObjectByTag("COMMANDE"), "note");
TakeGoldFromCreature(nTot, GetPCSpeaker(), 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.





Donc pour le **
J'ai essaye avec un <CUSTOM#> Mais ca ne fonctionne pas. Pour ceux qui ne l'auront pas compris, j'aimerai que la serveuse dise combien de pièces d'or il doit payer.


Si quelqu'un a une idée, ce serait sympas ! Merci d'avance.
Mork
_________________
Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 18/03/2006 00:23:51 Sujet du message :

Tu as essayé la fonction SetCustomToken ?
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 18/03/2006 11:06:10 Sujet du message :

Oui, j'avais fait :

------C'est <CUSTOM#>.**

**Dans l'action conséquente j'avais mit un truc du genre :

NWScript :
void main ()
{
SetCustomToken(#, GetLocalInt(GetObjectByTag("COMMANDE"), "note"));
}
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.


Mais ca compilait pas
_________________
Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 18/03/2006 11:32:59 Sujet du message :

Normal, le second argument que tu envoie est un int (entier).
Dans la fonction le type demandé en seconde position est un string (chaîne de caractère), c'est ici qu'il faut convertir le int en string pour qu'il soit "lisible".

Utilise la fonction IntToString() avec ta variable à l'intérieur et c'est bon Razz
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
edisnotdead
Grand Chevalier
Inscrit le: 19 Fév 2005
Messages: 132
Répondre en citant
Posté le : 18/03/2006 11:33:38 Sujet du message :


mork a écrit :


NWScript :
void main ()
{
SetCustomToken(#, GetLocalInt(GetObjectByTag("COMMANDE"), "note"));
}
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.


Mais ca compilait pas
un peu normal

# n est pas un int

GetLocalInt(GetObjectByTag("COMMANDE"), "note") n est pas un string mais un int

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.

exemple
NWScript :
SetCustomToken(100, "blabla toto");
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.

en gros pour recupe un int en string je croi qu il existe inttostring ou un truc dans le genre
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
edisnotdead
Grand Chevalier
Inscrit le: 19 Fév 2005
Messages: 132
Répondre en citant
Posté le : 18/03/2006 11:37:23 Sujet du message :

lol sacré ivellios toujours une longueur d avance ^^
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 19/03/2006 17:32:06 Sujet du message :

Tien bah je donne le script que j'ai fait pour une serveuse qui prend une commande (et oui c'est ton jour de chance Wink )
Je part du principe que 4 alcool sont en vente.

Serveuse : Bonjour.
-"Je voudrai commander"
-"Je n'est pas encore choisi"

Dans le Action conséquente de "Je voudrai commander" :
NWScript :
void main()
{
SetLocalInt(OBJECT_SELF, "COMMANDE_BIERE", 0);
SetLocalInt(OBJECT_SELF, "COMMANDE_ROSE", 0);
SetLocalInt(OBJECT_SELF, "COMMANDE_VODKA", 0);
SetLocalInt(OBJECT_SELF, "COMMANDE_BLANC", 0);
}
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.

(On remet les commandes a zéro.)

Ensuite il y a deux solutions pour la serveuse.

1. "Oui qu'avez vous choisi ?"
2. "Le montant total s'élève à <CUSTOM1500>. Que prendrez avec ceci ?"

Aucune conditions sur les choix. Donc le dialogue 1 s'ouvre.
Là on list les choix d'alcool qui se présente au joueur.
En dernière option: il peut quitter le dialogue.

Sur chacun des choix d'alcool on met en action conséquente :
NWScript :
void main()
{
int iBiere = GetLocalInt(OBJECT_SELF, "COMMANDE_BIERE");
iBiere++;
SetLocalInt(OBJECT_SELF, "COMMANDE_BIERE", iBiere);

int iRose = GetLocalInt(OBJECT_SELF, "COMMANDE_ROSE"); // On retrouve les anciens choix
int iVodka = GetLocalInt(OBJECT_SELF, "COMMANDE_VODKA");
int iBlanc = GetLocalInt(OBJECT_SELF, "COMMANDE_BLANC");

int iPrixAPayer = iBiere * 5 + iRose * 10 + iVodka * 15 + iBlanc * 20; // On calcul le prix total a payer

SetCustomToken(1500, IntToString(iPrixAPayer)); // Le set custom 1500 qui contient le montant total de l'addition
}
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.

(Dans l'exemple il n'y a que l'action conséquente de la bière mais dans le dialogue il y en a un identique pour chaque alcool en pensant bien a changer les valeurs nécessaires.)

Dans la branche suivante du choix de l'alcool on colle en tant que lien le discours de la serveuse un peu plus haut : 2. "Le montant total s'élève à <CUSTOM1500>. Que prendrez avec ceci ?"

A cette branche on colle en tant que lien les choix de d'alcool de l'utilisateur.

Récapitulatif: Jusqu'a là l'utilisateur peut stocker ses alcools et le montant total est a chaque fois calculé. C'est enfaite une boucle Wink
Mais il nous manque quelque chose : Payer et voir la liste d'alcools commandé. Alors on va remedier a ca:

Dans 2. "Le montant total s'élève à <CUSTOM1500>. Que prendrez avec ceci ?" Après la liste des liens des alcools on met deux choix supplémentaires à l'utilisateur : 1. "Vous pouvez répétez mes anciens choix ?" 2.C'est tout. Je vais payer.

Intérressons nous d'abord à 1. "Vous pouvez répétez ..."
Dans le action conséquents de celui ci on liste le nombre d'alcools commandés de tels sortes a pouvoir les utiliser dans des custom token
NWScript :
void main()
{
int iBiere = GetLocalInt(OBJECT_SELF, "COMMANDE_BIERE");
int iRose = GetLocalInt(OBJECT_SELF, "COMMANDE_ROSE");
int iVodka = GetLocalInt(OBJECT_SELF, "COMMANDE_VODKA");
int iBlanc = GetLocalInt(OBJECT_SELF, "COMMANDE_BLANC");

SetCustomToken(1501, IntToString(iBiere));
SetCustomToken(1502, IntToString(iRose));
SetCustomToken(1503, IntToString(iVodka));
SetCustomToken(1504, IntToString(iBlanc));
}
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.


Vous l'aurez compris, la serveuse répond : "Bien sûr, vous avez commander <CUSTOM1501> bière de Mur'ben, <CUSTOM1502> vin rosé de Roussillon, <CUSTOM1503> vodka de Rospolvki et <CUSTOM1504> blanc des Landes".

L'utilisateur a le choix de continuer a commander ou de payer. Pour payer vous faîtes un lien sur "C'est tout je vais payer" vu plus en haut. Pour continuer vous faîtes un lien sur le dialogue de la serveuse 2. "Le montant total s'élève à <CUSTOM1500>. Que prendrez avec ceci ?" (vu très haut dans le dialogue)

Voilà il nous reste plus qu'a faire le script pour que l'utilisateur paye. Jusque là toutes les boucles inter-réagissent entre elles de façon à ce que l'utilisateur puisse faire ce qu'il veut.

Voilà le script pour payer.
NWScript :

void main()
{
int iBiere = GetLocalInt(OBJECT_SELF, "COMMANDE_BIERE");
int iRose = GetLocalInt(OBJECT_SELF, "COMMANDE_ROSE");
int iVodka = GetLocalInt(OBJECT_SELF, "COMMANDE_VODKA");
int iBlanc = GetLocalInt(OBJECT_SELF, "COMMANDE_BLANC");

int iPrixAPayer = iBiere * 5 + iRose * 10 + iVodka * 15 + iBlanc * 20;

SetCustomToken(1500, IntToString(iPrixAPayer));

    if(GetGold(GetPCSpeaker()) < iPrixAPayer)
    {
    ActionSpeakString("Vous n'avez pas l'argent pour payer votre note !");
    }
    else
    {
    ActionSpeakString("Merci !");
    TakeGoldFromCreature(iPrixAPayer, GetPCSpeaker(), TRUE);

    int boucle = 0;
    while(boucle != iBiere)
    {
    CreateItemOnObject("biredemurben", GetPCSpeaker(), 1);
    boucle++;
    }

    boucle = 0;
    while(boucle != iRose)
    {
    CreateItemOnObject("ros", GetPCSpeaker(), 1);
    boucle++;
    }

    boucle = 0;
    while(boucle != iVodka)
    {
    CreateItemOnObject("vodka", GetPCSpeaker(), 1);
    boucle++;
    }

    boucle = 0;
    while(boucle != iBlanc)
    {
    CreateItemOnObject("blanc", GetPCSpeaker(), 1);
    boucle++;
    }

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

J'espère que ca aura aider quelqu'un Smile
_________________
"Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit."
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 22/03/2006 12:59:42 Sujet du message :

Salut a tous et a toutes !

Après m'ettre absenté je vois que j'ai eu quelques reponses, et je tiens a dire un grand merci a tout le monde ! Tout ca va me servir !

@+
_________________
Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
-MeteZ-
Seigneur
Inscrit le: 19 Mar 2006
Messages: 205
Localisation: Région Parisienne (95)
Répondre en citant
Posté le : 22/03/2006 13:06:28 Sujet du message :

J'espère que mon post d'au dessus sur la serveuse n'est pas trop confu Smile. De toute façon tu prend juste les scripts et tu les ajustes en fonction de tes besoins.
_________________
"Ne dit pas affronter les ténèbres celui qui n'a jamais connu la tombée de la nuit."
 
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 39.421ms