Jump to content
Sign in to follow this  
KinderrKill

[TERMINÉ] Tutoriel vidéo : Communication Serveur > Client (sans la création de packet !)

Recommended Posts

Communication Serveur > Client (sans la création de packet !)



 

INTRODUCTION

 

Tout d'abord, avant de commencer ce tutoriel, je voudrais passer le bonjour à Dermenslof car c'est lui qui, quelques années auparavant avait fait un tutoriel sur l'exploitation du packetChat :)

 

Bonjour à tous, depuis plusieurs mois je fais des tutoriels vidéos, dont le dernier en date est la communication serveur > client et la récupération des régions (de WorldGuard) et leurs interprétations côté client (Affichage en jeu, lancement de musique etc...)

 

PRE-REQUIS

 

Avoir déjà les sources de MCP de la version de votre choix, si vous ne savez pas comment faire, je vous renvois vers cette vidéo

Avoir un serveur local de la version de votre MCP, si vous ne savez pas comment faire, je vous renvois vers cette vidéo

 

SOMMAIRE

Pour préciser la version utilisée dans cet exemple il s'agit de la version 1.8.8, mais le traitement du packetChat est identique en 1.9 - 1.10 - 1.11 et 1.12, les noms des variables ont par contres changées, il va juste falloir vous amuser à les retrouver ;)

 

Dans la première partie, j'explique dans la première vidéo de la communication serveur > client, la méthode "la plus simple" (qui n'est pas forcément la plus optimisée je vous l'accorde) de faire de la communication avec votre serveur en utilisant le packetChat présent dans la class NetHandlerPlayClient via la fonction handleChat.


Pour les personnes qui ont des connaissances et qui ne veulent pas regarder la vidéo en entier, voici la variable String qui permet de récupérer le texte du chat.

 

String message = packetIn.getChatComponent().getUnformattedText();

Sinon pour ceux qui souhaite regarder la vidéo ou j'explique point par point comment cela fonctionne, voici le liens directe

 

 

Dans la deuxième partie, celle qui fait que vous avez cliqué ici sûrement, c'est une vidéo ou j'explique, comme la précédente point par point de manière claire pour que chacun puisse comprendre le fonctionnement du code, comment récupérer (côté MCP) la région par WorldGuard et de pouvoir l’interpréter de différentes manières, avec un affichage sur l'écran, en jouant une musique etc...

 

Voici le liens de la vidéo complète.

 


Sinon pour les personnes qui ont des connaissances et ne veulent pas regarder la vidéo en entier, voici un exemple de condition pour récupérer la région, l'afficher et jouer une musique.

 

        if(message.startsWith("[WE_E]"))
        {
        	String region = message.substring(message.lastIndexOf("]") + 1, message.length());
        	this.gameController.ingameGUI.displayRegion(region, 120);
        	this.gameController.mcSoundHandler.playSound(PositionedSoundRecord.create("music.game.end"));
        }

 

DisplayRegion de GuiInGame.java

 

    public void displayRegion(String inputS, int inputI)
    {
    	this.regionName = inputS;
    	this.regionTimer = inputI;
    }

Variable dans GuiInGame (post constructeur)

 

    private String regionName  = "";
    private int    regionTimer = 0;

 

Affichage de notre région dans la fonction renderGameOverlay, juste avant la fin de la fonction.

        /* Nouveau code */   
	    if (this.regionTimer > 0)
        {
        	GlStateManager.pushMatrix();
        	GlStateManager.translate((float)(i/2), (float)(j/2), 0F);
        	this.getFontRenderer().drawString(this.regionName, -this.getFontRenderer().getStringWidth(this.regionName)/2, -40, Color.YELLOW.getRGB());
        	GlStateManager.popMatrix();
        }
        /* Fin du nouveau code */

        GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F); //Fin de fonction
        GlStateManager.disableLighting(); //Fin de fonction
        GlStateManager.enableAlpha(); //Fin de fonction
    }

 

Et enfin pour faire '"descendre" notre variable timer, dans la fonction updateTick 

 

    	if (this.regionTimer > 0)
    	{
    		--this.regionTimer;
    	}

 

CONCLUSION

 

J'espère que les vidéos seront répondre à vos questions, si ce n'est pas le cas je reste disponible dans l'espace commentaire de la vidéo ou sur ce post.
Et si le format vous intéresse, je posterais mes prochaines vidéos ici sous le même format (si cela convient à la modération bien sur).

En vous souhaitant une bonne journée ! ;)

 

Ps : Dermenslof si tu passe par là, merci d'avoir été ma source d'inspiration pendant toutes ces années, sache que je me sert encore des systèmes que tu m'a aidé à développé :)

Edited by KinderrKill

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×