- Inscription
- 31 Décembre 2011
- Messages
- 1 154
- Réactions
- 523
- Points
- 20 333
Bonjour/Bonsoir,
Cela fait quelque mois que j'ai été inactif, pour fêter mon retour je viens vous partager une exclusivité que personne n'as encore vraiment partagé du moins je ne l'ai pas encore vue sur un forum.
/!Attention!\ Toute reproduction ou partage de ce tutoriel mènera à la suppression du tutoriel et des prochaines exclusivités que je vous aient réservé.
Pré-Requis :
Puis clique droit sur la table personnage et allez sur Design Table et rajoutez cette ligne comme sur l'image (n'ajoutez pas la ligne Incarnation)
Et voilà le tour est joué ! Si vous avez des questions surtout n'hésitez pas ! N'oubliez pas de vous munir du fichier Ornamentos.swf + d'un core adapté pour avoir les ornements sinon vous devrez utiliser votre base de donnée pour pouvoir mettre votre ornements ou vous devrez créer une commande.
Pour tout aide poser moi une question en privé ou sur le Topic ! Merci de respecter mon travail j'y est consacré du temps.
Cordialement iR3SH alias Swagg Man |Fan (Nom Fun)
Cela fait quelque mois que j'ai été inactif, pour fêter mon retour je viens vous partager une exclusivité que personne n'as encore vraiment partagé du moins je ne l'ai pas encore vue sur un forum.
/!Attention!\ Toute reproduction ou partage de ce tutoriel mènera à la suppression du tutoriel et des prochaines exclusivités que je vous aient réservé.
Pré-Requis :
- Les sources d'un émulateur
- Avoir quelques bases de codages (même si j’essaye de simplifier ce tutoriel au maximum)
- Base d'un Émulateur dérivés d'Ancestra ou bien iCore ( je n'ai pas adapter le code pour d'autres émulateurs)
- Ouvrez vos sources puis ouvrez dans un premier temps, puis commençons par le fichier GameThread.java, une fois ouvert faites Ctrl + F puis recherchez ceci :
Code:
public void run()
Code:private synchronized void parseOrnement(String packet) { try { switch (packet.charAt(1)) { case 'G': // Ornement String o1 = packet.substring(2); int ornement = 0; try { ornement = Integer.parseInt(o1); } catch (Exception e) { return; } int points = _compte.getPoints(); if (ornement == 6 || ornement == 9 || ornement == 12 || ornement == 17 || ornement == 21 || ornement == 26 || ornement == 30 || ornement == 33 || ornement == 37 || ornement == 38 || ornement == 39 || ornement == 40 || ornement == 41 || ornement == 42 || ornement == 43 || ornement == 44) { if (points >= 100) { int newPoints = points - 100; _compte.addPoints(newPoints); SocketManager.GAME_SEND_MESSAGE(this._perso, "Tu as obtenu un nouveau Ornement!", Ancestra.CONFIG_MOTD_COLOR); SocketManager.GAME_SEND_MESSAGE(this._perso, "Tu a perdu 100 points boutique.", Ancestra.CONFIG_MOTD_COLOR); this._perso.setOrnement(ornement); }else if (points < 100) { SocketManager.GAME_SEND_MESSAGE(this._perso, "Il faut au minimum 100 points boutique pour achèter cette Ornement.", Ancestra.CONFIG_MOTD_COLOR); } }else if (ornement == 5 || ornement == 8 || ornement == 11 || ornement == 16 || ornement == 20 || ornement == 23 || ornement == 25 || ornement == 29 || ornement == 32 || ornement == 36) { if (points >= 60) { int newPoints = points - 60; _compte.addPoints(newPoints); SocketManager.GAME_SEND_MESSAGE(this._perso, "Tu as obtenu un nouveau Ornement!", Ancestra.CONFIG_MOTD_COLOR); SocketManager.GAME_SEND_MESSAGE(this._perso, "Tu as perdu 60 points boutique.", Ancestra.CONFIG_MOTD_COLOR); this._perso.setOrnement(ornement); }else if (points < 60) { SocketManager.GAME_SEND_MESSAGE(this._perso, "Il faut au minimum 60 points boutique pour achèter cette Ornement.", Ancestra.CONFIG_MOTD_COLOR); } }else if (ornement == 4 || ornement == 7 || ornement == 10 || ornement == 13 || ornement == 14 || ornement == 15 || ornement == 18 || ornement == 19 || ornement == 22 || ornement == 24 || ornement == 28 || ornement == 31 || ornement == 34 || ornement == 35) { if (points >= 30) { int newPoints = points - 30; _compte.addPoints(newPoints); SocketManager.GAME_SEND_MESSAGE(_perso, "Tu as obtenu un nouveau Ornement!", Ancestra.CONFIG_MOTD_COLOR); SocketManager.GAME_SEND_MESSAGE(this._perso, "Tu as perdu 30 points boutique.", Ancestra.CONFIG_MOTD_COLOR); this._perso.setOrnement(ornement); }else if (points < 30) { SocketManager.GAME_SEND_MESSAGE(this._perso, "Il faut au minimum 30 points boutique pour achèter cette Ornement.", Ancestra.CONFIG_MOTD_COLOR); } }else if (ornement == 0) { this._perso.setOrnement(ornement); }else if (ornement == 1 || ornement == 2 || ornement == 3) { SocketManager.GAME_SEND_MESSAGE(this._perso, "Tu as obtenu un nouveau Ornement!", Ancestra.CONFIG_MOTD_COLOR); this._perso.setOrnement(ornement); } SocketManager.GAME_SEND_ERASE_ON_MAP_TO_MAP(_perso.get_curCarte(), _perso.get_GUID()); SocketManager.GAME_SEND_ADD_PLAYER_TO_MAP(_perso.get_curCarte(), _perso); break; } } catch (Exception e) { SocketManager.GAME_SEND_BN(_out); } }
- Ne paniquez pas je sais il y a des erreurs qui sont survenus, tout seras régler une fois le tutoriel finis. Ensuite recherchez
Code:case 'G': parseGamePacket(packet); break;
Code:case 'Z': parseOrnement(packet); break;
- /!Attention!\ Si vous avez déjà le système de points boutique sur votre émulateur passez cette étape ! Ouvrez Compte.java et en dessous de private int _cadeau; mettez ceci
Code:
private int _points;
Code:int points,
Code:this._points = points;
Code:public int getPoints() { return _points; } public void addPoints(int point) { _points += point; SQLManager.UPDATE_POINTS(this._GUID, _points); }
- Rendez vous dans SQLManager allez tout à la fin et insérez ces codes avant la fin de la boucle final bien sûr
Code:public static void UPDATE_POINTS(int accc, int puntos) { String baseQuery = "UPDATE accounts SET " + "`points` = ?" + " WHERE `guid` = ?;"; try { PreparedStatement p = newTransact(baseQuery, othCon); p.setInt(1, puntos); p.setInt(2, accc); p.executeUpdate(); closePreparedStatement(p); }catch(SQLException e) { RealmServer.addToLog("SQL ERROR: "+e.getMessage()); RealmServer.addToLog("Query: "+baseQuery); e.printStackTrace(); } } public static int LOAD_POINTS(String user) { try { ResultSet RS = SQLManager.executeQuery("SELECT * from accounts WHERE `account` LIKE '"+user+"';",Ancestra.OTHER_DB_NAME); String baseQuery = "UPDATE accounts " + "SET `reload_needed` = 0 " + "WHERE guid = ?;"; PreparedStatement p = newTransact(baseQuery, othCon); while(RS.next()) { p.setInt(1, RS.getInt("guid")); p.executeUpdate(); return RS.getInt("points"); } closePreparedStatement(p); closeResultSet(RS); }catch(SQLException e) { RealmServer.addToLog("SQL ERROR: "+e.getMessage()); e.printStackTrace(); } return 0; }
- Ouvrez Personnage.java en dessous de private boolean _isInBank; mettez ceci
Code://Ornements private int _ornement = 0;
Code:int ornement,
Code:0, -1, 0, 0, 0, z, (byte)0, 0, 0, "", -1, 0, -1 );
Code:0, -1, 0, 0, 0, z, (byte)0, 0, 0, "", -1, 0, -1, 0 );
Code:str.append(this._ornement).append(";");//Code impératif afin de voir les ornements
Code:public void setOrnement(int ornement) { _ornement = ornement; } public int getOrnement() { return _ornement; }
- Ouvrez SQLManager a nouveau, courage c'est la dernière étape ! Recherchez
Code:
public static void SAVE_PERSONNAGE
Code:" WHERE `personnages`.`guid` = ? LIMIT 1 ;";
Code:"`ornement`= ?" +
Code:p.setInt(36,_perso.get_GUID());
Code:p.setInt(35,_perso.getOrnement());
Code:RS.getByte("title"), RS.getInt("wife"), RS.getInt("isSeller"), RS.getString("quests"), RS.getInt("teamID")
Code:RS.getInt("ornement")
Code:RS.getByte("title"), RS.getInt("wife"), RS.getInt("isSeller"), RS.getString("quests"), RS.getInt("teamID"), RS.getInt("ornement")
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
Puis clique droit sur la table personnage et allez sur Design Table et rajoutez cette ligne comme sur l'image (n'ajoutez pas la ligne Incarnation)
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
Et voilà le tour est joué ! Si vous avez des questions surtout n'hésitez pas ! N'oubliez pas de vous munir du fichier Ornamentos.swf + d'un core adapté pour avoir les ornements sinon vous devrez utiliser votre base de donnée pour pouvoir mettre votre ornements ou vous devrez créer une commande.
Pour tout aide poser moi une question en privé ou sur le Topic ! Merci de respecter mon travail j'y est consacré du temps.
Cordialement iR3SH alias Swagg Man |Fan (Nom Fun)