Créer un tool MW3 avec la MW3Lib en C#

Statut
N'est pas ouverte pour d'autres réponses.

Zazaetzayim'

Membre
Inscription
21 Septembre 2012
Messages
525
Réactions
83
Points
3 876
RGCoins
25
Bonjour tout le monde c'est encore moi :troll:, aujourd'hui je vais vous faire un tutoriel pour vous montrer comment créer un tool en C# à l'aide de la MW3Lib.

Tout d'abord vous avez besoin de :
- PS3Lib
- MW3Lib
- PS3TMAPI_NET.DLL
- CCAPI 2.50 installé sur votre ordinateur
- Microsoft Visual Basic / Visual Studio
- Un ordinateur et un cerveau :crazy:
C'est tout ce dont vous avez besoin, passons maintenant au tool !

ETAPE 1 : AJOUT DES REFERENCES ET CONNEXION A LA PS3

Pour commencer, vous devez ouvrir un nouveau projet en C# (si vous ne savez pas faire ça laissez tomber :troll:)
Vous tombez donc sur cette page :
1407836935-tool1.jpg

Vous devez modifier la taille du tool c'est à dire le rectangle que j'ai encadré en rouge.
Ensuite, la première chose à faire c'est d'ajouter les dll que j'ai cité plus haut (je mettrai un lien de téléchargement à la fin). Pour cela, vous devez cliquez sur Project --> Add reference (si votre logiciel est en français faites Projet --> Ajouter une réference)
Vous tomberez sur cette page :
1407837355-tool2.png
elle peut être différente selon la version que vous possédez (je possède celle de 2010)
Vous cliquez ensuite sur "Browse" (ou bien "Parcourir") :
1407837447-tool3.png
puis vous cherchez les dll que je mettrai en téléchargement plus bas (tout dépend où vous avez extrait le fichier .rar) :
1407837803-tool4.png
Vous devez sélectionner seulement ceux que j'ai sélectionnés (c'est-à-dire MW3Lib.dll, PS3Lib.dll et ps3tmapi_net.dll)
Vous cliquez ensuite sur OK (très compliqué :troll:) et vous cliquerez deux fois sur cette fenêtre :
1407838033-tool5.png
puis vous tomberez ici :
1407838095-tool6.png
Vous allez ensuite sur les lignes où il y'a marqué "using.etc" et vous ajoutez ces deux lignes :
Code:
using MW3Lib;
using PS3Lib;

Une fois ces codes entrés vous pouvez commencer le tool.
Vous retournez ensuite sur "Form1.cs[Design]"
1407838408-tool7.png
et vous cliquez sur la Boite à Outils (ToolBox)
1407838649-tool8.png
Vous ajoutez 3 buttons et 2 radiobuttons comme ceci :
1407838885-tool9.png
puis vous les renommez comme ceci :
1407839001-tool10.png
.
Vous ajoutez ensuite deux Labels :
1407840402-tool11.png
que vous renommerez Non Connecté et Non Attaché :
1407840539-tool12.png
. Vous sélectionnez ensuite ces deux labels pour pouvoir changer leur couleurs en rouge :
1407840680-tool13.png
Ensuite, vous double-cliquez sur la fenêtre "Form1" (comme tout à l'heure puis vous ajoutez ce code en dessous de "InitializeComponent" (après l'accolade de fermeture) :
1407840893-tool14.png
Code:
public static uint ProcessID;
        public static uint[] processIDs;

        public static string Status;
        public static string MemStatus;
        public static PS3API PS3 = new PS3API();
Vous allez ensuite juste en dessous de ce code là où il y'a écrit "private void Form1_Load" et vous écrivez ce code entre les deux accolades :
1407841161-tool15.png
Code:
button2.Enabled = false; //Cela permet de désactiver le bouton "ATTACH" tant qu'on ne s'est pas connecté
button3.Enabled = false; //Cela permet de désactiver le bouton "DISCONNECT" tant qu'on ne s'est pas connecté

Une fois tout cela fait, vous double-cliquez sur le button "CONNECT" puis vous ajoutez ce code :
1407841341-tool16.png
Code:
if (radioButton1.Checked) //Si le radioButton "TMAPI" est coché
            {
                Connection.ChangeAPI(SelectAPI.TargetManager); //Sélectionner TMAPI
            }
            else if (radioButton2.Checked) //Sinon si le radioButton "CCAPI" est coché
            {
                Connection.ChangeAPI(SelectAPI.ControlConsole); // Sélectionner CCAPI
            }
            if (radioButton1.Checked == false & radioButton2.Checked == false) //Si aucun des deux radiobuttons n'est coché
            {
                MessageBox.Show("Vous n'avez choisi aucune API (CCAPI/TMAPI)", "Error", MessageBoxButtons.OK); //Ouvrir une fenêtre avec écrit "Vous n'avez choisi aucune API (CCAPI/TMAPI)"
            }
            if (label1.Text == "Connecté") //Si le text du label1 est "Connecté"
            {
                MessageBox.Show("Vous êtes déjà connecté !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); //Ouvrir une fenêtre où il y'a écrit "Vous êtes déjà connecté !"
            }
            else if (PS3.ConnectTarget()) //Si la connexion à la PS3 réussit
            {
                MessageBox.Show("Vous vous êtes connecté à la PS3 : " + PS3.GetConsoleName() , "Success", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); //Ouvrir une fenêtre où il y'a écrit "Vous êtes connecté à la PS3 : [NomdelaPS3]"
                label1.Text = "Connecté"; //le texte du label1 devient "Connecté"
                label1.ForeColor = System.Drawing.Color.Green; //la couleur du label1 devient verte
                button2.Enabled = true; //Activer le button "ATTACH"
                button3.Enabled = true; //Activer le bouton "DISCONNECT"
            }
            else//sinon si la connexion échoue
            {
                MessageBox.Show("Impossible de se connecter :(", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); //ouvrir une fenêtre où il y'a écrit "Impossible de se connecter :("
            }
Une fois que vous avez fait ça vous pouvez retourner sur la fenêtre du Tool et vous double-cliquez sur le bouton "ATTACH" et vous ajoutez ce code :
1407842368-tool17.png
Code:
if (label2.Text == "Attaché") //Si le texte du label2 est "Attaché"
            {
                MessageBox.Show("Vous êtes déjà attaché !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); //Ouvrir une fenêtre où il y'a écrit : "Vous êtes déjà attaché"
            }
            else if (PS3.AttachProcess()) //Si le process s'attache correctement
            {
                MessageBox.Show("Attaché !", "Success", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);// Ouvrir une fenêtre où il y'a écrit : "Attaché"
                label2.Text = "Attaché"; //Le texte du label2 devient : "Attaché"
                label2.ForeColor = System.Drawing.Color.Green; //Le label2 devient vert
            }
            else //sinon si le process ne s'attache pas
            {
                MessageBox.Show("Impossible d'attacher", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Stop); // Ouvrir une fenêtre où il y'a écrit : "Impossible d'attacher"
            }
Ensuite on refait la même chose mais pour le bouton "DISCONNECT" cette fois-ci (on double-clique et on entre le code) :
1407842772-tool18.png
Code:
PS3.DisconnectTarget(); //Déconnexion de la PS3
            MessageBox.Show("Vous vous êtes déconnecté de la PS3 : " + PS3.GetConsoleName(), "Success", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); //Ouvrir une fenêtre où il y'a écrit "Vous vous êtes déconnecté de la PS3 : [NomdelaPS3]"
            label1.Text = "Non Connecté"; //Le texte du label1 devient : "Non connecté"
            label1.ForeColor = System.Drawing.Color.Red; //le label1 devient rouge
            label2.Text = "Non Attaché"; //Le texte du label2 devient : "Non attaché"
            label2.ForeColor = System.Drawing.Color.Red; //le label2 devient rouge
            button2.Enabled = false; //Le bouton "ATTACH" se désactive
            button3.Enabled = false; //Le bouton "DISCONNECT" se désactive

Voilà pour cette première étape elle est terminée je ferai la suite du tuto bientôt quand j'en aurai le temps et l'envie (j'ai mis beaucoup de temps pour cette première partie :()
Si ce tuto vous a aidé n'hésitez pas à me laisser une appréciation ça me ferait plaisir :ok:et puis elles sont faites pour êtres utilisées :troll:
Si vous créer votre propre tool grâce à ce tuto merci de me mettre dans les crédits ;)
Si vous ne savez pas comment installer CCAPI je vous conseille de suivre ce tuto fait par @Krytøx | RG (merci à lui)

Téléchargements :



VirusScan :

 
Merci du tutoriel :love:
 
Sans étre mechant , A quoi sert ton " mw3.lib " .. Il est strictement unitile la .. Le seul truc que tu apprend c'est fair une connection d'un tool RTE ^^
 
Bien jouer pour le tuto
 
Sans étre mechant , A quoi sert ton " mw3.lib " .. Il est strictement unitile la .. Le seul truc que tu apprend c'est fair une connection d'un tool RTE ^^
Je poste la suite aujourd'hui le tuto n'est pas terminé ^^ il y'aura 3/4 étapes je pense ;)
 
Bon je me suis enfin décidé je poste l'étape 2 aujourd'hui (d) (je devais la faire depuis jeudi :troll: :rofl:) je poste ici car sinon il y'aurait trop d'image dans le 1er post ^^

ETAPE 2 : Codage des stats avec la MWLib + nom des classes (très facile)

Pour cette étape vous devez :
- Ajouter un TabControl et mettre les boutons + radiobuttons que l'on a codé à l'intérieur de la tabPage1 comme ceci :
rOiPH5W.png
Vous renommez la tabPage 1 en Accueil et la tabPage2 en Stats pour cela vous devez cliquez sur le nom de la tabpage puis sur le rectangle en dessous de la tabpage (enfin là ou il y'a le contenu) et vous modifiez ici :
BOlOcZJ.png
Vous cliquez ensuite sur l'onglet Stats et vous tomberez sur une Page vide (normal) vous ajouterez donc 11 checkBox et 11 numericUpDown que vous renommerez comme ceci :
ppyse1c.png
Ensuite vous devez augmenter ou diminuer la limite maximum des numericupdown pour qu'on puisse envoyer les stats que l'on veut (ils sont limités à 100 par défaut nous allons donc les modifier). La limite se trouve ici :
xKlvE0X.png
Pour tous les numeric vous pouvez limiter à 100000000000 sauf pour l'experience et le prestige. L'experience vous devez le limiter à 1746200 (valeur maximum) et pour le prestige à 20.
Une fois ceci fait, vous ajoutez 4 boutons que vous renommerez comme ceci :
PoQN37O.png
Passons maintenant au codage :

Vous double-cliquez sur Set Checked Stats et vous mettez ce code (les codes commençant par Stats sont utilisés grâce à la MW3Lib) :
nTQvXPT.png
ar8unmE.png
Code:
if (checkBox1.Checked) 
            {
                Stats.Prestige((int)numericUpDown1.Value); //Si la checkBox1 est coché envoyer les stats prestige avec la numericupdown1 Value
            }
            if (checkBox2.Checked)
            {
                PS3.Extension.WriteInt32(0x01C19484, (int)numericUpDown2.Value); //Si la checkBox2 est coché envoyer les stats score avec la numericupdown2 Value (il n'ya pas de stats.score dans la mw3lib)
            }
            if (checkBox3.Checked)
            {
                Stats.Kills((int)numericUpDown3.Value); //Si la checkBox3 est coché envoyer les stats kills avec la numericupdown3 Value
            }
            if (checkBox4.Checked)
            {
                Stats.Deaths((int)numericUpDown4.Value);// C'est pareil pour tous les trucs
            }
            if (checkBox5.Checked)
            {
                Stats.Assists((int)numericUpDown5.Value);
            }
            if (checkBox6.Checked)
            {
                Stats.Wins((int)numericUpDown6.Value);
            }
            if (checkBox7.Checked)
            {
                Stats.Losses((int)numericUpDown7.Value);
            }
            if (checkBox8.Checked)
            {
                Stats.Killstreak((int)numericUpDown8.Value);
            }
            if (checkBox9.Checked)
            {
                Stats.Winstreak((int)numericUpDown9.Value);
            }
            if (checkBox10.Checked)
            {
                PS3.Extension.WriteInt32(0x01C1926C, (int)numericUpDown10.Value); //Experience
            }
            if (checkBox11.Checked)
            {
                Stats.Headshots((int)numericUpDown11.Value);
            }
Une fois ceci fait vous retournez sur le Form1.cs[Design(Création)] et vous double-cliquez sur Set All Stats puis vous entrez le même code sauf que vous devez enlever les if (checkbox) et les accolades ce qui nous donne ça :
ogA8BnR.png
Code:
Stats.Prestige((int)numericUpDown1.Value); 
                PS3.Extension.WriteInt32(0x01C19484, (int)numericUpDown2.Value); //Score
                Stats.Kills((int)numericUpDown3.Value); 
                Stats.Deaths((int)numericUpDown4.Value);
                Stats.Assists((int)numericUpDown5.Value);
                Stats.Wins((int)numericUpDown6.Value);
                Stats.Losses((int)numericUpDown7.Value);
                Stats.Killstreak((int)numericUpDown8.Value);
                Stats.Winstreak((int)numericUpDown9.Value);
                PS3.Extension.WriteInt32(0x01C1926C, (int)numericUpDown10.Value); //Experience
                Stats.Headshots((int)numericUpDown11.Value);
Ensuite vous double-cliquez sur Set Level 80 et vous mettez ce code :
0g0cxwJ.png
Code:
PS3.Extension.WriteInt32(0x01C1926C, (int)1746200); // Comme vous l'avez remarquer c'est le code de l'expérience sauf que j'ai mis 1746200 à la place de numeric pour faire level 80
Ensuite vous double-cliquez sur Set Prestige 20 et vous mettez ce code :
jEBkEcd.png
Code:
Stats.Prestige((int)20); //Comme vous l'avez remarquer c'est le code du prestige sauf que j'ai mis 20 à la place de numeric

Voilà pour les stats ! On va maintenant coder les nom des classes :
Pour ceci vous devez ajouter une tabPage que vous renommerez Classes Names vous devez cliquer ici puis cliquer sur Add Tab :
gAvd0mP.png
Vous allez ensuite sur cette Page et vous ajoutez 15 buttons,1 TextBox et 1 Label comme ceci :
ijrW1TB.png
Vous double-cliquez ensuite sur Class 1 et vous mettez ce code :
FCwPewz.png
Code:
Stats.ClassName(1, textBox1.Text); //Vous devez continuer ensuite sur chaque Classe
Vous devez ensuite double-cliquez sur tous les boutons et changez le 1 au chiffre qui correspond à la classe que vous avez choisi (par exemple vous double-cliquez sur Class 2 le code se sera
G0XNb9g.png
et ainsi de suite). Une fois que vous avez fini, votre code devra ressembler à ça :
Code:
private void button8_Click(object sender, EventArgs e)
        {
            Stats.ClassName(1, textBox1.Text);
        }

        private void button9_Click(object sender, EventArgs e)
        {
            Stats.ClassName(2, textBox1.Text);
        }

        private void button10_Click(object sender, EventArgs e)
        {
            Stats.ClassName(3, textBox1.Text);
        }

        private void button11_Click(object sender, EventArgs e)
        {
            Stats.ClassName(4, textBox1.Text);
        }

        private void button12_Click(object sender, EventArgs e)
        {
            Stats.ClassName(5, textBox1.Text);
        }

        private void button13_Click(object sender, EventArgs e)
        {
            Stats.ClassName(6, textBox1.Text);
        }

        private void button14_Click(object sender, EventArgs e)
        {
            Stats.ClassName(7, textBox1.Text);
        }

        private void button15_Click(object sender, EventArgs e)
        {
            Stats.ClassName(8, textBox1.Text);
        }

        private void button16_Click(object sender, EventArgs e)
        {
            Stats.ClassName(9, textBox1.Text);
        }

        private void button17_Click(object sender, EventArgs e)
        {
            Stats.ClassName(10, textBox1.Text);
        }

        private void button18_Click(object sender, EventArgs e)
        {
            Stats.ClassName(11, textBox1.Text);
        }

        private void button19_Click(object sender, EventArgs e)
        {
            Stats.ClassName(12, textBox1.Text);
        }

        private void button20_Click(object sender, EventArgs e)
        {
            Stats.ClassName(13, textBox1.Text);
        }

        private void button21_Click(object sender, EventArgs e)
        {
            Stats.ClassName(14, textBox1.Text);
        }

        private void button22_Click(object sender, EventArgs e)
        {
            Stats.ClassName(15, textBox1.Text);
Voilà pour les noms des classes !
Cette étape 2 est maintenant terminée je ferai l'étape 3 (codage des mods + name changer) bientôt !
Si vous avez aimé ce tuto vous savez quoi faire :troll:

 
Sans étre mechant , A quoi sert ton " mw3.lib " .. Il est strictement unitile la .. Le seul truc que tu apprend c'est fair une connection d'un tool RTE ^^
Et alors ? Beaucoup de gens ne savent déja pas le faire.
 
Salut zaza merci pour ton tuto, moi j'ai un probleme une fois le tool fini j'ai un message d'erreur ou on me dit qu'il y a un probleme avec les dll tmapi et ccapi qui n'arrivent pas a etre charger...
 
Statut
N'est pas ouverte pour d'autres réponses.
Retour
Haut