La Centrale ~ Super MMORPG Maker Box
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Display Star Wars Unlimited Ombres de la Galaxie : où l’acheter ?
Voir le deal

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

Event smmorpg

4 participants

Aller en bas  Message [Page 1 sur 1]

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

Yzarc

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

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

Bloodjoker

Bloodjoker
Newbie
Newbie

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.

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

Aurusse

Aurusse
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

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

Yzarc

Yzarc
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?

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

Bloodjoker

Bloodjoker
Newbie
Newbie

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

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

Aurusse

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

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

Yzarc

Yzarc
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?

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

Aurusse

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

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

Drinausaur

Drinausaur
Newbie
Newbie

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

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

Yzarc

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

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