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 10:16:17


  Page 1 sur 2 ¤ Aller à la page 1, 2  Suivante

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 23/04/2006 19:13:00 Sujet du message : [Résolu] Boule de cristal

Bonjour à tous,

Dans la série "j'ai des idées mais j'ai du mal à les appliquer", voici la "Boule de cristal".

L'effet voulu est celui-ci :
Un item "boulecristal" a une propriété actions 3 fois par jour. (jusque là, pas de souci).

Maintenant, j'aimerais qu'une fois que le joueur possedant l'item dans son inventaire clique dessus, un dialogue s'affiche. (jusque-là, toujours pas de problème).

Le dialogue affiché présenterait la liste des joueurs en ligne avec un texte et en choix possible chaque nom de joueur.

(exemple :
- Boule de Cristal : Sur quelle personne désirez-vous levez le voile ?
- Joueur 1
- Joueur 2
- Joueur 3 )

Bien évidement, il faut qu'il y ait autant d'entrées qu'il y ait de joueurs en ligne. (là ça me pose un problème à dire vrai).

Enfin, lorsqu'on clique sur le nom du joueur, un dialogue s'afficherait décrivant la zone où il se trouve (ça je pense pouvoir me débrouiller pour le faire).

Quelqu'un a-t-il des idées ?
Dernière édition par Djezebel le 03/05/2006 10:51:35; édité 4 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 23/04/2006 20:38:49 Sujet du message :

Une boucle sur les joueurs avec des Custom ?
_________________
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
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 23/04/2006 20:40:01 Sujet du message :

Il faut faire une boucle while pour passer tous tes joueurs et stocker leur noms dans des CustomToken.
Pas le temps ni ne courage de te le faire, mais fouille de ce coté là quoi... Embarassed
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 23/04/2006 23:25:49 Sujet du message :

Merci de vos réponses bien que j'aurais souhaité un peu plus de détails ^^

Je pense que je suis sur la bonne voie, mais je ne sais toujours pas comment mettre plusieurs token dans un dialogue...

Je veux dire, est-ce que je dois faire toute une série de <CUSTOM3001> <CUSTOM3002> etc dans le dialogue ? N'y a-t-il pas un moyen de remplacer ça pour donner le nombre exacte de ligne en fonction du nombre de joueurs ?

Autrement, le script qui pourrait être appliqué pourrait être celui-ci, il me semble (c'est la boucle pour les joueurs et mettre un token ... )
Je ne peux malheureusement pas tester me manquant la partie dialogue...

NWScript :
void main()
{
object oPC = GetFirstPC() ;
int nToken = 3000;

while (GetIsObjectValid(oPC))
    {
        string sPC = GetPCPlayerName(oPC);
        int nToken2 = nToken + 1;

        SetCustomToken(nToken2 , sPC);
        nToken = nToken2;
        oPC = GetNextPC();
    }
}
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.


Est-ce que c'est bon ? Je n'ai rien vu en recherche dans les token qui parlait de phrases ajoutées "spontanément" dans le dialogue...
J'ai bien vu comment on peut faire un token et mettre une phrase à la place du <CUSTOMXXX> mais je n'ai pas trouvé comment créer le <CUSTOMXXXX1> ... etc ...

Merci de votre attention.

EDIT :

J'ai créé un dialogue construit ainsi :

- Sur qui désirez-vous des informations ?
-- <CUSTOM3000>
-- <CUSTOM3001>
-- <CUSTOM3002>
-- <CUSTOM3003>

Dans le condition j'ai mis le script précédent et cela ne fonctionne pas...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Argyl
Grand Sage du Conseil
Inscrit le: 09 Fév 2005
Messages: 704
Répondre en citant
Posté le : 24/04/2006 07:57:19 Sujet du message :

Il y a de grande chance que cela ne fonctionne pas puisque tu n'as pas de PC, essaies avec un scan de zone(s) et des PnJs.

Sinon, mets des conditions supplémentaires, genre si pas de PC, une phrase :"Les conditions pour une divination sereine ne sont pas réunies"
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Wololo
Légende vivante
Inscrit le: 13 Déc 2002
Messages: 385
Répondre en citant
Posté le : 24/04/2006 08:57:22 Sujet du message :

en fait j'avais déjà ce même type de dialogue sauf que je téléportai le joueur utilisant la boule de cristal (en lui collant l'insvisibilité de CutScene, et une immobilisation) dans la zone du joueur visé ..

le souçis était qu'il partageait les dégâts si il tombait sur un sort de zone ..

j'avais utilisé des CUSTOM TOKENS et une boucle sur les joueurs (GetArea(oPJ))
_________________
vive les dumps et les livres !
Sanctuaire des Scripts
 
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 : 24/04/2006 10:50:04 Sujet du message :

Bonjour à tous !

Ca se précise, bien que ce ne soit pas encore ça ^^
La boucle de PJ ne pose visiblement aucun souci (je teste en étant en mode joueur) et j'ai réussi à faire avancer la chose.

Déjà, ma principale erreur avait été de faire un "void main" alors que c'était une condition d'execution de dialogue (donc StartingConditionnal).

Ca a donc été modifié et ça "fonctionne".

Le seul problème c'est que j'ai ceci :

- Sur quelle personne désirez-vous des informations ?
--<UNRECOGNIZED TOKEN>
-- Djezebel
--<UNRECOGNIZED TOKEN>
--<UNRECOGNIZED TOKEN>


Comment faire pour enlever les Unrecognized token quand on n'en a pas besoin ? Embarassed

Merci pour votre aide Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Harmelyo
Chevalier
Inscrit le: 06 Oct 2005
Messages: 84
Répondre en citant
Posté le : 24/04/2006 11:29:31 Sujet du message :

Ne peux tu pas faire un test avant de créer ton dialogue? Tu n'affichera un nombre d'options qu'égal au nombre de token valide.
Sinon peut être qu'avec un compteur incrémenter à chaque Token instancier...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Wololo
Légende vivante
Inscrit le: 13 Déc 2002
Messages: 385
Répondre en citant
Posté le : 24/04/2006 12:28:18 Sujet du message :

tu mets des conditions d'affichage à chaque branche du dialogue (afficher la possibilité joueur 2 uniquement si joueur2 est different de OBJECT_INVALID)
_________________
vive les dumps et les livres !
Sanctuaire des Scripts
 
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 : 24/04/2006 13:12:23 Sujet du message :

Auriez-vous des exemples plus précis (liens vers d'autres posts)? Car j'avoue que même avec vos explications, je reste assez perdue Embarassed
 
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 : 24/04/2006 13:51:02 Sujet du message :

Schéma du dialogue, les scripts pré(condition) et post(action) sont entre parenthèses ()


Citation :

<Racine>
Que voulez vous faire?
__Lever le voile. (pj_list)
____°Choisissez PJ.
______(pj_cond_custom) <CUSTOM3601> (pj_custom1)
______(pj_cond_custom) <CUSTOM3602> (pj_custom2)
______(pj_cond_custom) <CUSTOM3603> (pj_custom3)
______(pj_cond_custom) <CUSTOM3604> (pj_custom4)
______(pj_cond_custom) <CUSTOM3605> (pj_custom5)
______(pj_cond_custom) Autres. (pj_next) °lien vers Choisissez
______Retour.
NWScript :



void main()
{
    object oPC = GetPCSpeaker();
    int nCount = 0;
    object oPJ = GetFirstPC();
    while( GetIsObjectValid(oPJ) ){
      DeleteLocalInt(oPJ,"PJ_LIST");
      // il faut que l'utilisation du dialogue soit unique, sinon ajouter
     
      oPJ = GetNextPC();
    }
    while( GetIsObjectValid(oPJ) && nCount < 5) {
        if( !GetIsDM(oPJ) && (oPJ!=oPC) ){
          nCount++;
          SetCustomToken(3600+nCount, GetName(oPJ));
          SetLocalObject(oPC, "PJ_CUSTOM"+IntToString(nCount), oPJ);
          SetLocalInt(oPJ,"PJ_LIST",TRUE); // marqueur
        }
        oPJ = GetNextPC();
    }

    if (!nCount) {
        SetCustomToken(3601, "No PJ could be found.");
        SetLocalInt(oPC, "PJ_ITEM", 1);
        return;
    }


    if (GetIsObjectValid(oPJ)) {
        SetLocalInt(oPC, "PJ_MORE", nCount);
        nCount++;
    }

    SetLocalInt(oPC, "PJ_ITEM", 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.


NWScript :



void main()
{
    object oPC = GetPCSpeaker();
    int nPJ = GetLocalInt(oPC, "PJ_MORE");
    int nCount = 0;
    object oPJ = GetFirstPC();

    while (GetIsObjectValid(oPJ) && nCount < 5) {
      if( !GetIsDM(oPJ) && (oPJ!=oPC) && !GetLocalInt(oPJ,"PJ_LIST") ){
          nCount++;
          SetCustomToken(3600+nCount, GetName(oPJ));
          SetLocalObject(oPC, "PJ_CUSTOM"+IntToString(nCount), oPJ);
          SetLocalInt(oPJ,"PJ_LIST",TRUE); // marqueur
          nPJ++;
      }
      oPJ = GetNextPC();
    }

    if (GetIsObjectValid(oPJ)) {
        SetLocalInt(oPC, "PJ_MORE", nPJ);
        nCount++;
    } else DeleteLocalInt(oPC, "PJ_MORE");
    SetLocalInt(oPC, "PJ_ITEM", 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.


NWScript :



int StartingConditional()
{
    object oPC = GetPCSpeaker();
    int nCount = GetLocalInt(oPC, "PJ_ITEM");
    if( nCount ){
        SetLocalInt(oPC, "PJ_ITEM", --nCount);
        return TRUE;
    }
    return FALSE;
}
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.


Il vous reste à utiliser les variables :
NWScript :
int nCount = GetLocalInt(oPC, "PJ_ITEM");
object oPJ = GetLocalObject(oPC, "PJ_CUSTOM"+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.


dans les scripts pj_custom(i)

à tester/débugger sur l'éditeur : j'ai fait en direct.
 
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 : 25/04/2006 11:08:25 Sujet du message :

Alors là, je dis chapeau Lylver Smile

J'ai testé, ça a bien compilé mais comme je l'ai testé en solo, ça ne donnait pas grand chose.

J'attends de pouvoir tester en multi pour te dire le résultat

En tout cas merci grandement !
 
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 : 28/04/2006 11:36:27 Sujet du message :

Après teste, ça ne fonctionne malheureusement pas.

Il s'avère qu'il y avait deux joueurs, et que l'objet disait qu'il n'y en avait aucun.
Donc aucune création de branche ni même de nom.

Une idée ? (j'ai repris le script tel quel)
 
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 : 28/04/2006 16:40:30 Sujet du message :

Je te regarde ça ce week-end, je vais en avoir besoin donc ca finira par être au point.
 
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 : 29/04/2006 10:25:19 Sujet du message :

Entendu, merci beaucoup Smile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Fanboy
Acolyte
Inscrit le: 04 Avr 2006
Messages: 23
Répondre en citant
Posté le : 30/04/2006 02:20:42 Sujet du message :

je pense qu'apré la premiere boucle du premier script
il faut rajouter :
oPJ = GetFristPC();

ca ma sauté au yeu en lisant le script, la premier boucle se faisant oPJ ciblera frocément un objet invalide...pour sortir de la 1ere boucle...

ce faisant ca rentre pas dans la 2eme boucle..

et tu a du recevoir comme message : "No PJ could be found"
_________________
Kikoo
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 30/04/2006 09:49:51 Sujet du message :

(fausse manip désolé... Surprised )
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 30/04/2006 13:06:10 Sujet du message :

Je ne peux t'aider ne maitrisant pas assez les scripts, mais ton idée est carrément bien, une fois que tout marchera si tu pouvais nous remettre ça au clair je suis preneur^^!!!!!


Viduc
_________________
 
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 : 01/05/2006 17:25:08 Sujet du message :

Salut.

Voila, alors j'ai médité sur ce script pour pouvoir savoir comment le mettre en place, et je pense avoir réussit, bien sur, je ne l'ai pas testé sur le net, puisque mon Routeur me bloque encore, donc si quelqu'un pouvait le testé cela serait gentil de ca part.

On va prendre mon cas :

1) Placer un placeable quelque part ou vous voulez.

2) Mettez un dialogue dans ce placeable de ce genre :

"Bonjour, voici la liste des joueurs connectés en ce moment même.
_<CUSTOM9001>
_<CUSTOM9002>
_Etc.. jusqu'au maximum de votre serveur (moi 32)"

3) Placez ce script dans le OnUsed du placeable :

NWScript :
void main()
{
object oPC = GetLastUsedBy(); //...
object oPJ = GetFirstPC(); //...
int nCustom = 9000; //...
ActionWait(1.0);
while(oPJ != OBJECT_INVALID && oPJ != oPC)//...
{
SetLocalInt(GetModule(), "PJ_LIST", GetLocalInt(GetModule(), "PJ_LIST")+1);//On met une variable pour dire combien il y a de joueur dans le serveur
}
int nPlayer = GetLocalInt(GetModule(), "PJ_LIST");//...
int nMax = 0;//...
ActionWait(1.0);//...
while(oPJ != OBJECT_INVALID && oPJ != oPC && nMax < nPlayer)
{
nCustom++;//...
nMax++; //...
SetCustomToken(nCustom, GetName(oPJ)+" ("+GetPCPlayerName(oPJ)+")");
nCustom = nCustom;//...
nMax = nMax; //...
}
ActionWait(1.0);//...
nMax = nMax;//...
nCustom = nCustom;//...
while(nMax <= 31)
{
nCustom++;//...
nMax++;//...
SetCustomToken(nCustom, "Place non prise");//Ici on dit que il n'y a plus de joueur, donc la place est dispo
nCustom = nCustom;//...
nMax = nMax;//...
}
ActionWait(2.0);//...
ActionStartConversation(oPC, "", TRUE);//On active le dialoque
}
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.


Tout est expliqué en vert. Ensuite allez jouer et normalement ca fonctionne. Bien sur, comme vous l'avez remarquer, le script ne vous prend pas en compte, donc, dans les Customs vous vous arreterez a votre maximum-1, donc moi au lieu de 32, je mets 31.

Voila Smile
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
PetitPrince
Super-Mouton
Inscrit le: 12 Sep 2002
Messages: 2043
Localisation: Asteroïde B-612 actuellement crashé en Suisse
Répondre en citant
Posté le : 01/05/2006 17:46:13 Sujet du message :

Rien à voir: pourquoi tu commentes pour ne rien dire (chuis juste curieux, c'tout Embarassed)

Rien à voir²: Salut Djezebel ! Comment ça va depuis Cendrelune ? Very Happy
_________________
b-612.yi.org (chez moi) | tetrisconcept.com (LE site sur Tetris) | Grospixels (c'était mieux avant) | Geekzone (for and by crazy geeks)

Securom, ça suxe
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 01/05/2006 18:13:07 Sujet du message :

Salut !

Blacknight => J'ai testé et hélas ça n'a pas fonctionné (too many instructions). Mais merci pour cette initiative Smile

Petit Prince : Je t'ai répondu en mp... Et si tu mettais ta main à la pâte pour résoudre ce souci hein ? ^^
 
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 : 01/05/2006 18:31:03 Sujet du message :

Tu la essayé avec deux joueurs le script ou pas? car moi j'ai aucun problème sur le "Too Many instruction". Aurais tu changer quelque chose dans le script par hazard?
_________________
[http]
 
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 : 01/05/2006 19:27:39 Sujet du message :

2 erreurs corrigées

NWScript :



void main()
{
    object oPC = GetPCSpeaker();
    int nCount = 0;
    object oPJ = GetFirstPC();
    while( GetIsObjectValid(oPJ) ){
      DeleteLocalInt(oPJ,"PJ_LIST");
      // il faut que l'utilisation du dialogue soit unique, sinon ajouter
     
      oPJ = GetNextPC();
    }
    oPJ = GetFirstPC();
    while( GetIsObjectValid(oPJ) && nCount < 5) {
        if( !GetIsDM(oPJ) && (oPJ!=oPC) ){
          nCount++;
          SetCustomToken(3600+nCount, GetName(oPJ));
          SetLocalObject(oPC, "PJ_CUSTOM"+IntToString(nCount), oPJ);
          SetLocalInt(oPJ,"PJ_LIST",TRUE); // marqueur
        }
        oPJ = GetNextPC();
    }

    if (nCount == 0) { // arf arf ...
        SetCustomToken(3601, "No PJ could be found.");
        SetLocalInt(oPC, "PJ_ITEM", 1);
        return;
    }


    if (GetIsObjectValid(oPJ)) {
        SetLocalInt(oPC, "PJ_MORE", nCount);
        nCount++;
    }

    SetLocalInt(oPC, "PJ_ITEM", 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.


Je teste en multi-player dés le prochain reboot du TNB

Merci à PetitPrince d'avoir rappelé de pas flooder (un post ca doit apporter quelque chose à la discussion, remerciements compris et appréciés)
... autre chose, je rappelle que la pub sauvage et les expressions vulgaires ...


--------------
Validé à 7 joueurs
--------------
Pour exploiter, on ne peut pas utiliser PJ_ITEM, il est automatiquement décrémenté, il faut mettre une valeur fixe de 1 à 5 dans les scripts pj_custom(i)
Dernière édition par lylver le 04/05/2006 11:07:57; édité 4 fois
 
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 : 01/05/2006 19:58:06 Sujet du message :


Black Knight a écrit :


NWScript :
void main()
{
object oPC = GetLastUsedBy(); //...
object oPJ = GetFirstPC(); //...
int nCustom = 9000; //...
ActionWait(1.0);

while(oPJ != OBJECT_INVALID && oPJ != oPC)
{
SetLocalInt(GetModule(), "PJ_LIST", GetLocalInt(GetModule(), "PJ_LIST")+1);//On met une variable pour dire combien il y a de joueur dans le serveur
}

int nPlayer = GetLocalInt(GetModule(), "PJ_LIST");//...
int nMax = 0;//...
ActionWait(1.0);//...
while(oPJ != OBJECT_INVALID && oPJ != oPC && nMax < nPlayer)
{
nCustom++;//...
nMax++; //...
SetCustomToken(nCustom, GetName(oPJ)+" ("+GetPCPlayerName(oPJ)+")");
nCustom = nCustom;//...
nMax = nMax; //... Laughing
}



ActionWait(1.0);//...
nMax = nMax;//...
nCustom = nCustom;//...
while(nMax <= 31)
{
nCustom++;//...
nMax++;//...
SetCustomToken(nCustom, "Place non prise");//Ici on dit que il n'y a plus de joueur, donc la place est dispo
nCustom = nCustom;//...
nMax = nMax;//...
}
ActionWait(2.0);//...
ActionStartConversation(oPC, "", TRUE);//On active le dialoque
}
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 plus même si tu incrémentes oPJ, comme tu sors à oPC, tu trouvera jamais tous les joueurs du module (à moins qu'oPC soit le dernier de la liste).

Et les actionWait servent quasi à rien, autant mettre un delayCommand de 5.0 avant le départ du dialogue (ou en mettre un seul de 5 secondes)
 
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 : 01/05/2006 20:45:26 Sujet du message :

Je n'ai pas mit ces lignes pour faire jolie, j'ai du les mettre car sinon le serveur fesait un crash. Et normalement si, le serveur trouvera tout les joueurs, puisque dans mon premier While je dit combien il y en a. Et les oPC != oPj c'est pour évité a ce que on ce retrouve dans la liste.
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 2 ¤ Aller à la page 1, 2  Suivante


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