Jump to content

[Tuto] - Commande de Modification de grade - Stump 2.X.X


Recommended Posts

Bonjour,

Aujourd'hui je vous partage une petite commande que j'ai crée pour simplifier l'Administration de serveur cette commande est valable pour les emu Stump 2.X.X !

La commande qui est .grade NomDuJoueur NuméroDuGrade permet de modifier le grade d'un joueur directement en jeu, un message lui est ensuite envoyer pour lui signaler que son grade à été modifier et sera effectif après une Deco/Reco.

J'ai mit en place une sécurité basique qui empêche d'attribuer un grade supérieur au siens comma ça pas de grades inexistant et pas de modo un peut trop chaud.

Il est notamment possible de modifier soit même sont grade !

Voici le code : 

using Stump.DofusProtocol.Enums;
using Stump.Server.BaseServer.Commands;
using Stump.Server.WorldServer.Commands.Commands.Patterns;
using Stump.Server.WorldServer.Commands.Trigger;
using Stump.Server.WorldServer.Game.Actors.RolePlay.Characters;


namespace Stump.Server.WorldServer.Commands.Commands
{
    public class GradeModificator : TargetCommand
    {
        public GradeModificator()
        {
            base.Aliases = new string[]
            {
                "grade"
            };
            base.RequiredRole = RoleEnum.Administrator;
            base.AddTargetParameter(false, "Defined target");
            base.AddParameter<int>("NewUserGroupId", null, null, 1, true);
            Description = "Modifier le grade du joueur ciblé.";
        }
        public override void Execute(TriggerBase trigger)
        {
            Character[] targets = base.GetTargets(trigger);
            for (int i = 0; i < targets.Length; i++)
            {
                Character character = targets[i];
                trigger.Reply("", new object[]

                {
                    character.Name,
                });

                int grade = (int)trigger.Get<int>("NewUserGroupId");

                GameTrigger gameTrigger = trigger as GameTrigger;
                if (gameTrigger.Character.Account.UserGroupId < (int)trigger.Get<int>("NewUserGroupId"))
                {
                    gameTrigger.Character.OpenPopup("Vous ne pouvez pas attribuer un grade supérieur au votre !");
                }
                else
                {
                    character.Account.UserGroupId = grade;
                    character.SaveNow();
                    character.OpenPopup("Votre grade à étè modifié en grade : " + character.Account.UserGroupId + "\n Merci de déconnecter / reconnecter pour mettre à jour votre grade.");
                    gameTrigger.Character.SendServerMessage("Grade du joueur " + character.Name + " modifié en grade " + (int)trigger.Get<int>("NewUserGroupId") + " !");
                }
            }
        }
    }
}

Pour l'ajouter à votre émulateur il vous suffit de créer un fichier de code nommer GradeModificatorCommand.cs dans Stump.Server.WorldServer.Commands.Commands et de tout simplement y placer le code.
 

Voila j'espère qu'elle vous sera utile et bonne émulation !

(PS : la commande n'est pas au maximum de ces possibilités libre à vous de la modifier) 

Link to post
Share on other sites
  • 1 year later...
Sur 29/07/2018 at 1:59 PM , Mrproex a déclaré:

Bonjour,

Aujourd'hui je vous partage une petite commande que j'ai crée pour simplifier l'Administration de serveur cette commande est valable pour les emu Stump 2.X.X !

La commande qui est .grade NomDuJoueur NuméroDuGrade permet de modifier le grade d'un joueur directement en jeu, un message lui est ensuite envoyer pour lui signaler que son grade à été modifier et sera effectif après une Deco/Reco.

J'ai mit en place une sécurité basique qui empêche d'attribuer un grade supérieur au siens comma ça pas de grades inexistant et pas de modo un peut trop chaud.

Il est notamment possible de modifier soit même sont grade !

Voici le code : 

using Stump.DofusProtocol.Enums;
using Stump.Server.BaseServer.Commands;
using Stump.Server.WorldServer.Commands.Commands.Patterns;
using Stump.Server.WorldServer.Commands.Trigger;
using Stump.Server.WorldServer.Game.Actors.RolePlay.Characters;


namespace Stump.Server.WorldServer.Commands.Commands
{
    public class GradeModificator : TargetCommand
    {
        public GradeModificator()
        {
            base.Aliases = new string[]
            {
                "grade"
            };
            base.RequiredRole = RoleEnum.Administrator;
            base.AddTargetParameter(false, "Defined target");
            base.AddParameter<int>("NewUserGroupId", null, null, 1, true);
            Description = "Modifier le grade du joueur ciblé.";
        }
        public override void Execute(TriggerBase trigger)
        {
            Character[] targets = base.GetTargets(trigger);
            for (int i = 0; i < targets.Length; i++)
            {
                Character character = targets[i];
                trigger.Reply("", new object[]

                {
                    character.Name,
                });

                int grade = (int)trigger.Get<int>("NewUserGroupId");

                GameTrigger gameTrigger = trigger as GameTrigger;
                if (gameTrigger.Character.Account.UserGroupId < (int)trigger.Get<int>("NewUserGroupId"))
                {
                    gameTrigger.Character.OpenPopup("Vous ne pouvez pas attribuer un grade supérieur au votre !");
                }
                else
                {
                    character.Account.UserGroupId = grade;
                    character.SaveNow();
                    character.OpenPopup("Votre grade à étè modifié en grade : " + character.Account.UserGroupId + "\n Merci de déconnecter / reconnecter pour mettre à jour votre grade.");
                    gameTrigger.Character.SendServerMessage("Grade du joueur " + character.Name + " modifié en grade " + (int)trigger.Get<int>("NewUserGroupId") + " !");
                }
            }
        }
    }
}

Pour l'ajouter à votre émulateur il vous suffit de créer un fichier de code nommer GradeModificatorCommand.cs dans Stump.Server.WorldServer.Commands.Commands et de tout simplement y placer le code.
 

Voila j'espère qu'elle vous sera utile et bonne émulation !

(PS : la commande n'est pas au maximum de ces possibilités libre à vous de la modifier) 

J'ai bien mis ton code dans le World et jai quand meme commande inconnu ( alors que j'ai bien relancé tout le serv)

Link to post
Share on other sites

Tu as bien suivit cette étape ?  

Pour l'ajouter à votre émulateur il vous suffit de créer un fichier de code nommer GradeModificatorCommand.cs dans Stump.Server.WorldServer.Commands.Commands et de tout simplement y placer le code.

Link to post
Share on other sites
il y a 17 minutes, UnTer a déclaré:

ça change rien, si t'avais regardé en détail, t'aurais vu que c'était inutile, la boucle n'a pas disparu d'une année à l'autre

Le fait est que boucle ou pas la vitesse d’exécution du code dans ce cas précis ne change pas et il s'agissait probablement d'une autre commande reprise d'ou l'oublie de cette boucle et l'utilisation d'un save broken bref à moins que tu soit la pour la retaper ton intervention n'était pas utile.

Link to post
Share on other sites
Il y a 21 heures , UnTer a déclaré:

ça c'est du code opti, petite boucle pour 1 target, un petit save broken, un petit héritage qui pourrait être InGameCommand, gg ❤️ 

ça c'est du commentaire de bon gros connard comme on aime, commenter un code vieux de 2 ans, dénigrer l'auteur sans donner une seule remarque afin que l'auteur puisse s'améliorer et le juger de manière totalement condescendante, gg ❤️

Link to post
Share on other sites
il y a 20 minutes, Dysta a déclaré:

ça c'est du commentaire de bon gros connard comme on aime, commenter un code vieux de 2 ans, dénigrer l'auteur sans donner une seule remarque afin que l'auteur puisse s'améliorer et le juger de manière totalement condescendante, gg ❤️

j'avais oublié que cette communauté aimait avoir tout sur un plateau et que vous n'êtes pas capable de chercher par vous même, y'a même pas de conseils à donner pour ce genre de code mdr, c'est une mauvaise logique de base, point final & perf trop slow mais excuse moi grand manitou du C#

Link to post
Share on other sites
il y a 23 minutes, Ultear- a déclaré:

Surtout que si on devait chercher son old code -> poubelle également.

M'enfin, comme quoi, faire un "émulateur" et quelques logiciels permet de se sentir supérieur.

 

Paix&Amour ❤️

Mon ancien code est poubelle, en effet mais venant d'un grand sorcier comme toi, qui revend des stump backdoor ou broken, je m'incline

Link to post
Share on other sites
Il y a 2 heures , Ultear- a déclaré:

Surtout que si on devait chercher son old code -> poubelle également.

M'enfin, comme quoi, faire un "émulateur" et quelques logiciels permet de se sentir supérieur.

 

Paix&Amour ❤️

C'est le cas de pratiquement tout le monde, et si tu arrives à remarquer de toi-même que ton old-code c'est de la merde, ça veut dire que tu as progressé, bingo !

Il y a 1 heure , UnTer a déclaré:

j'avais oublié que cette communauté aimait avoir tout sur un plateau et que vous n'êtes pas capable de chercher par vous même, y'a même pas de conseils à donner pour ce genre de code mdr, c'est une mauvaise logique de base, point final & perf trop slow mais excuse moi grand manitou du C#

Ta réponse n'a aucun sens, premièrement, en quoi donner une critique constructive et des conseils c'est attendre d'avoir tout sur un plateau ? Ici le soucis n'est pas technique mais plus logique comme tu l'as si bien dit. La logique ça s'acquière avec l'expérience et la pratique du domaine. Si tu pratiques avec les mauvaises méthodes et sans personne pour te reprendre, tu vas acquérir une mauvaise logique. Il est donc important d'avoir des gens qui reprenne, de façon constructive, nos méthodes afin de produire un résultat final mieux que précédemment.

Dernièrement, bien sur que si il y a des conseils à donner pour ce genre de code, si tu arrives à voir ce qui ne vas pas c'est que tu es capable de donner une meilleure méthode à faire dans son cas. Dans ce cas la, pourquoi ne pas prendre un peu de ton temps pour lui offrir une autre vision d'un autre résultat possible à son problème plutôt que de simplement lui répondre que ce qu'il a produit c'est de la merde ? Je ne pense pas que tu ai eu des enseignant comme ça durant ton apprentissage, alors ne pourris pas l'image des informaticiens par tes réponses hautaine et condescendante à souhait. Si, en venant sur ce sujet, ton seul but est de dire que son code est pourri, alors tu est prié d'aller voir ailleurs, voir même, de clôturer ton compte.

  • Like 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...