Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

Event smmorpg

Aller en bas  Message [Page 1 sur 1]

1 Event smmorpg le 20/05/14, 08:53 pm

Yzarc

avatar
Newbie
Newbie
Hello tout le monde, alors aujourd'hui petit question. je cherche a faire une fonction qui incrémenterait une variable a chaque joueur qui parle a un PNJ. Et que ensuite cette variable modifie une variable local. c'est pour donner un code différent a chaque joueur en faite.

Voir le profil de l'utilisateur

2 Re: Event smmorpg le 20/05/14, 09:29 pm

La variable locale est emmagasinée "dans" le joueur, donc tu peux déjà la faire modifier par ton dialogue de pnj à ta guise sans avoir à la faire passer par une autre variable.

La manière que je vois pour faire du "aléatoire" est de changer ta variable locale pour un nombre compris entre "min" et "max". Exemple, ça te donnerait un chiffre entre 1 000 et 100 000. Les chances pour que deux joueurs aient le même code sont faibles...

Pour que ton code soit vraiment unique, il faut passer par les variables serveur. C'est un long procédé et surtout une longue suite de branches conditionnelles.
Il faut:
- mettre une variable serveur qui s'augmente à chaque fois que l'event déclencheur "à la première connexion" s'active;
- donner une variable locale au joueur qui vient de se connecter pour la première fois tout en augmentant de +1 la variable serveur;
- quand tu auras besoin de savoir quel chiffre est relié à quel joueur, tu pourras rappeler ta variable locale.

Ainsi, couplé avec ma première technique de variable locale aléatoire, tu pourras repérer le bon nombre sur le bon joueur.

Ex.: joueur 3 avec comme nombre 5984.

Je sais que ce n'est pas clair, car je n'ai pas mentionné que pour ce faire, ça requière une large branche de variables conditionnelles. Mais au moins, tu as des pistes de départ.


........................................
BJ
Voir le profil de l'utilisateur

3 Re: Event smmorpg le 20/05/14, 09:40 pm

Aurusse

avatar
Administrateur
Administrateur
Bonsoir,

l'idéal, mais non possible actuellement, serait de copier la variable globale (qui s'incrémente à chaque nouvelle connexion) dans une variable locale qui servirait d'ID unique pour le joueur. Mais comme dis, il est impossible via les événements de copier une valeur d'une variable vers une autre... Je rajoute cette fonctionnalité à la liste.

Donc le seul moyen, temporaire, est de faire comme l'a dit BloodJoker: Générer un nombre aléatoire entre [0; 100 000] par exemple. Plus l'écart est grand et moins il y a de chance de tomber sur le même numéro mais il est tout de même possible que cela arrive une fois :/
Il faut également faire attention à la valeur maximale à mettre, ne sachant pas quel type de variable est utilisée pour les variables globales/locales, je ne sais pas quel est le maximum. hovic pourra nous éclaircir ou je regarderai demain Wink

Voir le profil de l'utilisateur

4 Re: Event smmorpg le 20/05/14, 10:04 pm

Yzarc

avatar
Newbie
Newbie
Oui j'avais pensez à la base mais le soucis c'est que cette variable sert de code de porte. en fait le joueur possède une porte sandbox qu'il peut installer a l'entrée de sa maison ou de son appartement du coup si la fonction est vraiment trop grande. car derrier il y a un objet qui possède ce code.
Mais je me demande maintenant, si je crée juste un objet qui se fixe a la variable locale du joueur. Si un autre joueur vient sur la porte celle ci va prendre la variable du nouveau joueur ou restera elle à la valeur de l'ancien joueur?

Voir le profil de l'utilisateur

5 Re: Event smmorpg le 20/05/14, 10:51 pm

La variable locale se fixe, il me semble, sur le joueur, pas sur le Sandbox.


........................................
BJ
Voir le profil de l'utilisateur

6 Re: Event smmorpg le 21/05/14, 10:25 am

Aurusse

avatar
Administrateur
Administrateur
Comme l'a précisé Bloodjoker, on ne peut pas donner de variable à un événement/sandbox. Les variables sont soit globales, soit locales (attachée au joueur).
Je vois donc difficilement comment faire automatiquement une porte réservée au joueur.

Voir le profil de l'utilisateur

7 Re: Event smmorpg le 21/05/14, 10:49 am

Yzarc

avatar
Newbie
Newbie
Bon j'ai trouver une solution, sa risque d'êtres long mais dans le principe ça devrait fonctionner.
Je vais faire un nombre d'objet équivalent au nombre de maison/appartement disponible. et un switch par objet. Un PNJ va demander au joueur de choisir un code porte si ce code est disponible alors la porte lui reviens sinon il prend le suivant. Qu'en pensez vous?

Voir le profil de l'utilisateur

8 Re: Event smmorpg le 21/05/14, 11:14 am

Aurusse

avatar
Administrateur
Administrateur
Oui le PNJ pourrait directement lui donner une porte disponible mais il faudrait créer autant d'objet que de porte et avec une variable globale qui s'incrémente chaque fois que le PNJ donne une clé/objet pour ensuite donner l'objet/clé suivant (via des branches conditionnelles).

Mais oui c'est possible ainsi.

Voir le profil de l'utilisateur

9 Re: Event smmorpg le 21/05/14, 11:32 am

Il faudrait une structure de données qui existe en Python, mais je ne pense pas qu'il y en ai dans le logiciel : les dictionnaires. Je crois que cette structure de donnée existe dans le langage de programmation du logiciel, mais je ne pourrai pas l'affirmer.

il s'agit en réalité d'une liste, mais qui n'est pas ordonnée. Comme un dictionnaire, on retrouve les éléments par leur nom. L'idée serait d'utiliser le nom du joueur comme index et d'y associer le code. En Python, cela donnerait quelque chose comme ça :

Code:

global mondico = dict()     # On a une variable global ici
if ModifierMotDePasse :
----print 'entrez le code secret :'
----code = Saisie du code
----mondico[nomdujoueur] = code
if PasserLaPorte:
----print 'entrez le code secret :'
----code = Saisie du code
----if mondico[nomdujoueur] == code:
--------print 'code correct !'
----else:
--------print 'code erroné !'
Ainsi, on associe au nom du joueur un qu'il a lui même rentré. Si deux codes sont identiques sur le serveur, pas de problèmes la première clé est le nom du joueur. C'est la combinaison du nom et du code qui permet d'ouvrir.
Je pense que l'ajout d'une telle structure de donnée pourrait être un plus au logiciel, a méditer

Voir le profil de l'utilisateur

10 Re: Event smmorpg le 21/05/14, 02:46 pm

Yzarc

avatar
Newbie
Newbie
Très bonne idée je vois ce que tu veux dire et sa serai très utile pour crée des hall de guilde etc.

Voir le profil de l'utilisateur

Contenu sponsorisé


Revenir en haut  Message [Page 1 sur 1]

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum