Sign in to follow this  
-Walaka-

 tutoriel / partage [JAVA] Créer une commande VIP

Recommended Posts

Bonjour, je vais vous apprendre a crée une commande VIP, de plusieurs façon différente, et je vais aussi expliqué comment l'implanter.

 

Vous devez possédez:

-Les source d'ancestra remake (grâce au tuto de Sorbet)

-Eclipse=p

-Un cerveau

 

Grâce au tuto de Sorbet, je vous laisse ouvrir les source d'ancestra remake dans éclipse, c'est pas bien compliqué vous verrez...

 

On a tout? Oui? Non? Merde? Tempis on y va!

 

Ouvrez le src, allé dans 'Game' puis dans 'GameThread'. Faite CTRL+F (option de recherche rapide) inscrive 'if(msg.length() > 7 && msg.substring(1, 8).equalsIgnoreCase("command"))' vous tomberez en plein dans le bordel des commande.

===========================================================================================

Petit rappelle: descriptif rapide d'une commande (ici .start)

 

if(msg.charAt(0) == '.') Repère le premier caractère de la commande

{

if(msg.length() > 5 && msg.substring(1, 6).equalsIgnoreCase("start")) Repère la suite du premier caractère

{

if(_perso.get_fight() != null)return; Si le joueur es en combat, rien de se passe

_perso.warpToSavePos(); Téléporte a la position de save

return; Permet de ne pas affiché le nom de la commande dans le jeu!

}

}

===========================================================================================

Bon, on va faire une commande qui ajoute la particule [VIP] devant le pseudo du joueur VIP

 

 

Déjà, on doit nommé notre commande, pour qu'elle soit reconnue! On va l'appelée... hummmm.... '.vip' c'est bien? non? tempis.

 

Donc on as:

if(msg.length() > 5 && msg.substring(1, 6).equalsIgnoreCase("vip"))

hummm, il y a des erreur, remarqué, il y a trois chiffre dans cette ligne, le premier, le '5' donne le nombre de lettre dans 'vip', remplacé ce '5' par un '3', le '1' faut pas touché, sa identifie le '.' et le '6' c'est le '.' et le nom de la commande, donc '3' + '1' sa fait *roulement de tambour!* 4!!!! Donc on a:

if(msg.length() > 3 && msg.substring(1, 4).equalsIgnoreCase("vip"))

Bon, on va décortiqué cette ligne pour mieux comprendre:

Si 'vip' fait '3' lettre + '1' point et qu'en tout sa fait '6' alors la commande s'exécute

 

oui c'est très con le java, faut tout lui expliqué!

 

donc la on as:

if(msg.length() > 3 && msg.substring(1, 4).equalsIgnoreCase("vip"))

{

}

 

Haaaaa j'ai ajouter des accolades... Une erreur? Non! on a mis la condition, et donc si la condition es bonne, on exécute se qu'il y a entre les accolades! Non, pas de la magie...

 

Donc maintenant, on va codé (le mot 'ON' es un bien grand mot, on va dire 'JE') se que l'on doit mettre entre les accolades!

 

Déjà, il faut savoir comment s'appelle le joueur qui tape la command....

Donc sa fait:

_perso.get_name();

En francais?:angel:

Ben, '_perso' sa recherche le perso, et 'get_name' sa regarde le nom de se perso!

 

Là sa nous donne:

 

if(msg.length() >3 && msg.substring(1, 4).equalsIgnoreCase("vip"))

{

_perso.get_name();

}

 

on va aussi ajouté en dessous de

_perso.get_name();

sa:

String newname = "[VIP]"+_perso.get_name();

Aïe!!!! Qué Cé Qu'ca?!!

Ben, je vais décortiqué:

String c'est une variable (je crois, j'ai pas appris le java sur des site, alors je connais pas le langage technique) c'est une chaine de caractère en lettre, il y a aussi 'Int' la plus utilisé, c'est des chiffre. (Ne clique pas sur 'String')

'newname' ben c'est le nom de cette nouvelle chaine, j'aurais pu l'appeler 'vipname', on verras a quoi sa sert plus tard!

= ca c'est pas bien compliqué!

"[VIP]"+_perso.get_name(); sa donne: [VIP]+ le nom du perso, par exemple, le joueur s'appelle: 'Megakikoolol' sa donnera: [VIP]Megakikoolol'

 

Sa commence a prendre tournure, maintenant on as :

 

if(msg.length() >3 && msg.substring(1, 4).equalsIgnoreCase("vip"))

{

_perso.get_name();

String newname = "[VIP]"+_perso.get_name();

}

 

On va voire si le joueur es membre VIP!

Après notre dernierre ligne on ajoute:

 

Maintenant, on doit vérifié si le joueur es membre VIP, avant de modifié son pseudo!

 

if(_compte.get_vip() <= 1)

{

 

}

else

{

 

}return;

 

 

ICI, on as la forme, mais il faut déjà comprendre tout ca avent de le codé!

 

'if(_compte.get_vip() <= 1)' = ?

Si le compte es VIP supérieur ou égale a 1 on exécute sa:

{

 

}

Mais si il n'es pas supérieur ou égale a 1 :

 

else

{

 

}

Le 'return;' c'est pour faire joli! Nan j'dec, c'est pour éviter que dans le chat, tout le monde voient '.vip' sa ferais moche!

 

On pourais presque dire que notre commande ressemble a quelque chose!

 

if(msg.length() >3 && msg.substring(1, 4).equalsIgnoreCase("vip"))

{

_perso.get_name();

String newname = "[VIP]"+_perso.get_name();

if(_compte.get_vip() <= 1)

{

 

}

else

{

 

}return;

}

 

On va ajouter ces ligne qui s'exécuteront si le joueur es VIP:

 

 

_perso.set_name(newname);

SocketManager.GAME_SEND_MESSAGE(_perso, "Vous vous appelez désormait : "+newname+"", Ancestra.CONFIG_MOTD_COLOR);

 

En français sa fait:

_perso on regarde le perso

set_name on modifie le nom de ce perso par 'newname'

 

 

SocketManager.GAME_SEND_MESSAGE Dans le fichier SocketManager, on cherche et exécute le packet qui s'appelle GAME_SEND_MESSAGE et on remplis comme il faut la parenthèse:

 

(_perso, "Vous vous appelez désormais : "+newname+"", Ancestra.CONFIG_MOTD_COLOR)

(personnage, "TEXTE", COULEUR)

Texte: "Vous vous appelez désormait : "+newname

Sa veut dire que l'on s'appelle maintenant 'newname', la balise et sert a mettre le 'newname' en gras!

 

Et on remplis maintenant le 'else' par:

 

SocketManager.GAME_SEND_MESSAGE(_perso, "Petit malin, tu n'es pas membre VIP!\nVa a la boutique me donner ton fric, seulement là tu pourras utilisé cette commande!\nNiark!!!!", Ancestra.CONFIG_MOTD_COLOR);

 

J'ai déjà expliqué comment sa fonctionne, mais je fais rajouté quelque chose:

le '\n' fait passé se qui suit a la ligne.

 

on as:

 

if(msg.length() >3 && msg.substring(1, 4).equalsIgnoreCase("vip"))

{

_perso.get_name();

String newname = "[VIP]"+_perso.get_name();

if(_compte.get_vip() <= 1)

{

_perso.set_name(newname);

SocketManager.GAME_SEND_MESSAGE(_perso, "Vous vous appelez désormais : "+newname+"", Ancestra.CONFIG_MOTD_COLOR);

}

else

{

SocketManager.GAME_SEND_MESSAGE(_perso, "Petit malin, tu n'es pas membre VIP!\nVa a la boutique me donner ton fric, seulement là tu pourras utilisé cette commande!\nNiark!!!!", Ancestra.CONFIG_MOTD_COLOR);

}return;

}

 

 

 

On peut testé? Steuuplait, Steuuuplait?

Ben non, c'est pas finit!!! Là vous avez une erreur, Et même en corrigeant cette erreur, sa ne marcherais pas!

 

le passage avec 'set_name' est en rouge, a moin que vous ayez déjà modifié sa. Allé dans 'Objects'>'Personnage'

Faite CTRL+F, tapé:

 

public String get_name() {

return _name;

}

 

et en dessous de sa, écrive:

 

public void set_name(String _name) {

this._name = _name;

}

 

Oui, il y a encore marqué 'String' Non je ne suis pas un obsédé du cul mais c'est pour dire que set_name c'est des, lettre!

 

On retourne dans le 'GameThread' a notre 'tite commande! on va ajouter ces ligne:

 

 

SQLManager.SAVE_PERSONNAGE(_perso, false);

if(_perso.get_fight() == null) SocketManager.GAME_SEND_ALTER_GM_PACKET(_perso.get_curCarte(), _perso);

 

Sa sert a save le perso, et a le rafraichir!

 

voila, c'est finit, en tout on as:

 

 

if(msg.length() >3 && msg.substring(1, 4).equalsIgnoreCase("vip"))

{

_perso.get_name();

String newname = "[VIP]"+_perso.get_name();

if(_compte.get_vip() <= 1)

{

_perso.set_name(newname);

SocketManager.GAME_SEND_MESSAGE(_perso, "Vous vous appelez désormais : "+newname+"", Ancestra.CONFIG_MOTD_COLOR);

SQLManager.SAVE_PERSONNAGE(_perso, false);

if(_perso.get_fight() == null) SocketManager.GAME_SEND_ALTER_GM_PACKET(_perso.get_curCarte(), _perso);

}

else

{

SocketManager.GAME_SEND_MESSAGE(_perso, "Petit malin, tu n'es pas membre VIP!\nVa a la boutique me donner ton fric, seulement là tu pourras utilisé cette commande!\nNiark!!!!", Ancestra.CONFIG_MOTD_COLOR);

}return;

}

 

plus qu'a compiler grâce au tuto de sorbet, et voila!

Pour passer un membre VIP c'est dans la bdd la table des compte!

 

PS: Déso pour les fautes, ce qui compte c'est le tuto, j'ai passé une heur et demis la dessus.

 

Voila, l'oublié pas de cliqué ICI, j'ai une surprise pour vous!

 

Encore un PS:J'ai déjà fait un tuto a l'arrache pour se genre de commande, mais suis là es mieux.

  • Like 1

Share this post


Link to post
Share on other sites

Ce petit garnement m’épateras toujours....

Sewdy

Et tu dit c'est très con le JAVA faut tout lui expliquer hum c'est un peux pareil avec toi?

Share this post


Link to post
Share on other sites

Hummm, tu n'aurais pas oublier un 'e' a ton pseudo? je croyais que cetait Sewedy? Non?

 

Tu n'avais pas une serie de maps a me faire petit soumis?

Share this post


Link to post
Share on other sites

Merci :D !

Il est possible de rajouter quelque chose du genre "ton nom a deja été changé"

car on peut utiliser la commande tout le temps et ceci marque [VIP] tout le temp :)

Share this post


Link to post
Share on other sites
Sign in to follow this