Hi,where i put this code that u showQuote:
Originally posted by Hybris@Jul 31 2006, 14:37
Here are some commands (i'll add more later) :
LAST UPDATE (12/08/2006)
World.cs Scroll Command :
World.cs Life Command :Code:else if (Splitter[0] == "/scroll") { if (Splitter[1] == "TC") { Client.SendData(PacketBuilder.CharacterInfo(Client.Char)); Character Char = Client.Char; ArrayList[,] Target; byte[] SpawnData = PacketBuilder.SpawnEntity(Char); Target = TCLocHash; int x = 438; int y = 377; Char.CurrentLoc = new Location(x, y); Char.Map = World.Maps.TwinCity; Target[x, y].Add(Client); World.SpawnCharacter(Client); Client.SendData(PacketBuilder.Message(Client.MessageID, "TELEPORT", Client.Char.Name, "Teleported to: " + Client.Char.Map, ChatType.Talk)); } else if (Splitter[1] == "PC") { Client.SendData(PacketBuilder.CharacterInfo(Client.Char)); Character Char = Client.Char; ArrayList[,] Target; byte[] SpawnData = PacketBuilder.SpawnEntity(Char); Target = MFLocHash; int x = 232; int y = 260; Char.CurrentLoc = new Location(x, y); Char.Map = World.Maps.MapleForest; Target[x, y].Add(Client); World.SpawnCharacter(Client); Client.SendData(PacketBuilder.Message(Client.MessageID, "TELEPORT", Client.Char.Name, "Teleported to: " + Client.Char.Map, ChatType.Talk)); } else { Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", Client.Char.Name, "Usage : /scroll TheCity", ChatType.Talk)); } }
World.cs Mana Command (need to add Mana in Character.cs before, like Life) :Code:else if (Splitter[0] == "/Life" || Splitter[0] == "/life") { Client.SendData(PacketBuilder.CharacterInfo(Client.Char)); Character Char = Client.Char; int Life = Char.MaxHP; Char.HP = Life; Client.SendData(PacketBuilder.Message(Client.MessageID, "LIFE SYSTEM", Client.Char.Name, "Life Restored!", ChatType.Talk)); }
World.cs Stats Modifier (i know its a hard way i made em but its mine :P [btw my mind is strange, dont try to understand me ^^]) :Code:else if (Splitter[0] == "/Mana" || Splitter[0] == "/mana") { Client.SendData(PacketBuilder.CharacterInfo(Client.Char)); Character Char = Client.Char; int Mana = Char.MaxMP; Char.MP = Mana; Client.SendData(PacketBuilder.Message(Client.MessageID, "MANA SYSTEM", Client.Char.Name, "Mana Restored!", ChatType.Talk)); }
World.cs ASCII Identifier (you can write /what? xyz and you'll have ASCII codes for x, y and z, can be useful) :Code:else if (Splitter[0] == "/Stats" || Splitter[0] == "/stats") { if (Splitter[1] == "str") { if (Splitter[2].Length > 4 || Splitter[2].Length < 4) { Client.SendData(PacketBuilder.Message(Client.MessageID, "Stats Modifier", Client.Char.Name, "Usage : /Stats str/dex/man/vit xxxx", ChatType.Talk)); } else { Client.SendData(PacketBuilder.CharacterInfo(Client.Char)); Character Char = Client.Char; int Strength = ((Message[11] - 48) * 1000) + ((Message[12] - 48) * 100) + ((Message[13] - 48) * 10) + (Message[14] - 48); Char.Strength = Strength; Client.SendData(PacketBuilder.Message(Client.MessageID, "Stats Modifier", Client.Char.Name, "Strength Changed", ChatType.Talk)); } } else if (Splitter[1] == "dex") { if (Splitter[2].Length > 4 || Splitter[2].Length < 4) { Client.SendData(PacketBuilder.Message(Client.MessageID, "Stats Modifier", Client.Char.Name, "Usage : /Stats str/dex/man/vit xxxx", ChatType.Talk)); } else { Client.SendData(PacketBuilder.CharacterInfo(Client.Char)); Character Char = Client.Char; int Dexterity = ((Message[11] - 48) * 1000) + ((Message[12] - 48) * 100) + ((Message[13] - 48) * 10) + (Message[14] - 48); Char.Dexterity = Dexterity; Client.SendData(PacketBuilder.Message(Client.MessageID, "Stats Modifier", Client.Char.Name, "Dexterity Changed", ChatType.Talk)); } } else if (Splitter[1] == "vit") { if (Splitter[2].Length > 4 || Splitter[2].Length < 4) { Client.SendData(PacketBuilder.Message(Client.MessageID, "Stats Modifier", Client.Char.Name, "Usage : /Stats str/dex/man/vit xxxx", ChatType.Talk)); } else { Client.SendData(PacketBuilder.CharacterInfo(Client.Char)); Character Char = Client.Char; int Vitality = ((Message[11] - 48) * 1000) + ((Message[12] - 48) * 100) + ((Message[13] - 48) * 10) + (Message[14] - 48); Char.Vitality = Vitality; Client.SendData(PacketBuilder.Message(Client.MessageID, "Stats Modifier", Client.Char.Name, "Vitality Changed", ChatType.Talk)); } } else if (Splitter[1] == "man") { if (Splitter[2].Length > 4 || Splitter[2].Length < 4) { Client.SendData(PacketBuilder.Message(Client.MessageID, "Stats Modifier", Client.Char.Name, "Usage : /Stats str/dex/man/vit xxxx", ChatType.Talk)); } else { Client.SendData(PacketBuilder.CharacterInfo(Client.Char)); Character Char = Client.Char; int Mana = ((Message[11] - 48) * 1000) + ((Message[12] - 48) * 100) + ((Message[13] - 48) * 10) + (Message[14] - 48); Char.Mana = Mana; Client.SendData(PacketBuilder.Message(Client.MessageID, "Stats Modifier", Client.Char.Name, "Mana Changed", ChatType.Talk)); } } else if (Splitter[1].Length > 3 || Splitter[1].Length < 3) { Client.SendData(PacketBuilder.Message(Client.MessageID, "Stats Modifier", Client.Char.Name, "Usage : /Stats str/dex/man/vit xxxx", ChatType.Talk)); } else { Client.SendData(PacketBuilder.Message(Client.MessageID, "Stats Modifier", Client.Char.Name, "Usage : /Stats str/dex/man/vit xxxx", ChatType.Talk)); } Client.SendData(PacketBuilder.CharacterInfo(Client.Char)); }
World.cs Teleport Command (in the same map always) :Code:else if (Splitter[0] == "/What?" || Splitter[0] == "/what?") { int x1 = Message[7]; int x2 = Message[8]; int x3 = Message[9]; Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", Client.Char.Name, "These chars are : " + x1 + x2 + x3, ChatType.Talk)); }
World.cs Level Modifier Command :Code:else if (Splitter[0] == "/mm") { if (Splitter.Length == 3) { Client.SendData(PacketBuilder.CharacterInfo(Client.Char)); Character Char = Client.Char; ArrayList[,] Target; byte[] SpawnData = PacketBuilder.SpawnEntity(Char); Target = TCLocHash; int x1 = Message[4] - 48; int x2 = Message[5] - 48; int x3 = Message[6] - 48; int y1 = Message[8] - 48; int y2 = Message[9] - 48; int y3 = Message[10] - 48; int x = x1 * 100 + x2 * 10 + x3; int y = y1 * 100 + y2 * 10 + y3; Char.CurrentLoc = new Location(x, y); Target[x, y].Add(Client); World.SpawnCharacter(Client); } else { Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", Client.Char.Name, "Usage : /mm xxx yyy", ChatType.Talk)); } }
I just finished a working good /give Command, you can add any items everywhere you want. You just need to add aCode:else if (Splitter[0] == "/level" || Splitter[0] == "/Level") { if (Splitter.Length == 2) { if (Splitter[1].Length == 3) { Client.SendData(PacketBuilder.CharacterInfo(Client.Char)); Character Char = Client.Char; int L1 = Message[7] - 48; int L2 = Message[8] - 48; int L3 = Message[9] - 48; int L4 = L1 * 100 + L2 * 10 + L3; Char.Level = L4; Client.SendData(PacketBuilder.CharacterInfo(Client.Char)); } else { Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", Client.Char.Name, "Usage : /level xxx", ChatType.Talk)); } } else { Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", Client.Char.Name, "Usage : /level xxx", ChatType.Talk)); } }at the beginning of "Public Class World".Code:public static int UID = 0;
Here is the World.cs Command :
And here is the PacketBuilder.cs Packet :Code:else if (Splitter[0] == "/give" || Splitter[0] == "/Give") * *{ * * if (Splitter[1] == "0" || Splitter[1] == "1") * * { * * *int Item_Location = 0; * * *int Item_Inventory = 0; * * *int Item_Type = 0; * * *int Item_Color = 0; * * *int Item_Level = 0; * * *int Item_Quality = 0; * * *int Item_Compose = 0; * * *int Item_UID = 0; * * *int Item_ID = 0; * * *int LeftHand = 0; * * *if (UID < 1) * * *{ * * * UID = 0; * * *} * * *UID++; * * *if (Splitter[2] == "Other" || Splitter[2] == "other") * * * Item_Location = 70; * * *else if (Splitter[2] == "HeadWear" || Splitter[2] == "headwear") * * * Item_Location = 11; * * *else if (Splitter[2] == "Necklace" || Splitter[2] == "necklace") * * * Item_Location = 12; * * *else if (Splitter[2] == "Armor" || Splitter[2] == "armor") * * * Item_Location = 13; * * *else if (Splitter[2] == "RightHand" || Splitter[2] == "righthand") * * * Item_Location = 41; * * *else if (Splitter[2] == "LeftHand" || Splitter[2] == "lefthand") * * *{ * * * Item_Location = 41; * * * LeftHand = 1; * * *} * * *else if (Splitter[2] == "Ring" || Splitter[2] == "ring") * * * Item_Location = 15; * * *else if (Splitter[2] == "Boots" || Splitter[2] == "boots") * * * Item_Location = 16; * * *Item_Inventory = Convert.ToInt32(Splitter[1]); * * *Item_Type = (Convert.ToInt32(Splitter[3]) - 1) * 1000; * * *if (Splitter[4] != "0") * * *{ * * * if (Item_Location == 13 || Item_Location == 11) * * * *if (Item_Type == 7000 && Item_Location == 11) * * * * Item_Color = 3 * 100; * * * *else * * * * Item_Color = (Convert.ToInt32(Splitter[4]) + 2) * 100; * * * else * * * *Item_Color = 0; * * *} * * *else * * * Item_Color = 0; * * *Item_Level = (Convert.ToInt32(Splitter[5]) - 1) * 10; * * *Item_Quality = Convert.ToInt32(Splitter[6]) + 2; * * *Item_Compose = Convert.ToInt32(Splitter[7]); * * *Item_UID = Convert.ToInt32(UID); * * *Item_ID = (Item_Location * 10000) + Item_Type + Item_Color + Item_Level + Item_Quality; * * *Client.SendData(PacketBuilder.GiveItem(Item_Inventory, Item_Location, Item_ID, Item_Compose, Item_UID, LeftHand)); * * *Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", Client.Char.Name, "The Item " + Item_ID + " was given.", ChatType.Top)); * * } * * else if (Splitter[1] == "/Location" || Splitter[1] == "/location") * * *Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", "ALL", "Other HeadWear Necklace Armor RightHand LeftHand Ring Boots", ChatType.Talk)); * * else if (Splitter[1] == "/Inventory" || Splitter[1] == "/inventory") * * *Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", "ALL", "1 For Equipped/0 For Unequipped", ChatType.Talk)); * * else if (Splitter[1] == "/Type" || Splitter[1] == "/type") * * { * * *if (Splitter[2] == "/Weapons" || Splitter[2] == "/weapons") * * * Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", "ALL", "1Blade 11Sword 12BackSword 21Hook 31Whip 41Axe 51Hammer 71Club 72Scepter 81Dagger 91Bow 101Glaive 121Poleaxe 131LongHammer 151Spear 152Wand 171Halbert ", ChatType.Talk)); * * *else if (Splitter[2] == "/?") * * * Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", "ALL", "/Give /Type /Weapons - Gives Info for Weapons", ChatType.Talk)); * * *else * * * Client.SendData(PacketBuilder.Message(Client.MessageID, "/Give SYSTEM", "ALL", "Nothing to say", ChatType.Talk)); * * } * * else if (Splitter[1] == "/Color" || Splitter[1] == "/color") * * *Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", "ALL", "From 1 to 7 for Hats, Caps, Helmets and Armors of all Kind", ChatType.Talk)); * * else if (Splitter[1] == "/?") * * { * * *Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", "ALL", "/Give Inventory Location Type Color Level Quality Compose", ChatType.Talk)); * * *Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", "ALL", "/give /? |More", ChatType.Talk)); * * *if (Splitter[2] == "|More" || Splitter[2] == "|more") * * *{ * * * Client.SendData(PacketBuilder.Message(Client.MessageID, "Smone", "ALL", "/Give /Inventory - Gives Definition of Inventory Bool", ChatType.Talk)); * * * Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", "ALL", "/Give /Location - Gives Kind of Locations", ChatType.Talk)); * * * Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", "ALL", "/Give /Type - Gives kind of Types", ChatType.Talk)); * * * Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", "ALL", "/Give /Color - Gives info about Colors", ChatType.Talk)); * * * Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", "ALL", "/Give /Level - Gives info about Levels", ChatType.Talk)); * * *} * * } * * else * * *Client.SendData(PacketBuilder.Message(Client.MessageID, "/Give SYSTEM", "ALL", "Nothing to say", ChatType.Talk)); * *}
It stills needs some Ameliorations but its kinda good atm. You can add any items with that everywhere you want, even in your inventory (btw took me an entire Night to programm it and find all bugs, so +1 karma if u use it would be nice at least)Code:public static byte[] GiveItem(int Inventory, int Location, int ID, int Compose, int UID, int LeftHand) { *byte[] PacketData = new byte[0x18]; *PacketData[0] = 0x18; *PacketData[1] = 0x00; *PacketData[2] = 0xf0; *PacketData[3] = 0x03; *PacketData[4] = (byte) (UID & 0xff);//UID *PacketData[5] = (byte)((UID >> 8) & 0xff); // ' *PacketData[6] = (byte)((UID >> 16) & 0xff); // ' *PacketData[7] = (byte)((UID >> 24) & 0xff); // ' *PacketData[8] = (byte)(ID *& 0xff); //Item ID *PacketData[9] = (byte)((ID >> 8) & 0xff); // * ' *PacketData[0x0a] = (byte)((ID >> 16) & 0xff); // *' *PacketData[0x0b] = (byte)((ID >> 24) & 0xff); // *' *if (Location >= 70) *{ * PacketData[0x0c] = 0x00; // NULL * PacketData[0x0d] = 0x00; // DURABILITY * PacketData[0x0e] = 0x00; // FOR * PacketData[0x0f] = 0x00; // COMMON ITEMS *} *else *{ * PacketData[0x0c] = 0x88; // Current Durability * PacketData[0x0d] = 0x13; // * * *' * PacketData[0x0e] = 0x88; // Max Durability * PacketData[0x0f] = 0x13; // * * *' *} *PacketData[0x10] = 0x01; //01 *PacketData[0x11] = 0x00; //00 *if (Inventory != 0) *{ * if (Location >= 70) * *PacketData[0x12] = 0x00;//INVENTORY * else if (Location >= 41) * { * *if (LeftHand == 0) * * PacketData[0x12] = 0x04;//RIGHT HAND * *else if (LeftHand == 1) * * PacketData[0x12] = 0x05;//LEFT HAND * } * else if (Location == 16) * *PacketData[0x12] = 0x08;//BOOTS * else if (Location == 15) * *PacketData[0x12] = 0x06;//RING * else if (Location == 13) * *PacketData[0x12] = 0x03;//ARMOR * else if (Location == 12) * *PacketData[0x12] = 0x02;//NECKLACE * else * *PacketData[0x12] = 0x01; *} *else *{ * PacketData[0x12] = 0x00; *} *PacketData[0x13] = 0x00; //Gem 1 *PacketData[0x14] = 0x00; //Gem 2 *PacketData[0x15] = 0x00; *PacketData[0x16] = 0x00; *PacketData[0x17] = (byte)(Compose & 0xff); //Composition *return PacketData; }
Here is my World.cs Skill Command (you can add all skills in one but many skills arent really existing ^^) :
And here is the PacketBuilder.cs Packet used on that command :Code:else if (Splitter[0] == "/skill" || Splitter[0] == "Skill") * * { * * *if (Splitter[1] == "all" || Splitter[1] == "ALL") * * *{ * * * for (int boucle = 0; boucle <= 5000; boucle++) * * * { * * * *Client.SendData(PacketBuilder.Skill(boucle, 0, 0)); * * * } * * *} * * *int Skill_ID = Convert.ToInt32(Splitter[1]); * * *int Skill_Exp = Convert.ToInt32(Splitter[2]); * * *int Skill_Level = Convert.ToInt32(Splitter[3]); * * *Client.SendData(PacketBuilder.Skill(Skill_ID, Skill_Exp, Skill_Level)); * * }
Enjoy it, and use wisely the "/skill all" command (dont forget to modify it ;))[COLOR=red][COLOR=red]Code:public static byte [] Skill(int Skill_ID, int Skill_Exp, int Skill_Level) *{ * byte [] PacketData = new byte[0x0c]; * PacketData[0] = 0x0c; * PacketData[1] = 0x00; * PacketData[2] = 0x4f; * PacketData[3] = 0x04; * PacketData[4] = (byte)(Skill_Exp & 0xff); * PacketData[5] = (byte)((Skill_Exp >> 8) & 0xff); * PacketData[6] = (byte)((Skill_Exp >> 16) & 0xff); * PacketData[7] = (byte)((Skill_Exp >> 24) & 0xff); * PacketData[8] = (byte)(Skill_ID & 0xff); * PacketData[9] = (byte)((Skill_ID >> 8) & 0xff); * PacketData[0x0a] = (byte)(Skill_Level & 0xff); * PacketData[0x0b] = (byte)((Skill_Level >> 8) & 0xff); * return PacketData; *}
in world .cs but where???