Jump to content
×
×
  • Create New...
  • 0

Commande récompense


XxFreez3
 Share

Question

Bonsoir, j'aimerai un peu d'aide pour faire une commande lorsque qu'une personne gagne un kolizeum il gagne des jetons, par exemple lorsqu'il à atteint 50 jetons il fait .recompense 1 ; 2 ou 3... il à l'objet qui est censé être gagné.

 

Merci d'avance :).

 

(Ancestra)

Link to comment
Share on other sites

  • Answers 17
  • Created
  • Last Reply

Top Posters For This Question

17 answers to this question

Recommended Posts

  • 0
  • Retraité

Bonsoir,

Sache qu'il s'agit ici d'une section d'aide uniquement. Ce qui signifie que nous pouvons (et c'est là le rôle de la communauté) t'aider, mais que nous n'avons pas à tout te faire (ici une commande de A à Z).

Il serait donc souhaitable que tu précises ta demande en commençant par expliquer un peu plus ta commande (je suis sûrement un peu fatigué mais je comprends pas tout à fait le fonctionnement désiré) , et surtout que tu nous dises ce que tu as tenté/commencé, sur quoi tu bloques, un détail précis que tu ne comprends pas ... Des informations supplémentaires sont par ailleurs nécessaires comme notamment l'attribut (= variable d'un objet, ici le personnage) du Personnage contenant son nombre de jetons.

Bref, là j'ai l'impression que tu n'as même pas cherché & que tu viens nous voir pour trouver ta commande toute faite ^^

Link to comment
Share on other sites

  • 0

Oui je me suis mal expliqué ^^

En faite je chercher à ce que quand un joueurs à atteint le nombre de jetons (165 par exemple) il tape .recompense donc il va perdre ses 165 jetons puis gagner l'item de la récompense.

 

Edit j'ai ça : 

 

if (msg.length() > 9 && msg.substring(1, 10).equalsIgnoreCase("cadeaukol")) {
								 {

									 int Jetons = 10275;
									 int qte = 200; //quantite
									 _perso.removeItem(Jetons, qte, true, true);

									Personnage target = _perso;
									int Cadeau = 110;
									int qua = 1;
									ObjTemplate t = World.getObjTemplate(Cadeau);

									Objet obj = t.createNewItem(qua, false);
									if (_perso.addObjet(obj, true))
										World.addObjet(obj, true);

									SocketManager.GAME_SEND_Ow_PACKET(_perso);
									SQLManager.SAVE_PERSONNAGE(target, false);

									return;
								}

 

Avec la première partie : 

 

int Jetons = 10275;
									 int qte = 200; //quantite
									 _perso.removeItem(Jetons, qte, true, true);

 

Le personne ce déconnecte lorsque la commande est exécuter.

J'essaye plein de choses mais j'ai besoin d'un coup de pouce. 

Link to comment
Share on other sites

  • 0
  • Retraité

Salut,

Désolé je n'ai pas pu me connecter ces derniers-jours.

 

A priori le code a l'air correct, tu devrais avoir un message d'erreur dans la console au moment où le personnage est déconnecté, pourrais-tu nous le montrer ? Si tu n'en vois pas il faut certainement activer le mode débug dans la config.txt, en espérant que mes souvenirs d'ancestra ne me trahissent pas.

Quoi qu'il en soit & comme souvent c'est très possible que ce soit une erreur de null pointer, comme pour la variable obj renvoyée par createNewItem, par exemple.

 

EDIT :

J'ai mal compris la fin de ton post, c'est seulement quand tu ajoutes les 3 lignes citées pour la suppression des jetons que tu es déconnecté ?

 

EDIT 2 : A quoi sert ta variable target ? Je ne pense pas que ce soit l'erreur en question (sauf si _perso est mal copié dans target, empêchant SAVE_PERSONNAGE de s'exécuter correctement, mais il n'y a pas de raison) mais tu devrais pouvoir utiliser uniquement _perso.

Link to comment
Share on other sites

  • 0

Oui quand j'ajoute ça le personne est déconnecté, puis dans la console il y écrit "null".

 

 

int Jetons = 10275;
                                       int qte = 200; //quantite
                                       _perso.removeItem(Jetons, qte, true, true);

 

 

j'ai ça comme erreur : 

 

 

Lancement du serveur..

 

java.lang.ArrayIndexOutOfBoundsException: 6

at objects.Monstre$MobGrade.(Monstre.java:443)

at objects.Monstre.(Monstre.java:665)

at common.SQLManager.LOAD_MOB_TEMPLATE(SQLManager.java:1533)

at common.World.createWorld(World.java:858)

at common.Ancestra.main(Ancestra.java:158)

java.lang.NullPointerException

at objects.Personnage.removeItem(Personnage.java:2315)

at game.GameThread.Basic_chatMessage(GameThread.java:4345)

at game.GameThread.parseBasicsPacket(GameThread.java:4107)

at game.GameThread.parsePacket(GameThread.java:158)

at game.GameThread.run(GameThread.java:105)

at java.lang.Thread.run(Unknown Source)

 

J'ai mis ce code : 

if (msg.length() > 9 && msg.substring(1, 10).equalsIgnoreCase("cadeaukol")) {
                               {
                                   
                                   int Jetons = 10275;
                                   int qte = 200; //quantite
                                   _perso.removeItem(Jetons, qte, true, true);
                                   
                                  
                                  int Cadeau = 110;
                                  int qua = 1;
                                  ObjTemplate t = World.getObjTemplate(Cadeau);
                                  
                                  Objet obj = t.createNewItem(qua, false);
                                  if (_perso.addObjet(obj, true))
                                      World.addObjet(obj, true);
                                  
                                  SocketManager.GAME_SEND_Ow_PACKET(_perso);
                                  SQLManager.SAVE_PERSONNAGE(_perso, false);
                                  
                                  return;
                              }
						}

 

"null" dans la console.

Link to comment
Share on other sites

  • 0
  • Retraité

Est-ce que je peux avoir ton GT en entier ? Et quelle est la ligne 2315 ? Sur les 3 lignes de codes ajoutées le null pointer ne peut être que ta variable _perso mais c'est vraiment bizarre, pourquoi elle serait vide ?

Link to comment
Share on other sites

  • 0
  • Retraité

Wow, difficile de s'y retrouver avec cette indentation. Les lignes n'ont pas l'air de correspondre, peux-tu me dire quelle est la ligne 2315 du GT utilisé quand tu as eu l'erreur que tu m'as montré ci-dessus ?

J'avais mal lu l'erreur, le problème viendrait a priori de la fonction même removeItem.

Link to comment
Share on other sites

  • 0
  • Retraité

Après une petite session tv :

J'ai pas trouvé de solution définitive et c'est pas facile de chercher sans accès à l'émulateur en même temps, mais tu devrais t'intéresser à l'ajout d'un objet sur le personnage car le problème vient probablement de là. Ce qui est sûr, c'est que ton personnage crash parce que l'émulateur ne trouve pas le jeton (quelque soit son template id apparemment, vu qu'on a testé avec 2 items différents) dans l'attribut _items de Personnage. Pourtant on voit bien le jeton en question dans ton inventaire, c'est le plus bizarre.

Sinon, regarde parmi les fonctionnalités déjà implantées de l'ému qui suppriment un objet du personnage pour voir si ça bug aussi, c'est une piste.

 

Bref, peux difficilement faire plus simplement en inspectant le code pour le moment, je reste disponible via tv.

Link to comment
Share on other sites

  • 0

if (msg.length() > 9 && msg.substring(1, 10).equalsIgnoreCase("cadeaukol")) {
                               {
                                   
                               	int Cadeaux = 120;
                                   int qte = -2;
                                   ObjTemplate j = World.getObjTemplate(Cadeaux);
                                   
                                   Objet obj1 = j.createNewItem(qte, false);
                                   if (_perso.addObjet(obj1, true))
                                       World.addObjet(obj1, true);
                       			
                                   
                                  
                                  int Cadeau = 110;
                                  int qua = 1;
                                  ObjTemplate t = World.getObjTemplate(Cadeau);
                                  
                                  Objet obj = t.createNewItem(qua, false);
                                  if (_perso.addObjet(obj, true))
                                      World.addObjet(obj, true);
                                  
                                  SocketManager.GAME_SEND_Ow_PACKET(_perso);
                                  SQLManager.SAVE_PERSONNAGE(_perso, false);
                                  
                                  return;
                              }
						}

Des que je mais ce code et que je pop 200 anneau dans mon inventaire le -2 s'effectue bien.

Mais des que je n'ai aucun anneau dans mon inventaire, ça me retire les jetons mais ça me pop un nombre incalculable d'item(id : 120).

Ça m'énerve  :D !!

Link to comment
Share on other sites

  • 0
  • Retraité

Salut, j'ai un peu de mal à saisir ton code. Il y a 2 étapes où tu génères 2 anneaux différents (120 & 110) l'un après l'autre. Sauf que pour le 120, tu précises une quantité négative (-2).

Souhaites-tu supprimer 2 anneaux de cette manière ? Comme son nom l'indique, la méthode createNewItem est faite pour créer de nouveaux objets, pas d'en supprimer. Si malgré tout la suppression marche bien de cette manière, ton problème vient sûrement du fait qu'il n'empêche que createNewItem n'est pas faite pour cette utilité.

 

Je suis aussi pas sûr d'avoir bien comprit ton problème : quand tu pop 200 anneaux (On parle bien des items jetons ?) et que tu saisis la commande tu perds bien 2 anneaux (jetons). Mais si tu saisis la commande sans aucun anneau (jeton), ça te retire malgré tout les jetons et te pop un nombre incalculable de cadeaux (l'autre anneau) ... ??

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share



  • Flux d'Activité

    1. 0

      Projet Genesis

    2. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    3. 0

      Metin2 Champions - Accès anticipé

    4. 0

      Barbok

    5. 4

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    6. 2

      Partage Émulateur 2.63

    7. 2

      Partage Émulateur 2.63

  • Recently Browsing

    • No registered users viewing this page.

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.