[1.10.x] MinecraftRPG : Partez à l'aventure !
#11
Bonjour, je viens vous donner des nouvelles !

Bon clairement, ça n'a pas avancé beaucoup, je suis en pleine période de révision et d'examens, je préfère utiliser mon temps libre pour réviser.

Par contre j'ai quand même travaillé un peu sur le système de zone, ce serait un système qui lancerai des commande en fonction d'un trigger. Ce trigger peut être juste un contact, ou un contact + une touche par exemple. Les commandes pourront être répéter et seront exécute les unes à la suite des autres. Les zones pourront être configurer, combien de temps avant chaque répétition de commandes, etc.. . L'avantage de faire comme ça c'est que j'ai l'impression que c'est assez générique, par exemple avec le mod ici, on peut par exemple supprimer des objets d'un inventaire, donné de l'argent en échange, ou give un objet tant que c'est possible.

Une autre idée serait d'ajouter un système "d'hôtel de vente", ça permettrais de faire en sorte que les métiers ne soit pas juste un truc bateau qu'il faut faire un peu tout les jours. Mais ça pourrait créer un système économique dynamique. Mais c'est juste une ébauche, je ne sais pas trop comment m'y prendre, un système de pnj configurable ou autre ?

Voilà, je vous encourage toujours à venir contribuer ici ou sur Github : https://github.com/YannDub/MinecraftRPG
Répondre
#12
Une entité qui stocke les infos de mise en vente d'un item d'un GUI qui seront affichées via un autre GUI de l'entité pour la mise en vente.
Sachant que toutes les entités de ce type devront avoir toutes ces infos identiques en même moment (sous peine de dupli)
Répondre
#13
Après un long moment d'absence, me revoilà pour donner des nouvelles !

J'ai travaillé sur un système de banque pour le moment c'est basique mais ça fait le café. Surtout que j'ai pensé à des petits détails qui vont servir pour la suite : l'hôtel de vente.

J'ai donc utilisé un WorldSavedData pour faire les banque qui unie le UUID et le solde en banque d'un joueur. Ce qui a pour effet de pouvoir faire des ajout / virement même si le joueur n'est pas connecté.

En ce qui concerne l'hôtel de vente, pour le moment je compte partir sur un truc "basique" dans le sens où il n'y aura pour le moment pas plusieurs type d'hôtel (pour la nourriture, le drop, arme, etc... même si à terme ce serait cool). On pourra utiliser un nouveau WorldSavedData qui va se charger de sauvegarder les objets ajoutés à l'hôtel global. On aura donc plusieurs entité qui vont pointé sur le même hôtel !

Pour la vente, le cas le plus, simple, il suffit d'ajouter l'objet au gui, indiquer un prix (est-ce qu'on bloque la possibilité de mettre un prix de 0 ?) et de valider. Il n'y a pas de vérification particulière à faire.

Pour l'achat, là c'est plus compliquer, d'autant plus que je ne sais pas comment fonctionne exactement le serveur minecraft. Mais en gros il faut tester avant l'achat d'un objet si celui-ci n'a pas déjà était vendu et c'est une section critique car à mon avis, on a aucun moyen de savoir si un packet est envoyé avant un autre.

Par exemple, prenons 2 joueurs (A et B) et un item (Z).
A et B veulent acheter Z
A achète Z -> le packet est envoyé
B achète Z -> Le packet est envoyé
Serveur répond à A -> Ok tient voilà l'objet
Serveur répond à B -> Ok voilà l'objet

On peut imaginer un système où quand Serveur reçoit le packet il réserve Z et donc le second packet aura pour retour que non l'objet est vendu. A tester donc.

En ce qui concerne ma roadmap je compte faire :

- Améliorer la banque (il y a des petits points noir que j'aime pas trop + command)
- Hôtel de vente
- Passage en 1.12

Ensuite ce sera la premier release pour faire tester l'hôtel de vente mais aussi parce que je pense qu'avec l'hôtel de vente on peut déjà faire des serveur RP / MMORPG bien cool !
Répondre
#14
A achète Z (clique sur le bouton acheter) -> Le paquet est envoyé au serveur
B achète Z (clique sur le bouton acheter au même moment que A) -> Le paquet est envoyé au serveur
Serveur reçoit le paquet de A, retire l'objet du marché et le donne à A -> Envoie un paquet à A "Objet acheté"
Serveur reçoit le paquet de B, l'objet n'est plus présent -> Envoie un paquet à B "Objet déjà vendu"

Lors de l'achat d'un objet tu peux notifier tous les clients pour que l'objet soit retiré de l'affichage client. Si tu as besoin d'aide / d'informations n'hésite pas à me contacter.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)