public static void Effect(Entity client) { byte bless1 = 0; byte bless3 = 0; byte bless5 = 0; byte bless7 = 0; for (byte i = 1; i < 12; i++) { if (i != ConquerItem.Bottle) { Interfaces.IConquerItem item = client.Owner.Equipment.TryGetItem(i); if (item != null && item.ID != 0) { if (item.Bless == 1) bless1++; if (item.Bless == 3) bless3++; if (item.Bless == 5) bless5++; if (item.Bless == 7) bless7++; } } } #region Effect Bless 7 if (bless7 >= bless5 && bless7 >= bless3 && bless7 >= bless1) { if (bless7 > 0) { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("Aegis4"); client.Owner.SendScreen(str, true); } } } #endregion #region Effect Bless 5 else if (bless5 > bless7 && bless5 >= bless3 && bless5 >= bless1) { if (bless5 > 0) { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("Aegis3"); client.Owner.SendScreen(str, true); } } goto jump; } #endregion #region Effect Bless 3 else if (bless3 >= bless1 && bless3 > bless7 && bless3 > bless5) { if (bless3 > 0) { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("Aegis2"); client.Owner.SendScreen(str, true); } } goto jump; } #endregion #region Effect Bless 1 else if (bless1 > bless7 && bless1 > bless5 && bless1 > bless3) { if (bless1 > 0) { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("Aegis1"); client.Owner.SendScreen(str, true); } } goto jump; } #endregion jump: return; }
public static void Effect(Entity client) { for (uint i = 1; i < 12; i++) { if (i != ConquerItem.Bottle) { Interfaces.IConquerItem item = client.Owner.Equipment.TryGetItem(i); if (item != null && item.ID != 0) { if (item.SocketOne != 0) { switch (item.SocketOne) { #region PhoenixGem Check case Enums.Gem.SuperPhoenixGem: { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("phoenix"); client.Owner.SendScreen(str, true); goto jump; } break; } #endregion #region DragonGem Check case Enums.Gem.SuperDragonGem: { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("goldendragon"); client.Owner.SendScreen(str, true); goto jump; } break; } #endregion #region RainbowGem Check case Enums.Gem.SuperRainbowGem: { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("rainbow"); client.Owner.SendScreen(str, true); goto jump; } break; } #endregion #region MoonGem Check case Enums.Gem.SuperMoonGem: { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("moon"); client.Owner.SendScreen(str, true); goto jump; } break; } #endregion #region FuryGem Check case Enums.Gem.SuperFuryGem: { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("fastflash"); client.Owner.SendScreen(str, true); goto jump; } break; } #endregion #region KylinGem Check case Enums.Gem.SuperKylinGem: { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("goldenkylin"); client.Owner.SendScreen(str, true); goto jump; } break; } #endregion } } if (item.SocketTwo != 0) { switch (item.SocketTwo) { #region PhoenixGem Check case Enums.Gem.SuperPhoenixGem: { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("phoenix"); client.Owner.SendScreen(str, true); goto jump; } break; } #endregion #region DragonGem Check case Enums.Gem.SuperDragonGem: { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("goldendragon"); client.Owner.SendScreen(str, true); goto jump; } break; } #endregion #region RainbowGem Check case Enums.Gem.SuperRainbowGem: { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("rainbow"); client.Owner.SendScreen(str, true); goto jump; } break; } #endregion #region MoonGem Check case Enums.Gem.SuperMoonGem: { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("moon"); client.Owner.SendScreen(str, true); goto jump; } break; } #endregion #region FuryGem Check case Enums.Gem.SuperFuryGem: { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("fastflash"); client.Owner.SendScreen(str, true); goto jump; } break; } #endregion #region KylinGem Check case Enums.Gem.SuperKylinGem: { if (Kernel.Rate(5, 1000)) { _String str = new _String(true); str.UID = client.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("goldenkylin"); client.Owner.SendScreen(str, true); goto jump; } break; } #endregion } } } } } jump: return; }
public void DieString() { _String str = new _String(true); str.UID = this.UID; str.Type = _String.Effect; str.Texts.Add("ghost"); str.Texts.Add("1ghost"); str.TextsCount = 1; if (EntityFlag == Game.EntityFlag.Player) { this.SendScreen(str); } }
public void Update(byte type, string value, bool screen) { if (!SendUpdates) return; Network.GamePackets._String update = new _String(true); update.UID = this.UID; update.Type = type; update.TextsCount = 1; update.Texts.Add(value); if (EntityFlag == EntityFlag.Player) { if (!screen) update.Send(Owner as Client.GameState); else (Owner as Client.GameState).SendScreen(update, true); } else { MonsterInfo.SendScreen(update); } }
public void CheckForSuperGems(Client.GameState client) { for (uint i = 1; i < 12; i++) { if (i != 7) { Interfaces.IConquerItem item = client.Equipment.TryGetItem(i); if (item != null && item.ID != 0) { if (item.SocketOne != 0) { if (item.SocketOne == Enums.Gem.SuperPhoenixGem) { if (ServerBase.Kernel.Rate(3)) //this is where your chances when to display the phoenix gem effect { _String str = new _String(true); str.UID = attacker.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("phoenix"); attacker.Owner.SendScreen(str, true); } } if (item.SocketOne == Enums.Gem.SuperDragonGem) { if (ServerBase.Kernel.Rate(3)) //this is where your chances when to display the phoenix gem effect { _String str = new _String(true); str.UID = attacker.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("dragon"); attacker.Owner.SendScreen(str, true); } } } } } } }
private void _timerCallBack(object myObject, System.Timers.ElapsedEventArgs arg) { /* foreach (Entity monster in Companions.Values) { if (!monster.Owner.Socket.Connected) { RemoveEntity(monster); break; } }*/ if (Program.ServerRrestart == false) { try { Thread_time = DateTime.Now; for (int x = 0; x < Companions.Count; x++) { if (x >= Companions.Count) break; if (Companions[x] != null) { Entity monster = Companions[x]; if (monster.Owner.Socket != null) { if (!monster.Owner.Socket.Connected) { RemoveEntity(monster); break; } } } } for (int x = 0; x < Entities.Count; x++) { if (x >= Entities.Count) break; Entity monster = null; if (Entities[x] != null) { monster = Entities[x]; if (monster.Dead) { if (Time32.Now > monster.DeathStamp.AddSeconds(monster.MonsterInfo.RespawnTime)) { monster.X = (ushort)(monster.MonsterInfo.BoundX + ServerBase.Kernel.Random.Next(0, monster.MonsterInfo.BoundCX)); monster.Y = (ushort)(monster.MonsterInfo.BoundY + ServerBase.Kernel.Random.Next(0, monster.MonsterInfo.BoundCY)); for (int count = 0; count < monster.MonsterInfo.BoundCX * monster.MonsterInfo.BoundCY; count++) { if (!Floor[monster.X, monster.Y, MapObjectType.Monster, null]) { monster.X = (ushort)(monster.MonsterInfo.BoundX + ServerBase.Kernel.Random.Next(0, monster.MonsterInfo.BoundCX)); monster.Y = (ushort)(monster.MonsterInfo.BoundY + ServerBase.Kernel.Random.Next(0, monster.MonsterInfo.BoundCY)); } else break; } if (Floor[monster.X, monster.Y, MapObjectType.Monster, null] || monster.X == monster.MonsterInfo.BoundX && monster.Y == monster.MonsterInfo.BoundY) { monster.Hitpoints = monster.MonsterInfo.Hitpoints; monster.RemoveFlag(monster.StatusFlag); Network.GamePackets._String stringPacket = new PhoenixProject.Network.GamePackets._String(true); stringPacket.UID = monster.UID; stringPacket.Type = Network.GamePackets._String.Effect; stringPacket.Texts.Add("MBStandard"); monster.StatusFlag = 0; if (monster.Body == 950 && monster.MapID == 2056) { PhoenixProject.ServerBase.Kernel.SendWorldMessage(new PhoenixProject.Network.GamePackets.Message("TeratoDragon has apeared in Grotto[Floor2], Who will Defeat it !", System.Drawing.Color.White, PhoenixProject.Network.GamePackets.Message.Monster), PhoenixProject.ServerBase.Kernel.GamePool.Values); } if (monster.Body == 950 && monster.MapID == 1015) { PhoenixProject.ServerBase.Kernel.SendWorldMessage(new PhoenixProject.Network.GamePackets.Message("TeratoDragon has apeared in BirdIsnalnd, Who will Defeat it !", System.Drawing.Color.White, PhoenixProject.Network.GamePackets.Message.Monster), PhoenixProject.ServerBase.Kernel.GamePool.Values); } if (monster.Body == 951) { PhoenixProject.ServerBase.Kernel.SendWorldMessage(new PhoenixProject.Network.GamePackets.Message("Warrning SnowBanshee has Apeared in BirdIsland, Who will defeat it !.", System.Drawing.Color.White, PhoenixProject.Network.GamePackets.Message.Monster), PhoenixProject.ServerBase.Kernel.GamePool.Values); } foreach (Client.GameState client in ServerBase.Kernel.GamePool.Values) { if (client.Map.ID == ID) { if (ServerBase.Kernel.GetDistance(client.Entity.X, client.Entity.Y, monster.X, monster.Y) < ServerBase.Constants.nScreenDistance) { monster.CauseOfDeathIsMagic = false; monster.SendSpawn(client, false); client.Send(stringPacket); } } } } } } else { if (monster.ToxicFogLeft > 0)//Here may BlackSpot kimo { if (Time32.Now >= monster.ToxicFogStamp.AddSeconds(2)) { monster.ToxicFogLeft--; monster.ToxicFogStamp = Time32.Now; if (monster.Hitpoints > 1) { uint damage = Game.Attacking.Calculate.Percent(monster, monster.ToxicFogPercent); monster.Hitpoints -= damage; Network.GamePackets.SpellUse suse = new PhoenixProject.Network.GamePackets.SpellUse(true); suse.Attacker = monster.UID; suse.SpellID = 10010; suse.Targets.Add(monster.UID, damage); monster.MonsterInfo.SendScreen(suse); } } } } } } } catch { } } }
public void SendAllyAndEnemy(Client.GameState client) { foreach (Guild guild in Enemy.Values) { _String stringPacket = new _String(true); stringPacket.UID = guild.ID; stringPacket.Type = _String.GuildEnemies; stringPacket.Texts.Add(guild.Name + " " + guild.LeaderName + " 0 " + guild.MemberCount); client.Send(stringPacket); client.Send(stringPacket); //return; } foreach (Guild guild in Ally.Values) { _String stringPacket = new _String(true); stringPacket.UID = guild.ID; stringPacket.Type = _String.GuildAllies; stringPacket.Texts.Add(guild.Name + " " + guild.LeaderName + " 0 " + guild.MemberCount); client.Send(stringPacket); client.Send(stringPacket); //return; } //Console.WriteLine("ss"); }
static bool CheckCommand(Message message, Client.GameState client) { try { if (message.__Message.StartsWith("@")) { string Message = message.__Message.Substring(1).ToLower(); string Mess = message.__Message.Substring(1); string[] Data = Message.Split(' '); #region GMs PMs if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.ProjectManager || client.Account.State == PhoenixProject.Database.AccountTable.AccountState.Coder) { switch (Data[0]) { case "addcps": { foreach (var pClient in ServerBase.Kernel.GamePool.Values) { if (pClient.Entity.Name.ToLower().Contains(Data[1])) { if (!Game.PrizeNPC.PrizeNpcInformations.ContainsKey(pClient.Entity.UID)) { PhoenixProject.Game.PrizeNPC.PrizeNpcInfo info = new PhoenixProject.Game.PrizeNPC.PrizeNpcInfo(); info.Owner = pClient.Entity.UID; info.type = 1; info.amount = uint.Parse(Data[2]); info.itemid = 0; PhoenixProject.Game.PrizeNPC.PrizeNpcInformations.Add(info.Owner, info); PhoenixProject.Database.MySqlCommand cmd = new PhoenixProject.Database.MySqlCommand(PhoenixProject.Database.MySqlCommandType.INSERT); cmd.Insert("prizenpc").Insert("Owner", client.Entity.UID).Insert("type", info.type).Insert("Amount", info.amount).Insert("itemid", info.itemid); cmd.Execute(); Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Congratulation you have got an Donation Prize " + info.amount + " Cps go to PrizeNpc to Claim It?"); npc.OptionID = 255; pClient.Send(npc.ToArray()); Network.GamePackets.NpcReply npc2 = new Network.GamePackets.NpcReply(6, "" + pClient.Entity.Name + " has Recived " + info.amount + " Cps"); npc2.OptionID = 255; client.Send(npc2.ToArray()); Console.WriteLine("" + pClient.Entity.Name + " has got Donation Prize Cps " + info.amount + ""); } else { Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Sorry the player already have prize not claimed yet"); npc.OptionID = 255; client.Send(npc.ToArray()); } } } break; } case "who": { var varr = ServerBase.Kernel.GamePool.Values.GetEnumerator(); varr.MoveNext(); int COunt = ServerBase.Kernel.GamePool.Count; for (uint x = 0; x < COunt; x++) { if (x >= COunt) break; Client.GameState pClient = (varr.Current as Client.GameState); if (pClient.Entity.Name.ToLower().Contains(Data[1])) { client.Send(new Message("[Whois " + pClient.Entity.Name + "]", System.Drawing.Color.Gold, GamePackets.Message.FirstRightCorner)); client.Send(new Message("Username: "******"Password: "******"IP: " + pClient.Account.IP, System.Drawing.Color.Gold, GamePackets.Message.ContinueRightCorner)); client.Send(new Message("CPs: " + pClient.Entity.ConquerPoints, System.Drawing.Color.Gold, GamePackets.Message.ContinueRightCorner)); client.Send(new Message("Money: " + pClient.Entity.Money, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner)); client.Send(new Message("Class: " + pClient.Entity.Class, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner)); client.Send(new Message("UID: " + pClient.Entity.UID, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner)); client.Send(new Message("Level: " + pClient.Entity.Level, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner)); client.Send(new Message("Strength: " + pClient.Entity.Strength, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner)); client.Send(new Message("Agility: " + pClient.Entity.Agility, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner)); client.Send(new Message("Vitality: " + pClient.Entity.Vitality, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner)); client.Send(new Message("Spirit: " + pClient.Entity.Spirit, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner)); client.Send(new Message("Atributes: " + pClient.Entity.Atributes, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner)); client.Send(new Message("Hitpoints: " + pClient.Entity.Hitpoints, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner)); client.Send(new Message("PKPoints: " + pClient.Entity.PKPoints, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner)); client.Send(new Message("VIPLevel: " + pClient.Entity.VIPLevel, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner)); client.Send(new Message("Map: [" + pClient.Entity.MapID + "] " + pClient.Entity.X + "," + pClient.Entity.Y, System.Drawing.Color.Green, GamePackets.Message.ContinueRightCorner)); } varr.MoveNext(); } break; } case "additem": { foreach (var pClient in ServerBase.Kernel.GamePool.Values) { if (pClient.Entity.Name.ToLower().Contains(Data[1])) { if (!Game.PrizeNPC.PrizeNpcInformations.ContainsKey(pClient.Entity.UID)) { PhoenixProject.Game.PrizeNPC.PrizeNpcInfo info = new PhoenixProject.Game.PrizeNPC.PrizeNpcInfo(); info.Owner = pClient.Entity.UID; info.type = 2; info.amount = 0; info.itemid = uint.Parse(Data[2]); PhoenixProject.Game.PrizeNPC.PrizeNpcInformations.Add(info.Owner, info); PhoenixProject.Database.MySqlCommand cmd = new PhoenixProject.Database.MySqlCommand(PhoenixProject.Database.MySqlCommandType.INSERT); cmd.Insert("prizenpc").Insert("Owner", client.Entity.UID).Insert("type", info.type).Insert("Amount", info.amount).Insert("itemid", info.itemid); cmd.Execute(); Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Congratulation you have got an Donation item go to PrizeNpc to Claim It?"); npc.OptionID = 255; pClient.Send(npc.ToArray()); Network.GamePackets.NpcReply npc2 = new Network.GamePackets.NpcReply(6, "" + pClient.Entity.Name + " has Recived item id: " + info.itemid + ""); npc2.OptionID = 255; client.Send(npc2.ToArray()); Console.WriteLine("" + pClient.Entity.Name + " has got Donation Prize item " + info.itemid + ""); } else { Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Sorry the player already have prize not claimed yet"); npc.OptionID = 255; client.Send(npc.ToArray()); } } } break; } case "summon": { foreach (var pClient in ServerBase.Kernel.GamePool.Values) { if (pClient.Entity.Name.ToLower().Contains(Data[1])) { pClient.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y); } } break; } case "scroll": { if (client.Entity.MapID == 700) break; switch (Data[1].ToLower()) { case "tc": client.Entity.Teleport(1002, 430, 380); break; case "pc": client.Entity.Teleport(1011, 195, 260); break; case "ac": case "am": client.Entity.Teleport(1020, 566, 563); break; case "dc": client.Entity.Teleport(1000, 500, 645); break; case "bi": client.Entity.Teleport(1015, 723, 573); break; case "pka": client.Entity.Teleport(1005, 050, 050); break; case "ma": client.Entity.Teleport(1036, 211, 196); break; case "ja": client.Entity.Teleport(6000, 100, 100); break; } break; } case "test": { byte IDs = byte.Parse(Data[1]); Data data = new Data(true); data.UID = client.Entity.UID; data.dwParam = 2; data.ID = IDs;//157 data.wParam1 = client.Entity.X; data.wParam2 = client.Entity.Y; client.Send(data); break; } case "jar": { ConquerItem item2 = new ConquerItem(true); item2.ID = 750000; //item2.Color = PhoenixProject.Game.Enums.Color.Blue; item2.Durability = 0; item2.MaximDurability = 2; client.Inventory.Add(item2, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); break; } case "id": { byte[] data = new byte[24 + 8]; Writer.WriteUInt32(24, 0, data); Writer.WriteUInt32(1010, 2, data); Writer.WriteUInt32(client.Entity.UID, 4, data); Writer.WriteUInt32(1, 7, data); Writer.WriteUInt32(client.Entity.UID, 8, data); Writer.WriteUInt32(client.Entity.UID, 12, data); Writer.WriteUInt32(client.Entity.UID, 16, data); Writer.WriteUInt32(1, 19, data); Writer.WriteUInt32(7, 20, data); Writer.WriteUInt32(121, 22, data); // Writer.WriteUInt32(9828, 12, data); client.Send(data); // client.Entity.CountryFlag = uint.Parse(Data[1]); break; } case "itemeffect": { Kernel.boundID = int.Parse(Data[1]); Kernel.boundIDEnd = int.Parse(Data[2]); break; } case "kiko": { string[] Strings = new string[2]; Strings[0] = (Data[1]); Strings[1] = "1"; _String SoundPacket = new _String(true); SoundPacket.UID = client.Entity.UID; SoundPacket.Type = 20; SoundPacket.TextsCount = 2; SoundPacket.Texts.Add(Strings[0]); SoundPacket.Texts.Add(Strings[1]); client.Send(SoundPacket); break; //client.Entity.ActualMyTypeFlower = 30010102; // break; } case "ss": { byte[] data = new byte[80 + 8]; Writer.WriteUInt32(80, 0, data); Writer.WriteUInt32(1151, 2, data); Writer.WriteUInt32(2, 4, data); Writer.WriteUInt32(1, 8, data); Writer.WriteUInt32(1, 16, data); Writer.WriteUInt32(227, 32, data); Writer.WriteUInt32(client.Entity.UID, 40, data); Writer.WriteUInt32(client.Entity.UID, 44, data); Writer.WriteString(client.Entity.Name, 48, data); Writer.WriteString(client.Entity.Name, 64, data); client.Send(data); byte[] data2 = new byte[80 + 8]; Writer.WriteUInt32(80, 0, data2); Writer.WriteUInt32(1151, 2, data2); Writer.WriteUInt32(2, 4, data2); Writer.WriteUInt32(2, 8, data2); Writer.WriteUInt32(1, 16, data2); Writer.WriteUInt32(282, 32, data2); Writer.WriteUInt32(client.Entity.UID, 40, data2); Writer.WriteUInt32(client.Entity.UID, 44, data2); Writer.WriteString(client.Entity.Name, 48, data2); Writer.WriteString(client.Entity.Name, 64, data2); client.Send(data2); // client.Send(new Message("Test Channel Mesaage!", System.Drawing.Color.Red, uint.Parse(Data[1]))); //client.Entity.ClanSharedBp = 4; // Game.KimoCarnaval.Load(); /*NpcInitial initial = new NpcInitial { Identifier = 1, Lookface = (num != 0x2008) ? ((ushort)0x1a) : ((ushort)3), Mode = PhoenixProject.Network.GamePackets.NpcInitial.NpcModes.Place, Furniture = num }; client.Send((byte[])initial);*/ break; } case "600": { Game.Map Map = ServerBase.Kernel.Maps[client.Entity.MapID]; Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true); floorItem.MapObjType = Game.MapObjectType.Item; floorItem.ItemID = uint.Parse(Data[1]); floorItem.MapID = client.Entity.MapID; floorItem.X = ushort.Parse(Data[2]); floorItem.Y = ushort.Parse(Data[3]); floorItem.Type = 10; floorItem.OnFloor = Time32.Now.AddHours(24); floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next; while (Map.Npcs.ContainsKey(floorItem.UID)) floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next; Map.AddFloorItem(floorItem); client.SendScreenSpawn(floorItem, true); client.Effect = true; /* _String str = new _String(true); str.UID = client.Entity.UID; str.TextsCount = 2; str.Type = _String.Sound; str.Texts.Add("sound"); str.Texts.Add("gethp.wav"); client.Send(str);*/ // client.Entity.TitlePacket.dwParam2 = (byte)PhoenixProject.Game.Tournaments.top_typ.GoldenRacer; break; } case "quiz": { //PhoenixProject.Game.ConquerStructures.QuizShow.Start(); // client.Send(GamePackets.QuizInfo.tempQuestionBuffer()); //Game.ConquerStructures.QuizShow.Start(); Game.ConquerStructures.QuizShow.Start2(); Program.QuizStamp = Time32.Now; break; } case "me": { /* MessageTick m = new MessageTick(); m.Identifier = client.Entity.UID; m.Response = client.Entity.UID; client.Send(m);*/ MapStatus mbox = new MapStatus(); mbox.BaseID = 1002; client.Send(mbox); break; } case "quiz2": { //PhoenixProject.Game.ConquerStructures.QuizShow.Start(); // client.Send(GamePackets.QuizInfo.tempQuestionBuffer()); //Game.ConquerStructures.QuizShow.Start(); Game.ConquerStructures.QuizShow.Stop(); break; } case "q": { //PhoenixProject.Game.ConquerStructures.QuizShow.Start(); // client.Send(GamePackets.QuizInfo.tempQuestionBuffer()); //Game.ConquerStructures.QuizShow.Start(); client.Send(GamePackets.QuizInfo.tempQuestionBuffer()); break; } case "team": { { Game.KimoSkillWar.Started = true; Game.KimoSkillWar.SignUP = true; } break; } case "geartest": { //181315 515black uint UID = 92000; PhoenixProject.Interfaces.IConquerItem newItem = new PhoenixProject.Network.GamePackets.ConquerItem(true); newItem.ID = 181825; newItem.UID = UID; newItem.Durability = 1000; newItem.MaximDurability = 1000; newItem.Position = 9; //client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd); client.Equipment.Remove(9); if (client.Equipment.Objects[8] != null) client.Equipment.Objects[8] = null; client.Equipment.Add(newItem); newItem.Mode = PhoenixProject.Game.Enums.ItemMode.Update; newItem.Send(client); ClientEquip equips = new ClientEquip(); equips.DoEquips(client); client.Send(equips); client.Equipment.UpdateEntityPacket(); break; } case "quarantine": { //542363 PhoenixProject.Game.ConquerStructures.Quarantine.Started = true; break; } case "test2": { client.Entity.RemoveFlag(ulong.Parse(Data[1])); break; } case "arrest": { foreach (var pClient in ServerBase.Kernel.GamePool.Values) { if (pClient.Entity.Name.ToLower().Contains(Data[1])) { pClient.Entity.Teleport(6004, 30, 74); } } break; } case "pkp": { client.Entity.PKPoints = ushort.Parse(Data[1]); break; } case "dropevent": { Interfaces.IConquerItem Item = null; #region Get Item string ItemName = Data[1]; bool SpecialItem = false; uint SpecialID = 0; if (ItemName.Contains("cp") || ItemName.Contains("met") || ItemName.Contains("db") || ItemName.Contains("stone") || ItemName.Contains("soul")) { if (ItemName.Contains("cp")) SpecialID = 729911; else if (ItemName.Contains("db")) SpecialID = 1088000; else if (ItemName.Contains("met")) SpecialID = 1088001; else if (ItemName.Contains("stone")) SpecialID = 730008; else if (ItemName.Contains("Soul")) SpecialID = 800110; SpecialItem = true; goto PrepareDrop; } if (ItemName.ToLower() == "exp") { for (int c = 0; c < client.Screen.Objects.Count; c++) { if (c >= client.Screen.Objects.Count) break; Interfaces.IMapObject ClientObj = client.Screen.Objects[c]; if (ClientObj != null) { if (ClientObj is Game.Entity) { if (ClientObj.MapObjType == PhoenixProject.Game.MapObjectType.Player) { ClientObj.Owner.IncreaseExperience(ClientObj.Owner.ExpBall, false); } } } } break; } Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.NormalV3; if (Data.Length > 2) { switch (Data[3].ToLower()) { case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break; case "normal": Quality = Game.Enums.ItemQuality.Normal; break; case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break; case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break; case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break; case "refined": Quality = Game.Enums.ItemQuality.Refined; break; case "unique": Quality = Game.Enums.ItemQuality.Unique; break; case "elite": Quality = Game.Enums.ItemQuality.Elite; break; case "super": Quality = Game.Enums.ItemQuality.Super; break; case "other": Quality = Game.Enums.ItemQuality.Other; break; default: { Quality = (PhoenixProject.Game.Enums.ItemQuality)int.Parse(Data[4]); break; } } } Database.ConquerItemBaseInformation CIBI = null; foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values) { if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10)) { CIBI = infos; } else { if (infos.Name.ToLower() == ItemName.ToLower()) CIBI = infos; } } if (CIBI == null) break; Item = new GamePackets.ConquerItem(true); Item.ID = CIBI.ID; Item.Durability = CIBI.Durability; Item.MaximDurability = CIBI.Durability; if (Data.Length > 3) Item.Plus = byte.Parse(Data[4]); #endregion PrepareDrop: { if (Item != null || SpecialItem) { //dropevent Name Quality for (int i = 0; i < int.Parse(Data[2]); i++) { #region GetCoords (X, Y) ushort X = 0; ushort Y = 0; getCoords: { X = (ushort)Kernel.Random.Next(client.Entity.X - 20, client.Entity.X + 20); Y = (ushort)Kernel.Random.Next(client.Entity.Y - 20, client.Entity.Y + 20); } while (!client.Map.SelectCoordonates(ref X, ref Y)) goto getCoords; #endregion #region Drop Floor Item FloorItem floorItem = new FloorItem(true); if (SpecialItem) { if (SpecialID == 729911) { floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.ConquerPoints; floorItem.Value = 20; } floorItem.ItemID = SpecialID; floorItem.Item = new ConquerItem(true); floorItem.Item.ID = SpecialID; floorItem.Item.UID = FloorItem.FloorUID.Next; floorItem.UID = floorItem.Item.UID; floorItem.Item.MobDropped = true; while (client.Map.Npcs.ContainsKey(floorItem.Item.UID)) { floorItem.Item.UID = FloorItem.FloorUID.Next; floorItem.UID = FloorItem.FloorUID.Next; } } else { floorItem.Item = new ConquerItem(true); floorItem.Item.Color = Item.Color; floorItem.Item.Durability = Item.Durability; floorItem.Item.ID = Item.ID; floorItem.Item.Mode = Game.Enums.ItemMode.Default; floorItem.Item.UID = FloorItem.FloorUID.Next; floorItem.UID = floorItem.Item.UID; floorItem.Item.MobDropped = true; floorItem.ItemColor = Item.Color; floorItem.ItemID = Item.ID; while (client.Map.Npcs.ContainsKey(floorItem.Item.UID)) { floorItem.Item.UID = FloorItem.FloorUID.Next; floorItem.UID = FloorItem.FloorUID.Next; } } floorItem.MapID = client.Map.ID; floorItem.MapObjType = Game.MapObjectType.Item; floorItem.X = X; floorItem.Y = Y; floorItem.Type = FloorItem.Drop; floorItem.OnFloor = Time32.Now; client.SendScreenSpawn(floorItem, true); client.Map.AddFloorItem(floorItem); } } #endregion } break; } case "testtitle": { TitlePacket title = new TitlePacket(byte.Parse(Data[1]) == 1); title.UID = client.Entity.UID; title.Title = byte.Parse(Data[2]); title.Type = byte.Parse(Data[3]); title.dwParam = byte.Parse(Data[4]); title.dwParam2 = byte.Parse(Data[5]); client.Send(title); break; } case "resetvote": { Kernel.VotePoolUid.Clear(); Kernel.VotePool.Clear(); Database.EntityTable.DeletVotes(); break; } case "invite": { Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Weekly has Started! You Wana Join?"); npc.OptionID = 247; //npc.times = 10; client.Send(npc.ToArray()); client.Entity.InviteSendStamp = Time32.Now; client.Entity.invite = true; break; } case "bo7sen": { PhoenixProject.Network.GamePackets.Data Datas = new PhoenixProject.Network.GamePackets.Data(true); Datas.UID = client.Entity.UID; Datas.ID = 126; Datas.dwParam = uint.Parse(Data[1]); Datas.wParam1 = client.Entity.X; Datas.wParam2 = client.Entity.Y; client.Send(Datas); break; } case "ww": { Program.kimo = ushort.Parse(Data[1]); break; } case "halo": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.MagicDefender); break; } case "halo2": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo2); break; } case "halo3": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo3); break; } case "halo4": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo4); break; } case "halo29": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo29); break; } case "halo30": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo30); break; } case "halo31": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo31); break; } case "halo32": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo32); break; } case "halo33": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo33); break; } case "halo34": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo34); break; } case "halo35": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo35); break; } case "halo36": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo36); break; } case "halo37": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo37); break; } case "halo38": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo38); break; } case "halo39": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo39); break; } case "halo40": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo40); break; } case "halo41": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo41); break; } case "halo42": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo42); break; } case "halo43": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo43); break; } case "halo44": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo44); break; } case "halo45": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo45); break; } case "halo46": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo46); break; } case "halo47": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo47); break; } case "halo48": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo48); break; } case "halo49": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo49); break; } case "halo50": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo50); break; } case "halo51": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo51); break; } case "halo52": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo52); break; } case "halo53": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo53); break; } case "halo54": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo54); break; } case "halo55": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo55); break; } case "halo56": { //client.Entity.StatusFlag2 = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo56); break; } case "halo57": { // client.Entity.StatusFlag = 0; client.Entity.AddFlag3(GamePackets.Update.Flags3.kimo57); break; } case "lottery1": { break; } case "bbs": { Console.WriteLine(" " + client.Entity.BattlePower + ""); break; } case "lottery2": { uint randprize = (uint)PhoenixProject.ServerBase.Kernel.Random.Next(1, (int)Database.DROP_SOULS.Count_Jar); //Database.Monster.Souls[randsouls].item_id uint ItemID = ServerBase.Kernel.JarItem[randprize].item_id; client.Inventory.Add(ItemID, 0, 1); ServerBase.Kernel.SendWorldMessage(new Message("Congratulations, " + client.Entity.Name + " has finished CloudSaint Jar Quest and Obtained " + Database.ConquerItemInformation.BaseInformations[ItemID].Name + " !", System.Drawing.Color.Red, Network.GamePackets.Message.Talk), ServerBase.Kernel.GamePool.Values); Data data = new Data(true); data.ID = GamePackets.Data.OpenCustom; data.UID = client.Entity.UID; data.TimeStamp = Time32.Now; data.dwParam = 3382; data.wParam1 = client.Entity.X; data.wParam2 = client.Entity.Y; client.Send(data); break; } case "kimo": { Program.kimo = ushort.Parse(Data[1]); // Program.kimo2 = ushort.Parse(Data[2]); // Program.kimo3 = ushort.Parse(Data[3]); testpacket str = new testpacket(true); client.Send(str); break; } case "3": { PhoenixProject.Game.KimoCarnaval.Load(); /*Program.kimo3 = ushort.Parse(Data[1]); Network.GamePackets.Weather weather = new Network.GamePackets.Weather(true); weather.WeatherType = (uint)Program.kimo3; weather.Intensity = 100; weather.Appearence = 2; weather.Direction = 4; client.Send(weather);*/ break; } case "kimo4": { //PhoenixProject.Game.KimoCarnaval.Npc(); /*Program.kimo3 = ushort.Parse(Data[1]); Network.GamePackets.Weather weather = new Network.GamePackets.Weather(true); weather.WeatherType = (uint)Program.kimo3; weather.Intensity = 100; weather.Appearence = 2; weather.Direction = 4; client.Send(weather);*/ break; } case "33": { client.Entity.Action = PhoenixProject.Game.Enums.ConquerAction.poker; /*Program.kimo3 = ushort.Parse(Data[1]); Data data = new Data(true); data.ID = GamePackets.Data.OpenCustom; data.UID = client.Entity.UID; data.TimeStamp = Time32.Now; data.dwParam = (uint)Program.kimo3; data.wParam1 = client.Entity.X; data.wParam2 = client.Entity.Y; client.Send(data);*/ // client.Send(new Data(true) { UID = client.Entity.UID, ID = GamePackets.Data.OpenWindow, dwParam = GamePackets.Data.CustomCommands.Reincarnation, wParam1 = client.Entity.X, wParam2 = client.Entity.Y }); break; } case "p1": { client.Entity.Action = PhoenixProject.Game.Enums.ConquerAction.poker2; break; } case "p2": { client.Entity.Action = PhoenixProject.Game.Enums.ConquerAction.poker3; break; } case "p3": { client.Entity.Action = PhoenixProject.Game.Enums.ConquerAction.poker4; break; } case "p4": { client.Entity.Action = PhoenixProject.Game.Enums.ConquerAction.poker; break; } case "p5": { client.Entity.Action = PhoenixProject.Game.Enums.ConquerAction.poker; break; } case "p6": { client.Entity.Action = PhoenixProject.Game.Enums.ConquerAction.poker5; break; } case "bb": { PhoenixProject.Database.MySqlCommand command = new PhoenixProject.Database.MySqlCommand(PhoenixProject.Database.MySqlCommandType.DELETE); command.Delete("skills", "ID", "1110").And("EntityID", client.Entity.UID).Execute(); break; } case "bo": { _String str = new _String(true); str.UID = client.Entity.UID; str.TextsCount = 1; str.Type = _String.Sound; str.Texts.Add("zhengfu"); client.Send(str); //client.Send(new Data(true) { UID = client.Entity.UID, ID = Network.GamePackets.Data.OpenWindow, dwParam = uint.Parse(Data[1]), wParam1 = client.Entity.X, wParam2 = client.Entity.Y }); //datas.dwParam = uint.Parse(Data[1]); //client.Send(datas); break; } case "pok": { break; } case "n": { { Random disco = new Random(); uint discocolor = (uint)disco.Next(50000, 999999999); Program.ScreenColor = 5855577; foreach (Client.GameState C in ServerBase.Kernel.GamePool.Values) { Data datas = new Data(true); datas.UID = C.Entity.UID; datas.ID = 104; Program.ScreenColor = 5855577; datas.dwParam = 5855577; C.Send(datas); } } break; } case "d": { { Random disco = new Random(); uint discocolor = (uint)disco.Next(50000, 999999999); Program.ScreenColor = 0; foreach (Client.GameState C in ServerBase.Kernel.GamePool.Values) { Data datas = new Data(true); datas.UID = C.Entity.UID; datas.ID = 104; datas.dwParam = 0; //datas.wParam1 = (ushort)Program.ScreenColor; //datas.wParam2 = (ushort)Program.ScreenColor; //datas.wParam2 = 104; //datas.wParam4 = (ushort)Program.ScreenColor; C.Send(datas); } } break; } case "give": { foreach (var Client in ServerBase.Kernel.GamePool.Values) { if (Client.Entity.Name.ToLower().Contains(Data[1])) { switch (Data[2]) { case "vip": Client.Entity.VIPLevel = byte.Parse(Data[3]); break; case "cps": Client.Entity.ConquerPoints += uint.Parse(Data[3]); break; case "money": Client.Entity.Money += uint.Parse(Data[3]); break; case "spell": Client.AddSpell(new Spell(true) { ID = ushort.Parse(Data[3]) }); break; case "level": Client.Entity.Level = byte.Parse(Data[3]); break; case "plustone": { UInt32 ItemId = UInt32.Parse(Data[3]); if (Database.ConquerItemInformation.BaseInformations.ContainsKey(ItemId)) { Database.ConquerItemBaseInformation iteminfo; if (Database.ConquerItemInformation.BaseInformations.TryGetValue(ItemId, out iteminfo)) { Interfaces.IConquerItem newItem = new GamePackets.ConquerItem(true); newItem.ID = iteminfo.ID; Byte Plus = (Byte)(newItem.ID % 730000); Console.WriteLine("Item Plus " + Plus); newItem.Plus = (Byte)(newItem.ID % 730000); Client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd); } } break; } case "item": { string ItemName = Data[3]; Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.Fixed; switch (Data[4].ToLower()) { case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break; case "normal": Quality = Game.Enums.ItemQuality.Normal; break; case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break; case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break; case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break; case "refined": Quality = Game.Enums.ItemQuality.Refined; break; case "unique": Quality = Game.Enums.ItemQuality.Unique; break; case "elite": Quality = Game.Enums.ItemQuality.Elite; break; case "super": Quality = Game.Enums.ItemQuality.Super; break; case "other": Quality = Game.Enums.ItemQuality.Other; break; default: { Quality = (PhoenixProject.Game.Enums.ItemQuality)int.Parse(Data[4]); break; } } Database.ConquerItemBaseInformation CIBI = null; foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values) { if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10)) { CIBI = infos; } } if (CIBI == null) break; Interfaces.IConquerItem newItem = new GamePackets.ConquerItem(true); newItem.ID = CIBI.ID; newItem.Durability = CIBI.Durability; newItem.MaximDurability = CIBI.Durability; if (Data.Length > 3) { byte plus = 0; byte.TryParse(Data[3], out plus); newItem.Plus = Math.Min((byte)15, plus); if (Data.Length > 4) { byte bless = 0; byte.TryParse(Data[6], out bless); newItem.Bless = Math.Min((byte)7, bless); if (Data.Length > 5) { byte ench = 0; byte.TryParse(Data[7], out ench); newItem.Enchant = Math.Min((byte)255, ench); if (Data.Length > 6) { byte soc1 = 0; byte.TryParse(Data[8], out soc1); if (Enum.IsDefined(typeof(Game.Enums.Gem), soc1)) { newItem.SocketOne = (Game.Enums.Gem)soc1; } if (Data.Length > 7) { byte soc2 = 0; byte.TryParse(Data[9], out soc2); if (Enum.IsDefined(typeof(Game.Enums.Gem), soc2)) { newItem.SocketTwo = (Game.Enums.Gem)soc2; } } if (Data.Length > 10) { byte R = 0, G = 0, B = 0; byte.TryParse(Data[10], out R); byte.TryParse(Data[11], out G); byte.TryParse(Data[12], out B); newItem.SocketProgress = (uint)(B | (G << 8) | (R << 16)); } } } } } newItem.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8); Client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd); break; } case "equip": { string ItemName = Data[3]; Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.NormalV3; Database.ConquerItemBaseInformation CIBI = null; foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values) { if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10)) { CIBI = infos; } } if (CIBI == null) break; Interfaces.IConquerItem newItem = new GamePackets.ConquerItem(true); newItem.ID = CIBI.ID; newItem.Position = 9; newItem.Durability = CIBI.Durability; newItem.MaximDurability = CIBI.Durability; newItem.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8); Client.Equipment.Add(newItem, Game.Enums.ItemUse.CreateAndAdd); break; } } break; } } break; } case "cps": { client.Entity.ConquerPoints = uint.Parse(Data[1]); break; } case "hors": { client.Entity.RacePoints = uint.Parse(Data[1]); break; } case "money": { client.Entity.Money = uint.Parse(Data[1]); break; } case "open": { GamePackets.Data data = new GamePackets.Data(true); data.ID = GamePackets.Data.OpenCustom; data.UID = client.Entity.UID; data.TimeStamp = Time32.Now; data.dwParam = uint.Parse(Data[1]); data.wParam1 = client.Entity.X; data.wParam2 = client.Entity.Y; client.Send(data); break; } case "xp": { client.Entity.AddFlag(Update.Flags.XPList); client.XPListStamp = Time32.Now; break; } case "guildwar": { switch (Data[1]) { case "on": { if (!Game.ConquerStructures.Society.GuildWar.IsWar) { Game.ConquerStructures.Society.GuildWar.Start(); } break; } case "off": { if (Game.ConquerStructures.Society.GuildWar.IsWar) { Game.ConquerStructures.Society.GuildWar.End(); } break; } } break; } } } if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.GameMaster || client.Account.State == PhoenixProject.Database.AccountTable.AccountState.ProjectManager || client.Account.State == PhoenixProject.Database.AccountTable.AccountState.Coder) { switch (Data[0]) { case "invisible": Console.WriteLine("sd"); break; /* case "reloadmobs": { client.Map.FreezeMonsters = true; var Clone = client.Map.Entities.Base.Values.ToArray(); foreach (var mob in Clone) if (!mob.Companion) { client.Map.Floor[mob.X, mob.Y, PhoenixProject.Game.MapObjectType.Monster, mob] = true; client.Map.Entities.Remove(mob.UID); } Clone = new Game.Entity[0]; client.Map.EntityUIDCounter.Now = 400000; client.Map.LoadMonsters(); client.Map.FreezeMonsters = false; foreach (Client.GameState Client in ServerBase.Kernel.GamePool.Values) { if (Client.Map.ID == client.Map.ID) { Client.Entity.Teleport(Client.Entity.MapID, Client.Entity.X, Client.Entity.Y); } } break; }*/ case "mobmesh": { client.Entity.Body = ushort.Parse(Data[1]); break; } case "trace": { foreach (var pClient in ServerBase.Kernel.GamePool.Values) { if (pClient.Entity.Name.ToLower().Contains(Data[1])) { client.Entity.Teleport(pClient.Entity.MapID, pClient.Entity.X, pClient.Entity.Y); } } break; } case "bring": { foreach (var pClient in ServerBase.Kernel.GamePool.Values) { if (pClient.Entity.Name.ToLower().Contains(Data[1]) || Data[1].ToLower() == "all") if (Data[1].ToLower() == "all") { pClient.Entity.Teleport(client.Entity.MapID, (ushort)Kernel.Random.Next(client.Entity.X - 5, client.Entity.X + 5), (ushort)Kernel.Random.Next(client.Entity.Y - 5, client.Entity.Y + 5)); } else pClient.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y); } break; } case "restart": { Program.CommandsAI("@restart"); break; } case "kick": { foreach (var Client in ServerBase.Kernel.GamePool.Values) { if (Client.Entity.Name.ToLower().Contains(Data[1])) { Client.Disconnect(); break; } } break; } case "ban": { foreach (var Client in ServerBase.Kernel.GamePool.Values) { if (Client.Account.State >= client.Account.State) continue; if (Client.Entity.Name.ToLower().Contains(Data[1])) { Client.Account.State = PhoenixProject.Database.AccountTable.AccountState.Banned; Client.Account.Savekimo(); Client.Disconnect(); break; } } break; } case "unban": { var Account = new Database.AccountTable(Data[1]); if (Account.State == PhoenixProject.Database.AccountTable.AccountState.Banned) { Account.State = PhoenixProject.Database.AccountTable.AccountState.Player; Account.Savekimo(); } break; } case "chatban": { foreach (var Client in ServerBase.Kernel.GamePool.Values) { if (Client.Entity.Name.Contains(Data[1])) { Client.ChatBanLasts = uint.Parse(Data[2]); Client.ChatBanTime = DateTime.Now; Client.ChatBanned = true; } } break; } case "increaseexp": { client.IncreaseExperience(ulong.Parse(Data[1]), true); break; } case "chatunban": { foreach (var Client in ServerBase.Kernel.GamePool.Values) { if (Client.Entity.Name.Contains(Data[1])) { Client.ChatBanned = false; } } break; } case "bc": { Game.ConquerStructures.Broadcast.Broadcasts.Clear(); Game.ConquerStructures.Broadcast.BroadcastStr broadcast = new PhoenixProject.Game.ConquerStructures.Broadcast.BroadcastStr(); broadcast.EntityID = client.Entity.UID; broadcast.EntityName = client.Entity.Name; broadcast.ID = Game.ConquerStructures.Broadcast.BroadcastCounter.Next; broadcast.Message = Message.Remove(0, 2); ServerBase.Kernel.SendWorldMessage(new Message(Message.Remove(0, 2), "ALLUSERS", client.Entity.Name, System.Drawing.Color.Red, GamePackets.Message.BroadcastMessage), ServerBase.Kernel.GamePool.Values); Game.ConquerStructures.Broadcast.CurrentBroadcast.EntityID = 1; Game.ConquerStructures.Broadcast.CurrentBroadcast = broadcast; break; } case "broadcast": { Game.ConquerStructures.Broadcast.Broadcasts.Clear(); Game.ConquerStructures.Broadcast.BroadcastStr broadcast = new PhoenixProject.Game.ConquerStructures.Broadcast.BroadcastStr(); broadcast.EntityID = client.Entity.UID; broadcast.EntityName = client.Entity.Name; broadcast.ID = Game.ConquerStructures.Broadcast.BroadcastCounter.Next; broadcast.Message = Message.Remove(0, 9); ServerBase.Kernel.SendWorldMessage(new Message(Message.Remove(0, 9), "ALLUSERS", client.Entity.Name, System.Drawing.Color.Red, GamePackets.Message.BroadcastMessage), ServerBase.Kernel.GamePool.Values); Game.ConquerStructures.Broadcast.CurrentBroadcast.EntityID = 1; Game.ConquerStructures.Broadcast.CurrentBroadcast = broadcast; break; } case "ann": { ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 3), System.Drawing.Color.Red, Network.GamePackets.Message.Center), ServerBase.Kernel.GamePool.Values); ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 3), System.Drawing.Color.Red, Network.GamePackets.Message.World), ServerBase.Kernel.GamePool.Values); break; } case "announce": { ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 8), System.Drawing.Color.Red, Network.GamePackets.Message.Center), ServerBase.Kernel.GamePool.Values); ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 8), System.Drawing.Color.Red, Network.GamePackets.Message.World), ServerBase.Kernel.GamePool.Values); break; } case "arenapoints": { client.ArenaStatistic.ArenaPoints = uint.Parse(Data[1]); client.ArenaStatistic.Send(client); break; } case "record": { if (client.Account.State != Database.AccountTable.AccountState.ProjectManager) break; switch (Data[1]) { case "on": client.Entity.Mode = Game.Enums.Mode.Recording; break; case "off": Program.CommandsAI("/saverecord"); break; } break; } case "clearinventory": { Interfaces.IConquerItem[] inventory = new Interfaces.IConquerItem[client.Inventory.Objects.Length]; client.Inventory.Objects.CopyTo(inventory, 0); foreach (Interfaces.IConquerItem item in inventory) { client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } break; } case "online": { client.Send(new Message("Online players count: " + ServerBase.Kernel.GamePool.Count, System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft)); string line = ""; foreach (Client.GameState pClient in ServerBase.Kernel.GamePool.Values) line += pClient.Entity.Name + ","; if (line.Length >= 255) return true; client.Send(new GamePackets.Message(line, System.Drawing.Color.Beige, GamePackets.Message.Talk)); break; } case "reallot": { if (client.Entity.Reborn != 0) { client.Entity.Agility = 0; client.Entity.Strength = 0; client.Entity.Vitality = 1; client.Entity.Spirit = 0; if (client.Entity.Reborn == 1) { client.Entity.Atributes = (ushort)(client.ExtraAtributePoints(client.Entity.FirstRebornLevel, client.Entity.FirstRebornLevel) + 52 + 3 * (client.Entity.Level - 15)); } else { client.Entity.Atributes = (ushort)(client.ExtraAtributePoints(client.Entity.FirstRebornLevel, client.Entity.FirstRebornClass) + client.ExtraAtributePoints(client.Entity.SecondRebornLevel, client.Entity.SecondRebornClass) + 52 + 3 * (client.Entity.Level - 15)); } client.CalculateStatBonus(); client.CalculateHPBonus(); } break; } case "str": { ushort atr = 0; ushort.TryParse(Data[1], out atr); if (client.Entity.Atributes >= atr) { client.Entity.Strength += atr; client.Entity.Atributes -= atr; client.CalculateStatBonus(); client.CalculateHPBonus(); } break; } case "agi": { ushort atr = 0; ushort.TryParse(Data[1], out atr); if (client.Entity.Atributes >= atr) { client.Entity.Agility += atr; client.Entity.Atributes -= atr; client.CalculateStatBonus(); client.CalculateHPBonus(); } break; } case "vit": { ushort atr = 0; ushort.TryParse(Data[1], out atr); if (client.Entity.Atributes >= atr) { client.Entity.Vitality += atr; client.Entity.Atributes -= atr; client.CalculateStatBonus(); client.CalculateHPBonus(); } break; } case "spi": { ushort atr = 0; ushort.TryParse(Data[1], out atr); if (client.Entity.Atributes >= atr) { client.Entity.Spirit += atr; client.Entity.Atributes -= atr; client.CalculateStatBonus(); client.CalculateHPBonus(); } break; } case "reborn": { if (client.Entity.Reborn < 2) { if (client.Entity.Class % 10 == 5) { if (client.Entity.Class != 15 && client.Entity.Class != 25 && client.Entity.Class != 45 && client.Entity.Class != 55 && client.Entity.Class != 65 && client.Entity.Class != 75 && client.Entity.Class != 135 && client.Entity.Class != 145) { client.Send(new Message("You need to be an existing class.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft)); } else { byte newclass = 10; byte.TryParse(Data[1], out newclass); if (newclass != 11 && newclass != 21 && newclass != 41 && newclass != 51 && newclass != 61 && newclass != 71 && newclass != 132 && newclass != 142) { client.Send(new Message("You need to reborn into an existing class. For fire class = 142 and for waters class = 132.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft)); } else { if (!client.Reborn(newclass)) client.Send(new Message("You need atleast 2 spaces in your inventory.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft)); } } } else client.Send(new Message("You need to be a master to be able to reborn.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft)); } else client.Send(new Message("You can't reborn any more.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft)); break; } case "dc": { client.Disconnect(); break; } case "prof": { Interfaces.IProf proficiency = new GamePackets.Proficiency(true); if (Data.Length > 1) proficiency.ID = ushort.Parse(Data[1]); if (Data.Length > 2) proficiency.Level = byte.Parse(Data[2]); if (Data.Length > 3) proficiency.Experience = uint.Parse(Data[3]); client.AddProficiency(proficiency); break; } case "spell": { Interfaces.ISkill spell = new GamePackets.Spell(true); if (Data.Length > 1) spell.ID = ushort.Parse(Data[1]); if (Data.Length > 2) spell.Level = byte.Parse(Data[2]); if (Data.Length > 3) spell.Experience = uint.Parse(Data[3]); client.AddSpell(spell); break; } case "level": { byte level = client.Entity.Level; byte.TryParse(Data[1], out level); level = Math.Min((byte)140, Math.Max((byte)1, level)); client.Entity.Level = level; client.Entity.Experience = 0; if (client.Entity.Reborn == 0) { Database.DataHolder.GetStats(client.Entity.Class, level, client); client.CalculateStatBonus(); client.CalculateHPBonus(); client.GemAlgorithm(); } break; } case "class": { byte _class = client.Entity.Class; byte.TryParse(Data[1], out _class); _class = Math.Min((byte)145, Math.Max((byte)1, _class)); client.Entity.Class = _class; if (client.Entity.Reborn == 0) { Database.DataHolder.GetStats(_class, client.Entity.Level, client); client.CalculateStatBonus(); client.CalculateHPBonus(); client.GemAlgorithm(); } break; } case "body": { ushort body = client.Entity.Body; ushort.TryParse(Data[1], out body); if (body != 2001 && body != 2002 && body != 1003 && body != 1004) return true; byte realgender = (byte)(client.Entity.Body % 10); byte gender = (byte)(body % 10); if (client.Equipment.Objects[8] != null) if (gender >= 3 && realgender <= 2) return true; client.Entity.Body = body; if (gender >= 3 && realgender <= 2) client.Entity.Face -= 200; if (gender <= 2 && realgender >= 3) client.Entity.Face += 200; break; } case "hair": { ushort hair = client.Entity.HairStyle; ushort.TryParse(Data[1], out hair); client.Entity.HairStyle = hair; break; } case "map": { client.Send(new Message("Map: " + client.Entity.MapID, System.Drawing.Color.Blue, GamePackets.Message.TopLeft)); break; } case "map2": { client.Send(new Message("Map base: " + client.Map.BaseID, System.Drawing.Color.Blue, GamePackets.Message.TopLeft)); break; } case "tele": { if (Data.Length > 3) { client.Entity.Teleport(ulong.Parse(Data[1]), ushort.Parse(Data[2]), ushort.Parse(Data[3])); } break; } case "tele2": { if (Data.Length > 3) { client.Entity.TeleportHouse(ulong.Parse(Data[1]), ushort.Parse(Data[2]), ushort.Parse(Data[3])); } break; } case "transform": { if (client.Entity.Dead) break; bool wasTransformated = client.Entity.Transformed; if (wasTransformated) { client.Entity.Hitpoints = client.Entity.MaxHitpoints; client.Entity.TransformationID = 0; client.Entity.TransformationStamp = Time32.Now; return true; } ushort transformation = client.Entity.TransformationID; ushort.TryParse(Data[1], out transformation); client.Entity.TransformationID = transformation; client.Entity.TransformationStamp = Time32.Now; client.Entity.TransformationTime = 110; SpellUse spellUse = new SpellUse(true); spellUse.Attacker = client.Entity.UID; spellUse.SpellID = 1360; spellUse.SpellLevel = 4; spellUse.X = client.Entity.X; spellUse.Y = client.Entity.Y; spellUse.Targets.Add(client.Entity.UID, (uint)0); client.Send(spellUse); client.Entity.TransformationMaxHP = 3000; double maxHP = client.Entity.MaxHitpoints; double HP = client.Entity.Hitpoints; double point = HP / maxHP; client.Entity.Hitpoints = (uint)(client.Entity.TransformationMaxHP * point); client.Entity.Update(Update.MaxHitpoints, client.Entity.TransformationMaxHP, false); break; } case "item": { if (Data.Length > 2) { string ItemName = Data[1]; Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.Fixed; switch (Data[2].ToLower()) { case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break; case "normal": Quality = Game.Enums.ItemQuality.Normal; break; case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break; case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break; case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break; case "refined": Quality = Game.Enums.ItemQuality.Refined; break; case "unique": Quality = Game.Enums.ItemQuality.Unique; break; case "elite": Quality = Game.Enums.ItemQuality.Elite; break; case "super": Quality = Game.Enums.ItemQuality.Super; break; case "other": Quality = Game.Enums.ItemQuality.Other; break; default: { Quality = (PhoenixProject.Game.Enums.ItemQuality)int.Parse(Data[2]); break; } } Database.ConquerItemBaseInformation CIBI = null; foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values) { if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10)) { CIBI = infos; } } if (CIBI == null) break; Interfaces.IConquerItem newItem = new GamePackets.ConquerItem(true); newItem.ID = CIBI.ID; newItem.Durability = CIBI.Durability; newItem.MaximDurability = CIBI.Durability; if (Data.Length > 3) { byte plus = 0; byte.TryParse(Data[3], out plus); newItem.Plus = Math.Min((byte)12, plus); if (Data.Length > 4) { byte bless = 0; byte.TryParse(Data[4], out bless); newItem.Bless = Math.Min((byte)7, bless); if (Data.Length > 5) { byte ench = 0; byte.TryParse(Data[5], out ench); newItem.Enchant = Math.Min((byte)255, ench); if (Data.Length > 6) { byte soc1 = 0; byte.TryParse(Data[6], out soc1); if (Enum.IsDefined(typeof(Game.Enums.Gem), soc1)) { newItem.SocketOne = (Game.Enums.Gem)soc1; } if (Data.Length > 7) { byte soc2 = 0; byte.TryParse(Data[7], out soc2); if (Enum.IsDefined(typeof(Game.Enums.Gem), soc2)) { newItem.SocketTwo = (Game.Enums.Gem)soc2; } } if (Data.Length > 10) { byte R = 0, G = 0, B = 0; byte.TryParse(Data[8], out R); byte.TryParse(Data[9], out G); byte.TryParse(Data[10], out B); newItem.SocketProgress = (uint)(B | (G << 8) | (R << 16)); } } } } } newItem.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8); if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.GameMaster) newItem.Bound = true; client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd); } break; } } return true; } #endregion #region VIPs if (client.Entity.VIPLevel > 0) { switch (Data[0]) { case "transform": { if (client.Entity.Dead) break; bool wasTransformated = client.Entity.Transformed; if (wasTransformated) { client.Entity.Hitpoints = client.Entity.MaxHitpoints; client.Entity.TransformationID = 0; client.Entity.TransformationStamp = Time32.Now; return true; } ushort transformation = client.Entity.TransformationID; ushort.TryParse(Data[1], out transformation); client.Entity.TransformationID = transformation; client.Entity.TransformationStamp = Time32.Now; client.Entity.TransformationTime = 110; SpellUse spellUse = new SpellUse(true); spellUse.Attacker = client.Entity.UID; spellUse.SpellID = 1360; spellUse.SpellLevel = 4; spellUse.X = client.Entity.X; spellUse.Y = client.Entity.Y; spellUse.Targets.Add(client.Entity.UID, (uint)0); client.Send(spellUse); client.Entity.TransformationMaxHP = 3000; double maxHP = client.Entity.MaxHitpoints; double HP = client.Entity.Hitpoints; double point = HP / maxHP; client.Entity.Hitpoints = (uint)(client.Entity.TransformationMaxHP * point); client.Entity.Update(Update.MaxHitpoints, client.Entity.TransformationMaxHP, false); break; } } } #endregion #region GameHelpers if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.GameHelper) { switch (Data[0]) { case "scroll": { if (client.Entity.MapID == 700) break; switch (Data[1].ToLower()) { case "tc": client.Entity.Teleport(1002, 430, 380); break; case "pc": client.Entity.Teleport(1011, 195, 260); break; case "ac": case "am": client.Entity.Teleport(1020, 566, 563); break; case "dc": client.Entity.Teleport(1000, 500, 645); break; case "bi": client.Entity.Teleport(1015, 723, 573); break; case "pka": client.Entity.Teleport(1005, 050, 050); break; case "ma": client.Entity.Teleport(1036, 211, 196); break; case "ja": client.Entity.Teleport(6000, 100, 100); break; } break; } case "summon": { foreach (var pClient in ServerBase.Kernel.GamePool.Values) { if (pClient.Entity.Name.ToLower().Contains(Data[1])) { pClient.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y); } } break; } case "arrest": { foreach (var pClient in ServerBase.Kernel.GamePool.Values) { if (pClient.Entity.Name.ToLower().Contains(Data[1])) { pClient.Entity.Teleport(6004, 30, 74); } } break; } case "pkp": { client.Entity.PKPoints = ushort.Parse(Data[1]); break; } case "cps": { client.Entity.ConquerPoints = uint.Parse(Data[1]); break; } case "money": { client.Entity.Money = uint.Parse(Data[1]); break; } case "xp": { client.Entity.AddFlag(Update.Flags.XPList); client.XPListStamp = Time32.Now; break; } } } if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.GameHelper) { switch (Data[0]) { case "invisible": Console.WriteLine("Hammy"); break; case "arrest": { foreach (var pClient in ServerBase.Kernel.GamePool.Values) { if (pClient.Entity.Name.ToLower().Contains(Data[1])) { pClient.Entity.Teleport(6004, 30, 74); } } break; } case "trace": { foreach (var pClient in ServerBase.Kernel.GamePool.Values) { if (pClient.Entity.Name.ToLower().Contains(Data[1])) { client.Entity.Teleport(pClient.Entity.MapID, pClient.Entity.X, pClient.Entity.Y); } } break; } case "bring": { foreach (var pClient in ServerBase.Kernel.GamePool.Values) { if (pClient.Entity.Name.ToLower().Contains(Data[1]) || Data[1].ToLower() == "all") if (Data[1].ToLower() == "all") { pClient.Entity.Teleport(client.Entity.MapID, (ushort)Kernel.Random.Next(client.Entity.X - 5, client.Entity.X + 5), (ushort)Kernel.Random.Next(client.Entity.Y - 5, client.Entity.Y + 5)); } else pClient.Entity.Teleport(client.Entity.MapID, client.Entity.X, client.Entity.Y); } break; } case "kick": { foreach (var Client in ServerBase.Kernel.GamePool.Values) { if (Client.Entity.Name.ToLower().Contains(Data[1])) { Client.Disconnect(); break; } } break; } case "ban": { foreach (var Client in ServerBase.Kernel.GamePool.Values) { if (Client.Account.State >= client.Account.State) continue; if (Client.Entity.Name.ToLower().Contains(Data[1])) { Client.Account.State = PhoenixProject.Database.AccountTable.AccountState.Banned; Client.Account.Savekimo(); Client.Disconnect(); break; } } break; } case "unban": { var Account = new Database.AccountTable(Data[1]); if (Account.State == PhoenixProject.Database.AccountTable.AccountState.Banned) { Account.State = PhoenixProject.Database.AccountTable.AccountState.Player; Account.Savekimo(); } break; } case "chatban": { foreach (var Client in ServerBase.Kernel.GamePool.Values) { if (Client.Entity.Name.Contains(Data[1])) { Client.ChatBanLasts = uint.Parse(Data[2]); Client.ChatBanTime = DateTime.Now; Client.ChatBanned = true; } } break; } case "chatunban": { foreach (var Client in ServerBase.Kernel.GamePool.Values) { if (Client.Entity.Name.Contains(Data[1])) { Client.ChatBanned = false; } } break; } case "ann": { ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 3), System.Drawing.Color.Red, Network.GamePackets.Message.Center), ServerBase.Kernel.GamePool.Values); ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 3), System.Drawing.Color.Red, Network.GamePackets.Message.World), ServerBase.Kernel.GamePool.Values); break; } case "announce": { ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 8), System.Drawing.Color.Red, Network.GamePackets.Message.Center), ServerBase.Kernel.GamePool.Values); ServerBase.Kernel.SendWorldMessage(new Message("[Announce] by " + client.Entity.Name + ": " + Mess.Remove(0, 8), System.Drawing.Color.Red, Network.GamePackets.Message.World), ServerBase.Kernel.GamePool.Values); break; } case "record": { if (client.Account.State != Database.AccountTable.AccountState.ProjectManager) break; switch (Data[1]) { case "on": client.Entity.Mode = Game.Enums.Mode.Recording; break; case "off": Program.CommandsAI("/saverecord"); break; } break; } case "clearinventory": { Interfaces.IConquerItem[] inventory = new Interfaces.IConquerItem[client.Inventory.Objects.Length]; client.Inventory.Objects.CopyTo(inventory, 0); foreach (Interfaces.IConquerItem item in inventory) { client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } break; } case "online": { client.Send(new Message("Online players count: " + ServerBase.Kernel.GamePool.Count, System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft)); string line = ""; foreach (Client.GameState pClient in ServerBase.Kernel.GamePool.Values) line += pClient.Entity.Name + ","; if (line.Length >= 255) return true; client.Send(new GamePackets.Message(line, System.Drawing.Color.Beige, GamePackets.Message.Talk)); break; } case "reborn": { if (client.Entity.Reborn < 2) { if (client.Entity.Class % 10 == 5) { if (client.Entity.Class != 15 && client.Entity.Class != 25 && client.Entity.Class != 45 && client.Entity.Class != 55 && client.Entity.Class != 65 && client.Entity.Class != 135 && client.Entity.Class != 145) { client.Send(new Message("You need to be an existing class.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft)); } else { byte newclass = 10; byte.TryParse(Data[1], out newclass); if (newclass != 11 && newclass != 21 && newclass != 41 && newclass != 51 && newclass != 61 && newclass != 132 && newclass != 142) { client.Send(new Message("You need to reborn into an existing class. For fire class = 142 and for waters class = 132.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft)); } else { if (!client.Reborn(newclass)) client.Send(new Message("You need atleast 2 spaces in your inventory.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft)); } } } else client.Send(new Message("You need to be a master to be able to reborn.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft)); } else client.Send(new Message("You can't reborn any more.", System.Drawing.Color.BurlyWood, GamePackets.Message.TopLeft)); break; } case "dc": { client.Disconnect(); break; } case "prof": { Interfaces.IProf proficiency = new GamePackets.Proficiency(true); if (Data.Length > 1) proficiency.ID = ushort.Parse(Data[1]); if (Data.Length > 2) proficiency.Level = byte.Parse(Data[2]); if (Data.Length > 3) proficiency.Experience = uint.Parse(Data[3]); client.AddProficiency(proficiency); break; } case "spell": { Interfaces.ISkill spell = new GamePackets.Spell(true); if (Data.Length > 1) spell.ID = ushort.Parse(Data[1]); if (Data.Length > 2) spell.Level = byte.Parse(Data[2]); if (Data.Length > 3) spell.Experience = uint.Parse(Data[3]); client.AddSpell(spell); break; } case "level": { byte level = client.Entity.Level; byte.TryParse(Data[1], out level); level = Math.Min((byte)140, Math.Max((byte)1, level)); client.Entity.Level = level; client.Entity.Experience = 0; if (client.Entity.Reborn == 0) { Database.DataHolder.GetStats(client.Entity.Class, level, client); client.CalculateStatBonus(); client.CalculateHPBonus(); client.GemAlgorithm(); } break; } case "class": { byte _class = client.Entity.Class; byte.TryParse(Data[1], out _class); _class = Math.Min((byte)145, Math.Max((byte)1, _class)); client.Entity.Class = _class; if (client.Entity.Reborn == 0) { Database.DataHolder.GetStats(_class, client.Entity.Level, client); client.CalculateStatBonus(); client.CalculateHPBonus(); client.GemAlgorithm(); } break; } case "body": { ushort body = client.Entity.Body; ushort.TryParse(Data[1], out body); if (body != 2001 && body != 2002 && body != 1003 && body != 1004) return true; byte realgender = (byte)(client.Entity.Body % 10); byte gender = (byte)(body % 10); if (client.Equipment.Objects[8] != null) if (gender >= 3 && realgender <= 2) return true; client.Entity.Body = body; if (gender >= 3 && realgender <= 2) client.Entity.Face -= 200; if (gender <= 2 && realgender >= 3) client.Entity.Face += 200; break; } case "hair": { ushort hair = client.Entity.HairStyle; ushort.TryParse(Data[1], out hair); client.Entity.HairStyle = hair; break; } case "map": { client.Send(new Message("Map: " + client.Map.ID, System.Drawing.Color.Blue, GamePackets.Message.TopLeft)); break; } case "tele": { if (Data.Length > 3) { client.Entity.Teleport(ushort.Parse(Data[1]), ushort.Parse(Data[2]), ushort.Parse(Data[3])); } break; } case "tele2": { if (Data.Length > 3) { client.Entity.TeleportHouse(ushort.Parse(Data[1]), ushort.Parse(Data[2]), ushort.Parse(Data[3])); } break; } case "transform": { if (client.Entity.Dead) break; bool wasTransformated = client.Entity.Transformed; if (wasTransformated) { client.Entity.Hitpoints = client.Entity.MaxHitpoints; client.Entity.TransformationID = 0; client.Entity.TransformationStamp = Time32.Now; return true; } ushort transformation = client.Entity.TransformationID; ushort.TryParse(Data[1], out transformation); client.Entity.TransformationID = transformation; client.Entity.TransformationStamp = Time32.Now; client.Entity.TransformationTime = 110; SpellUse spellUse = new SpellUse(true); spellUse.Attacker = client.Entity.UID; spellUse.SpellID = 1360; spellUse.SpellLevel = 4; spellUse.X = client.Entity.X; spellUse.Y = client.Entity.Y; spellUse.Targets.Add(client.Entity.UID, (uint)0); client.Send(spellUse); client.Entity.TransformationMaxHP = 3000; double maxHP = client.Entity.MaxHitpoints; double HP = client.Entity.Hitpoints; double point = HP / maxHP; client.Entity.Hitpoints = (uint)(client.Entity.TransformationMaxHP * point); client.Entity.Update(Update.MaxHitpoints, client.Entity.TransformationMaxHP, false); break; } case "item": { if (Data.Length > 2) { string ItemName = Data[1]; Game.Enums.ItemQuality Quality = Game.Enums.ItemQuality.Fixed; switch (Data[2].ToLower()) { case "fixed": Quality = Game.Enums.ItemQuality.Fixed; break; case "normal": Quality = Game.Enums.ItemQuality.Normal; break; case "normalv1": Quality = Game.Enums.ItemQuality.NormalV1; break; case "normalv2": Quality = Game.Enums.ItemQuality.NormalV2; break; case "normalv3": Quality = Game.Enums.ItemQuality.NormalV3; break; case "refined": Quality = Game.Enums.ItemQuality.Refined; break; case "unique": Quality = Game.Enums.ItemQuality.Unique; break; case "elite": Quality = Game.Enums.ItemQuality.Elite; break; case "super": Quality = Game.Enums.ItemQuality.Super; break; case "other": Quality = Game.Enums.ItemQuality.Other; break; default: { Quality = (PhoenixProject.Game.Enums.ItemQuality)int.Parse(Data[2]); break; } } Database.ConquerItemBaseInformation CIBI = null; foreach (Database.ConquerItemBaseInformation infos in Database.ConquerItemInformation.BaseInformations.Values) { if (infos.Name.ToLower() == ItemName.ToLower() && Quality == (Game.Enums.ItemQuality)(infos.ID % 10)) { CIBI = infos; } } if (CIBI == null) break; Interfaces.IConquerItem newItem = new GamePackets.ConquerItem(true); newItem.ID = CIBI.ID; newItem.Durability = CIBI.Durability; newItem.MaximDurability = CIBI.Durability; if (Data.Length > 3) { byte plus = 0; byte.TryParse(Data[3], out plus); newItem.Plus = Math.Min((byte)12, plus); if (Data.Length > 4) { byte bless = 0; byte.TryParse(Data[4], out bless); newItem.Bless = Math.Min((byte)7, bless); if (Data.Length > 5) { byte ench = 0; byte.TryParse(Data[5], out ench); newItem.Enchant = Math.Min((byte)255, ench); if (Data.Length > 6) { byte soc1 = 0; byte.TryParse(Data[6], out soc1); if (Enum.IsDefined(typeof(Game.Enums.Gem), soc1)) { newItem.SocketOne = (Game.Enums.Gem)soc1; } if (Data.Length > 7) { byte soc2 = 0; byte.TryParse(Data[7], out soc2); if (Enum.IsDefined(typeof(Game.Enums.Gem), soc2)) { newItem.SocketTwo = (Game.Enums.Gem)soc2; } } if (Data.Length > 10) { byte R = 0, G = 0, B = 0; byte.TryParse(Data[8], out R); byte.TryParse(Data[9], out G); byte.TryParse(Data[10], out B); newItem.SocketProgress = (uint)(B | (G << 8) | (R << 16)); } } } } } newItem.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8); if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.GameMaster) newItem.Bound = true; client.Inventory.Add(newItem, Game.Enums.ItemUse.CreateAndAdd); } break; } } return true; } #endregion return true; } return false; } catch { client.Send(new Message("Impossible to handle this command. Check your syntax.", System.Drawing.Color.BurlyWood, Message.TopLeft)); return false; } }
public static uint Melee(Entity attacker, SobNpcSpawn attacked, ref Attack Packet) { int Damage = 0; Boolean CritImmune = false; Durability(attacker, null, null); if (!attacker.Transformed) Damage = ServerBase.Kernel.Random.Next((int)attacker.MinAttack, (int)attacker.MaxAttack + 1); else Damage = ServerBase.Kernel.Random.Next(Math.Min((int)attacker.MinAttack, (int)attacker.MaxAttack), Math.Max((int)attacker.MinAttack, (int)attacker.MaxAttack) + 1); if (attacker.ContainsFlag(Network.GamePackets.Update.Flags.Stigma)) if (!attacker.Transformed) Damage = (int)(Damage * 1.30); Damage += attacker.PhysicalDamageIncrease; if (attacker.EntityFlag == EntityFlag.Player) { GemEffect.Effect(attacker); } if (ServerBase.Kernel.Rate(5)) { if (attacker.EntityFlag == EntityFlag.Player) { if (attacker.Owner.BlessTime > 0) { Damage *= 2; _String str = new _String(true); str.UID = attacker.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("LuckyGuy"); attacker.Owner.SendScreen(str, true); } } } if (attacker.EntityFlag == EntityFlag.Player) { if (!CritImmune) { if (ChanceSuccess((float)attacker.CriticalStrike / 100f)) { Packet.Effect1 |= Attack.AttackEffects1.CriticalStrike; Damage = (Int32)Math.Floor((float)Damage * 1.2); } } } Damage = (int)(Damage*1.8);//kimoz if (Damage <= 0) Damage = 1; if (ServerBase.Constants.Damage1Map.Contains(attacker.MapID)) Damage = 1; return (uint)Damage; }
public void AddEnemy(string name) { foreach (Guild guild in ServerBase.Kernel.Guilds.Values) { if (guild.Name == name) { if (Ally.ContainsKey(guild.ID)) { RemoveAlly(guild.Name); guild.RemoveAlly(Name); } Enemy.Add(guild.ID, guild); _String stringPacket = new _String(true); stringPacket.UID = guild.ID; stringPacket.Type = _String.GuildEnemies; stringPacket.Texts.Add(guild.Name + " " + guild.LeaderName + " 0 " + guild.MemberCount); SendGuildMessage(stringPacket); SendGuildMessage(stringPacket); Database.GuildTable.AddEnemy(this, guild.ID); return; } } }
public static uint Melee(Entity attacker, Entity attacked, Database.SpellInformation spell, ref Attack Packet) { int Damage = 0; Boolean CritImmune = false; Boolean canBT = false; if (attacker.EntityFlag == EntityFlag.Monster) if (attacked.EntityFlag == EntityFlag.Player) if (ServerBase.Kernel.Rate(Math.Min(60, attacked.Dodge + 30))) return 0; if (attacker.EntityFlag == EntityFlag.Player) { GemEffect.Effect(attacker); } Durability(attacker, attacked, null); if (attacked.ContainsFlag(Network.GamePackets.Update.Flags.ShurikenVortex)) return 1; if (!attacker.Transformed) Damage = ServerBase.Kernel.Random.Next(Math.Min((int)attacker.MinAttack, (int)attacker.MaxAttack), Math.Max((int)attacker.MinAttack, (int)attacker.MaxAttack) + 1); else Damage = ServerBase.Kernel.Random.Next((int)attacker.TransformationMinAttack, (int)attacker.TransformationMaxAttack + 1); if (attacker.EntityFlag == EntityFlag.Player) { if (attacker.BattlePower < attacked.BattlePower) canBT = true; } else canBT = false; if (canBT) { if (canBT) { if (ChanceSuccess((float)attacked.Counteraction / 100f)) canBT = false; } if (canBT) { if (ChanceSuccess((float)attacker.Breaktrough / 100f) && spell.ID != 1115) { Damage = (Int32)attacker.MaxAttack + 3000; Packet.Effect1 |= Attack.AttackEffects1.Penetration; } } } if (attacker.ContainsFlag(Network.GamePackets.Update.Flags.Stigma)) if (!attacker.Transformed && Damage > 1) Damage = (int)(Damage * 1.30); if (attacked.EntityFlag == EntityFlag.Monster) { if (attacked.MapID < 1351 || attacked.MapID > 1354) Damage = (int)(Damage * (1 + (GetLevelBonus(attacker.Level, attacked.Level) * 0.08))); } if (attacker.EntityFlag == EntityFlag.Player) { if (attacked.EntityFlag == EntityFlag.Monster) { if (attacked.MapID < 1351 || attacked.MapID > 1354) if (!attacker.Owner.Equipment.Free(4) && !attacker.Owner.Equipment.Free(5)) Damage = (int)(Damage * 1.5); } if (attacked.EntityFlag == EntityFlag.Monster) if (attacked.MapID < 1351 || attacked.MapID > 1354) Damage = (int)(Damage * AttackMultiplier(attacker, attacked)); if (attacker.OnSuperman()) if (attacked.EntityFlag == EntityFlag.Monster) Damage *= 10; if (attacker.OnFatalStrike()) if (attacked.EntityFlag == EntityFlag.Monster) Damage *= 5; } if (!attacked.Transformed) { if (attacked.ContainsFlag(Network.GamePackets.Update.Flags.MagicShield)) { if (attacked.ShieldTime > 0) Damage -= 1000; else Damage -= (ushort)(attacked.Defence * attacked.MagicShieldIncrease); } else { Damage -= attacked.Defence; } } else Damage -= attacked.TransformationDefence; if (ServerBase.Kernel.Rate(5)) { if (attacker.EntityFlag == EntityFlag.Player) { if (attacker.Owner.BlessTime > 0) { Damage *= 2; _String str = new _String(true); str.UID = attacker.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("LuckyGuy"); attacker.Owner.SendScreen(str, true); } } } if (ServerBase.Kernel.Rate(5)) { if (attacked.EntityFlag == EntityFlag.Player) { if (attacked.Owner.BlessTime > 0) { Damage = 1; _String str = new _String(true); str.UID = attacker.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("LuckyGuy"); attacked.Owner.SendScreen(str, true); } } } if (spell.ID == 6000 && attacked.EntityFlag == EntityFlag.Monster) { if (spell.PowerPercent != 0) Damage = (int)(Damage * spell.PowerPercent); } else if (spell.ID != 6000) { if (spell.PowerPercent != 0) Damage = (int)(Damage * spell.PowerPercent); } Damage = RemoveExcessDamage(Damage, attacker, attacked); Damage += attacker.PhysicalDamageIncrease; Damage -= attacked.PhysicalDamageDecrease; if (attacker.EntityFlag == EntityFlag.Player && spell.ID != 1115) { if (!CritImmune) { if (ChanceSuccess((float)attacker.CriticalStrike / 200f) && spell.ID != 1115) { Packet.Effect1 |= Attack.AttackEffects1.CriticalStrike; Damage = (Int32)Math.Floor((float)Damage * 1.2); } } } if (attacked.EntityFlag == EntityFlag.Monster) { if (Damage >= 700 * attacked.MaxHitpoints) Damage = (int)(700 * attacked.MaxHitpoints); } //Damage += Damage; Damage = (int)(Damage*1.8);//kimoz if (spell.ID == 1115 ) Damage = Damage / 2; if (spell.ID == 11110) Damage = (int)(Damage / 1.5); /*if (spell.ID == 10315 || spell.ID == 11190) Damage = Damage / 2;*/ if (Damage <= 0) Damage = 1; AutoRespone(attacker, attacked, ref Damage); if (ServerBase.Constants.Damage1Map.Contains(attacker.MapID)) Damage = 1; try { if (attacked.EntityFlag == EntityFlag.Player && (attacker.BattlePower < attacked.BattlePower)) { int sub = attacked.BattlePower - attacker.BattlePower; if (sub == 1) { Damage = (Int32)Math.Floor((float)Damage * .50); } if (sub == 2) { Damage = (Int32)Math.Floor((float)Damage * .49); } if (sub == 3) { Damage = (Int32)Math.Floor((float)Damage * .48); } if (sub == 4) { Damage = (Int32)Math.Floor((float)Damage * .47); } if (sub == 5) { Damage = (Int32)Math.Floor((float)Damage * .46); } if (sub == 6) { Damage = (Int32)Math.Floor((float)Damage * .45); } if (sub == 7) { Damage = (Int32)Math.Floor((float)Damage * .44); } if (sub == 8) { Damage = (Int32)Math.Floor((float)Damage * .43); } if (sub == 9) { Damage = (Int32)Math.Floor((float)Damage * .42); } if (sub == 10) { Damage = (Int32)Math.Floor((float)Damage * .41); } if (sub == 11) { Damage = (Int32)Math.Floor((float)Damage * .40); } if (sub == 12) { Damage = (Int32)Math.Floor((float)Damage * .39); } if (sub == 13) { Damage = (Int32)Math.Floor((float)Damage * .38); } if (sub == 14) { Damage = (Int32)Math.Floor((float)Damage * .37); } if (sub == 15) { Damage = (Int32)Math.Floor((float)Damage * .36); } if (sub == 16) { Damage = (Int32)Math.Floor((float)Damage * .35); } if (sub == 17) { Damage = (Int32)Math.Floor((float)Damage * .34); } if (sub == 18) { Damage = (Int32)Math.Floor((float)Damage * .33); } if (sub == 19) { Damage = (Int32)Math.Floor((float)Damage * .32); } if (sub == 20) { Damage = (Int32)Math.Floor((float)Damage * .31); } if (sub == 21) { Damage = (Int32)Math.Floor((float)Damage * .30); } if (sub == 22) { Damage = (Int32)Math.Floor((float)Damage * .29); } if (sub == 23) { Damage = (Int32)Math.Floor((float)Damage * .28); } if (sub == 24) { Damage = (Int32)Math.Floor((float)Damage * .27); } if (sub == 25) { Damage = (Int32)Math.Floor((float)Damage * .26); } if (sub == 26) { Damage = (Int32)Math.Floor((float)Damage * .25); } if (sub == 27) { Damage = (Int32)Math.Floor((float)Damage * .24); } if (sub == 28) { Damage = (Int32)Math.Floor((float)Damage * .23); } if (sub == 29) { Damage = (Int32)Math.Floor((float)Damage * .22); } if (sub == 30) { Damage = (Int32)Math.Floor((float)Damage * .21); } if (sub == 31) { Damage = (Int32)Math.Floor((float)Damage * .20); } if (sub == 32) { Damage = (Int32)Math.Floor((float)Damage * .19); } if (sub == 33) { Damage = (Int32)Math.Floor((float)Damage * .18); } if (sub == 34) { Damage = (Int32)Math.Floor((float)Damage * .17); } if (sub == 35) { Damage = (Int32)Math.Floor((float)Damage * .16); } if (sub == 36) { Damage = (Int32)Math.Floor((float)Damage * .15); } if (sub == 37) { Damage = (Int32)Math.Floor((float)Damage * .14); } if (sub == 38) { Damage = (Int32)Math.Floor((float)Damage * .13); } if (sub == 39) { Damage = (Int32)Math.Floor((float)Damage * .12); } if (sub == 40) { Damage = (Int32)Math.Floor((float)Damage * .11); } if (sub == 41) { Damage = (Int32)Math.Floor((float)Damage * .10); } if (sub > 41) { Damage = 1; } } } catch (Exception ex) { Program.SaveException(ex); } if (attacked.ContainsFlag2(Network.GamePackets.Update.Flags2.AzureShield)) { if (attacked.AzureDamage >= Damage) { // Console.WriteLine("^^^^Damage is " + Damage.ToString() + " Azure is : " + attacked.AzureDamage.ToString()); attacked.AzureDamage -= Damage; int sec = 60 - (Time32.Now - attacked.MagicShieldStamp).AllSeconds(); //attacked.Owner.Send(ServerBase.Constants.Shield(attacked.AzureDamage, sec)); SyncPacket packet4 = new SyncPacket { Identifier = attacked.UID, Count = 2, Type = PhoenixProject.Network.GamePackets.SyncPacket.SyncType.StatusFlag, StatusFlag1 = (ulong)attacked.StatusFlag, StatusFlag2 = (ulong)attacked.StatusFlag2, Unknown1 = 0x31, StatusFlagOffset = 0x5d, Time = (uint)sec, Value = (uint)attacked.AzureDamage, Level = 4 }; attacked.Owner.Send((byte[])packet4); //Console.WriteLine("^^^^Damage is " + Damage.ToString() + " Azure is : " + attacked.AzureDamage.ToString()); return 0; } else { // Console.WriteLine("XXXXDamage is " + Damage.ToString() + " Azure is : " + attacked.AzureDamage.ToString()); Damage -= attacked.AzureDamage; attacked.AzureDamage = 0; attacked.RemoveFlag2(Update.Flags2.AzureShield); SyncPacket packet4 = new SyncPacket { Identifier = attacked.UID, Count = 2, Type = PhoenixProject.Network.GamePackets.SyncPacket.SyncType.StatusFlag, StatusFlag1 = (ulong)attacked.StatusFlag, StatusFlag2 = (ulong)attacked.StatusFlag2, Unknown1 = 0x31, StatusFlagOffset = 0x5d, Time = (uint)0, Value = (uint)0, Level = 4 }; attacked.Owner.Send((byte[])packet4); // Console.WriteLine("XXXXDamage is " + Damage.ToString() + " Azure is : " + attacked.AzureDamage.ToString()); return (uint)Damage; } } if (ServerBase.Constants.Damage1Map.Contains(attacker.MapID)) Damage = 1; return (uint)Damage; }
public static uint Magic(Entity attacker, SobNpcSpawn attacked, Database.SpellInformation spell, ref Attack Packet) { if (spell != null) if (!ServerBase.Kernel.Rate(spell.Percent)) return 0; if (spell != null) Durability(attacker, null, spell); if (attacker.Transformed) return 0; if (attacker.EntityFlag == EntityFlag.Player) { GemEffect.Effect(attacker); } int Damage = 0; Damage = (int)attacker.MagicAttack; if (spell != null) Damage += spell.Power; if (ServerBase.Kernel.Rate(5)) { if (attacker.EntityFlag == EntityFlag.Player) { if (attacker.Owner.BlessTime > 0) { Damage *= 2; _String str = new _String(true); str.UID = attacker.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("LuckyGuy"); attacker.Owner.SendScreen(str, true); } } } Damage += attacker.MagicDamageIncrease; if (ChanceSuccess((float)attacker.SkillCStrike / 100f)) { Packet.Effect1 |= Attack.AttackEffects1.CriticalStrike; Damage = (Int32)Math.Floor((float)Damage * 1.2); } if (Damage <= 0) Damage = 1; if (ServerBase.Constants.Damage1Map.Contains(attacker.MapID)) Damage = 1; if (attacker.MonsterInfo != null) if (attacker.MonsterInfo.Name == "Guard1") Damage = (int)attacked.MaxHitpoints + 1; if (ServerBase.Constants.Damage1Map.Contains(attacker.MapID)) Damage = 1; return (uint)Damage; }
public void IncreaseExperience(ulong experience, bool addMultiple) { if (Entity.Dead) return; byte level = Entity.Level; ulong _experience = Entity.Experience; ulong prExperienece = experience; if (addMultiple) { if (Entity.VIPLevel > 0) experience *= 3; if (Program.Today == DayOfWeek.Saturday || Program.Today == DayOfWeek.Sunday || Program.Today == DayOfWeek.Monday || Program.Today == DayOfWeek.Thursday || Program.Today == DayOfWeek.Tuesday || Program.Today == DayOfWeek.Wednesday || Program.Today == DayOfWeek.Friday) experience *= 8; experience *= ServerBase.Constants.ExtraExperienceRate; experience += experience * Entity.Gems[3] / 100; if (Entity.DoubleExperienceTime > 0) experience *= 2; if (Entity.HeavenBlessing > 0) experience += (uint)(experience * 20 / 100); if (Entity.Reborn >= 2) experience /= 3; if (Map.BaseID == 1039) experience /= 50; if (Guild != null) { if (Guild.Level > 0) { experience += (ushort)(experience * Guild.Level / 100); } } prExperienece = experience + (ulong)(experience * ((float)Entity.BattlePower / 100)); _experience += prExperienece; } else _experience += experience; if (Entity.Level < 140) { while (_experience >= Database.DataHolder.LevelExperience(level) && level < 140) { _experience -= Database.DataHolder.LevelExperience(level); level++; if (Entity.Reborn == 1) { if (level >= 130 && Entity.FirstRebornLevel > 130 && level < Entity.FirstRebornLevel) level = Entity.FirstRebornLevel; } else if (Entity.Reborn == 2) { if (level >= 130 && Entity.SecondRebornLevel > 130 && level < Entity.SecondRebornLevel) level = Entity.SecondRebornLevel; } if (Entity.Class >= 10 && Entity.Class <= 15) if (!Spells.ContainsKey(0x456)) AddSpell(new Network.GamePackets.Spell(true) { ID = 0x456 }); if (Entity.Class >= 50 && Entity.Class <= 55) if (!Spells.ContainsKey(11230)) AddSpell(new Network.GamePackets.Spell(true) { ID = 11230 }); if (Entity.Class >= 20 && Entity.Class <= 25) if (!Spells.ContainsKey(0x401)) AddSpell(new Network.GamePackets.Spell(true) { ID = 0x401 }); if (Entity.Class >= 40 && Entity.Class <= 45) if (!Spells.ContainsKey(0x1f42)) AddSpell(new Network.GamePackets.Spell(true) { ID = 0x1f42 }); if (Entity.Class >= 50 && Entity.Class <= 55) if (!Spells.ContainsKey(0x177b)) AddSpell(new Network.GamePackets.Spell(true) { ID = 0x177b }); if (Entity.Class >= 60 && Entity.Class <= 65) if (!Spells.ContainsKey(0x2896)) AddSpell(new Network.GamePackets.Spell(true) { ID = 0x2896 }); if (Entity.Class >= 70 && Entity.Class <= 75) if (!Spells.ContainsKey(0x2b2a)) AddSpell(new Network.GamePackets.Spell(true) { ID = 0x2b2a }); if (Entity.Class > 100) if (!Spells.ContainsKey(0x3f2)) AddSpell(new Network.GamePackets.Spell(true) { ID = 0x3f2 }); if (Mentor != null) { if (Mentor.IsOnline) { Mentor.Client.PrizeExperience += (ulong)level; AsApprentice = Mentor.Client.Apprentices[Entity.UID]; try { AsApprentice.Actual_Experience += (ulong)level; AsApprentice.Total_Experience += (ulong)level; } catch { } if (Mentor.Client.PrizeExperience > 50 * 606) Mentor.Client.PrizeExperience = 50 * 606; } } if (level == 70) { if (ArenaStatistic == null || ArenaStatistic.EntityID == 0) { ArenaStatistic = new PhoenixProject.Network.GamePackets.ArenaStatistic(true); ArenaStatistic.EntityID = Entity.UID; ArenaStatistic.Name = Entity.Name; ArenaStatistic.Level = Entity.Level; ArenaStatistic.Class = Entity.Class; ArenaStatistic.Model = Entity.Mesh; ArenaStatistic.ArenaPoints = Database.ArenaTable.ArenaPointFill(Entity.Level); ArenaStatistic.LastArenaPointFill = DateTime.Now; Database.ArenaTable.InsertArenaStatistic(this); ArenaStatistic.Status = Network.GamePackets.ArenaStatistic.NotSignedUp; Game.ConquerStructures.Arena.ArenaStatistics.Add(Entity.UID, ArenaStatistic); } } if (Entity.Reborn == 0) { if (level <= 120) { Database.DataHolder.GetStats(Entity.Class, level, this); CalculateStatBonus(); CalculateHPBonus(); GemAlgorithm(); } else Entity.Atributes += 3; } else { Entity.Atributes += 3; } } if (Entity.Level != level) { if (Team != null) { if (Team.LowestLevelsUID == Entity.UID) { Team.LowestLevel = 0; Team.LowestLevelsUID = 0; Team.SearchForLowest(); } } Entity.Level = level; Entity.Hitpoints = Entity.MaxHitpoints; Entity.Mana = Entity.MaxMana; if (Entity.Level > 130) { Database.EntityTable.UpdateLevel(Entity.Owner); } _String str = new _String(true); str.UID = Entity.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("xp"); SendScreen(str, true); } if (Entity.Experience != _experience) Entity.Experience = _experience; if (Entity.Reborn == 2 && Entity.Level >= 110) { if (ServerBase.Kernel.ReincarnatedCharacters.ContainsKey(Entity.UID)) Network.PacketHandler.ReincarnationHash(Entity.Owner); } } }
static void ObserveEquipment2(Data generalData, Client.GameState client) { if (NulledClient(client)) return; Client.GameState pclient = null; if (Kernel.GamePool.TryGetValue(generalData.dwParam, out pclient)) { byte[] array = new byte[pclient.Entity.SpawnPacket.Length]; pclient.Entity.SpawnPacket.CopyTo(array, 0); array[0x6d] = 0; client.Send(array); pclient.Send(new Message(client.Entity.Name + " is observing your gear carefully.", System.Drawing.Color.Red, Message.TopLeft)); client.Send(WindowStats(pclient)); if (!pclient.AlternateEquipment) { for (Byte pos = (Byte)Positions.Head; pos <= (Byte)Positions.SteedTalisman; pos++) { Interfaces.IConquerItem i = pclient.Equipment.TryGetItem((Byte)pos); BoothItem2 view = new BoothItem2(); view.CostType = BoothItem2.CostTypes.ViewEquip; view.Identifier = pclient.Entity.UID; view.Position = (Positions)pos; if (i != null) view.ParseItem(i); client.Send(view); if (i != null) { i.SendExtras(client); } } } else { for (Byte pos = (Byte)Positions.AttackTalisman; pos <= (Byte)Positions.AltGarment; pos++) { Interfaces.IConquerItem i = pclient.Equipment.TryGetItem((Byte)pos); BoothItem2 view = new BoothItem2(); view.CostType = BoothItem2.CostTypes.ViewEquip; view.Identifier = pclient.Entity.UID; view.Position = (Positions)pos; if (i != null) view.ParseItem(i); client.Send(view); if (i != null) { i.SendExtras(client); } } } _String packet = new _String(true); packet.Type = 16; packet.UID = client.Entity.UID; packet.TextsCount = 1; packet.Texts = new List<string>() { pclient.Entity.Spouse }; client.Send(packet); packet.Type = 10; client.Send(packet); client.Send(generalData); //Console.WriteLine("k i m o" + generalData.dwParam + ""); } }
public void SendName(Client.GameState client) { _String stringPacket = new _String(true); stringPacket.UID = ID; stringPacket.Type = _String.GuildName; stringPacket.Texts.Add(Name + " " + LeaderName + " 0 " + MemberCount); client.Send(stringPacket); }
static void UseItem(Interfaces.IConquerItem item, Client.GameState client) { Database.ConquerItemInformation infos = new Database.ConquerItemInformation(item.ID, 0); if (client.Booth != null) return; client.Entity.UseItem = true; client.SpiltStack = true; switch (item.ID) { #region ElitePkChampion Prize #region 10ExpBallPack case 720757: { if (client.Inventory.Count <= 39) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(723700, 0, 10); } else client.Send(ServerBase.Constants.FullInventory); break; // break; } #endregion #region +3StonePack case 729023: { if (client.Inventory.Count <= 30) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(730003, 3, 10); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region +2StonePack case 729022: { if (client.Inventory.Count <= 30) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(730002, 2, 10); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region +1Stone Pack case 723712: { if (client.Inventory.Count <= 35) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(730001, 1, 5); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region 500Stuydy case 723342: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.SubClasses.StudyPoints += 500; client.Send(ServerBase.Constants.Study); break; } #endregion #region Random Accseeoreis case 720836: { uint ItemID = 0; uint rand = (uint)PhoenixProject.ServerBase.Kernel.Random.Next(1, 78); switch (rand) { #region Rand Accesory case 1: ItemID = 350001; break; case 2: ItemID = 350002; break; case 3: ItemID = 350004; break; case 4: ItemID = 350005; break; case 5: ItemID = 350006; break; case 6: ItemID = 350007; break; case 7: ItemID = 350008; break; case 8: ItemID = 350009; break; case 9: ItemID = 350010; break; case 10: ItemID = 350011; break; case 11: ItemID = 350012; break; case 12: ItemID = 350014; break; case 13: ItemID = 350015; break; case 14: ItemID = 350016; break; case 15: ItemID = 350017; break; case 16://PalmLeafFan 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2-HandedAccessory A~delicate~and~beautiful~fan~made~of~palm~leaves. 8 0 0 ItemID = 350018; break; case 17://IronShovel 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2-HandedAccessory An~iron~shovel~may~come~in~handy~in~winter,~when~you~need~to~shovel~paths~through~snow. 8 0 0 ItemID = 350019; break; case 18:////FrozenTuna 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2-HandedAccessory It`s~a~strangely-shaped~tuna~from~Bird~Island. 8 0 0 ItemID = 350020; break; case 19://IceStick 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2-HandedAccessory A~strange~stick.~Maybe~you~can~play~ice~hockey~with~it. 8 0 0 ItemID = 360001; break; case 20://Wrench 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory It`s~a~heavy~wrench.~Perhaps~you~can~use~it~to~deal~ 8 0 0 ItemID = 360002; break; case 21://WoodenClub 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory This~wooden~club~often~gives~off~a~sweet~odor. 8 0 0 ItemID = 360003; break; case 22://Umbrella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory An~unbreakable~umbrella~is~a~stealth~weapon~that~also~keeps~you~dry. 8 0 0 ItemID = 360004; break; case 23:////Blowfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Dried~in~the~bright~sunlight~over~the~Desert,~the~blowfish~makes~a~good~weapon~for~it`s~as~hard~as~iron. 8 0 0 ItemID = 360005; break; case 24://FeatherDuster 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360006; break; case 25://Spatula 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360007; break; case 26://InvincibleFist 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360008; break; case 27://FishPole 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360009; break; case 28://Pan 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360010; break; case 29://Handbag 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360011; break; case 30://Backpack 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360012; break; case 31://SportsBag 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360013; break; case 32://Bunny 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360014; break; case 33://GoodEveningBear 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360015; break; case 34://Rod 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360016; break; case 35://Clap 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360017; break; case 36://HeavyHammer 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360018; break; case 37://LightSaber 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360019 ; break; case 38://TennisRacket 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360020; break; case 39://ApeCityHam 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 360021; break; case 40: //Wrench 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory It`s~a~heavy~wrench. 8 0 0 ItemID = 360022; break; case 41: //WoodenClub 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory This~wooden~club~often~gives~off~a~sweet~odor. 8 0 0 ItemID = 360023; break; case 42://Umbrella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory An~unbreakable~umbrella~is~a~stealth~weapon~that~also~keeps~you~dry. 8 0 0 ItemID = 360024; break; case 43://Blowfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Dried~in~the~bright~sunlight~over~the~Desert,~the~Mackerel~makes~a~good~weapon~for~it`s~as~hard~as~iron. 8 0 0 ItemID = 360025; break; case 44://FeatherDuster 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360026; break; case 45://Spatula 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360027; break; case 46://InvincibleFist 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360028; break; case 47://FishPole 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360029; break; case 48://Pan 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360030; break; case 49://Handbag 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360031; break; case 50://Backpack 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360032; break; case 51://SportsBag 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360033; break; case 52://Bunny 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360034; break; case 53://GoodEveningBear 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360035; break; case 54://Rod 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360036; break; case 55://Clap 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360037; break; case 56://HeavyHammer 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360038; break; case 57://LightSaber 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360039; break; case 58://TennisRacket 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 360040; break; case 59://ApeCityHam 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 370001; break; case 60: //WoodenBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 370002; break; case 61://LoveBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 370003; break; case 62://SeaHorse 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 370004; break; case 63://Harp 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 370005; break; case 64://ForceBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 370011; break; case 65://WoodenBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 370012; break; case 66://LoveBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 370013; break; case 67://SeaHorse 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 370014; break; case 68://Harp 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 370015; break; case 69://ForceBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 380001; break; case 70://Wok 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 380002; break; case 71://TurtleShell 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 380003; break; case 72://LoveShield 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 380004; break; case 73://SunFlower 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 380005; break; case 74://Wheel 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 380011; break; case 75://Wok 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory Right~click~to~equip. 8 0 0 ItemID = 380012; break; case 76://TurtleShell 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory Right~click~to~equip. 8 0 0 ItemID = 380013; break; case 77://LoveShield 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory Right~click~to~equip. 8 0 0 ItemID = 380014; break; case 78://SunFlower 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory Right~click~to~equip. 8 0 0 ItemID = 380015; break; default: ItemID = 380013; break; //Wheel 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory Right~click~to~equip. 8 0 0 #endregion } client.Inventory.Add(ItemID, 0, 1); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); break; } #endregion #region Random Refinery case 723693: { uint ItemID = 0; uint rand = (uint)PhoenixProject.ServerBase.Kernel.Random.Next(1, 97); switch (rand) { #region Rand Refinery case 1: ItemID = 724350; break; case 2: ItemID = 724351; break; case 3: ItemID = 724352; break; case 4: ItemID = 724353; break; case 5: ItemID = 724354; break; case 6: ItemID = 724355; break; case 7: ItemID = 724356; break; case 8: ItemID = 724357; break; case 9: ItemID = 724358; break; case 10: ItemID = 724359; break; case 11: ItemID = 724360; break; case 12: ItemID = 724361; break; case 13: ItemID = 724362; break; case 14: ItemID = 724350; break; case 15: ItemID = 724363; break; case 16://PalmLeafFan 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2-HandedAccessory A~delicate~and~beautiful~fan~made~of~palm~leaves. 8 0 0 ItemID = 724364; break; case 17://IronShovel 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2-HandedAccessory An~iron~shovel~may~come~in~handy~in~winter,~when~you~need~to~shovel~paths~through~snow. 8 0 0 ItemID = 724365; break; case 18:////FrozenTuna 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2-HandedAccessory It`s~a~strangely-shaped~tuna~from~Bird~Island. 8 0 0 ItemID = 724366; break; case 19://IceStick 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2-HandedAccessory A~strange~stick.~Maybe~you~can~play~ice~hockey~with~it. 8 0 0 ItemID = 724367; break; case 20://Wrench 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory It`s~a~heavy~wrench.~Perhaps~you~can~use~it~to~deal~ 8 0 0 ItemID = 724368; break; case 21://WoodenClub 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory This~wooden~club~often~gives~off~a~sweet~odor. 8 0 0 ItemID = 724369; break; case 22://Umbrella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory An~unbreakable~umbrella~is~a~stealth~weapon~that~also~keeps~you~dry. 8 0 0 ItemID = 724370; break; case 23:////Blowfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Dried~in~the~bright~sunlight~over~the~Desert,~the~blowfish~makes~a~good~weapon~for~it`s~as~hard~as~iron. 8 0 0 ItemID = 724371; break; case 24://FeatherDuster 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724372; break; case 25://Spatula 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724373; break; case 26://InvincibleFist 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724374; break; case 27://FishPole 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724375; break; case 28://Pan 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724376; break; case 29://Handbag 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724377; break; case 30://Backpack 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724378; break; case 31://SportsBag 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724379; break; case 32://Bunny 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724380; break; case 33://GoodEveningBear 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724381; break; case 34://Rod 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724382; break; case 35://Clap 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724383; break; case 36://HeavyHammer 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724384; break; case 37://LightSaber 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724385 ; break; case 38://TennisRacket 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724386; break; case 39://ApeCityHam 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory None. 8 0 0 ItemID = 724387; break; case 40: //Wrench 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory It`s~a~heavy~wrench. 8 0 0 ItemID = 724388; break; case 41: //WoodenClub 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory This~wooden~club~often~gives~off~a~sweet~odor. 8 0 0 ItemID = 724389; break; case 42://Umbrella 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory An~unbreakable~umbrella~is~a~stealth~weapon~that~also~keeps~you~dry. 8 0 0 ItemID = 724390; break; case 43://Blowfish 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Dried~in~the~bright~sunlight~over~the~Desert,~the~Mackerel~makes~a~good~weapon~for~it`s~as~hard~as~iron. 8 0 0 ItemID = 724391; break; case 44://FeatherDuster 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724392; break; case 45://Spatula 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724393; break; case 46://InvincibleFist 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724394; break; case 47://FishPole 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724395; break; case 48://Pan 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724396; break; case 49://Handbag 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724397; break; case 50://Backpack 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724398; break; case 51://SportsBag 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724399; break; case 52://Bunny 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724400; break; case 53://GoodEveningBear 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724401; break; case 54://Rod 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724402; break; case 55://Clap 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724403; break; case 56://HeavyHammer 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724404; break; case 57://LightSaber 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724405; break; case 58://TennisRacket 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724406; break; case 59://ApeCityHam 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1-HandedAccessory Right~click~to~equip. 8 0 0 ItemID = 724407; break; case 60: //WoodenBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 724408; break; case 61://LoveBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 724409; break; case 62://SeaHorse 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 724410; break; case 63://Harp 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 724411; break; case 64://ForceBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 724412; break; case 65://WoodenBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 724413; break; case 66://LoveBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 724414; break; case 67://SeaHorse 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 724415; break; case 68://Harp 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 724416; break; case 69://ForceBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 724417; break; case 70://Wok 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 724418; break; case 71://TurtleShell 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 724419; break; case 72://LoveShield 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 724420; break; case 73://SunFlower 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 724421; break; case 74://Wheel 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 724422; break; case 75://Wok 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory Right~click~to~equip. 8 0 0 ItemID = 724423; break; case 76://TurtleShell 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory Right~click~to~equip. 8 0 0 ItemID = 724424; break; case 77://LoveShield 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory Right~click~to~equip. 8 0 0 ItemID = 724425; break; case 78://SunFlower 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory Right~click~to~equip. 8 0 0 ItemID = 724423; break; case 79: //WoodenBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 724424; break; case 80://LoveBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 724425; break; case 81://SeaHorse 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 724426; break; case 82://Harp 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 724427; break; case 83://ForceBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory None. 8 0 0 ItemID = 724428; break; case 84://WoodenBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 724429; break; case 85://LoveBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 724430; break; case 86://SeaHorse 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 724431; break; case 87://Harp 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 724432; break; case 88://ForceBow 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 BowAccessory Right~click~to~equip. 8 0 0 ItemID = 724433; break; case 89://Wok 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 724434; break; case 90://TurtleShell 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 724435; break; case 91://LoveShield 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 724436; break; case 92://SunFlower 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 724437; break; case 93://Wheel 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 0 0 10080 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory None. 8 0 0 ItemID = 724438; break; case 94://Wok 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory Right~click~to~equip. 8 0 0 ItemID = 724439; break; case 95://TurtleShell 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory Right~click~to~equip. 8 0 0 ItemID = 724440; break; case 96://LoveShield 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory Right~click~to~equip. 8 0 0 ItemID = 724441; break; case 97://SunFlower 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory Right~click~to~equip. 8 0 0 ItemID = 724442; break; default: ItemID = 724445; break; //Wheel 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 65535 65535 0 0 0 0 0 0 0 0 0 1 800 2 2 1 215 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ShieldAccessory Right~click~to~equip. 8 0 0 #endregion } client.Inventory.Add(ItemID, 0, 1); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); break; } #endregion #region PkEliteFirst Pack case 720717: { if (client.Inventory.Count <= 23) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(723342, 0, 5);//mondostyBook client.Inventory.Add(720598, 0, 3);//dragonPill client.Inventory.Add(720028, 0, 3);//dbscroll client.Inventory.Add(720836, 0, 1);//accessores client.Inventory.Add(723693, 0, 1);//legandRefineryPack client.Inventory.Add(723744, 0, 3);//powerExpBall client.Inventory.Add(723864, 0, 1);//Steed+6 } else { client.Send(new Message("you must have 17 space in you inventory to take prize", Color.Green, 2005)); } break; } #endregion #region PkEliteFirst Pack2 case 720721: { if (client.Inventory.Count <= 30) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(723342, 0, 3);//mondostyBook client.Inventory.Add(720598, 0, 2);//dragonPill client.Inventory.Add(720028, 0, 1);//dbscroll client.Inventory.Add(720836, 0, 1);//accessores client.Inventory.Add(723693, 0, 1);//legandRefineryPack client.Inventory.Add(723744, 0, 1);//powerExpBall //client.Inventory.Add(723864, 0, 1);//Steed+6 } else { client.Send(new Message("you must have 10 space in you inventory to take prize", Color.Green, 2005)); } break; } #endregion #region PkEliteFirst Pack3 case 720725: { if (client.Inventory.Count <= 30) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(723342, 0, 2);//mondostyBook client.Inventory.Add(720598, 0, 2);//dragonPill client.Inventory.Add(720028, 0, 1);//dbscroll client.Inventory.Add(720836, 0, 1);//accessores client.Inventory.Add(723693, 0, 1);//legandRefineryPack client.Inventory.Add(723912, 0, 2);//ArenaExp //client.Inventory.Add(723864, 0, 1);//Steed+6 } else { client.Send(new Message("you must have 10 space in you inventory to take prize", Color.Green, 2005)); } break; } #endregion #region PkEliteFirst Pack8 case 720729: { if (client.Inventory.Count <= 30) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(723342, 0, 1);//mondostyBook client.Inventory.Add(720598, 0, 1);//dragonPill client.Inventory.Add(720028, 0, 1);//dbscroll client.Inventory.Add(720836, 0, 1);//accessores client.Inventory.Add(723693, 0, 1);//legandRefineryPack client.Inventory.Add(723912, 0, 1);//ArenaExp //client.Inventory.Add(723864, 0, 1);//Steed+6 } else { client.Send(new Message("you must have 6 space in you inventory to take prize", Color.Green, 2005)); } break; } #endregion #endregion #region NewItems case 724002://SmallLotteryTicketPack { client.Inventory.Add(711504, 0, 3); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); break; } #endregion #region MemoryAgate case 720828: { if (ServerBase.Constants.revnomap.Contains(client.Entity.MapID)) { client.Send(new Message("You Can't record here !", System.Drawing.Color.Tan, Message.TopLeft)); return; } else { item.SendAgate(client); } break; } #endregion #region Medicine case 1000000: case 1000010: case 1000020: case 1000030: case 1002000: case 1002010: case 1002020: case 1002050: case 1000040: case 725065: { //Console.WriteLine("ss"); if (client.Entity.NoDrugsTime > 0) { if (Time32.Now > client.Entity.NoDrugsStamp.AddSeconds(client.Entity.NoDrugsTime)) { client.Entity.NoDrugsTime = 0; } else { return; } } if (client.Entity.Hitpoints == client.Entity.MaxHitpoints) { // Console.WriteLine("ss2"); return; } //Console.WriteLine("ss3"); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Hitpoints = Math.Min(client.Entity.Hitpoints + infos.BaseInformation.ItemHP, client.Entity.MaxHitpoints); break; } case 1001000: case 1001010: case 1001020: case 1001030: case 1001040: case 1002030: case 1002040: case 725066: { if (client.Entity.NoDrugsTime > 0) { if (Time32.Now > client.Entity.NoDrugsStamp.AddSeconds(client.Entity.NoDrugsTime)) { client.Entity.NoDrugsTime = 0; } else { return; } } if (client.Entity.Mana == client.Entity.MaxMana) return; client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Mana = (ushort)Math.Min(client.Entity.Mana + infos.BaseInformation.ItemMP, client.Entity.MaxMana); break; } #endregion #region Gates case 0xafc95: case 0xafc96: case 0xafc97: case 0xafc98: { if (client.Guild != null) { ushort num2 = (ushort)(((item.ID % 100) + 0x7c) * 10); NpcInitial initial = new NpcInitial { Identifier = 1, Lookface = 3, Mode = PhoenixProject.Network.GamePackets.NpcInitial.NpcModes.Place, Furniture = num2 }; client.Send((byte[])initial); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); } break; } case 1060020: { if (client.Entity.MapID == 601) return; if (client.Map.BaseID == 6000 || client.Map.BaseID == 6001 || client.Map.BaseID == 1844 || client.Map.BaseID == 1801 || client.Map.BaseID == 8883 || client.Map.BaseID == 1005 && client.Entity.MapID != 1005 || client.Map.BaseID == 700 && client.Entity.MapID != 701) { client.Send(ServerBase.Constants.JailItemUnusable); return; } client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Teleport(1002, 429, 378); break; } case 1060021: { if (client.Entity.MapID == 601) return; if (client.Map.BaseID == 6000 || client.Map.BaseID == 6001 || client.Map.BaseID == 1844 || client.Map.BaseID == 1801 || client.Map.BaseID == 8883 || client.Map.BaseID == 1005 && client.Entity.MapID != 1005 || client.Map.BaseID == 700 && client.Entity.MapID != 701) { client.Send(ServerBase.Constants.JailItemUnusable); return; } client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Teleport(1000, 500, 650); break; } case 1060022: { if (client.Entity.MapID == 601) return; if (client.Map.BaseID == 6000 || client.Map.BaseID == 6001 || client.Map.BaseID == 1844 || client.Map.BaseID == 1801 || client.Map.BaseID == 8883 || client.Map.BaseID == 1005 && client.Entity.MapID != 1005 || client.Map.BaseID == 700 && client.Entity.MapID != 701) { client.Send(ServerBase.Constants.JailItemUnusable); return; } client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Teleport(1020, 565, 562); break; } case 1060023: { if (client.Entity.MapID == 601) return; if (client.Map.BaseID == 6000 || client.Map.BaseID == 6001 || client.Map.BaseID == 1844 || client.Map.BaseID == 1801 || client.Map.BaseID == 8883 || client.Map.BaseID == 1005 && client.Entity.MapID != 1005 || client.Map.BaseID == 700 && client.Entity.MapID != 701) { client.Send(ServerBase.Constants.JailItemUnusable); return; } client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Teleport(1011, 188, 264); break; } case 1060024: { if (client.Entity.MapID == 601) return; if (client.Map.BaseID == 6000 || client.Map.BaseID == 6001 || client.Map.BaseID == 1844 || client.Map.BaseID == 1801 || client.Map.BaseID == 8883 || client.Map.BaseID == 1005 && client.Entity.MapID != 1005 || client.Map.BaseID == 700 && client.Entity.MapID != 701) { client.Send(ServerBase.Constants.JailItemUnusable); return; } client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Teleport(1015, 717, 571); break; } case 1060039: { if (client.Entity.MapID == 601) return; if (client.Map.BaseID == 6000 || client.Map.BaseID == 6001 || client.Map.BaseID == 1844 || client.Map.BaseID == 1801 || client.Map.BaseID == 8883 || client.Map.BaseID == 1005 && client.Entity.MapID != 1005 || client.Map.BaseID == 700 && client.Entity.MapID != 701) { client.Send(ServerBase.Constants.JailItemUnusable); return; } client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Teleport(1217, 535, 558); break; } #endregion #region Dyes case 723584: { if (client.Equipment.TryGetItem(3) == null) return; if (client.Equipment.TryGetItem(3).ID == 0) return; client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Equipment.TryGetItem(3).Color = Game.Enums.Color.Black; PhoenixProject.Database.ConquerItemTable.UpdateColor(client.Equipment.TryGetItem(3)); client.Equipment.TryGetItem(3).Mode = PhoenixProject.Game.Enums.ItemMode.Update; client.Equipment.TryGetItem(3).Send(client); client.Equipment.UpdateEntityPacket(); break; } case 1060030: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.HairColor = 3; break; } case 1060040: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.HairColor = 9; break; } case 1060050: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.HairColor = 8; break; } case 1060060: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.HairColor = 7; break; } case 1060070: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.HairColor = 6; break; } case 1060080: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.HairColor = 5; break; } case 1060090: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.HairColor = 4; break; } #endregion #region Misc #region ChiPoints Items By MR.Wallid #region ChiPill(100) case 729476: { client.Inventory.Remove(item, Game.Enums.ItemUse.Delete); client.Entity.ChiPoints += 100; { client.Send(new Message("Congratulations you've received 100 Chi Points.", Color.Red, Message.TopLeft)); } break; } #endregion #region ChiPill(200) case 729477: { client.Inventory.Remove(item, Game.Enums.ItemUse.Delete); client.Entity.ChiPoints += 200; { client.Send(new Message("Congratulations you've received 200 Chi Points.", Color.Red, Message.TopLeft)); } break; } #endregion #region ChiPill(300) case 729478: { client.Inventory.Remove(item, Game.Enums.ItemUse.Delete); client.Entity.ChiPoints += 300; { client.Send(new Message("Congratulations you've received 300 Chi Points.", Color.Red, Message.TopLeft)); } break; } #endregion #region ChiPill(400) case 729479: { client.Inventory.Remove(item, Game.Enums.ItemUse.Delete); client.Entity.ChiPoints += 400; { client.Send(new Message("Congratulations you've received 400 Chi Points.", Color.Red, Message.TopLeft)); } break; } #endregion #region VitalPill case 729481: { client.Inventory.Remove(item, Game.Enums.ItemUse.Delete); client.Entity.ChiPoints += 500; { client.Send(new Message("Congratulations you've received 500 Chi Points.", Color.Red, Message.TopLeft)); } break; } #endregion #endregion #region Surprise-Box case 722178: { if (client.Inventory.Count <= 38) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); //client.Inventory.Add(722057, 0, 1);//PowerEXPBall client.Entity.ConquerPoints += 2000; } else { client.Send(new Message("You Must have 1 space in you Inventory To Open You Box", Color.White, 255)); } break; } #endregion #region SteedPacks case 723855: case 728525: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); Interfaces.IConquerItem _item = new ConquerItem(true); _item.ID = 300000; Database.ConquerItemInformation _iteminfos = new Database.ConquerItemInformation(_item.ID, 0); _item.Durability = _item.MaximDurability = _iteminfos.BaseInformation.Durability; _item.Plus = 1; _item.Effect = Game.Enums.ItemEffect.Horse; _item.SocketProgress = 150 << 8 | 255 << 16; client.Inventory.Add(_item, Game.Enums.ItemUse.CreateAndAdd); break; } case 723856: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); Interfaces.IConquerItem _item = new ConquerItem(true); _item.ID = 300000; Database.ConquerItemInformation _iteminfos = new Database.ConquerItemInformation(_item.ID, 0); _item.Durability = _item.MaximDurability = _iteminfos.BaseInformation.Durability; _item.Plus = 1; _item.Effect = Game.Enums.ItemEffect.Horse; _item.SocketProgress = 150 | 255 << 8; client.Inventory.Add(_item, Game.Enums.ItemUse.CreateAndAdd); break; } case 723859: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); Interfaces.IConquerItem _item = new ConquerItem(true); _item.ID = 300000; Database.ConquerItemInformation _iteminfos = new Database.ConquerItemInformation(_item.ID, 0); _item.Durability = _item.MaximDurability = _iteminfos.BaseInformation.Durability; _item.Plus = 1; _item.Effect = Game.Enums.ItemEffect.Horse; _item.SocketProgress = 255 | 150 << 16; client.Inventory.Add(_item, Game.Enums.ItemUse.CreateAndAdd); break; } case 723860: case 728526: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); Interfaces.IConquerItem _item = new ConquerItem(true); _item.ID = 300000; Database.ConquerItemInformation _iteminfos = new Database.ConquerItemInformation(_item.ID, 0); _item.Durability = _item.MaximDurability = _iteminfos.BaseInformation.Durability; _item.Plus = 3; _item.Effect = Game.Enums.ItemEffect.Horse; _item.SocketProgress = 150 << 8 | 255 << 16; client.Inventory.Add(_item, Game.Enums.ItemUse.CreateAndAdd); break; } case 723861: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); Interfaces.IConquerItem _item = new ConquerItem(true); _item.ID = 300000; Database.ConquerItemInformation _iteminfos = new Database.ConquerItemInformation(_item.ID, 0); _item.Durability = _item.MaximDurability = _iteminfos.BaseInformation.Durability; _item.Plus = 3; _item.Effect = Game.Enums.ItemEffect.Horse; _item.SocketProgress = 150 | 255 << 8; client.Inventory.Add(_item, Game.Enums.ItemUse.CreateAndAdd); break; } case 723862: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); Interfaces.IConquerItem _item = new ConquerItem(true); _item.ID = 300000; Database.ConquerItemInformation _iteminfos = new Database.ConquerItemInformation(_item.ID, 0); _item.Durability = _item.MaximDurability = _iteminfos.BaseInformation.Durability; _item.Plus = 3; _item.Effect = Game.Enums.ItemEffect.Horse; _item.SocketProgress = 255 | 150 << 16; client.Inventory.Add(_item, Game.Enums.ItemUse.CreateAndAdd); break; } case 723863: case 728527: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); Interfaces.IConquerItem _item = new ConquerItem(true); _item.ID = 300000; Database.ConquerItemInformation _iteminfos = new Database.ConquerItemInformation(_item.ID, 0); _item.Durability = _item.MaximDurability = _iteminfos.BaseInformation.Durability; _item.Plus = 6; _item.Effect = Game.Enums.ItemEffect.Horse; _item.SocketProgress = 150 << 8 | 255 << 16; client.Inventory.Add(_item, Game.Enums.ItemUse.CreateAndAdd); break; } case 723864: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); Interfaces.IConquerItem _item = new ConquerItem(true); _item.ID = 300000; Database.ConquerItemInformation _iteminfos = new Database.ConquerItemInformation(_item.ID, 0); _item.Durability = _item.MaximDurability = _iteminfos.BaseInformation.Durability; _item.Plus = 6; _item.Effect = Game.Enums.ItemEffect.Horse; _item.SocketProgress = 150 | 255 << 8; client.Inventory.Add(_item, Game.Enums.ItemUse.CreateAndAdd); break; } case 723865: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); Interfaces.IConquerItem _item = new ConquerItem(true); _item.ID = 300000; Database.ConquerItemInformation _iteminfos = new Database.ConquerItemInformation(_item.ID, 0); _item.Durability = _item.MaximDurability = _iteminfos.BaseInformation.Durability; _item.Plus = 6; _item.Effect = Game.Enums.ItemEffect.Horse; _item.SocketProgress = 255 | 150 << 16; client.Inventory.Add(_item, Game.Enums.ItemUse.CreateAndAdd); break; } case 723900: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); Interfaces.IConquerItem _item = new ConquerItem(true); _item.ID = 300000; Database.ConquerItemInformation _iteminfos = new Database.ConquerItemInformation(_item.ID, 0); _item.Durability = _item.MaximDurability = _iteminfos.BaseInformation.Durability; _item.Plus = 0; _item.Effect = Game.Enums.ItemEffect.Horse; _item.SocketProgress = 150 << 8 | 255 << 16; client.Inventory.Add(_item, Game.Enums.ItemUse.CreateAndAdd); break; } case 723901: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); Interfaces.IConquerItem _item = new ConquerItem(true); _item.ID = 300000; Database.ConquerItemInformation _iteminfos = new Database.ConquerItemInformation(_item.ID, 0); _item.Durability = _item.MaximDurability = _iteminfos.BaseInformation.Durability; _item.Plus = 0; _item.Effect = Game.Enums.ItemEffect.Horse; _item.SocketProgress = 150 | 255 << 8; client.Inventory.Add(_item, Game.Enums.ItemUse.CreateAndAdd); break; } case 723902: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); Interfaces.IConquerItem _item = new ConquerItem(true); _item.ID = 300000; Database.ConquerItemInformation _iteminfos = new Database.ConquerItemInformation(_item.ID, 0); _item.Durability = _item.MaximDurability = _iteminfos.BaseInformation.Durability; _item.Plus = 0; _item.Effect = Game.Enums.ItemEffect.Horse; _item.SocketProgress = 255 | 150 << 16; client.Inventory.Add(_item, Game.Enums.ItemUse.CreateAndAdd); break; } #endregion #region LifeFruitBasket case 723725: { if (client.Inventory.Count <= 31) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(723726, 0, 10); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region 7StarPouch case 725067: { if (client.Inventory.Count <= 35) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(725065, 0, 5); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region SerenityPouch case 725068: { if (client.Inventory.Count <= 35) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(725066, 0, 5); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region SpeedArrowPack case 727000: { if (client.Inventory.Count <= 35) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(1050002, 0, 1); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region LifeFruit case 723726: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Hitpoints = client.Entity.MaxHitpoints; client.Entity.Mana = client.Entity.MaxMana; break; } #endregion #region Amrita Box case 720010: { if (client.Inventory.Count <= 38) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(1000030, 0, 3); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region Panacea Box case 720011: { if (client.Inventory.Count <= 38) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(1002000, 0, 3); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region Ginseng Box case 720012: { if (client.Inventory.Count <= 38) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(1002010, 0, 3); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region Vanilla Box case 720013: { if (client.Inventory.Count <= 38) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(1002020, 0, 3); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region RecoveryPill Box case 720014: { if (client.Inventory.Count <= 38) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(1001030, 0, 3); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion RecoveryPill #region SoulPill Box case 720015: { if (client.Inventory.Count <= 38) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(1001040, 0, 3); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region RefreshingPill Box case 720016: { if (client.Inventory.Count <= 38) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(1002030, 0, 3); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region ChantPill Box case 720017: { if (client.Inventory.Count <= 38) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(1002040, 0, 3); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region Mil.Ginseng Box case 721330: { if (client.Inventory.Count <= 38) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(1002050, 0, 3); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region ExpBall case 723700: { if (client.ExpBalls < 10) { if (client.Entity.Level < 137) { client.IncreaseExperience(client.ExpBall, false); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.ExpBalls++; } } else client.Send(ServerBase.Constants.ExpBallsUsed); break; } #endregion #region MeteorTearScroll case 723711: { if (client.Inventory.Count <= 36) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(1088002, 0, 5); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region Class1MoneyBag case 723713: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Money += 300000; break; } #endregion #region Class2MoneyBag case 723714: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Money += 800000; break; } #endregion #region Class3MoneyBag case 723715: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Money += 1200000; break; } #endregion #region Class4MoneyBag case 723716: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Money += 1800000; break; } #endregion #region Class5MoneyBag case 723717: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Money += 5000000; break; } #endregion #region Class6MoneyBag case 723718: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Money += 20000000; break; } #endregion #region Class7MoneyBag case 723719: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Money += 25000000; break; } #endregion #region Class8MoneyBag case 723720: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Money += 80000000; break; } #endregion #region Class9MoneyBag case 723721: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Money += 100000000; break; } #endregion #region Class10MoneyBag case 723722: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Money += 300000000; break; } #endregion #region BeginnerPackL1 case 723753: { if (client.Entity.Level >= 1) { if (client.Inventory.Count < 33) { client.Entity.Money += 500; client.Entity.ConquerPoints += 10; client.Inventory.Add(1000000, 0, 3); client.Inventory.Add(1001000, 0, 3); client.Inventory.Add(723755, 0, 1); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 7 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 1", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region BeginnerPackL10 case 723755: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 26) { client.Inventory.Add(723700, 0, 10);//ExpBall client.Inventory.Add(723017, 0, 3); //ExpPotion client.Inventory.Add(723767, 0, 1); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 14 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region BeginnerPackL70 case 723767: { if (client.Entity.Level >= 70) { if (client.Inventory.Count < 36) { client.Inventory.Add(723017, 0, 5); //ExpPotion client.Entity.ConquerPoints += 20; client.Inventory.Add(1080001, 0, 1); //Emerald client.Inventory.Add(723772, 0, 1); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 7 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 70", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region BeginnerPackL100 case 723772: { if (client.Entity.Level >= 100) { if (client.Inventory.Count < 28) { client.Inventory.Add(723774, 0, 1); client.Inventory.Add(723017, 0, 10); //ExpPotion if (client.Entity.Class <= 15) client.Inventory.Add(800010, 0, 1); //Trojan else if (client.Entity.Class <= 25) client.Inventory.Add(800410, 0, 1); //Warrior else if (client.Entity.Class <= 45) client.Inventory.Add(800610, 0, 1); //Archer else if (client.Entity.Class <= 55) client.Inventory.Add(800010, 0, 1); //Ninja else if (client.Entity.Class <= 65) client.Inventory.Add(800010, 0, 1); //Monk else //Taoist client.Inventory.Add(800508, 0, 1); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 12 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 100", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region BeginnerPackL110 case 723774: { if (client.Entity.Level >= 110) { if (client.Inventory.Count < 27) { client.Inventory.Add(723776, 0, 1); client.Inventory.Add(721090, 0, 1);//MoonBox client.Inventory.Add(723017, 0, 10); //ExpPotion if (client.Entity.Class <= 15) CheckCommand(new Message("@item MythicBlade Super 0 0 0 13 0", System.Drawing.Color.Red, 2001), client); else if (client.Entity.Class <= 25) CheckCommand(new Message("@item DragonWand Super 0 0 0 13 0", System.Drawing.Color.Red, 2001), client); else if (client.Entity.Class <= 45) CheckCommand(new Message("@item AncientBow Super 0 0 0 13 0", System.Drawing.Color.Red, 2001), client); else if (client.Entity.Class <= 55) CheckCommand(new Message("@item FlameKatana Super 0 0 0 13 0", System.Drawing.Color.Red, 2001), client); else if (client.Entity.Class <= 65) CheckCommand(new Message("@item BeadsOfConsciousness Super 0 0 0 13 0", System.Drawing.Color.Red, 2001), client); else CheckCommand(new Message("@item ThunBacksword Super 0 0 0 3 0", System.Drawing.Color.Red, 2001), client); client.Entity.ConquerPoints += 30; client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 13 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 110", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region BeginnerPackL120 case 723776: { if (client.Entity.Level >= 120) { if (client.Inventory.Count < 35) { client.Inventory.Add(1088001, 0, 5); //DragonBall client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 5 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 120", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion //723755, 723768, 723772 ,723774, 723776 #region PowerEXPBall case 722057: { if (client.ExpBalls < 30) { if (client.Entity.Level < 140) { client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.IncreaseExperience(client.ExpBall, false); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.ExpBalls++; } } else client.Send(ServerBase.Constants.ExpBallsUsed); break; } #endregion #region P6SoulPack case 729994: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 31) { client.Inventory.Add(821031, 0, 1);//+8 client.Inventory.Add(820072, 0, 1); //+6 client.Inventory.Add(823055, 0, 1); //+6 client.Inventory.Add(822053, 0, 1); //+6 client.Inventory.Add(824017, 0, 1); //+6 client.Inventory.Add(722057, 0, 3); //+6 client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 9 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region P6WeaponPack case 729993: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 29) { client.Inventory.Add(800000, 0, 2);//blade client.Inventory.Add(800017, 0, 2); //katana client.Inventory.Add(800110, 0, 2); //grim client.Inventory.Add(800722, 0, 2); //holy client.Inventory.Add(800513, 0, 1); //back client.Inventory.Add(800804, 0, 1); //pistol client.Inventory.Add(800809, 0, 1); //repiar client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 11 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperVioletGemPack case 727068: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 30) { client.Inventory.Add(700053, 0, 10);//volite client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 10 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperDragonGemPack case 727100: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 30) { client.Inventory.Add(700013, 0, 10);//dragon client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 10 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperMoonGemPack case 727069: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 30) { client.Inventory.Add(700063, 0, 10);//moon client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 10 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperKylinGemPack case 727062: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 30) { client.Inventory.Add(700043, 0, 10);//kylin client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 10 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperRainbowGemPack case 727063: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 30) { client.Inventory.Add(700033, 0, 10);//Rb client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 10 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperFuryGemPack case 727064: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 30) { client.Inventory.Add(700023, 0, 10);//Fu client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 10 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperPhoenixGemPack case 727066: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 30) { client.Inventory.Add(700003, 0, 10);//Fu client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 10 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperTortoiseGemPack case 727067: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 30) { client.Inventory.Add(700073, 0, 10);//Fu client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 10 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperGloryGemPack case 727060: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 35) { client.Inventory.Add(700123, 0, 5);//Fu client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 5 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperThunderGemPack case 727061: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 35) { client.Inventory.Add(700103, 0, 5);//Fu client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 5 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region TopMoneyBag case 723723: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Money += 500000000; break; } #endregion #region DrasgonBallScroll case 720028: { if (client.Inventory.Count <= 31) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(1088000, 0, 10); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region DiligenceBook case 723340: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.SubClasses.StudyPoints += 5; client.Inventory.Add(723903, 0, 10); client.Send(new Message("Congratulations you got 5 study Points keep going", System.Drawing.Color.Red, Message.study)); } break; #endregion #region StudyBook[Arena/Race] case 720774: case 720775: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.SubClasses.StudyPoints += 50; client.Send(new Message("Congratulations you got 50 study Points keep going", System.Drawing.Color.Red, Message.study)); } break; #endregion #region MeteorScroll case 720027: { if (client.Inventory.Count <= 31) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Inventory.Add(1088001, 0, 10); } else client.Send(ServerBase.Constants.FullInventory); break; } #endregion #region DoubleExperiencePotion case 723017: { client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); client.Entity.DoubleExperienceTime = 3600; SyncPacket packet = new SyncPacket { Identifier = client.Entity.UID, Type = PhoenixProject.Network.GamePackets.SyncPacket.SyncType.DoubleExpTimer, Duration = 3600, Multiple = 1 * 100 }; client.Send((byte[])packet); break; } #endregion #region DoubleExperiencePotion case 728201: { client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); client.Entity.DoubleExperienceTime = 7200; SyncPacket packet = new SyncPacket { Identifier = client.Entity.UID, Type = PhoenixProject.Network.GamePackets.SyncPacket.SyncType.DoubleExpTimer, Duration = 7200, Multiple = 1 * 200 }; client.Send((byte[])packet); break; } #endregion #region NinjaAmulet case 723583: { client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); switch (client.Entity.Body % 10) { case 2: case 4: client.Entity.Body--; break; case 1: case 3: client.Entity.Body++; break; } break; } #endregion #region PrayingStone(S) case 1200000: { uint value = (uint)(3 * 24 * 60 * 60); client.AddBless(value); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); client.Entity.Update(Network.GamePackets.Update.OnlineTraining, client.OnlineTrainingPoints, false); break; } #endregion #region PrayingStone(M) case 1200001: { uint value = (uint)(7 * 24 * 60 * 60); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); client.AddBless(value); client.Entity.Update(Network.GamePackets.Update.OnlineTraining, client.OnlineTrainingPoints, false); break; } #endregion #region PrayingStone(L) case 1200002: { uint value = (uint)(30 * 24 * 60 * 60); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); client.AddBless(value); client.Entity.Update(Network.GamePackets.Update.OnlineTraining, client.OnlineTrainingPoints, false); break; } #endregion #region PenitenceAmulet case 723727: case 720128: { if (client.Entity.PKPoints >= 30) { client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); client.Entity.PKPoints -= 30; } break; } #endregion #region DisguiseAmulet case 723724: { int disguise = ServerBase.Kernel.Random.Next(Database.DataHolder.Disguises.Length); ushort selected = Database.DataHolder.Disguises[disguise]; client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); bool wasTransformated = client.Entity.Transformed; if (wasTransformated) { client.Entity.Hitpoints = client.Entity.MaxHitpoints; client.Entity.TransformationID = 0; client.Entity.TransformationStamp = Time32.Now; } ushort transformation = selected; client.Entity.TransformationID = transformation; client.Entity.TransformationStamp = Time32.Now; client.Entity.TransformationTime = 110; SpellUse spellUse = new SpellUse(true); spellUse.Attacker = client.Entity.UID; spellUse.SpellID = 1360; spellUse.SpellLevel = 4; spellUse.X = client.Entity.X; spellUse.Y = client.Entity.Y; spellUse.Targets.Add(client.Entity.UID, (uint)0); client.Send(spellUse); client.Entity.TransformationMaxHP = 3000; double maxHP = client.Entity.MaxHitpoints; double HP = client.Entity.Hitpoints; double point = HP / maxHP; client.Entity.Hitpoints = (uint)(client.Entity.TransformationMaxHP * point); client.Entity.Update(Update.MaxHitpoints, client.Entity.TransformationMaxHP, false); break; } #endregion #region Chi 10 case 729252: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.ChiPoints += 10; break; } #endregion #region Chi 500 case 729242: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.ChiPoints += 500; break; } #endregion #region +8StonePack case 721222: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 38) { client.Inventory.Add(730008, 8, 1);//+8 client.Inventory.Add(730006, 6, 1); //+6 client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 2 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region ToughDrillPack case 721223: { if (client.Entity.Level >= 10) { if (client.Inventory.Count < 38) { client.Inventory.Add(1200005, 0, 1);//ToughDrill client.Inventory.Add(730003, 3, 1); //+3 client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 2 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperWarrior`sArmorPack case 721224: { uint itemid = 131069; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperWarrior`sHelmetPack case 721225: { uint itemid = 111069; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperTrojan`sArmorPack case 721226: { uint itemid = 130069; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperTrojan`sCoronetPack case 721227: { uint itemid = 118069; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperNinja`sVestPack case 721228: { uint itemid = 135069; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperNinja`sVeilPack case 721229: { uint itemid = 112069; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperTaoist`sRobePack case 721230: { uint itemid = 134069; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperTaoist`sCapPack case 721231: { uint itemid = 114069; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperArcher`sCoatPack case 721232: { uint itemid = 133049; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperArcher`sHatPack case 721233: { uint itemid = 113049; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperNecklacePack case 721234: { uint itemid = 120129; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperRingPack case 721235: { uint itemid = 150139; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperTaoist`sBagPack case 721236: { uint itemid = 121129; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperTaoist`sBraceletPack case 721237: { uint itemid = 152149; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperBootsPack case 721238: { uint itemid = 160139; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperBladePack case 721239: { uint itemid = 410139; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperSwordPack case 721240: { uint itemid = 420139; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperClubPack case 721241: { uint itemid = 480139; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperShieldPack case 721242: { uint itemid = 900049; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperKatanaPack case 721243: { uint itemid = 601139; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperBackswordPack case 721244: { uint itemid = 421139; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #region SuperBowPack case 721245: { uint itemid = 500129; if (client.Entity.Level >= 10) { if (client.Inventory.Count < 32) { client.Inventory.Add(1200000, 0, 1);//PrayingStone client.Inventory.Add(723700, 0, 1);//ExpBall client.Inventory.Add(723017, 0, 5); //ExpPotion ConquerItem items = new ConquerItem(true); items.ID = itemid; items.Color = PhoenixProject.Game.Enums.Color.White; items.Plus = 5; items.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; items.Durability = items.MaximDurability = PhoenixProject.Database.ConquerItemInformation.BaseInformations[itemid].Durability; client.Inventory.Add(items, PhoenixProject.Game.Enums.ItemUse.CreateAndAdd); client.Inventory.Remove(item, PhoenixProject.Game.Enums.ItemUse.Remove); } else client.Send(new Message("You need to make atleast 8 free spots in your inventory.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You must be atleast level 10 to open the Pack", System.Drawing.Color.Red, Message.TopLeft)); break; } #endregion #endregion #region SkillBooks case 725000: { if (client.Entity.Spirit >= 20) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1000 }); } else { client.Send(new Message("You need atleast 20 spirit!", System.Drawing.Color.Tan, Message.TopLeft)); } break; } case 725001: { if (client.Entity.Spirit >= 80) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1001 }); } else { client.Send(new Message("You need atleast 80 spirit!", System.Drawing.Color.Tan, Message.TopLeft)); } break; } case 725002: { if (client.Entity.Class >= 140 && client.Entity.Class <= 145 && client.Entity.Level >= 90) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1002 }); } break; } case 725003: { if (client.Entity.Spirit >= 30) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1005 }); } break; } case 725004: { if (client.Entity.Class >= 130 && client.Entity.Class <= 135 || client.Entity.Class >= 140 && client.Entity.Class <= 145 && client.Entity.Level >= 15 || client.Entity.Class == 100 || client.Entity.Class == 101) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1010 }); } break; } case 725005: { if (client.Entity.Level >= 40) { if (client.Proficiencies.ContainsKey((ushort)Database.SpellTable.SpellInformations[1045][0].WeaponSubtype)) if (client.Proficiencies[(ushort)Database.SpellTable.SpellInformations[1045][0].WeaponSubtype].Level >= 5) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1045 }); } else { client.Send(new Message("You need level 5 at blade proficiency!", System.Drawing.Color.Tan, Message.TopLeft)); } } break; } case 721158: { if (client.Entity.Level >= 40) { if (client.Proficiencies.ContainsKey((ushort)Database.SpellTable.SpellInformations[11005][0].WeaponSubtype)) if (client.Proficiencies[(ushort)Database.SpellTable.SpellInformations[11005][0].WeaponSubtype].Level >= 5) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 11005 }); } else { client.Send(new Message("You need level 5 at Spear proficiency!", System.Drawing.Color.Tan, Message.TopLeft)); } } break; } case 721157: { if (client.Entity.Level >= 40) { if (client.Proficiencies.ContainsKey((ushort)Database.SpellTable.SpellInformations[11000][0].WeaponSubtype)) if (client.Proficiencies[(ushort)Database.SpellTable.SpellInformations[11000][0].WeaponSubtype].Level >= 5) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 11000 }); } else { client.Send(new Message("You need level 5 at Wand proficiency!", System.Drawing.Color.Tan, Message.TopLeft)); } } break; } case 725010: { if (client.Entity.Level >= 40) { if (client.Proficiencies.ContainsKey((ushort)Database.SpellTable.SpellInformations[1046][0].WeaponSubtype)) if (client.Proficiencies[(ushort)Database.SpellTable.SpellInformations[1046][0].WeaponSubtype].Level >= 5) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1046 }); } else { client.Send(new Message("You need level 5 at sword proficiency!", System.Drawing.Color.Tan, Message.TopLeft)); } } break; } case 725011: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1250 }); break; } case 725012: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1260 }); break; } case 725013: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1290 }); break; } case 725014: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1300 }); break; } case 725015: { if (client.Entity.Class >= 130 && client.Entity.Class <= 135) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1350 }); } break; } case 725016: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1360 }); break; } case 725018: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1380 }); break; } case 725019: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1385 }); break; } case 725020: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1390 }); break; } case 725021: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1395 }); break; } case 725022: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1400 }); break; } case 725023: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1405 }); break; } case 725024: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1410 }); break; } case 725025: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1320 }); break; } case 725026: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 5010 }); break; } case 725027: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 5020 }); break; } case 725028: { if (client.Entity.Class >= 130 && client.Entity.Class <= 135 || client.Entity.Class >= 140 && client.Entity.Class <= 145) client.AddSpell(new Spell(true) { ID = 5001 }); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); break; } case 725029: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 5030 }); break; } case 725030: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 5040 }); break; } case 725031: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 5050 }); break; } case 725040: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 7000 }); break; } case 725041: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 7010 }); break; } case 725042: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 7020 }); break; } case 725043: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 7030 }); break; } case 725044: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 7040 }); break; } case 1060100: { if (client.Entity.Class >= 140 && client.Entity.Class <= 145 && client.Entity.Level >= 82) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1160 }); } break; } case 1060101: { if (client.Entity.Class >= 140 && client.Entity.Class <= 145 && client.Entity.Level >= 84) { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.AddSpell(new Spell(true) { ID = 1165 }); } break; } #endregion #region Refinery Packs case 723130: case 723131: case 723132: case 723133: case 723134: case 723135: case 723651: case 723652: case 723653: case 723654: case 723655: case 723656: case 723657: case 723658: case 723659: case 723660: case 723661: case 723662: case 723663: case 723664: case 723665: case 723666: case 723667: case 723668: case 723669: case 723670: case 723671: case 723672: case 723673: case 723674: case 723675: case 723676: case 723677: case 723678: case 723679: case 723680: case 723681: case 723682: case 723683: case 723684: case 723685: case 723686: case 723690: case 723691: case 723692: case 724130: case 724131: case 724132: case 724133: case 724134: case 724135: case 724136: case 724137: case 724138: case 724139: case 724140: case 724141: case 724142: case 724143: case 724144: case 724145: case 724146: case 724147: case 724148: case 724149: case 724150: case 724151: case 724152: case 724153: case 724154: case 724155: case 724156: case 724157: case 724158: case 724159: case 724160: case 724161: case 724162: case 724163: case 724164: case 724165: case 724166: case 724167: case 724168: case 724169: case 724170: case 724171: case 724172: case 724173: case 724174: case 724175: case 724176: case 724177: case 724178: case 724179: case 724180: case 724181: case 724182: case 724183: case 724184: case 724185: case 724186: case 724190: case 724191: case 724192: case 724193: case 724194: case 724195: case 724196: case 724197: case 724198: case 724199: case 724200: case 724201: case 724202: case 724203: case 724204: case 724205: case 724207: case 724208: case 724210: case 724211: case 724212: case 724215: case 725055: case 725056: case 725057: case 725058: case 725160: case 725161: case 725162: case 725163: case 725164: case 725165: case 725166: case 725167: case 725168: case 725169: case 725170: case 725171: GainRefineryItem(item, client); break; #endregion #region FireWorks case 720030://firework { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); _String str = new _String(true); str.UID = client.Entity.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("zf2-e290"); client.SendScreen(str, true); break; } case 720031://EndlessLove { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); _String str = new _String(true); str.UID = client.Entity.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("zf2-e355"); client.SendScreen(str, true); break; } case 720032://MyWish { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); _String str = new _String(true); str.UID = client.Entity.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("zf2-e240"); client.SendScreen(str, true); break; } #endregion #region Demon Boxs #region 10cps case 720650: { Database.MonsterInformation monster = new PhoenixProject.Database.MonsterInformation(); // monster.Boss = true; monster.Hitpoints = 33; monster.Level = 10; monster.Mesh = 368; monster.Name = "Demon"; monster.MaxAttack = 100; monster.AttackRange = 5; monster.AttackType = 2; monster.AttackSpeed = 1000; monster.ViewRange = 2; monster.MoveSpeed = 500; monster.RunSpeed = 500; monster.MinAttack = 100; Game.Entity entity = new Game.Entity(Game.EntityFlag.Monster, false); entity.MapObjType = Game.MapObjectType.Monster; entity.MonsterInfo = monster; entity.MonsterInfo.Owner = entity; entity.Name = "Demon"; entity.MinAttack = monster.MinAttack; entity.MaxAttack = entity.MagicAttack = monster.MaxAttack; entity.Hitpoints = entity.MaxHitpoints = monster.Hitpoints; entity.Body = monster.Mesh; entity.Level = monster.Level; entity.Defence = 100; entity.X = client.Entity.X; entity.Y = client.Entity.Y; entity.EntityFlag = PhoenixProject.Game.EntityFlag.Monster; entity.UID = (uint)ServerBase.Kernel.Random.Next(500000, 500050); entity.MapID = client.Entity.MapID; entity.SendUpdates = true; Network.GamePackets._String stringPacket = new PhoenixProject.Network.GamePackets._String(true); stringPacket.UID = monster.ID; stringPacket.Type = Network.GamePackets._String.Effect; stringPacket.Texts.Add("MBStandard"); client.Map.RemoveEntity(entity); client.Map.AddEntity(entity); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); break; } #endregion #region 50cps case 720651: { Database.MonsterInformation monster = new PhoenixProject.Database.MonsterInformation(); // monster.Boss = true; monster.Hitpoints = 33; monster.Level = 20; monster.Mesh = 369; monster.Name = "AncientDemon"; monster.MaxAttack = 100; monster.AttackRange = 5; monster.AttackType = 2; monster.AttackSpeed = 1000; monster.ViewRange = 2; monster.MoveSpeed = 500; monster.RunSpeed = 500; monster.MinAttack = 100; Game.Entity entity = new Game.Entity(Game.EntityFlag.Monster, false); entity.MapObjType = Game.MapObjectType.Monster; entity.MonsterInfo = monster; entity.MonsterInfo.Owner = entity; entity.Name = "AncientDemon"; entity.MinAttack = monster.MinAttack; entity.MaxAttack = entity.MagicAttack = monster.MaxAttack; entity.Hitpoints = entity.MaxHitpoints = monster.Hitpoints; entity.Body = monster.Mesh; entity.Level = monster.Level; entity.Defence = 100; entity.X = client.Entity.X; entity.Y = client.Entity.Y; entity.EntityFlag = PhoenixProject.Game.EntityFlag.Monster; entity.UID = (uint)ServerBase.Kernel.Random.Next(500060, 500110); entity.MapID = client.Entity.MapID; entity.SendUpdates = true; client.Map.RemoveEntity(entity); Network.GamePackets._String stringPacket = new PhoenixProject.Network.GamePackets._String(true); stringPacket.UID = monster.ID; stringPacket.Type = Network.GamePackets._String.Effect; stringPacket.Texts.Add("MBStandard"); client.Map.AddEntity(entity); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); break; } #endregion #region 100cps case 720652: { Database.MonsterInformation monster = new PhoenixProject.Database.MonsterInformation(); // monster.Boss = true; monster.Hitpoints = 33; monster.Level = 30; monster.Mesh = 377; monster.Name = "FloodDemon"; monster.MaxAttack = 100; monster.AttackRange = 5; monster.AttackType = 2; monster.AttackSpeed = 1000; monster.ViewRange = 2; monster.MoveSpeed = 500; monster.RunSpeed = 500; monster.MinAttack = 100; Game.Entity entity = new Game.Entity(Game.EntityFlag.Monster, false); entity.MapObjType = Game.MapObjectType.Monster; entity.MonsterInfo = monster; entity.MonsterInfo.Owner = entity; entity.Name = "FloodDemon"; entity.MinAttack = monster.MinAttack; entity.MaxAttack = entity.MagicAttack = monster.MaxAttack; entity.Hitpoints = entity.MaxHitpoints = monster.Hitpoints; entity.Body = monster.Mesh; entity.Level = monster.Level; entity.Defence = 100; entity.X = client.Entity.X; entity.Y = client.Entity.Y; entity.EntityFlag = PhoenixProject.Game.EntityFlag.Monster; entity.UID = (uint)ServerBase.Kernel.Random.Next(500120, 500160); entity.MapID = client.Entity.MapID; entity.SendUpdates = true; client.Map.RemoveEntity(entity); Network.GamePackets._String stringPacket = new PhoenixProject.Network.GamePackets._String(true); stringPacket.UID = monster.ID; stringPacket.Type = Network.GamePackets._String.Effect; stringPacket.Texts.Add("MBStandard"); client.Map.AddEntity(entity); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); break; } #endregion #region 500cps case 720671: { Database.MonsterInformation monster = new PhoenixProject.Database.MonsterInformation(); // monster.Boss = true; monster.Hitpoints = 33; monster.Level = 40; monster.Mesh = 400; monster.Name = "HeavenDemon"; monster.MaxAttack = 100; monster.AttackRange = 5; monster.AttackType = 2; monster.AttackSpeed = 1000; monster.ViewRange = 2; monster.MoveSpeed = 500; monster.RunSpeed = 500; monster.MinAttack = 100; Game.Entity entity = new Game.Entity(Game.EntityFlag.Monster, false); entity.MapObjType = Game.MapObjectType.Monster; entity.MonsterInfo = monster; entity.MonsterInfo.Owner = entity; entity.Name = "HeavenDemon"; entity.MinAttack = monster.MinAttack; entity.MaxAttack = entity.MagicAttack = monster.MaxAttack; entity.Hitpoints = entity.MaxHitpoints = monster.Hitpoints; entity.Body = monster.Mesh; entity.Level = monster.Level; entity.Defence = 100; entity.X = client.Entity.X; entity.Y = client.Entity.Y; entity.EntityFlag = PhoenixProject.Game.EntityFlag.Monster; entity.UID = (uint)ServerBase.Kernel.Random.Next(500200, 500250); entity.MapID = client.Entity.MapID; entity.SendUpdates = true; client.Map.RemoveEntity(entity); Network.GamePackets._String stringPacket = new PhoenixProject.Network.GamePackets._String(true); stringPacket.UID = monster.ID; stringPacket.Type = Network.GamePackets._String.Effect; stringPacket.Texts.Add("MBStandard"); client.Map.AddEntity(entity); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); break; } #endregion #region 1000cps case 720672: { Database.MonsterInformation monster = new PhoenixProject.Database.MonsterInformation(); // monster.Boss = true; monster.Hitpoints = 33; monster.Level = 50; monster.Mesh = 404; monster.Name = "ChaosDemon"; monster.MaxAttack = 100; monster.AttackRange = 5; monster.AttackType = 2; monster.AttackSpeed = 1000; monster.ViewRange = 2; monster.MoveSpeed = 500; monster.RunSpeed = 500; monster.MinAttack = 100; Game.Entity entity = new Game.Entity(Game.EntityFlag.Monster, false); entity.MapObjType = Game.MapObjectType.Monster; entity.MonsterInfo = monster; entity.MonsterInfo.Owner = entity; entity.Name = "ChaosDemon"; entity.MinAttack = monster.MinAttack; entity.MaxAttack = entity.MagicAttack = monster.MaxAttack; entity.Hitpoints = entity.MaxHitpoints = monster.Hitpoints; entity.Body = monster.Mesh; entity.Level = monster.Level; entity.Defence = 100; entity.X = client.Entity.X; entity.Y = client.Entity.Y; entity.EntityFlag = PhoenixProject.Game.EntityFlag.Monster; entity.UID = (uint)ServerBase.Kernel.Random.Next(500300, 500350); entity.MapID = client.Entity.MapID; entity.SendUpdates = true; client.Map.RemoveEntity(entity); Network.GamePackets._String stringPacket = new PhoenixProject.Network.GamePackets._String(true); stringPacket.UID = monster.ID; stringPacket.Type = Network.GamePackets._String.Effect; stringPacket.Texts.Add("MBStandard"); client.Map.AddEntity(entity); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); break; } #endregion #region SwordsMaster case 720842: { if (client.Entity.UID == client.Entity.MapID) { if (client.Entity.Quest == 0) { Database.MonsterInformation monster = new PhoenixProject.Database.MonsterInformation(); // monster.Boss = true; monster.Hitpoints = 15000000; monster.Level = 140; monster.Mesh = 953; monster.Name = "SwordMaster"; monster.MaxAttack = 100; monster.AttackRange = 5; monster.AttackType = 2; monster.SpellID = 9966; monster.AttackSpeed = 5000; monster.ViewRange = 2; monster.MoveSpeed = 500; monster.RunSpeed = 500; monster.MinAttack = 100; Game.Entity entity = new Game.Entity(Game.EntityFlag.Monster, false); entity.MapObjType = Game.MapObjectType.Monster; entity.MonsterInfo = monster; entity.MonsterInfo.Owner = entity; entity.Name = "SwordMaster"; entity.MinAttack = monster.MinAttack; entity.MaxAttack = entity.MagicAttack = monster.MaxAttack; entity.Hitpoints = entity.MaxHitpoints = monster.Hitpoints; entity.Body = monster.Mesh; entity.Level = monster.Level; entity.Defence = 10000; entity.X = client.Entity.X; entity.Y = client.Entity.Y; entity.EntityFlag = PhoenixProject.Game.EntityFlag.Monster; entity.UID = (uint)ServerBase.Kernel.Random.Next(600300, 690350); entity.MapID = client.Entity.MapID; entity.SendUpdates = true; client.Map.RemoveEntity(entity); Network.GamePackets._String stringPacket = new PhoenixProject.Network.GamePackets._String(true); stringPacket.UID = monster.ID; stringPacket.Type = Network.GamePackets._String.Effect; stringPacket.Texts.Add("MBStandard"); client.Map.AddEntity(entity); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.Quest = 1; } else { client.Send(ServerBase.Constants.Swords2); } } else { client.Send(ServerBase.Constants.Swords1); } break; } #endregion #endregion /*#region House case 721189://itembox { if (Database.MapsTable.MapInformations[(ushort)client.Entity.UID].Owner == client.Entity.UID) { if (Database.MapsTable.MapInformations[client.Entity.UID].Box == 0) { Game.House.AddBox(client); client.Entity.Teleport(1002, 450, 350); client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); } else { Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Sorry you can only set one itembox in your house!"); npc.OptionID = 255; client.Send(npc.ToArray()); } } else { Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Sorry you can only set itembox in your house lvl 2!"); npc.OptionID = 255; client.Send(npc.ToArray()); } break; } #endregion*/ } client.Entity.UseItem = false; client.SpiltStack = false; //if (item.StackSize > 1) //{ // item.StackSize -= 1; // if (client.Inventory.ContainsUID(item.UID)) // client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); // client.Inventory.Add(item, Game.Enums.ItemUse.CreateAndAdd); // Database.ConquerItemTable.UpdateStack(item); //} }
public static void Win(Client.GameState winner, Client.GameState loser) { if (winner == null && loser != null) { loser.ArenaStatistic.PlayWith = 0; loser.ArenaStatistic.AcceptBox = false; if (loser.ArenaStatistic.ArenaPoints > 80000) loser.ArenaStatistic.ArenaPoints = 0; ArenaSignup sign = new ArenaSignup(); sign.DialogID = ArenaSignup.MainIDs.Match; loser.Send(sign.BuildPacket()); sign = new ArenaSignup(); sign.DialogID = ArenaSignup.MainIDs.Match; sign.OptionID = ArenaSignup.DialogButton.MatchOff; loser.Send(sign.BuildPacket()); if (loser.ArenaStatistic.ArenaPoints == 0) { QualifyEngine.DoQuit(loser); } loser.ArenaStatistic.TotalLose++; Sort(); loser.Send(loser.ArenaStatistic); QualifyEngine.DoQuit(loser); } else if (loser == null && winner != null) { winner.ArenaStatistic.PlayWith = 0; winner.ArenaStatistic.AcceptBox = false; winner.ArenaStatistic.TodayWin++; winner.ArenaStatistic.TotalWin++; ArenaSignup sign = new ArenaSignup(); sign.DialogID = ArenaSignup.MainIDs.Match; sign.OptionID = ArenaSignup.DialogButton.Win; winner.Send(sign.BuildPacket()); sign = new ArenaSignup(); sign.DialogID = ArenaSignup.MainIDs.Match; sign.OptionID = ArenaSignup.DialogButton.MatchOff; winner.Send(sign.BuildPacket()); Sort(); QualifyEngine.DoQuit(winner); winner.Send(winner.ArenaStatistic); } else if (loser == null && winner == null) { return; } else { if (winner.ArenaStatistic.PlayWith != 0 && loser.ArenaStatistic.PlayWith != 0) { int diff = (int)winner.ArenaStatistic.ArenaPoints - (int)loser.ArenaStatistic.ArenaPoints; diff = diff < 0 ? -diff : diff; if (diff == 0 || diff > 50) diff = ServerBase.Kernel.Random.Next(30, 50); ArenaSignup sign = new ArenaSignup(); sign.DialogID = ArenaSignup.MainIDs.Match; loser.Send(sign.BuildPacket()); sign.OptionID = ArenaSignup.DialogButton.Win; winner.Send(sign.BuildPacket()); sign = new ArenaSignup(); sign.DialogID = ArenaSignup.MainIDs.Match; sign.OptionID = ArenaSignup.DialogButton.MatchOff; loser.Send(sign.BuildPacket()); winner.Send(sign.BuildPacket()); winner.ArenaStatistic.PlayWith = 0; loser.ArenaStatistic.PlayWith = 0; winner.ArenaStatistic.AcceptBox = false; loser.ArenaStatistic.AcceptBox = false; winner.ArenaStatistic.ArenaPoints += (uint)diff; Message message = null; message = new Message("" + winner.ArenaStatistic.Name + " has Defeated " + loser.ArenaStatistic.Name + " in the Qualifier, and is currently ranked No. " + winner.ArenaStatistic.Rank + "!", System.Drawing.Color.Red, Message.Qualifier); foreach (Client.GameState client in ServerBase.Kernel.GamePool.Values) { client.Send(message); } loser.ArenaStatistic.ArenaPoints -= (uint)diff; if (loser.ArenaStatistic.ArenaPoints > 80000) loser.ArenaStatistic.ArenaPoints = 0; if (loser.ArenaStatistic.ArenaPoints == 0) QualifyEngine.DoQuit(loser); winner.ArenaStatistic.TodayWin++; winner.ArenaStatistic.TotalWin++; if (winner.ArenaStatistic.TodayWin == 9) winner.IncreaseExperience(winner.ExpBall, false); if (winner.ArenaStatistic.TodayBattles == 20) winner.IncreaseExperience(winner.ExpBall, false); if (loser.ArenaStatistic.TodayBattles == 20) loser.IncreaseExperience(loser.ExpBall, false); loser.ArenaStatistic.TotalLose++; Sort(); winner.Send(winner.ArenaStatistic); loser.Send(loser.ArenaStatistic); QualifyEngine.DoQuit(winner); QualifyEngine.DoQuit(loser); winner.QualifierGroup = null; loser.QualifierGroup = null; _String str = new _String(true); str.UID = winner.Entity.UID; str.TextsCount = 1; str.Type = _String.Effect; str.Texts.Add("sports_victory"); winner.SendScreen(str, true); _String strs = new _String(true); strs.UID = loser.Entity.UID; strs.TextsCount = 1; strs.Type = _String.Effect; strs.Texts.Add("sports_failure"); loser.SendScreen(strs, true); } } }
static unsafe void HandlePacket(byte[] packet, Client.GameState client) { try { if (packet == null) return; if (client == null) return; fixed (byte* ptr = packet) { var type = *((ushort*)(ptr + 2)); ushort Length = BitConverter.ToUInt16(packet, 0); ushort ID = BitConverter.ToUInt16(packet, 2); ushort ID2 = BitConverter.ToUInt16(packet, 4); switch (ID) { #region Packet Spook Mob case 2400: { client.Send(new NpcReply(NpcReply.MessageBox, "The Thrilling Spooks are sealed up, inside here Better speak to the Heavenly Master ,if you want more detalis")); #region client.OnMessageBoxOK = delegate { client.Entity.Teleport(8892, 28, 26); }; client.OnMessageBoxCANCEL = delegate { client.OnMessageBoxEventParams = new object[0]; }; #endregion break; } #endregion #region Arsenal [2201][2202][2203] case 2202: { if (packet[16] == 0) packet[16] = 8; client.Send(ArsenalPacket.ArsenalInscribedPage(client, packet, (PhoenixProject.Game.Features.Arsenal_ID)packet[16])); break; } case 2203: { client.Send(ArsenalPacket.GuildArsenal(client)); if (client.Guild != null) if (client.Guild.Arsenal != null) client.Guild.Arsenal.Update(client.Guild); byte pType = packet[4]; byte i_type = packet[8]; uint i_Uid = BitConverter.ToUInt32(packet, 12); if (i_type == 0) i_type = 8; switch (pType) { case 0: { if (client.Guild != null) client.Guild.Arsenal.UnlockArsenal(client, (PhoenixProject.Game.Features.Arsenal_ID)i_type); break; } case 1: { PhoenixProject.Interfaces.IConquerItem Item = null; if (client.Inventory.TryGetItem(i_Uid, out Item)) { if (client != null) { if (Item != null) { if (i_type != 0 && i_type <= 8) { if (client.Guild != null) { if (client.Guild.Arsenal != null) { client.Guild.Arsenal.InscribeItem(client, Item, (PhoenixProject.Game.Features.Arsenal_ID)i_type); } } } } } } break; } case 2://Uninscribe { PhoenixProject.Game.Features.Arsenal_Client ac = null; if (client.Guild.Arsenal.Arsenals[(PhoenixProject.Game.Features.Arsenal_ID)i_type].Inscribed.TryGetValue(i_Uid, out ac)) client.Guild.Arsenal.RemoveItem(client, ac.Item, (PhoenixProject.Game.Features.Arsenal_ID)i_type); break; } case 4: { client.Send(ArsenalPacket.GuildArsenal(client)); break; } } break; } #endregion #region EnitityCreate (1001) case 1001: { if (client.Action == 1) { EnitityCreate EC = new EnitityCreate(); EC.Deserialize(packet); string Message = ""; Boolean Created = Database.EntityTable.CreateEntity(EC, client, ref Message); client.Send(new Message(Message, "ALLUSERS", System.Drawing.Color.Orange, GamePackets.Message.PopUP)); if (Created) Console.WriteLine(client.Account.Username + " Sucesfully Created a new Character " + EC.Name); client.JustCreated = true; } break; } #endregion #region Chat/Message (1004) case 1004: { if (client.Action != 2) return; Message message = new Message(); message.Deserialize(packet); if (message.__Message.Split(new string[] { "\\n" }, StringSplitOptions.RemoveEmptyEntries).Length > 0) message.__Message = message.__Message.Split(new string[] { "\\n" }, StringSplitOptions.RemoveEmptyEntries)[0]; Chat(message, client); break; } #endregion #region Item/Ping (1009) case 1009: { if (client.Action != 2) return; ItemUsage usage = new ItemUsage(false); usage.Deserialize(packet); if (!client.Entity.Dead || usage.ID == ItemUsage.Ping) { switch (usage.ID) { case 53: { uint ItemAdd = BitConverter.ToUInt32(packet, 8); Interfaces.IConquerItem item_new = null; if (client.Inventory.TryGetItem(ItemAdd, out item_new)) { uint obtined_points = 0; Database.ConquerItemInformation iteminfo = new PhoenixProject.Database.ConquerItemInformation(ItemAdd, 0); Dictionary<uint, uint> amount = new Dictionary<uint, uint>();//packet[20]); for (ushort i = 84; i < 84 + 4 * packet[20]; i += 4) { uint item_swap = BitConverter.ToUInt32(packet, i); if (client.Inventory.ContainsUID(item_swap)) { Interfaces.IConquerItem item = null; if (client.Inventory.TryGetItem(item_swap, out item)) { amount.Add(item_swap, i); } switch (item.ID) { case 191505: case 191605: case 191705: case 191805: case 191905: case 191405: case 183325: case 183315: case 183375: case 183305: { obtined_points += 300; break; } default: obtined_points += 50; break; } } } if (iteminfo.BaseInformation.ConquerPointsWorth > obtined_points) { uint add_cps = 0; add_cps = (uint)(iteminfo.BaseInformation.ConquerPointsWorth - obtined_points); if (add_cps < client.Entity.ConquerPoints) { client.Entity.ConquerPoints -= (uint)add_cps; foreach (uint key in amount.Keys) { if (client.Inventory.ContainsUID(key)) client.Inventory.Remove(key, PhoenixProject.Game.Enums.ItemUse.Remove, true); } client.Inventory.Add(ItemAdd, 0, 1); } } else { foreach (uint key in amount.Keys) { if (client.Inventory.ContainsUID(key)) client.Inventory.Remove(key, PhoenixProject.Game.Enums.ItemUse.Remove, true); } client.Inventory.Add(ItemAdd, 0, 1); } } break; } case 52: { var item = Database.ConquerItemTable.LoadItem(usage.UID); item.Mode = PhoenixProject.Game.Enums.ItemMode.ChatItem; item.Send(client); break; } case 41: { // var item = Database.ConquerItemTable.LoadItem(usage.UID); usage.dwParam = 1; client.Send(usage); break; } case ItemUsage.SwitchEquipsBack: case ItemUsage.SwitchEquips: { client.AlternateEquipment = usage.ID == ItemUsage.SwitchEquips; if (usage.ID == 45) { ClientEquip equips = new ClientEquip(client); client.Send(equips); client.Equipment.UpdateEntityPacket2(); client.LoadItemStats2(client.Entity); client.CalculateStatBonus(); client.CalculateHPBonus(); client.Send(WindowStats(client)); } else { ClientEquip equips = new ClientEquip(); equips.DoEquips(client); client.Send(equips); client.Equipment.UpdateEntityPacket(); client.LoadItemStats(client.Entity); client.CalculateStatBonus(); client.CalculateHPBonus(); client.Send(WindowStats(client)); } usage.dwParam = 1; client.Send(usage); break; } case ItemUsage.ArrowReload: { ReloadArrows(client.Equipment.TryGetItem(ConquerItem.LeftWeapon), client); break; } case ItemUsage.ShowBoothItems: { ShowBoothItems(usage, client); break; } case ItemUsage.AddItemOnBoothForSilvers: case ItemUsage.AddItemOnBoothForConquerPoints: { AddItemOnBooth(usage, client); break; } case ItemUsage.BuyFromBooth: { BuyFromBooth(usage, client); break; } case ItemUsage.RemoveItemFromBooth: { RemoveItemFromBooth(usage, client); break; } case ItemUsage.EquipItem: { EquipItem(usage, client); break; } case ItemUsage.UnequipItem: { UnequipItem(usage, client); break; } case ItemUsage.BuyFromNPC: { HandleBuyFromNPC(usage, client); break; } case ItemUsage.SellToNPC: { HandleSellToNPC(usage, client); break; } case ItemUsage.Repair: { HandleRepair(usage, client); break; } case ItemUsage.MeteorUpgrade: case ItemUsage.DragonBallUpgrade: { UpgradeItem(usage, client); break; } case ItemUsage.Ping: { if (Time32.Now < client.LastPing.AddSeconds(2)) { client.PingCount++; if (client.PingCount == 40) { client.Send(new Message("Speed hack detected!", System.Drawing.Color.BlanchedAlmond, Message.TopLeft)); client.Disconnect(); return; } } client.LastPingT = client.LastPing; client.LastPing = Time32.Now; if (client.LastPing > client.LastPingT.AddSeconds(2)) client.PingCount = 0; usage.TimeStamp += 200; client.Send(ReturnFinal(packet)); client.Send(usage); break; } case ItemUsage.ViewWarehouse: { usage.dwParam = client.MoneySave; client.Send(usage); break; } case ItemUsage.WarehouseDeposit: { if (client.Entity.Money >= usage.dwParam) { client.Entity.Money -= usage.dwParam; client.MoneySave += usage.dwParam; } break; } case ItemUsage.WarehouseWithdraw: { if (client.MoneySave >= usage.dwParam) { client.Entity.Money += usage.dwParam; client.MoneySave -= usage.dwParam; } break; } case ItemUsage.DropItem: { DropItem(usage, client); break; } case ItemUsage.DropMoney: { DropMoney(usage, client); break; } case ItemUsage.Enchant: { EnchantItem(usage, client); break; } case ItemUsage.SocketTalismanWithItem: { SocketTalismanWithItem(usage, client); break; } case ItemUsage.SocketTalismanWithCPs: { SocketTalismanWithCPs(usage, client); break; } case ItemUsage.RedeemGear: { var item = client.DeatinedItem[usage.UID]; if (item != null) { if (DateTime.Now > item.Date.AddDays(7)) { client.Send(new Message("This item is expired!", System.Drawing.Color.Red, Message.TopLeft)); return; } if (client.Entity.ConquerPoints >= item.ConquerPointsCost) { client.Entity.ConquerPoints -= item.ConquerPointsCost; Database.EntityTable.UpdateCps(client); usage.dwParam = client.Entity.UID; usage.dwExtraInfo3 = item.ConquerPointsCost; client.Send(usage); client.Inventory.Add(item.Item, PhoenixProject.Game.Enums.ItemUse.Add); Database.ClaimItemTable.Redeem(usage.UID, client); Database.DetainedItemTable.Claim(usage.UID, client); client.DeatinedItem.Remove(item.UID); if (ServerBase.Kernel.GamePool.ContainsKey(item.GainerUID)) { GameState pClient; if (ServerBase.Kernel.GamePool.TryGetValue(item.GainerUID, out pClient)) { if (pClient.Entity != null) { pClient.ClaimableItem[item.UID].OwnerUID = 500; pClient.ClaimableItem[item.UID].MakeItReadyToClaim(); usage.dwParam = pClient.Entity.UID; usage.ID = ItemUsage.ClaimGear; pClient.Send(usage); pClient.ClaimableItem[item.UID].Send(pClient); } } } Message message = new Message(" " + client.Entity.Name + " has redeemed his Gear and Pay " + item.ConquerPointsCost + " CPS . Congratulations!", System.Drawing.Color.Wheat, Message.Talk); ServerBase.Kernel.SendWorldMessage(message, ServerBase.Kernel.GamePool.Values); } } else { client.Send(new Message("The item you want to redeem has already been redeemed.", System.Drawing.Color.Red, Message.TopLeft)); } break; } case ItemUsage.ClaimGear: { // Console.WriteLine(" usage " + usage.UID + ""); var item = client.ClaimableItem[usage.UID]; // Console.WriteLine(" usage i " + item.UID + ""); if (item != null) { if (item.Bound) { client.Send(new Message("Unnclaimable item!", System.Drawing.Color.Red, Message.TopLeft)); return; } if (DateTime.Now < item.Date.AddDays(7) && item.OwnerUID != 500) { client.Send(new Message("This item is not expired. You cannot claim it yet!", System.Drawing.Color.Red, Message.TopLeft)); return; } if (item.OwnerUID == 500) client.Entity.ConquerPoints += item.ConquerPointsCost; else { client.Inventory.Add(item.Item, PhoenixProject.Game.Enums.ItemUse.Move); Message message = new Message("Thank you for arresting " + item.OwnerName + " , " + item.GainerName + ". The arrested one has redeemed his items and you have received a great deal of ConquerPoints as reward. Congratulations!", System.Drawing.Color.Wheat, Message.Talk); ServerBase.Kernel.SendWorldMessage(message, ServerBase.Kernel.GamePool.Values); } Database.ClaimItemTable.Claim(usage.UID, client); client.ClaimableItem.Remove(item.UID); usage.dwParam = client.Entity.UID; usage.dwExtraInfo3 = item.ConquerPointsCost; //Database.EntityTable.UpdateCps(client); client.Send(usage); Message message2 = new Message("Thank you for arresting red/black name players " + client.Entity.Name + " has recived " + item.ConquerPointsCost + " CPS . Congratulations!", System.Drawing.Color.Wheat, Message.Talk); ServerBase.Kernel.SendWorldMessage(message2, ServerBase.Kernel.GamePool.Values); } else { client.Send(new Message("The item you want to claim has already been claimed.", System.Drawing.Color.Red, Message.TopLeft)); } break; } case 43: { uint UID = BitConverter.ToUInt32(packet, 4); if (packet[20] == 1) { if (client.Inventory.ContainsUID(BitConverter.ToUInt32(packet, 84)))//76 { Interfaces.IConquerItem item = null; if (client.Inventory.TryGetItem(UID, out item)) { UInt32 iType = item.ID / 1000; Positions pos = GetPositionFromID(item.ID); if (pos == Positions.Garment) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.RightAccessory) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.LeftAccessory) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.Bottle) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.Steed) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.SteedArmor) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.SteedTalisman) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.AttackTalisman) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.DefenceTalisman) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (item.SocketOne == PhoenixProject.Game.Enums.Gem.NoSocket) { if (item.SocketOne == PhoenixProject.Game.Enums.Gem.NoSocket) { if (item.SocketOne == PhoenixProject.Game.Enums.Gem.NoSocket) item.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; client.Inventory.Remove(BitConverter.ToUInt32(packet, 84), PhoenixProject.Game.Enums.ItemUse.Remove, true); item.Mode = PhoenixProject.Game.Enums.ItemMode.Update; item.Send(client); usage.dwParam = 1; client.LoadItemStats(client.Entity); client.CalculateStatBonus(); client.CalculateHPBonus(); Database.ConquerItemTable.UpdateSockets(item); } } else if (item.SocketTwo == PhoenixProject.Game.Enums.Gem.NoSocket) { uint rand = (uint)PhoenixProject.ServerBase.Kernel.Random.Next(1, 700); if (rand > 320) // if (PhoenixProject.ServerBase.Kernel.PercentSuccess(30)) { if (item.SocketTwo == PhoenixProject.Game.Enums.Gem.NoSocket) item.SocketTwo = PhoenixProject.Game.Enums.Gem.EmptySocket; client.Inventory.Remove(BitConverter.ToUInt32(packet, 84), PhoenixProject.Game.Enums.ItemUse.Remove, true); item.Mode = PhoenixProject.Game.Enums.ItemMode.Update; item.Send(client); usage.dwParam = 1; client.LoadItemStats(client.Entity); client.CalculateStatBonus(); client.CalculateHPBonus(); Database.ConquerItemTable.UpdateSockets(item); } else { usage.dwParam = 0; client.Inventory.Add(1200006, 0, 1); client.Inventory.Remove(BitConverter.ToUInt32(packet, 84), PhoenixProject.Game.Enums.ItemUse.Remove, true); } } /*& } else { if (item.SocketOne == PhoenixProject.Game.Enums.Gem.NoSocket) item.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; client.Inventory.Remove(BitConverter.ToUInt32(packet, 80), PhoenixProject.Game.Enums.ItemUse.Remove, true); item.Mode = PhoenixProject.Game.Enums.ItemMode.Update; item.Send(client); client.LoadItemStats(item); Database.ConquerItemTable.UpdateItem(item, client); }*/ } } } if (packet[20] == 5) { Interfaces.IConquerItem item = null; if (client.Inventory.TryGetItem(UID, out item)) { Dictionary<uint, uint> dbs = new Dictionary<uint, uint>();//packet[20]); for (ushort i = 84; i < 84 + 4 * packet[20]; i += 4) { if (client.Inventory.ContainsUID(BitConverter.ToUInt32(packet, i))) { dbs.Add(BitConverter.ToUInt32(packet, i), i); } } if (client.Inventory.Contains(1088000, 5)) { if (item.SocketOne == PhoenixProject.Game.Enums.Gem.NoSocket) return; if (item.SocketTwo == PhoenixProject.Game.Enums.Gem.NoSocket) item.SocketTwo = PhoenixProject.Game.Enums.Gem.EmptySocket; foreach (uint key in dbs.Keys) { if (client.Inventory.ContainsUID(key)) client.Inventory.Remove(key, PhoenixProject.Game.Enums.ItemUse.Remove, true); } usage.dwParam = 1; item.Mode = PhoenixProject.Game.Enums.ItemMode.Update; item.Send(client); client.LoadItemStats(client.Entity); client.CalculateStatBonus(); client.CalculateHPBonus(); Database.ConquerItemTable.UpdateSockets(item); } } } if (packet[20] == 7) { Interfaces.IConquerItem item = null; if (client.Inventory.TryGetItem(UID, out item)) { if (item.SocketOne == PhoenixProject.Game.Enums.Gem.NoSocket) return; Dictionary<uint, uint> drill = new Dictionary<uint, uint>();//packet[20]); for (ushort i = 84; i < 84 + 4 * packet[20]; i += 4) { if (client.Inventory.ContainsUID(BitConverter.ToUInt32(packet, i))) { drill.Add(BitConverter.ToUInt32(packet, i), i); } } if (client.Inventory.Contains(1200006, 7)) { if (item.SocketTwo == PhoenixProject.Game.Enums.Gem.NoSocket) item.SocketTwo = PhoenixProject.Game.Enums.Gem.EmptySocket; foreach (uint key in drill.Keys) { if (client.Inventory.ContainsUID(key)) client.Inventory.Remove(key, PhoenixProject.Game.Enums.ItemUse.Remove, true); } usage.dwParam = 1; item.Mode = PhoenixProject.Game.Enums.ItemMode.Update; item.Send(client); client.LoadItemStats(client.Entity); client.CalculateStatBonus(); client.CalculateHPBonus(); Database.ConquerItemTable.UpdateSockets(item); } } } if (packet[20] == 12) { Interfaces.IConquerItem item = null; if (client.Inventory.TryGetItem(UID, out item)) { Dictionary<uint, uint> dbs = new Dictionary<uint, uint>();//packet[20]); for (ushort i = 84; i < 84 + 4 * packet[20]; i += 4) { if (client.Inventory.ContainsUID(BitConverter.ToUInt32(packet, i))) { dbs.Add(BitConverter.ToUInt32(packet, i), i); } } if (client.Inventory.Contains(1088000, 12)) { if (item.SocketOne != PhoenixProject.Game.Enums.Gem.NoSocket) return; if (item.SocketOne == PhoenixProject.Game.Enums.Gem.NoSocket) item.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; foreach (uint key in dbs.Keys) { if (client.Inventory.ContainsUID(key)) client.Inventory.Remove(key, PhoenixProject.Game.Enums.ItemUse.Remove, true); } usage.dwParam = 1; //client.Inventory.Remove(DragonBall, 12); item.Mode = PhoenixProject.Game.Enums.ItemMode.Update; item.Send(client); client.LoadItemStats(client.Entity); client.CalculateStatBonus(); client.CalculateHPBonus(); Database.ConquerItemTable.UpdateSockets(item); } } } client.Send(packet); break; } case 40: { uint ItemAdd = (uint)((packet[4] & 0xFF) | ((packet[5] & 0xFF) << 8) | ((packet[6] & 0xFF) << 16) | ((packet[7] & 0xFF) << 24)); Interfaces.IConquerItem item_new = null; if (client.Inventory.TryGetItem(ItemAdd, out item_new)) { UInt32 iType = item_new.ID / 1000; Positions pos = GetPositionFromID(item_new.ID); if (pos == Positions.Garment) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.RightAccessory) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.LeftAccessory) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.Bottle) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.Steed) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.SteedArmor) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.SteedTalisman) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.AttackTalisman) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (pos == Positions.DefenceTalisman) { client.Account.State = Database.AccountTable.AccountState.Cheat; client.Account.Savekimo(); client.Disconnect(); return; } if (item_new.Bless == 7) return; Queue<uint> amount = new Queue<uint>(packet[20]); for (ushort i = 84; i < 84 + 4 * packet[20]; i += 4) { if (client.Inventory.ContainsUID((uint)((packet[i] & 0xFF) | ((packet[(byte)(i + 1)] & 0xFF) << 8) | ((packet[(byte)(i + 2)] & 0xFF) << 16) | ((packet[(byte)(i + 3)] & 0xFF) << 24)))) amount.Enqueue((uint)((packet[i] & 0xFF) | ((packet[(byte)(i + 1)] & 0xFF) << 8) | ((packet[(byte)(i + 2)] & 0xFF) << 16) | ((packet[(byte)(i + 3)] & 0xFF) << 24))); else return; } byte oldbless = item_new.Bless; if (item_new.Bless == 0 && amount.Count == 5) item_new.Bless = 1; else if (item_new.Bless == 1 && amount.Count == 1) item_new.Bless = 3; else if (item_new.Bless == 3 && amount.Count == 3) item_new.Bless = 5; else if (item_new.Bless == 5 && amount.Count == 5) item_new.Bless = 7; if (oldbless == item_new.Bless) return; while (amount.Count != 0) client.Inventory.Remove(amount.Dequeue(), PhoenixProject.Game.Enums.ItemUse.Remove, true); item_new.Mode = PhoenixProject.Game.Enums.ItemMode.Update; item_new.Send(client); usage.dwParam = 1; Database.ConquerItemTable.UpdateBless(item_new); } client.Send(packet); break; } case ItemUsage.GemCompose: { #region GemCompose UInt32 Ident = usage.UID; client.Inventory.Remove(Ident, 15); client.Inventory.Add(Ident + 1, 0, 1); usage.dwParam = 1; client.Send(usage); #endregion break; } case ItemUsage.ToristSuper: { #region GemCompose if (client.Entity.Money >= 100000) { client.Inventory.Remove(700002, 1); client.Inventory.Remove(700012, 1); client.Inventory.Remove(700022, 1); client.Inventory.Remove(700032, 1); client.Inventory.Remove(700042, 1); client.Inventory.Remove(700052, 1); client.Inventory.Remove(700062, 1); client.Entity.Money -= 100000; client.Inventory.Add(700072, 0, 1); usage.dwParam = 1; client.Send(usage); } usage.dwParam = 0; client.Send(usage); #endregion break; } case ItemUsage.SplitStack: { Interfaces.IConquerItem mainItem = null; Interfaces.IConquerItem minorItem = new ConquerItem(true); Database.ConquerItemInformation infos = null; minorItem.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8); if (client.Inventory.TryGetItem(usage.UID, out mainItem)) { infos = new PhoenixProject.Database.ConquerItemInformation(mainItem.ID, 0); if (mainItem.StackSize > 1 && mainItem.StackSize <= infos.BaseInformation.StackSize) { if (client.Inventory.Count < 40) { client.SpiltStack = false; ushort Amount = (ushort)usage.dwParam; mainItem.StackSize -= Amount; mainItem.Mode = Game.Enums.ItemMode.Update; mainItem.Send(client); mainItem.Mode = Game.Enums.ItemMode.Default; Database.ConquerItemTable.UpdateStack(mainItem); minorItem.ID = mainItem.ID; minorItem.StackSize += Amount; minorItem.Durability = mainItem.Durability; client.Inventory.Add(minorItem, Game.Enums.ItemUse.CreateAndAdd); } } } break; } case ItemUsage.MergeStackableItems: { Interfaces.IConquerItem mainItem = null; Interfaces.IConquerItem minorItem = new ConquerItem(true); Database.ConquerItemInformation infos = null; minorItem.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8); if (client.Inventory.TryGetItem(usage.UID, out mainItem) && client.Inventory.TryGetItem(usage.dwParam, out minorItem)) { if (mainItem.ID == minorItem.ID) { infos = new PhoenixProject.Database.ConquerItemInformation(mainItem.ID, 0); if (mainItem.StackSize < 1) mainItem.StackSize = 1; if (minorItem.StackSize < 1) minorItem.StackSize = 1; if ((mainItem.StackSize + minorItem.StackSize) <= infos.BaseInformation.StackSize) { mainItem.StackSize += minorItem.StackSize; mainItem.Mode = Game.Enums.ItemMode.Update; mainItem.Send(client); mainItem.Mode = Game.Enums.ItemMode.Default; Database.ConquerItemTable.UpdateStack(mainItem); client.Inventory.Remove(minorItem, Game.Enums.ItemUse.Remove); } } } break; } case 34: { break; } case 54://downgrade { Interfaces.IConquerItem item = null; Interfaces.IConquerItem minorItem = new ConquerItem(true); //Database.ConquerItemInformation infos = null; // uint newid = infos.LowestID(infos.BaseInformation.Level); //minorItem.Color = (PhoenixProject.Game.Enums.Color)ServerBase.Kernel.Random.Next(4, 8); if (client.Inventory.TryGetItem(usage.UID, out item) && client.Entity.ConquerPoints >= 54) { Database.ConquerItemInformation cii = new PhoenixProject.Database.ConquerItemInformation(item.ID, item.Plus); uint kimzz = 0; kimzz = item.ID; Kimozzz: uint kimo = kimzz - 10; uint kimo2 = kimzz - 20; uint kimo3 = kimzz - 30; ushort postion = ItemPosition(kimo); ushort postion2 = ItemPosition(kimo2); ushort postion3 = ItemPosition(kimo3); Database.ConquerItemInformation cii1 = new PhoenixProject.Database.ConquerItemInformation(kimo, 0); Database.ConquerItemInformation cii2 = new PhoenixProject.Database.ConquerItemInformation(kimo2, 0); Database.ConquerItemInformation cii3 = new PhoenixProject.Database.ConquerItemInformation(kimo3, 0); if (Database.ConquerItemInformation.BaseInformations.ContainsKey(kimo)) { if (cii1.BaseInformation.Level >= 10 && postion != 4 && postion != 5) { kimzz = kimo; goto Kimozzz; } else { if (cii1.BaseInformation.Level > 10) { kimzz = kimo; goto Kimozzz; } } } else { if (Database.ConquerItemInformation.BaseInformations.ContainsKey(kimo2)) { if (cii2.BaseInformation.Level >= 10 && postion2 != 4 && postion2 != 5) { kimzz = kimo2; goto Kimozzz; } else { if (cii2.BaseInformation.Level > 10) { kimzz = kimo2; goto Kimozzz; } } } else { if (Database.ConquerItemInformation.BaseInformations.ContainsKey(kimo3)) { if (cii3.BaseInformation.Level >= 10 && postion3 != 4 && postion3 != 5) { kimzz = kimo3; goto Kimozzz; } else { if (cii3.BaseInformation.Level > 10) { kimzz = kimo3; goto Kimozzz; } } } else { // return; } } } item.ID = kimzz; PhoenixProject.Database.ConquerItemTable.UpdateItemID(item, client); item.Mode = PhoenixProject.Game.Enums.ItemMode.Update; item.Send(client); client.Entity.ConquerPoints -= 54; } else { usage.dwParam = 2; } break; } default: { Console.WriteLine("Unhandled item usage type : " + usage.ID); break; } } } break; } #endregion #region String (1015) case 1015: { if (client.Action == 2) { _String str2 = new _String(false); str2.Deserialize(packet); if ((str2.Type == 0x1a) && (str2.Texts.Count > 0)) { IEnumerator enumerator = Kernel.GamePool.Values.GetEnumerator(); enumerator.MoveNext(); int count = Kernel.GamePool.Count; for (uint i = 0; i < count; i++) { if (i >= count) { break; } current = enumerator.Current as GameState; if (current.Entity.Name == str2.Texts[0]) { string str3 = ""; str3 = ((str3 + current.Entity.UID + " ") + current.Entity.Level + " ") + current.Entity.BattlePower + " #"; if (current.Entity.GuildID != 0) { str3 = str3 + current.Guild.Name + " fNone# "; } else { str3 = str3 + "None fNone# "; } str3 = (str3 + current.Entity.Spouse + " ") + ((byte)current.Entity.NobilityRank) + " "; if ((current.Entity.Body % 10) < 3) { str3 = str3 + "1"; } else { str3 = str3 + "0"; } str2.Texts.Add(str3); client.Send(str2); } enumerator.MoveNext(); } } break; } } break; #endregion #region KnownPersons (1019) case 1019: { KnownPersons knownP = new KnownPersons(false); knownP.Deserialize(packet); switch (knownP.Type) { case KnownPersons.RequestFriendship: { AddFriend(knownP, client); break; } case KnownPersons.RemovePerson: { RemoveFriend(knownP, client); break; } case KnownPersons.RemoveEnemy: { RemoveEnemy(knownP, client); break; } } break; } #endregion #region Vote /Attack case 1022: { if (client.Action != 2) return; uint dmg = BitConverter.ToUInt32(packet, 24); uint AttackType = BitConverter.ToUInt32(packet, 20); uint AttackType2 = BitConverter.ToUInt32(packet, 26); switch (AttackType) { case 36: { GamePackets.Attack attack2 = new Attack(false); attack2.Deserialize(packet); CloudSaintsJar.Execute(client, attack2); break; } case 39: { if (!Kernel.VotePool.ContainsKey(client.Account.IP)) { if (!Kernel.VotePoolUid.ContainsKey(client.Entity.UID)) { client.Entity.ConquerPoints += Database.rates.VotePrize; PhoenixProject.Game.ConquerStructures.PlayersVot Vot = new PhoenixProject.Game.ConquerStructures.PlayersVot(); Vot.AdressIp = client.Account.IP; Vot.Uid = client.Entity.UID; Kernel.VotePool.Add(Vot.AdressIp, Vot); Kernel.VotePoolUid.Add(Vot.Uid, Vot); Database.EntityTable.SavePlayersVot(Vot); client.Send(new Message("" + PhoenixProject.Database.rates.VoteUrl + "", System.Drawing.Color.Red, Network.GamePackets.Message.Website)); } else { client.Send(new Message("" + PhoenixProject.Database.rates.VoteUrl + "", System.Drawing.Color.Red, Network.GamePackets.Message.Website)); } } else { client.Send(new Message("" + PhoenixProject.Database.rates.VoteUrl + "", System.Drawing.Color.Red, Network.GamePackets.Message.Website)); } break; } default: { if (client.Entity.MapID == 8880 || client.Entity.MapID == 8881) return; GamePackets.Attack attack = new Attack(false); attack.Deserialize(packet); Attack(attack, client); break; } } break; } #endregion #region ChiSystem case 2533: { ChiSystem2.Handle(packet, client); break; } #endregion #region CountryFlag case 2430: { KimoCountryFlag kimo = new KimoCountryFlag(false); kimo.Deserialize(packet); client.Entity.CountryFlag = kimo.FlagID; kimo.UID = client.Entity.UID; client.SendScreen(kimo, true); break; } #endregion #region Teams (1023) case 1023: { if (client.Action != 2) return; Team teamPacket = new Team(); teamPacket.Deserialize(packet); switch (teamPacket.Type) { case Team.Create: CreateTeam(teamPacket, client); break; case Team.AcceptJoinRequest: AcceptRequestToJoinTeam(teamPacket, client); break; case Team.AcceptInvitation: AcceptInviteToJoinTeam(teamPacket, client); break; case Team.InviteRequest: SendInviteToJoinTeam(teamPacket, client); break; case Team.JoinRequest: SendRequestJoinToTeam(teamPacket, client); break; case Team.ExitTeam: LeaveTeam(teamPacket, client); break; case Team.Dismiss: DismissTeam(teamPacket, client); break; case Team.Kick: KickFromTeam(teamPacket, client); break; case Team.ForbidJoining: { foreach (Client.GameState Teammate in client.Team.Teammates) if (Teammate != null) { Teammate.Team.ForbidJoin = true; Teammate.Send(teamPacket); } break; } case Team.UnforbidJoining: { foreach (Client.GameState Teammate in client.Team.Teammates) if (Teammate != null) { Teammate.Team.ForbidJoin = false; Teammate.Send(teamPacket); } break; } case Team.LootMoneyOff: { foreach (Client.GameState Teammate in client.Team.Teammates) if (Teammate != null) { Teammate.Team.PickupMoney = false; Teammate.Send(teamPacket); } break; } case Team.LootMoneyOn: { foreach (Client.GameState Teammate in client.Team.Teammates) if (Teammate != null) { Teammate.Team.PickupMoney = true; Teammate.Send(teamPacket); } break; } case Team.LootItemsOn: { foreach (Client.GameState Teammate in client.Team.Teammates) if (Teammate != null) { Teammate.Team.PickupItems = true; Teammate.Send(teamPacket); } break; } case Team.LootItemsOff: { foreach (Client.GameState Teammate in client.Team.Teammates) if (Teammate != null) { Teammate.Team.PickupItems = false; Teammate.Send(teamPacket); } break; } } break; } #endregion #region Atributes Set (1024) case 1024: { if (client.Action != 2) return; uint AddStr = BitConverter.ToUInt32(packet, 8); uint AddAgi = BitConverter.ToUInt32(packet, 12); uint AddVit = BitConverter.ToUInt32(packet, 16); uint AddSpi = BitConverter.ToUInt32(packet, 20); if (client.Entity.Atributes == 0) return; uint TotalStatPoints = AddStr + AddAgi + AddVit + AddSpi; if (client.Entity.Atributes >= TotalStatPoints) { client.Entity.Strength += (ushort)AddStr; client.Entity.Agility += (ushort)AddAgi; client.Entity.Vitality += (ushort)AddVit; client.Entity.Spirit += (ushort)AddSpi; client.Entity.Atributes -= (ushort)TotalStatPoints; client.Send(packet); } client.CalculateStatBonus(); client.CalculateHPBonus(); client.GemAlgorithm(); break; } #endregion #region Socketing (1027) case 1027: { EmbedSocket socket = new EmbedSocket(false); socket.Deserialize(packet); SocketItem(socket, client); break; } #endregion #region Character Statistics (1040) case 1040: { uint UID = BitConverter.ToUInt32(packet, 4); Client.GameState Client; if (ServerBase.Kernel.GamePool.TryGetValue(UID, out Client)) { client.Send(WindowStats(Client)); } break; } #endregion #region LoginPacket (1052) case 1052: { if (client.Action == 1) { Connect connect = new Connect(); connect.Deserialize(packet); AppendConnect(connect, client); } else { //Console.WriteLine(" yes"); client.Disconnect(); //DoLogin(client); } break; } #endregion #region Trade (1056) case 1056: { if (client.Action != 2) return; Trade trade = new Trade(false); trade.Deserialize(packet); switch (trade.Type) { case Trade.Request: RequestTrade(trade, client); break; case Trade.Close: CloseTrade(trade, client); break; case Trade.AddItem: AddTradeItem(trade, client); break; case Trade.SetMoney: SetTradeMoney(trade, client); break; case Trade.SetConquerPoints: SetTradeConquerPoints(trade, client); break; case Trade.Accept: AcceptTrade(trade, client); break; } break; } #endregion Trade (1056) #region Floor items (1101) case 1101: { if (client.Action != 2) return; FloorItem floorItem = new FloorItem(false); floorItem.Deserialize(packet); client.SpiltStack = true; PickupItem(floorItem, client); client.SpiltStack = false; break; } #endregion #region Warehouses (1102) case 1102: { if (client.Action != 2) return; Warehouse warehousepacket = new Warehouse(false); warehousepacket.Deserialize(packet); switch (warehousepacket.Type) { case Warehouse.Entire: { Game.ConquerStructures.Warehouse wh = client.Warehouses[(PhoenixProject.Game.ConquerStructures.Warehouse.WarehouseID)warehousepacket.NpcID]; if (wh == null) return; byte count = 0; warehousepacket.Count = 1; warehousepacket.Type = Warehouse.AddItem; for (; count < wh.Count; count++) { warehousepacket.Append(wh.Objects[count]); client.Send(warehousepacket); } break; } case Warehouse.AddItem: { if (client.Booth != null) { Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Sorry you cant add items into your warehouse while you in Booth"); npc.OptionID = 255; client.Send(npc.ToArray()); return; } Game.ConquerStructures.Warehouse wh = client.Warehouses[(PhoenixProject.Game.ConquerStructures.Warehouse.WarehouseID)warehousepacket.NpcID]; if (wh == null) return; Interfaces.IConquerItem item = null; if (client.Inventory.TryGetItem(warehousepacket.UID, out item)) { if (item.ID >= 729960 && item.ID <= 729970) return; if (item.ID == 750000) return; if (!ConquerItem.isRune(item.UID)) { if (wh.Add(item)) { warehousepacket.UID = 0; warehousepacket.Count = 1; warehousepacket.Append(item); client.Send(warehousepacket); return; } } else client.Send(new Message("You can not store Flame Stone Rune's in Warehouse", System.Drawing.Color.Red, Message.TopLeft)); } break; } case Warehouse.RemoveItem: { Game.ConquerStructures.Warehouse wh = client.Warehouses[(PhoenixProject.Game.ConquerStructures.Warehouse.WarehouseID)warehousepacket.NpcID]; if (wh == null) return; if (wh.ContainsUID(warehousepacket.UID)) { if (wh.Remove(warehousepacket.UID)) { client.Send(warehousepacket); return; } } break; } default: { Console.WriteLine("Unknown type: " + warehousepacket.Type); break; } } break; } #endregion #region GuildCommands (1107) case 1107: { GuildCommand command = new GuildCommand(false); command.Deserialize(packet); switch (command.Type) { case GuildCommand.Neutral1: case GuildCommand.Neutral2: { string name = System.Text.Encoding.UTF7.GetString(packet, 26, packet[25]); if (client.Guild != null) { if (client.AsMember.Rank == PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) { client.Guild.RemoveAlly(name); foreach (var guild in ServerBase.Kernel.Guilds.Values) { if (guild.Name == name && client.Guild.Name != name) { guild.RemoveAlly(client.Guild.Name); } } client.Guild.RemoveEnemy(name); } } break; } case GuildCommand.Allied: { string name = System.Text.Encoding.UTF8.GetString(packet, 26, packet[25]); if (client.Guild != null) { if (client.AsMember.Rank == PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) { AllyGuilds(name, client); } } break; } case GuildCommand.Enemied: { string name = System.Text.Encoding.UTF7.GetString(packet, 26, packet[25]); if (client.Guild != null) { if (client.AsMember.Rank == PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) { client.Guild.AddEnemy(name); } } break; } default: { client.Send(packet); break; } case GuildCommand.Bulletin: { string message = System.Text.Encoding.UTF7.GetString(packet, 26, packet[25]); if (client.Guild != null) { if (client.AsMember.Rank == PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) { client.Guild.Bulletin = message; client.Guild.SendGuild(client); Database.GuildTable.UpdateBulletin(client.Guild, client.Guild.Bulletin); } } break; } case GuildCommand.DonateSilvers: { if (client.Guild != null) { if (client.Entity.Money >= command.dwParam) { client.Guild.SilverFund += command.dwParam; Database.GuildTable.SaveFunds(client.Guild); client.AsMember.SilverDonation += command.dwParam; client.Entity.Money -= command.dwParam; client.Guild.SendGuild(client); } } break; } case GuildCommand.DonateConquerPoints: { if (client.Guild != null) { if (client.Entity.ConquerPoints >= command.dwParam) { client.Guild.ConquerPointFund += command.dwParam; Database.GuildTable.SaveFunds(client.Guild); client.AsMember.ConquerPointDonation += command.dwParam; client.Entity.ConquerPoints -= command.dwParam; client.Guild.SendGuild(client); } } break; } case GuildCommand.Refresh: { if (client.AsMember != null) { if (client.Guild != null) client.Guild.SendGuild(client); } break; } case GuildCommand.Discharge: { string name = System.Text.Encoding.UTF7.GetString(packet, 26, packet[25]); if (client.Guild != null) { if (client.AsMember.Rank == PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) { var member = client.Guild.GetMemberByName(name); if (member != null) { if (member.ID != client.Entity.UID) { if (member.Rank == PhoenixProject.Game.Enums.GuildMemberRank.DeputyLeader) { client.Guild.DeputyLeaderCount--; member.Rank = PhoenixProject.Game.Enums.GuildMemberRank.Member; if (member.IsOnline) { client.Guild.SendGuild(member.Client); member.Client.Entity.GuildRank = (ushort)member.Rank; member.Client.Screen.FullWipe(); member.Client.Screen.Reload(null); } } } } } } break; } case GuildCommand.Promote: { if (client.Guild != null) { if (client.AsMember.Rank == PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) { if (client.Guild.Members.ContainsKey(command.dwParam)) { var member = client.Guild.Members[command.dwParam]; if (member.Rank == PhoenixProject.Game.Enums.GuildMemberRank.Member) { member.Rank = PhoenixProject.Game.Enums.GuildMemberRank.DeputyLeader; if (member.IsOnline) { client.Guild.SendGuild(member.Client); member.Client.Entity.GuildRank = (ushort)member.Rank; member.Client.Screen.FullWipe(); member.Client.Screen.Reload(null); } } else if (member.Rank == PhoenixProject.Game.Enums.GuildMemberRank.DeputyLeader) { member.Rank = PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader; if (member.IsOnline) { client.Guild.SendGuild(member.Client); member.Client.Entity.GuildRank = (ushort)member.Rank; member.Client.Screen.FullWipe(); member.Client.Screen.Reload(null); } client.AsMember.Rank = PhoenixProject.Game.Enums.GuildMemberRank.DeputyLeader; client.Guild.SendGuild(client); client.Entity.GuildRank = (ushort)client.AsMember.Rank; client.Screen.FullWipe(); client.Screen.Reload(null); } } } } break; } case GuildCommand.JoinRequest: { if (ServerBase.Kernel.GamePool.ContainsKey(command.dwParam)) { var Client = ServerBase.Kernel.GamePool[command.dwParam]; if (Client.OnHoldGuildJoin == client.OnHoldGuildJoin && Client.OnHoldGuildJoin != 0) { if (Client.Guild != null) { if (Client.AsMember.Rank != PhoenixProject.Game.Enums.GuildMemberRank.Member) { Client.Guild.AddMember(client); Client.OnHoldGuildJoin = 0; client.OnHoldGuildJoin = 0; } } else { if (client.AsMember.Rank != PhoenixProject.Game.Enums.GuildMemberRank.Member) { client.Guild.AddMember(Client); Client.OnHoldGuildJoin = 0; client.OnHoldGuildJoin = 0; } } return; } if (client.Guild == null) { command.dwParam = client.Entity.UID; Client.Send(command); Client.OnHoldGuildJoin = (uint)new Random().Next(); client.OnHoldGuildJoin = Client.OnHoldGuildJoin; } } break; } case GuildCommand.InviteRequest: { if (ServerBase.Kernel.GamePool.ContainsKey(command.dwParam)) { var Client = ServerBase.Kernel.GamePool[command.dwParam]; if (Client.OnHoldGuildJoin == client.OnHoldGuildJoin && Client.OnHoldGuildJoin != 0) { if (Client.Guild != null) { if (Client.AsMember.Rank != PhoenixProject.Game.Enums.GuildMemberRank.Member) { Client.Guild.AddMember(client); Client.OnHoldGuildJoin = 0; client.OnHoldGuildJoin = 0; } } else { if (client.AsMember.Rank != PhoenixProject.Game.Enums.GuildMemberRank.Member) { client.Guild.AddMember(Client); Client.OnHoldGuildJoin = 0; client.OnHoldGuildJoin = 0; } } return; } if (client.Guild != null) { command.dwParam = client.Entity.UID; Client.Send(command); Client.OnHoldGuildJoin = 0; client.OnHoldGuildJoin = Client.OnHoldGuildJoin; } } break; } case GuildCommand.Quit: { if (client.Guild != null) { if (client.AsMember.Rank != PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) { client.Guild.ExpelMember(client.Entity.Name, true); } } break; } } break; } #endregion #region Enlight (1127) case 1127: { Enlight enlight = new Enlight(false); enlight.Deserialize(packet); if (ServerBase.Kernel.GamePool.ContainsKey(enlight.Enlighted)) { var Client = ServerBase.Kernel.GamePool[enlight.Enlighted]; if (enlight.Enlighter == client.Entity.UID && enlight.Enlighted != enlight.Enlighter) { if (Client.Entity.ReceivedEnlightenPoints < 5) { if (client.Entity.EnlightenPoints >= 100) { if (Client.Entity.EnlightmentTime <= 80) { client.Entity.EnlightenPoints -= 100; Client.Entity.EnlightmentStamp = Time32.Now; Client.IncreaseExperience(Game.Attacking.Calculate.Percent((int)Client.ExpBall, .10F), false); Client.SendScreen(packet, true); Client.Entity.ReceivedEnlightenPoints++; Client.Entity.EnlightmentTime += 20; if (client.Entity.EnlightmentTime > 80) client.Entity.EnlightmentTime = 100; else if (client.Entity.EnlightmentTime > 60) client.Entity.EnlightmentTime = 80; else if (client.Entity.EnlightmentTime > 40) client.Entity.EnlightmentTime = 60; else if (client.Entity.EnlightmentTime > 20) client.Entity.EnlightmentTime = 40; else if (client.Entity.EnlightmentTime > 0) client.Entity.EnlightmentTime = 20; } else client.Send(new Message("You can't enlighten " + Client.Entity.Name + " yet because he has to wait a few minutes until he can be enlightened again.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You can't enlighten " + Client.Entity.Name + " because you don't have enough enlighten points!", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You can't enlighten " + Client.Entity.Name + " because he/she was enlightened today five times already!", System.Drawing.Color.Red, Message.TopLeft)); } } break; } #endregion #region QuizShow (2068) case 2068: { try { byte Answered = (byte)(packet[8] - 1); int L = Environment.TickCount; int Now = (L - client.QuizInfo.LastAnswer) / 1000 + 1; ushort qn = PhoenixProject.Game.ConquerStructures.QuizShow.QuestionNO; if ((ushort)((30 - Now) * PhoenixProject.Game.ConquerStructures.QuizShow.Questions[(ushort)(qn - 1)].Answers[Answered].Points) > 0) { client.QuizInfo.Time += (ushort)Now; client.QuizInfo.Score += (ushort)((30 - Now) * PhoenixProject.Game.ConquerStructures.QuizShow.Questions[(ushort)(qn - 1)].Answers[Answered].Points); client.Entity.QuizPoints += (ushort)((30 - Now) * PhoenixProject.Game.ConquerStructures.QuizShow.Questions[(ushort)(qn - 1)].Answers[Answered].Points); client.Entity.ConquerPoints += (ushort)((30 - Now) * PhoenixProject.Game.ConquerStructures.QuizShow.Questions[(ushort)(qn - 1)].Answers[Answered].Points * 10); client.Send(new Message("You have won " + ((30 - Now) * PhoenixProject.Game.ConquerStructures.QuizShow.Questions[(ushort)(qn - 1)].Answers[Answered].Points).ToString() + " quiz points and " + ((30 - Now) * PhoenixProject.Game.ConquerStructures.QuizShow.Questions[(ushort)(qn - 1)].Answers[Answered].Points * 10).ToString() + " ConquerPoints", System.Drawing.Color.Red, Message.TopLeft)); uint exp = 1000; exp = (uint)(exp * ((30 - Now) * PhoenixProject.Game.ConquerStructures.QuizShow.Questions[(ushort)(qn - 1)].Answers[Answered].Points)); client.IncreaseExperience((ulong)exp, false); Program.kimo3 = Answered; } else { client.QuizInfo.Time += (ushort)Now; client.QuizInfo.Score += (ushort)((30 - Now) * PhoenixProject.Game.ConquerStructures.QuizShow.Questions[(ushort)(qn - 1)].Answers[Answered].Points); uint exp = 1000; exp = (uint)(exp * ((30 - Now) * PhoenixProject.Game.ConquerStructures.QuizShow.Questions[(ushort)(qn - 1)].Answers[Answered].Points)); client.IncreaseExperience((ulong)exp, false); client.Send(new Message("Ops Wrong Answer try Google if you dont know www.Google.com!!", System.Drawing.Color.Red, Message.TopLeft)); } if (client.QuizInfo.Score >= 0) { /* int MyPlace = 0; for (int i = 0; i < 499; i++) { if (client.QuizInfo.Score < PhoenixProject.Game.ConquerStructures.QuizShow.Scores[i].Score) { MyPlace++; } else { if (client.Entity.UID == PhoenixProject.Game.ConquerStructures.QuizShow.Scores[i].EntityID) { } else { if (client.QuizInfo.Score == PhoenixProject.Game.ConquerStructures.QuizShow.Scores[i].Score) { MyPlace++; } } } }*/ if (client.QuizInfo.Score >= Kernel.MainQuiz.Score[0]) { Kernel.MainQuiz.Name[0] = client.Entity.Name; Kernel.MainQuiz.Score[0] = client.QuizInfo.Score; Kernel.MainQuiz.Time[0] = client.QuizInfo.Time; } client.Send(new GamePackets.QuizInfo().InfoBuffer(client.QuizInfo.Score, client.QuizInfo.Time, client.QuizInfo.Rank)); } } catch { } break; } #endregion #region NPC Dialog (2031 + 2032) case 2031: case 2032: { if (client.Action != 2) return; NpcRequest req = new NpcRequest(); req.Deserialize(packet); #region CaptureFlag if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 234 && client.Map.BaseID != 700)//CaptureFlag { client.Entity.Teleport(1002, 384, 348); } #endregion #region DemonCave if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 235 && client.Map.BaseID != 700)//DemonCave { if (DateTime.Now.Hour == Game.KimoEvents.DemonHour && DateTime.Now.Minute < 5) { if (!client.DemonCave) { client.DemonCave = true; client.Entity.Teleport(1, 77, 69); client.Entity.DemonCave1 = 0; client.Entity.DemonCave2 = 0; client.Entity.DemonCave3 = 0; Data data = new Data(true); data.ID = Data.OpenCustom; data.UID = client.Entity.UID; data.TimeStamp = Time32.Now; data.dwParam = 3378; data.wParam1 = client.Entity.X; data.wParam2 = client.Entity.Y; client.Send(data); } } } #endregion #region SkillTeam if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 236 && client.Map.BaseID != 700)//SkillTeamPK { client.Entity.Teleport(1002, 460, 367); } #endregion #region DonationWar if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 237 && client.Map.BaseID != 700)//dONATION { client.Entity.Teleport(1002, 428, 392); } #endregion #region ElitePk if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 249 && client.Map.BaseID != 700)//ElitePk { if (DateTime.Now.Hour == Game.KimoEvents.EBHour && DateTime.Now.Minute >= 5 && DateTime.Now.Minute < 20) { if (!Game.Tournaments.EliteTournament.Top8.ContainsKey(client.Entity.UID)) { Game.Tournaments.EliteTournament.AddMap(client); Data data = new Data(true); data.ID = Data.OpenCustom; data.UID = client.Entity.UID; data.TimeStamp = Time32.Now; data.dwParam = 3378; data.wParam1 = client.Entity.X; data.wParam2 = client.Entity.Y; client.Send(data); } } } #endregion #region classpk if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 248 && client.Map.BaseID != 700)//ClassPk { if (DateTime.Now.Hour == Game.KimoEvents.ClassHour && DateTime.Now.Minute < 05) { if (client.Entity.Class >= 10 && client.Entity.Class <= 15) { client.Entity.Teleport(7001, 25, 40); } if (client.Entity.Class >= 20 && client.Entity.Class <= 25) { client.Entity.Teleport(4500, 25, 40); } if (client.Entity.Class >= 40 && client.Entity.Class <= 45) { client.Entity.Teleport(4501, 25, 40); } if (client.Entity.Class >= 50 && client.Entity.Class <= 55) { client.Entity.Teleport(4502, 25, 40); } if (client.Entity.Class >= 60 && client.Entity.Class <= 65) { client.Entity.Teleport(4503, 25, 40); } if (client.Entity.Class >= 70 && client.Entity.Class <= 75) { client.Entity.Teleport(4504, 25, 40); } if (client.Entity.Class >= 132 && client.Entity.Class <= 135) { client.Entity.Teleport(4505, 25, 40); } if (client.Entity.Class >= 142 && client.Entity.Class <= 145) { client.Entity.Teleport(4506, 25, 40); } Data data = new Data(true); data.ID = Data.OpenCustom; data.UID = client.Entity.UID; data.TimeStamp = Time32.Now; data.dwParam = 3378; data.wParam1 = client.Entity.X; data.wParam2 = client.Entity.Y; client.Send(data); } } #endregion if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 247 && client.Map.BaseID != 700 && client.Entity.invite)//WeeklyPk { client.Entity.Teleport(1002, 453, 294); } if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 246 && client.Map.BaseID != 700)//MonthlyPk { client.Entity.Teleport(1002, 428, 243); } if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 245 && client.Map.BaseID != 700)//DisCity { client.Entity.Teleport(1020, 534, 484); } if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 244 && client.Map.BaseID != 700)//GuildWar { client.Disconnect(); return; } if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 233 && client.Map.BaseID != 700)//ClanWar { client.Entity.Teleport(1002, 413, 246); } if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 198 && client.Map.BaseID != 700)//ClanWar { client.Entity.Teleport(1002, 450, 372); } if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 196 && client.Map.BaseID != 700)//ClanWar { client.Entity.Teleport(1002, 425, 385); } #region DailyPk if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 243 && client.Map.BaseID != 700)//DailyPk { if (DateTime.Now.Minute >= 00 && DateTime.Now.Minute < 05) { client.Entity.Teleport(8877, 52, 44); Data data = new Data(true); data.ID = Data.OpenCustom; data.UID = client.Entity.UID; data.TimeStamp = Time32.Now; data.dwParam = 3378; data.wParam1 = client.Entity.X; data.wParam2 = client.Entity.Y; client.Send(data); } } #endregion if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 242 && client.Map.BaseID != 700)//SteedRace { client.Entity.Teleport(1002, 423, 245); } if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 241 && client.Map.BaseID != 700)//SpouseWar { client.Entity.Teleport(1002, 421, 292); } #region LastMan if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 240 && client.Map.BaseID != 700)//LastMan { if (DateTime.Now.Minute >= 30 && DateTime.Now.Minute <= 32) { Random R = new Random(); int Nr = R.Next(1, 10); if (Nr == 1) client.Entity.Teleport(3333, 51, 73); if (Nr == 2) client.Entity.Teleport(3333, 33, 34); if (Nr == 3) client.Entity.Teleport(3333, 67, 34); if (Nr == 4) client.Entity.Teleport(3333, 51, 73); if (Nr == 5) client.Entity.Teleport(3333, 33, 34); if (Nr == 6) client.Entity.Teleport(3333, 67, 34); if (Nr == 7) client.Entity.Teleport(3333, 51, 73); if (Nr == 8) client.Entity.Teleport(3333, 33, 34); if (Nr == 9) client.Entity.Teleport(3333, 67, 34); if (Nr == 10) client.Entity.Teleport(3333, 68, 57); Data data = new Data(true); data.ID = Data.OpenCustom; data.UID = client.Entity.UID; data.TimeStamp = Time32.Now; data.dwParam = 3378; data.wParam1 = client.Entity.X; data.wParam2 = client.Entity.Y; client.Send(data); } } #endregion if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 239 && client.Map.BaseID != 700)//EliteGW { client.Entity.Teleport(1002, 414, 259); } if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 238 && client.Map.BaseID != 700)//TreasueBox { client.Entity.Teleport(1002, 441, 352); } if (client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Entity.Dead && req.OptionID == 233 && client.Map.BaseID != 700)//LordsWar { client.Entity.Teleport(1002, 382, 394); } if (req.InteractType == NpcReply.MessageBox) { if (client.Entity.ActivePOPUP == 99995) { client.Entity.ActivePOPUP = 0; break; } if (req.OptionID == 255) { if (client.OnMessageBoxOK != null) { client.OnMessageBoxOK.Invoke(); client.OnMessageBoxOK = null; } } else { if (client.OnMessageBoxCANCEL != null) { client.OnMessageBoxCANCEL.Invoke(); client.OnMessageBoxCANCEL = null; } } } else { if (ID == 2031) client.ActiveNpc = req.NpcID; if (req.NpcID == 12) { if (client.Entity.VIPLevel > 0) { Data data = new Data(true); data.ID = Data.OpenWindow; data.UID = client.Entity.UID; data.TimeStamp = Time32.Now; data.dwParam = Data.WindowCommands.VIPWarehouse; data.wParam1 = client.Entity.X; data.wParam2 = client.Entity.Y; client.Send(data); break; } } Interfaces.INpc npc = null; if (req.InteractType == 102) { if (client.Guild != null) { if (client.AsMember.Rank == PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) { client.Guild.ExpelMember(req.Input, false); } } return; } if (client.Map.Npcs.TryGetValue(client.ActiveNpc, out npc)) { if (ServerBase.Kernel.GetDistance(client.Entity.X, client.Entity.Y, npc.X, npc.Y) > 17) return; if (req.OptionID == 255 || (req.OptionID == 0 && ID == 2032)) return; if (client.Entity.Dead) return; req.NpcID = client.ActiveNpc; //NpcDialogs.Dialogs.GetDialog(req, client); Dialogs.GetDialog(req, client); } } break; } #endregion #region Compose (2036) case 2036: { Compose compose = new Compose(false); compose.Deserialize(packet); ComposePlus(compose, client); break; } #endregion #region Offline TG (2044) case 2044: { OfflineTGRequest otgr = new OfflineTGRequest(false); otgr.Deserialize(packet); switch (otgr.ID) { case OfflineTGRequest.OnTrainingTimeRequested: { otgr.Minutes = 900; client.Send(otgr); break; } case OfflineTGRequest.OnConfirmation: { if (client.Map.BaseID == 6000 || client.Map.BaseID == 6001 || client.Entity.Dead) { return; } if (client.Entity.MapID == 1036 || client.Entity.MapID == 1039 || ServerBase.Constants.OfflineTG.Contains(client.Entity.MapID)) { switch (client.Entity.PreviousMapID) { case 1000: { client.Entity.PreviousMapID = 1000; client.Entity.PrevX = 500; client.Entity.PrevY = 560; break; } case 1020: { client.Entity.PreviousMapID = 1020; client.Entity.PrevX = 565; client.Entity.PrevY = 562; //client.Entity.Teleport(1020, 565, 562); break; } case 1011: { client.Entity.PreviousMapID = 1011; client.Entity.PrevX = 188; client.Entity.PrevY = 264; //client.Entity.Teleport(1011, 188, 264); break; } case 1015: { client.Entity.PreviousMapID = 1015; client.Entity.PrevX = 717; client.Entity.PrevY = 571; // client.Entity.Teleport(1015, 717, 571); break; } default: { client.Entity.PreviousMapID = 1002; client.Entity.PrevX = 429; client.Entity.PrevY = 378; //client.Entity.Teleport(1002, 429, 378); break; } } client.Entity.PreviousMapID = client.Entity.PreviousMapID; //client.Entity.PrevX = client.Entity.PrevX; //client.Entity.PrevY = client.Entity.PrevY; } else { client.Entity.PreviousMapID = client.Entity.MapID; client.Entity.PrevX = client.Entity.X; client.Entity.PrevY = client.Entity.Y; } client.Entity.MapID = 601; client.Entity.X = 64; client.Entity.Y = 56; client.OfflineTGEnterTime = DateTime.Now; client.Disconnect(); break; } case OfflineTGRequest.ClaimExperience: { var T1 = new TimeSpan(DateTime.Now.Ticks); var T2 = new TimeSpan(client.OfflineTGEnterTime.Ticks); ushort minutes = (ushort)(T1.TotalMinutes - T2.TotalMinutes); minutes = (ushort)Math.Min((ushort)900, minutes); double expballGain = (double)300 * (double)minutes / (double)900; while (expballGain >= 100) { expballGain -= 100; client.IncreaseExperience(client.ExpBall, false); } if (expballGain != 0) client.IncreaseExperience((uint)(client.ExpBall * (expballGain / 100)), false); client.Entity.SetLocation(client.Entity.PreviousMapID, client.Entity.PrevX, client.Entity.PrevY); if (client.Entity.PreviousMapID == 1036 || client.Entity.PreviousMapID == 1039) switch (client.Entity.PreviousMapID) { case 1000: { client.Entity.Teleport(1000, 500, 650); break; } case 1020: { client.Entity.Teleport(1020, 565, 562); break; } case 1011: { client.Entity.Teleport(1011, 188, 264); break; } case 1015: { client.Entity.Teleport(1015, 717, 571); break; } default: { client.Entity.Teleport(1002, 429, 378); break; } } else { client.Entity.Teleport(client.Entity.PreviousMapID, client.Entity.PrevX, client.Entity.PrevY); } client.OfflineTGEnterTime = DateTime.Now; break; } default: client.Send(otgr); break; } break; } #endregion #region Trade partner (2046) case 2046: { TradePartner partner = new TradePartner(false); partner.Deserialize(packet); switch (partner.Type) { case TradePartner.RequestPartnership: RequestTradePartnership(partner, client); break; case TradePartner.RejectRequest: RejectPartnership(partner, client); break; case TradePartner.BreakPartnership: BreakPartnership(partner, client); break; } break; } #endregion #region ItemLock (2048) case 2048: { if (client.Action != 2) return; ItemLock itemlock = new ItemLock(false); itemlock.Deserialize(packet); switch (itemlock.ID) { case ItemLock.RequestLock: LockItem(itemlock, client); break; case ItemLock.RequestUnlock: UnlockItem(itemlock, client); break; } break; } #endregion #region Broadcast (2050) case 2050: { Broadcast cast = new Broadcast(false); cast.Deserialize(packet); switch (cast.Type) { case Broadcast.ReleaseSoonMessages: { BroadcastInfoAwaiting(cast, client); break; } case Broadcast.MyMessages: { BroadcastClientMessages(cast, client); break; } case Broadcast.BroadcastMessage: { if (client.Trade.InTrade) { client.Send(new Message("You cannot send any broadcasts While you inTrade.", System.Drawing.Color.Red, Message.TopLeft)); break; } if (client.Entity.MapID == 3031) { client.Send(new Message("You cannot send any broadcasts while you in LordsWar Tourment.", System.Drawing.Color.Red, Message.TopLeft)); break; } if (Game.ConquerStructures.Broadcast.Broadcasts.Count == ServerBase.Constants.MaxBroadcasts) { client.Send(new Message("You cannot send any broadcasts for now. The limit has been reached. Wait until a broadcast is chopped down.", System.Drawing.Color.Red, Message.TopLeft)); break; } if (client.Entity.ConquerPoints >= 5) { client.Entity.ConquerPoints -= 5; Game.ConquerStructures.Broadcast.BroadcastStr broadcast = new PhoenixProject.Game.ConquerStructures.Broadcast.BroadcastStr(); broadcast.EntityID = client.Entity.UID; broadcast.EntityName = client.Entity.Name; broadcast.ID = Game.ConquerStructures.Broadcast.BroadcastCounter.Next; if (cast.List[0].Length > 80) cast.List[0] = cast.List[0].Remove(80); broadcast.Message = cast.List[0]; if (Game.ConquerStructures.Broadcast.Broadcasts.Count == 0) { if (Game.ConquerStructures.Broadcast.CurrentBroadcast.EntityID == 1) { Game.ConquerStructures.Broadcast.CurrentBroadcast = broadcast; Game.ConquerStructures.Broadcast.LastBroadcast = DateTime.Now; ServerBase.Kernel.SendWorldMessage(new Message(cast.List[0], "ALLUSERS", client.Entity.Name, System.Drawing.Color.Red, Message.BroadcastMessage), ServerBase.Kernel.GamePool.Values); client.Send(cast); break; } } Game.ConquerStructures.Broadcast.Broadcasts.Add(broadcast); cast.dwParam = (uint)Game.ConquerStructures.Broadcast.Broadcasts.Count; client.Send(cast); break; } break; } case Broadcast.Urgen5CPs: { for (int c = 0; c < Game.ConquerStructures.Broadcast.Broadcasts.Count; c++) { var broadcast = Game.ConquerStructures.Broadcast.Broadcasts[c]; if (broadcast.ID == cast.dwParam) { if (c != 0) { if (client.Entity.ConquerPoints > 5) { broadcast.SpentCPs += 5; client.Entity.ConquerPoints -= 5; if (Game.ConquerStructures.Broadcast.Broadcasts[c - 1].SpentCPs <= broadcast.SpentCPs) { Game.ConquerStructures.Broadcast.Broadcasts[c] = Game.ConquerStructures.Broadcast.Broadcasts[c - 1]; Game.ConquerStructures.Broadcast.Broadcasts[c - 1] = broadcast; } else { Game.ConquerStructures.Broadcast.Broadcasts[c] = broadcast; } } } } } break; } case Broadcast.Urgen15CPs: { for (int c = 0; c < Game.ConquerStructures.Broadcast.Broadcasts.Count; c++) { var broadcast = Game.ConquerStructures.Broadcast.Broadcasts[c]; if (broadcast.ID == cast.dwParam) { if (c != 0) { if (client.Entity.ConquerPoints > 15) { broadcast.SpentCPs += 15; client.Entity.ConquerPoints -= 15; for (int b = c - 1; b > 0; b--) Game.ConquerStructures.Broadcast.Broadcasts[b] = Game.ConquerStructures.Broadcast.Broadcasts[b - 1]; Game.ConquerStructures.Broadcast.Broadcasts[0] = broadcast; } } } } break; } } break; } #endregion #region Nobility (2064) case 2064: { NobilityInfo nobility = new NobilityInfo(false); nobility.Deserialize(packet); Game.ConquerStructures.Nobility.Handle(nobility, client); break; } #endregion #region TopGuilds case 1058: { if (client.Guild != null && client.AsMember != null) { if (client.AsMember != null) { Writer.WriteUInt32((uint)client.AsMember.SilverDonation, 8, packet); if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.DeputyLeader) if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) if (client.AsMember.SilverDonation > client.Guild.SilverFund) { client.Guild.SilverFund = (uint)client.AsMember.SilverDonation; client.Entity.GuildRank = (ushort)PhoenixProject.Game.Enums.GuildMemberRank.OSupervisor; client.AsMember.Rank = (PhoenixProject.Game.Enums.GuildMemberRank)client.Entity.GuildRank; } Writer.WriteUInt32((uint)client.AsMember.ConquerPointDonation, 20, packet); if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.DeputyLeader) if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) if (client.AsMember.ConquerPointDonation > client.Guild.ConquerPointFund) { client.Guild.ConquerPointFund = (uint)client.AsMember.ConquerPointDonation; client.Entity.GuildRank = (ushort)PhoenixProject.Game.Enums.GuildMemberRank.CPSupervisor; client.AsMember.Rank = (PhoenixProject.Game.Enums.GuildMemberRank)client.Entity.GuildRank; } } Writer.WriteUInt32(client.Entity.PKPoints, 12, packet); if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.DeputyLeader) if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) if (client.Entity.PKPoints > client.Guild.pkp_donation) { client.Guild.pkp_donation = (uint)client.Entity.PKPoints; client.Entity.GuildRank = (ushort)PhoenixProject.Game.Enums.GuildMemberRank.PKSupervisor; client.AsMember.Rank = (PhoenixProject.Game.Enums.GuildMemberRank)client.Entity.GuildRank; } if (client.ArenaStatistic != null) { Writer.WriteUInt32(client.ArenaStatistic.CurrentHonor, 24, packet); if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.DeputyLeader) if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) if (client.ArenaStatistic.CurrentHonor > client.Guild.honor_donation) { client.Guild.honor_donation = (uint)client.ArenaStatistic.CurrentHonor; client.Entity.GuildRank = (ushort)PhoenixProject.Game.Enums.GuildMemberRank.HonoraryManager; client.AsMember.Rank = (PhoenixProject.Game.Enums.GuildMemberRank)client.Entity.GuildRank; } } Writer.WriteUInt32(0, 16, packet); if (client.Entity != null) if (client.Entity.Flowers != null) { Writer.WriteUInt32((uint)client.Entity.Flowers.RedRoses, 28, packet); if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.DeputyLeader) if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) if (client.Entity.Flowers.RedRoses > client.Guild.rose_donation) { client.Guild.rose_donation = (uint)client.Entity.Flowers.RedRoses; client.Entity.GuildRank = (ushort)PhoenixProject.Game.Enums.GuildMemberRank.RoseSupervisor; client.AsMember.Rank = (PhoenixProject.Game.Enums.GuildMemberRank)client.Entity.GuildRank; } Writer.WriteUInt32((uint)client.Entity.Flowers.Tulips, 32, packet); if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.DeputyLeader) if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) if (client.Entity.Flowers.Tulips > client.Guild.tuil_donation) { client.Guild.tuil_donation = (uint)client.Entity.Flowers.Tulips; client.Entity.GuildRank = (ushort)PhoenixProject.Game.Enums.GuildMemberRank.TulipFollower; client.AsMember.Rank = (PhoenixProject.Game.Enums.GuildMemberRank)client.Entity.GuildRank; } Writer.WriteUInt32((uint)client.Entity.Flowers.Lilies, 36, packet); if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.DeputyLeader) if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) if (client.Entity.Flowers.Lilies > client.Guild.lilies_donation) { client.Guild.lilies_donation = (uint)client.Entity.Flowers.Lilies; client.Entity.GuildRank = (ushort)PhoenixProject.Game.Enums.GuildMemberRank.LilySupervisor; client.AsMember.Rank = (PhoenixProject.Game.Enums.GuildMemberRank)client.Entity.GuildRank; } Writer.WriteUInt32((uint)client.Entity.Flowers.Orchads, 40, packet); if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.DeputyLeader) if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) if (client.Entity.Flowers.Orchads > client.Guild.orchid_donation) { client.Guild.orchid_donation = (uint)client.Entity.Flowers.Orchads; client.Entity.GuildRank = (ushort)PhoenixProject.Game.Enums.GuildMemberRank.OrchidFollower; client.AsMember.Rank = (PhoenixProject.Game.Enums.GuildMemberRank)client.Entity.GuildRank; } Writer.WriteUInt32((uint)(client.Entity.Flowers.Orchads + (uint)client.Entity.Flowers.RedRoses + (uint)client.Entity.Flowers.Tulips + (uint)client.Entity.Flowers.Lilies), 44, packet); } if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.DeputyLeader) if (client.Entity.GuildRank != (ushort)PhoenixProject.Game.Enums.GuildMemberRank.GuildLeader) { if (client.Entity.Name == client.Guild.LeaderName) { client.Entity.GuildRank = (ushort)PhoenixProject.Game.Enums.GuildMemberRank.LeaderSpouse; client.AsMember.Rank = (PhoenixProject.Game.Enums.GuildMemberRank)client.Entity.GuildRank; } } if (client.Guild != null) client.Guild.SendGuild(client); client.Send(packet); } break; } #endregion #region Flowers (1150 & 1151) case 1150: { new Game.Features.Flowers.FlowerSystem(packet, client); break; } #endregion #region Flowers (1150 & 1151) case 1151: { int subtype = packet[4]; AddFlowers(client, packet); break; } #endregion #region Mentor prize (2067) case 2067: { MentorPrize prize = new MentorPrize(false); prize.Deserialize(packet); switch (prize.Prize_Type) { case MentorPrize.ClaimExperience: { client.IncreaseExperience((ulong)(((double)client.PrizeExperience / 606) * client.ExpBall), false); client.PrizeExperience = 0; foreach (var appr in client.Apprentices.Values) { appr.Actual_Experience = 0; Database.KnownPersons.SaveApprenticeInfo(appr); } prize.Mentor_ID = client.Entity.UID; prize.Prize_Type = MentorPrize.Show; prize.Prize_Experience = client.PrizeExperience; prize.Prize_HeavensBlessing = client.PrizeHeavenBlessing; prize.Prize_PlusStone = client.PrizePlusStone; client.Send(prize); break; } case MentorPrize.ClaimHeavenBlessing: { client.AddBless(client.PrizeHeavenBlessing); client.PrizeHeavenBlessing = 0; foreach (var appr in client.Apprentices.Values) { appr.Actual_HeavenBlessing = 0; Database.KnownPersons.SaveApprenticeInfo(appr); } prize.Mentor_ID = client.Entity.UID; prize.Prize_Type = MentorPrize.Show; prize.Prize_Experience = client.PrizeExperience; prize.Prize_HeavensBlessing = client.PrizeHeavenBlessing; prize.Prize_PlusStone = client.PrizePlusStone; client.Send(prize); break; } case MentorPrize.ClaimPlus: { int stones = client.PrizePlusStone / 100; int totake = stones; if (stones > 0) { for (; stones > 0; stones--) { client.PrizePlusStone -= 100; if (!client.Inventory.Add(730001, 1, 1)) break; } } foreach (var appr in client.Apprentices.Values) { if (appr.Actual_Plus >= totake) { appr.Actual_Plus -= (ushort)totake; totake = 0; } else { totake -= appr.Actual_Plus; appr.Actual_Plus = 0; } Database.KnownPersons.SaveApprenticeInfo(appr); } prize.Mentor_ID = client.Entity.UID; prize.Prize_Type = MentorPrize.Show; prize.Prize_Experience = client.PrizeExperience; prize.Prize_HeavensBlessing = client.PrizeHeavenBlessing; prize.Prize_PlusStone = client.PrizePlusStone; client.Send(prize); break; } case MentorPrize.Show: { prize.Mentor_ID = client.Entity.UID; prize.Prize_Type = MentorPrize.Show; prize.Prize_Experience = client.PrizeExperience; prize.Prize_HeavensBlessing = client.PrizeHeavenBlessing; prize.Prize_PlusStone = client.PrizePlusStone; client.Send(prize); break; } } break; } #endregion #region ElitePk Tournament 2223 | 2219 case 2223: { if (client.Entity.MapID == 6002) break; if (Game.Tournaments.EliteTournament.Start) break; GamePackets.Elite_Pk pk = new Elite_Pk(client.Entity.UID); pk.Send(client); break; } case 2219: { if (client.Entity.MapID == 6002) break; byte[] sed = new byte[36] { 0x1C ,0x00 ,0xAB ,0x08 ,0x04 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x03 ,0x00 // ; « ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x54 ,0x51 ,0x53 ,0x65 // ; TQSe ,0x72 ,0x76 ,0x65 ,0x72 // ;rver }; client.Send(sed); break; } case 1063: { GamePackets.Guild_Pk pk = new Guild_Pk(client.Entity.UID); pk.Send(client); break; } /* case 2224: { client.Send(packet); break; } case 2232: { client.Send(packet); break; } case 2242: { client.Send(packet); break; } case 2243: { client.Send(packet); break; }*/ /*case 2242://Request Arena ranking List 2245 2242 2244 { //Code snippet that belongs to Ultimation Game.ConquerStructures.TeamArena.Statistics.ShowWiners(client); break; } case 2245: { client.TeamArenaStatistic.Send(client); break; }*/ /*case 2245: { client.Send(packet); break; }*/ /* case 2233: { GamePackets.Team_Pk pk = new Team_Pk(client.Entity.UID); pk.Send(client); break; }*/ /* case 2252: { client.Send(packet); break; }*/ /* case 2253: { GamePackets.Team_PkComun pk = new Team_PkComun(client.Entity.UID); pk.Send(client); break; }*/ case 1130: { if (client.Entity.TitlePacket != null) { if (packet[9] == 4) { if (client.Entity.TitlePacket.dwParam2 != 0) client.Entity.TitlePacket.Send(client); } if (packet[9] == 3) { client.Entity.TitleActivated = packet[8]; client.Send(packet); client.SendScreen(client.Entity.SpawnPacket, false); } } break; } #endregion #region vipteleport case 1128: { p1128 vp = new p1128(false); vp.Deserialize(packet); if (ServerBase.Constants.VipNo.Contains(client.Entity.MapID)) return; if (client.Entity.ContainsFlag(Network.GamePackets.Update.Flags.Ghost)) return; switch (vp.UID) { case 0://player city teleport { switch (vp.UID2) { //////////////////////////////////////////////////////////////////////////////////////////////////// case 1://tc if (client.Map.BaseID != 700) client.Entity.Teleport(1002, 429, 378); break; case 2://pc if (client.Map.BaseID != 700) client.Entity.Teleport(1011, 188, 264); break; case 3://ac if (client.Map.BaseID != 700) client.Entity.Teleport(1020, 565, 562); break; case 4://dc if (client.Map.BaseID != 700) client.Entity.Teleport(1000, 500, 650); break; case 5://bc if (client.Map.BaseID != 700) client.Entity.Teleport(1015, 717, 571); break; //////////////////////////////////////////////////////////////////////////////////////// { } default: Console.WriteLine("Unknown 1128 portal subtype 1 : " + vp.UID2); break; } break; } case 1://Team city teleport { switch (vp.UID2) { //////////////////////////////////////////////////////////////////////////////////////////////////// case 1://tc foreach (Client.GameState teammate in client.Entity.Owner.Team.Teammates) { if (ServerBase.Kernel.GetDistance(client.Entity.X, client.Entity.Y, teammate.Entity.X, teammate.Entity.Y) <= 18) { if (client.Map.BaseID != 700) { teammate.Entity.Teleport(1002, 429, 378); } } } if (client.Map.BaseID != 700) client.Entity.Teleport(1002, 429, 378); break; case 2://pc foreach (Client.GameState teammate in client.Entity.Owner.Team.Teammates) { if (ServerBase.Kernel.GetDistance(client.Entity.X, client.Entity.Y, teammate.Entity.X, teammate.Entity.Y) <= 18) { if (client.Map.BaseID != 700) { teammate.Entity.Teleport(1011, 188, 264); } } } if (client.Map.BaseID != 700) client.Entity.Teleport(1011, 188, 264); break; case 3://ac foreach (Client.GameState teammate in client.Entity.Owner.Team.Teammates) { if (ServerBase.Kernel.GetDistance(client.Entity.X, client.Entity.Y, teammate.Entity.X, teammate.Entity.Y) <= 18) { if (client.Map.BaseID != 700) { teammate.Entity.Teleport(1020, 565, 562); } } } if (client.Map.BaseID != 700) client.Entity.Teleport(1020, 565, 562); break; case 4://dc foreach (Client.GameState teammate in client.Entity.Owner.Team.Teammates) { if (ServerBase.Kernel.GetDistance(client.Entity.X, client.Entity.Y, teammate.Entity.X, teammate.Entity.Y) <= 18) { if (client.Map.BaseID != 700) { teammate.Entity.Teleport(1000, 500, 650); } } } if (client.Map.BaseID != 700) client.Entity.Teleport(1000, 500, 650); break; case 5://bc foreach (Client.GameState teammate in client.Entity.Owner.Team.Teammates) { if (ServerBase.Kernel.GetDistance(client.Entity.X, client.Entity.Y, teammate.Entity.X, teammate.Entity.Y) <= 18) { if (client.Map.BaseID != 700) { teammate.Entity.Teleport(1015, 717, 571); } } } if (client.Map.BaseID != 700) client.Entity.Teleport(1015, 717, 571); break; //////////////////////////////////////////////////////////////////////////////////////// { } default: Console.WriteLine("Unknown 1128 portal subtype 2 : " + vp.UID2); break; } break; } default: Console.WriteLine("Unknown 1128 subtype: " + vp.UID); break; } break; } #endregion #region MentorApprentice (2065) case 2065: { MentorApprentice ma = new MentorApprentice(false); ma.Deserialize(packet); switch (ma.Type) { case MentorApprentice.LeaveMentor: { LeaveMentor(ma, client); break; } case MentorApprentice.ExpellApprentice: { ExpelApprentice(ma, client); break; } case MentorApprentice.RequestApprentice: { AddApprentice(ma, client); break; } case MentorApprentice.RequestMentor: { AddMentor(ma, client); break; } case MentorApprentice.AcceptRequestApprentice: { AcceptRequestApprentice(ma, client); break; } case MentorApprentice.AcceptRequestMentor: { AcceptRequestMentor(ma, client); break; } } break; } case 2066: { MentorInformation info = new MentorInformation(false); info.Deserialize(packet); if (info.Mentor_Type == 1) { client.ReviewMentor(); } break; } #endregion #region Guild members (2102) case 2102: { ushort Page = BitConverter.ToUInt16(packet, 8); if (client.Guild != null) { if (client.AsMember != null) client.Guild.SendMembers(client, Page); } break; } #endregion #region Arena (2207<->2211) case 2207://Request Arena ranking List 2245 2242 2244 { //Code snippet that belongs to Ultimation ushort PageIndex = BitConverter.ToUInt16(packet, 6); Game.ConquerStructures.Arena.Statistics.ShowRankingPage(packet[4], PageIndex, client); break; } case 2206: { //Code snippet that belongs to Ultimation ushort PageIndex = BitConverter.ToUInt16(packet, 4); Game.ConquerStructures.Arena.QualifyEngine.RequestGroupList(client, PageIndex); break; } case 2205://Arena Signup! { //Code snippet that belongs to Ultimation uint DialogID = BitConverter.ToUInt32(packet, 4); uint ButtonID = BitConverter.ToUInt32(packet, 8); switch (DialogID) { case 4: { switch (ButtonID) { case 0: { Game.ConquerStructures.Arena.QualifyEngine.DoQuit(client); break; } } break; } case 0: Game.ConquerStructures.Arena.QualifyEngine.DoSignup(client); client.Send(packet); break; case 1: Game.ConquerStructures.Arena.QualifyEngine.DoQuit(client); client.Send(packet); break; case 3: { switch (ButtonID) { case 2: Game.ConquerStructures.Arena.QualifyEngine.DoGiveUp(client); break; case 1: Game.ConquerStructures.Arena.QualifyEngine.DoAccept(client); break; } break; } case 5: { if (client.ArenaStatistic.ArenaPoints <= 1500) if (client.Entity.Money >= 9000000) { client.Entity.Money -= 9000000; client.ArenaStatistic.ArenaPoints += 1500; client.Send(client.ArenaStatistic); } break; } case 11://Win/Lose Dialog { switch (ButtonID) { case 0: Game.ConquerStructures.Arena.QualifyEngine.DoSignup(client); break; } break; } } break; } case 2208://Request Arena Winner List { //Code snippet that belongs to Ultimation Game.ConquerStructures.Arena.Statistics.ShowWiners(client); break; } case 2209: {//bug in console client.ArenaStatistic.Send(client); break; } case 2211: { if (client.Map.BaseID == 6001 || client.Map.BaseID == 6000) return; ushort Type = BitConverter.ToUInt16(packet, 4); uint Fighter = BitConverter.ToUInt32(packet, 10); if (Type == 0) { if (ServerBase.Kernel.GamePool.ContainsKey(Fighter)) { Client.GameState Client = ServerBase.Kernel.GamePool[Fighter]; if (Client.QualifierGroup != null) { if (Client.QualifierGroup.Inside) { if (!Client.QualifierGroup.Done) { Client.QualifierGroup.BeginWatching(client); } } } } } else if (Type == 1) { Game.ConquerStructures.Arena.QualifyEngine.DoLeave(client); } else if (Type == 4) { string name = ""; for (int c = 22; c < packet.Length; c++) { if (packet[c] != 0) name += (char)packet[c]; else break; } Game.ConquerStructures.Arena.QualifyEngine.DoCheer(client, name); } break; } #endregion #region Movement/Walk (10005) case 10005: { if (client.Action != 2) return; GroundMovement groundMovement = new GroundMovement(false); groundMovement.Deserialize(packet); PlayerGroundMovment(groundMovement, client); break; } #endregion //24 2533 53 152 1 0 0 0 84 //60 0 229 9 50 151 152 0 1 0 0 0 0 0 0 0 84 81 83 101 114 118 101 114 //3c 00 e5 09 32 97 98 00 01 00 00 00 00 00 00 00 54 51 53 65 72 76 65 72 /* case 2533: { KimoChi prize = new KimoChi(false); prize.Deserialize(packet); client.Send(packet); client.Send(prize); break; }*/ #region Lottery2 case 1314://1314 { Game.Lottery.Handle(packet, client); break; } #endregion #region New AutoInvite case 1126://1314 { EventAlert2.Handle(packet, client); break; } #endregion #region ClanWar inv (1313) case 1313://1313 { if (packet[4] == 8) { client.Entity.Teleport(1002, 413, 246); } return; } #endregion //packet[8] = 1; #region ChangeName (2080) case 2080: { NameChange prize = new NameChange(false); //prize.EditAllowed = 1; //prize.EditCount = 1; prize.Deserialize(packet); switch (prize.Action)//string name = System.Text.Encoding.UTF7.GetString(packet, 26, packet[25]); { case PhoenixProject.Network.GamePackets.NameChange.NameChangeAction.Request: { string newname = System.Text.Encoding.UTF7.GetString(packet, 10, 16).TrimEnd('\0'); packet[6] = (byte)client.Entity.EditeName; packet[8] = (byte)(5 - client.Entity.EditeName); prize.Send(client); client.Send(prize); if (newname != "") { if (newname == "") return; if (newname.Contains("[") && newname.Contains("]")) return; if (Dialogs.InvalidCharacters(newname) && Dialogs.InvalidCharacters3(newname) && !newname.Contains("[") && !newname.Contains("]")) { PhoenixProject.Database.MySqlCommand cmd2 = new PhoenixProject.Database.MySqlCommand(PhoenixProject.Database.MySqlCommandType.SELECT).Select("entities").Where("name", newname);//debug and test! PhoenixProject.Database.MySqlReader r = new PhoenixProject.Database.MySqlReader(cmd2); if (!r.Read())//wait { if (client.Entity.ConquerPoints >= PhoenixProject.Database.rates.ChangeName) { client.Entity.ConquerPoints -= PhoenixProject.Database.rates.ChangeName; // PhoenixProject.Database.MySqlCommand cmd = new PhoenixProject.Database.MySqlCommand(PhoenixProject.Database.MySqlCommandType.UPDATE); // cmd.Update("entities").Set("namechange", newname).Where("UID", client.Entity.UID).Execute(); r.Close(); r.Dispose(); client.Entity.NewName = newname; // Console.WriteLine(client.Entity.Name + ", Changed hes Name to : " + newname); ServerBase.Kernel.SendWorldMessage(new Message(client.Entity.Name + ", Changed He's/Hers Name to " + newname + ", Will be affected after Relogin.", System.Drawing.Color.Red, Message.Talk), ServerBase.Kernel.GamePool.Values); // client.Edita = 0; // client.Edite = 1; client.Entity.EditeName += 1; packet[4] = 1; prize.Send(client); client.Send(prize); Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Your new name is : " + newname + ", After relog You will get your new name, Want to Relog?"); npc.OptionID = 244; client.Send(npc.ToArray()); } else { Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Come back when you have " + PhoenixProject.Database.rates.ChangeName + " CPS."); npc.OptionID = 255; client.Send(npc.ToArray()); r.Close(); r.Dispose(); } } else { packet[4] = 2; prize.Send(client); client.Send(prize); r.Close(); r.Dispose(); } } else { Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "im sorry not allowed now close the dialog and try again"); npc.OptionID = 255; client.Send(npc.ToArray()); //r.Close(); //r.Dispose(); } } break; } } //packet[8] = 1; //byte NewClass = packet[4]; //ushort NewBody = packet[8]; break; } #endregion #region Reincarnation (1066) case 1066: { if (client.Entity.Reborn != 2) return; if (ServerBase.Kernel.ReincarnatedCharacters.ContainsKey(client.Entity.UID)) return; byte NewClass = packet[4]; ushort NewBody = packet[8]; if (client.Entity.Body.ToString().EndsWith("1") || client.Entity.Body.ToString().EndsWith("2")) NewBody += 2000; else NewBody += 1000; if (client.Inventory.Contains(711083, 1) && client.Entity.ConquerPoints >= PhoenixProject.Database.rates.Riencration) { client.Entity.Body = NewBody; new PacketHandler.Reincarnation(client, NewClass); client.Inventory.Remove(711083, 1); client.Entity.ConquerPoints -= PhoenixProject.Database.rates.Riencration; } break; } #endregion #region PurifyItem (2076) case 2076: { Purification ps = new Purification(false); ps.Deserialize(packet); switch (ps.Mode) { case Purification.Purify: PurifyItem(ps, client); break; case Purification.ItemArtifact: PurifyRefinery(ps, client); break; //case Purification.Stabilaze: //new Game.Features.Refinery.Handle(packet, client); break; } break; } #endregion #region KimoClans case 1312: { //GameState targets; switch (packet[4]) { case 21: { if (client.Entity.Myclan != null) { try { uint lider = 0; string name_receive = System.Text.Encoding.UTF7.GetString(packet, 18, packet[17]); foreach (Client.GameState clien in ServerBase.Kernel.GamePool.Values) { if (clien.Entity.Name == name_receive) { lider = clien.Entity.UID; } } if (lider == client.Entity.UID) return; Client.GameState aClient = null; if (PhoenixProject.ServerBase.Kernel.GamePool.TryGetValue(lider, out aClient)) { if (PhoenixProject.ServerBase.Kernel.ServerClans.ContainsKey(client.Entity.Myclan.ClanId)) { if (PhoenixProject.ServerBase.Kernel.ServerClans[client.Entity.Myclan.ClanId].Members.ContainsKey(aClient.Entity.UID)) { PhoenixProject.ServerBase.Kernel.ServerClans[client.Entity.Myclan.ClanId].ClanLider = aClient.Entity.Name; aClient.Entity.ClanRank = 100; aClient.Entity.Myclan.Members[aClient.Entity.UID].Rank = 100; //if (aClient.Entity.Myclan.Members.ContainsKey(client.Entity.UID)) //aClient.Entity.Myclan.Members[client.Entity.UID].Rank = 0; client.Entity.ClanRank = 10; client.Entity.Myclan.Members[client.Entity.UID].Rank = 10; Database.Clans.SaveClan(aClient.Entity.Myclan); //Database.Clans.JoinClan(client); Network.GamePackets.Clan cl = new PhoenixProject.Network.GamePackets.Clan(client, 1); client.Send(cl.ToArray()); ClanMembers clan = new ClanMembers(client); client.Send(clan.ToArray()); Network.GamePackets.Clan cls = new PhoenixProject.Network.GamePackets.Clan(aClient, 1); aClient.Send(cls.ToArray()); ClanMembers clans = new ClanMembers(aClient); aClient.Send(clans.ToArray()); ServerBase.Kernel.GamePool[aClient.Entity.UID].Screen.FullWipe(); ServerBase.Kernel.GamePool[aClient.Entity.UID].Screen.Reload(null); ServerBase.Kernel.GamePool[client.Entity.UID].Screen.FullWipe(); ServerBase.Kernel.GamePool[client.Entity.UID].Screen.Reload(null); } } } else { PhoenixProject.ServerBase.Kernel.ServerClans[client.Entity.Myclan.ClanId].ClanLider = name_receive; client.Entity.ClanRank = 10; client.Entity.Myclan.Members[client.Entity.UID].Rank = 10; Database.Clans.SaveClan(client.Entity.Myclan); Database.Clans.TransferClan(name_receive); Network.GamePackets.Clan cl = new PhoenixProject.Network.GamePackets.Clan(client, 1); client.Send(cl.ToArray()); ClanMembers clan = new ClanMembers(client); client.Send(clan.ToArray()); ServerBase.Kernel.GamePool[client.Entity.UID].Screen.FullWipe(); ServerBase.Kernel.GamePool[client.Entity.UID].Screen.Reload(null); //Console.WriteLine("gggf"); } } catch (Exception e) { Program.SaveException(e); } } break; } case (byte)Game.Clan_Typ.Quit: { if (client.Entity.Myclan != null) { if (client.Entity.ClanRank != 100) { client.Entity.Myclan.ExpelMember(client.Entity.Name, true); } } break; } case 25: { if (client.Entity.Myclan == null) return; string buletin = System.Text.Encoding.UTF7.GetString(packet, 18, packet[17]); if (PhoenixProject.ServerBase.Kernel.ServerClans.ContainsKey(client.Entity.Myclan.ClanId)) PhoenixProject.ServerBase.Kernel.ServerClans[client.Entity.Myclan.ClanId].ClanBuletion = buletin; Database.Clans.SaveClan(PhoenixProject.ServerBase.Kernel.ServerClans[client.Entity.Myclan.ClanId]); client.Send(packet); break; } case 22: { if (client.Entity.Myclan != null) { if (client.Entity.ClanRank == 100) { string name = System.Text.Encoding.UTF7.GetString(packet, 18, packet[17]); if (client.Entity.Myclan != null) { if (client.Entity.ClanRank == 100) { client.Entity.Myclan.ExpelMember(name, false); Database.Clans.KickClan(name); } } } } break; } case 26: { uint money = BitConverter.ToUInt32(packet, 8); if (client.Entity.Money >= money && client.Entity.Myclan != null) { client.Entity.Myclan.Members[client.Entity.UID].Donation += money; client.Entity.Money -= money; if (PhoenixProject.ServerBase.Kernel.ServerClans.ContainsKey(client.Entity.Myclan.ClanId)) PhoenixProject.ServerBase.Kernel.ServerClans[client.Entity.Myclan.ClanId].ClanDonation += money; Network.GamePackets.Clan cl = new PhoenixProject.Network.GamePackets.Clan(client, 1); client.Send(cl.ToArray()); Database.Clans.SaveClientDonation(client); Database.Clans.SaveClan(PhoenixProject.ServerBase.Kernel.ServerClans[client.Entity.Myclan.ClanId]); } break; } case 11: { uint lider = BitConverter.ToUInt32(packet, 8); if (PhoenixProject.ServerBase.Kernel.GamePool.ContainsKey(lider)) { packet[4] = 11; Network.Writer.WriteUInt32(client.Entity.UID, 8, packet); packet[16] = 1; packet[17] = (byte)client.Entity.Name.Length; for (int i = 0; i < client.Entity.Name.Length; i++) { try { packet[18 + i] = Convert.ToByte(client.Entity.Name[i]); } catch { } } if (PhoenixProject.ServerBase.Kernel.GamePool[lider].Entity.Myclan != null) PhoenixProject.ServerBase.Kernel.GamePool[lider].Send(packet); } break; } case 12: { if (packet[16] == 1) { if (client.Entity.Myclan != null) if (client.Entity.Myclan.Members[client.Entity.UID].Rank == 100) { { if (client.Entity.Myclan.Members.Count < 7) { uint memeber = BitConverter.ToUInt32(packet, 8); if (ServerBase.Kernel.GamePool.ContainsKey(memeber)) { Game.ClanMembers member = new PhoenixProject.Game.ClanMembers(); member.UID = ServerBase.Kernel.GamePool[memeber].Entity.UID; member.Donation = 0; member.Rank = 10; member.Class = ServerBase.Kernel.GamePool[memeber].Entity.Class; member.Level = ServerBase.Kernel.GamePool[memeber].Entity.Level; member.Name = ServerBase.Kernel.GamePool[memeber].Entity.Name; if (!client.Entity.Myclan.Members.ContainsKey(memeber)) client.Entity.Myclan.Members.Add(member.UID, member); ServerBase.Kernel.GamePool[memeber].Entity.ClanRank = 10; ServerBase.Kernel.GamePool[memeber].Entity.ClanId = client.Entity.ClanId; ServerBase.Kernel.GamePool[memeber].Entity.Myclan = client.Entity.Myclan; ServerBase.Kernel.GamePool[memeber].Entity.ClanName = client.Entity.ClanName; Database.Clans.JoinClan(ServerBase.Kernel.GamePool[memeber]); ServerBase.Kernel.GamePool[memeber].Screen.FullWipe(); ServerBase.Kernel.GamePool[memeber].Screen.Reload(null); Network.GamePackets.Clan cl = new PhoenixProject.Network.GamePackets.Clan(client, 1); client.Send(cl.ToArray()); ClanMembers clan = new ClanMembers(client); client.Send(clan.ToArray()); } } } } } break; } case 4: { ClanMembers clan = new ClanMembers(client); client.Send(clan.ToArray()); break; } case 0x1d: { if (client.Entity.Myclan != null) { Network.Writer.WriteUInt32(client.Entity.Myclan.ClanId, 8, packet); Network.Writer.WriteByte(1, 16, packet); Network.Writer.WriteByte(0x0d, 17, packet); Network.Writer.WriteString("0 0 0 0 0 0 0", 18, packet); client.Send(packet); Network.GamePackets.Clan cl = new PhoenixProject.Network.GamePackets.Clan(client, 1); client.Send(cl.ToArray()); client.Send(packet); if (client.Entity.Myclan.ClanBuletion != "") client.Send(cl.UpgradeBuletin(client.Entity.Myclan.ClanBuletion)); } else { client.Send(packet); packet[4] = 23; } break; } case 0x18: { client.Send(packet); break; } case (byte)Game.Clan_Typ.AddAlly: { Game.Clans clan = client.Entity.Myclan; if (clan != null) { Client.GameState target; UInt32 Identifier = BitConverter.ToUInt32(packet, 8); if (client.Entity.ClanRank == 100) { if (clan.Allies.Count >= 5) { client.Send(new Message("The Amount of Allies You can Have is exceeded", System.Drawing.Color.Red, Message.TopLeft)); break; } if (ServerBase.Kernel.GamePool.TryGetValue(Identifier, out target)) { Game.Clans tclan = target.Entity.Myclan; if (tclan != null) { if (target.Entity.ClanRank == 100) { if (tclan.Allies.Count >= 5) { client.Send(new Message("The Amount of Allies the Target Clan can Have is exceeded", System.Drawing.Color.Red, Message.TopLeft)); break; } if (!clan.Allies.ContainsKey(tclan.ClanId)) { if (!clan.Enemies.ContainsKey(tclan.ClanId)) { String clanName = client.Entity.ClanName; Clan2 clanp = new Clan2(); clanp.Deserialize(packet); clanp.Offset16 = 2; clanp.Identifier = client.Entity.UID; Writer.WriteByte((Byte)clanName.Length, 17, clanp.ToArray()); Writer.WriteString(clanName, 18, clanp.ToArray()); tclan.AllyRequest = clan.ClanId; target.Send(clanp); } else client.Send(new Message("The clan is Your Enemy.", System.Drawing.Color.Red, Message.TopLeft)); } } else client.Send(new Message("This target is not the clan leader.", System.Drawing.Color.Red, Message.TopLeft)); } } else client.Send(new Message("Can not find target.", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You are not the clan leader.", System.Drawing.Color.Red, Message.TopLeft)); } break; } case (byte)Game.Clan_Typ.AcceptAlliance: { Game.Clans clan = client.Entity.Myclan; if (clan != null) { if (client.Entity.ClanRank == 100) { Game.Clans tclan; if (ServerBase.Kernel.ServerClans.TryGetValue(clan.AllyRequest, out tclan)) { if (tclan != null) { if (!tclan.Enemies.ContainsKey(clan.ClanId)) { if (!clan.Enemies.ContainsKey(tclan.ClanId)) { if (!clan.Allies.ContainsKey(tclan.ClanId)) clan.Allies.Add(tclan.ClanId, tclan); tclan.Allies.Add(clan.ClanId, clan); clan.SendMessage(new ClanRelations(clan, ClanRelations.RelationTypes.Allies)); tclan.SendMessage(new ClanRelations(tclan, ClanRelations.RelationTypes.Allies)); clan.SendMessage(new Message(String.Format("Our Clan has Allianced with {0}", tclan.ClanName), System.Drawing.Color.Red, Message.Clan)); tclan.SendMessage(new Message(String.Format("Our Clan has Allianced with {0}", clan.ClanName), System.Drawing.Color.Red, Message.Clan)); clan.AddRelation(tclan.ClanId, ClanRelations.RelationTypes.Allies); tclan.AddRelation(clan.ClanId, ClanRelations.RelationTypes.Allies); clan.AllyRequest = tclan.AllyRequest = 0; } else client.Send(new Message("This Clan is Your Enemy.", System.Drawing.Color.Red, Message.TopLeft)); } client.Send(new Message("This Clan Has Enemied You!.", System.Drawing.Color.Red, Message.TopLeft)); } } else client.Send(new Message("Can not find target", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("You are not the clan leader.", System.Drawing.Color.Red, Message.TopLeft)); } break; } case (byte)Game.Clan_Typ.DeleteEnemy: { Game.Clans clan = client.Entity.Myclan; if (clan != null) { if (client.Entity.ClanRank == 100) { Clan2 clanp = new Clan2(); clanp.Deserialize(packet); String EnemyTarget = clanp.Offset18String; UInt32 ClanId = clanp.GetClanId(EnemyTarget); Game.Clans tclan; if (ServerBase.Kernel.ServerClans.TryGetValue(ClanId, out tclan)) { clan.Enemies.Remove(ClanId); clan.DeleteRelation(ClanId, ClanRelations.RelationTypes.Enemies); clan.SendMessage(new ClanRelations(clan, ClanRelations.RelationTypes.Enemies)); clan.SendMessage(new Message(String.Format("We are no longer Enemies With {0}", clan.ClanId), System.Drawing.Color.Red, Message.Clan)); client.Send(clanp); } } else client.Send(new Message("You are not authorized to continue with this action", System.Drawing.Color.Red, Message.TopLeft)); } break; } case (byte)Game.Clan_Typ.DeleteAlly: { Game.Clans clan = client.Entity.Myclan; if (clan != null) { if (client.Entity.ClanRank == 100) { Clan2 clanp = new Clan2(); clanp.Deserialize(packet); String AlliedTarget = clanp.Offset18String; UInt32 ClanId = clanp.GetClanId(AlliedTarget); Game.Clans tclan; if (clan.Allies.TryGetValue(ClanId, out tclan)) { clan.Allies.Remove(ClanId); tclan.Allies.Remove(clan.ClanId); clan.DeleteRelation(ClanId, ClanRelations.RelationTypes.Allies); tclan.DeleteRelation(clan.ClanId, ClanRelations.RelationTypes.Allies); clan.SendMessage(new ClanRelations(clan, ClanRelations.RelationTypes.Allies)); tclan.SendMessage(new ClanRelations(tclan, ClanRelations.RelationTypes.Allies)); clan.SendMessage(new Message(String.Format("We are no longer allied with {0}", tclan.ClanName), System.Drawing.Color.Red, Message.Clan)); tclan.SendMessage(new Message(String.Format("We are no longer allied with {0}", clan.ClanName), System.Drawing.Color.Red, Message.Clan)); client.Send(clanp); } } else client.Send(new Message("You are not authorized to continue with this action", System.Drawing.Color.Red, Message.TopLeft)); } break; } case (byte)Game.Clan_Typ.AddEnemy: { Game.Clans clan = client.Entity.Myclan; if (clan != null) { if (client.Entity.ClanRank == 100) { String Enemy = System.Text.Encoding.UTF7.GetString(packet, 18, packet[17]).Trim(new Char[] { '\0' }); UInt32 ClanId = 0; var AllCland = ServerBase.Kernel.ServerClans.Values.ToArray(); foreach (Game.Clans c_clan in AllCland) { if (Enemy == c_clan.ClanName) { ClanId = c_clan.ClanId; break; } } if (ClanId == 0) break; if (!clan.Enemies.ContainsKey(ClanId)) { if (!clan.Allies.ContainsKey(ClanId)) { if (clan.Enemies.Count >= 5) { client.Send(new Message("The Ammount of Enemies You can Have is exceeded", System.Drawing.Color.Red, Message.TopLeft)); break; } Game.Clans tclan; if (ServerBase.Kernel.ServerClans.TryGetValue(ClanId, out tclan)) { if (!clan.Enemies.ContainsKey(tclan.ClanId)) clan.Enemies.Add(tclan.ClanId, tclan); clan.AddRelation(ClanId, ClanRelations.RelationTypes.Enemies); clan.SendMessage(new ClanRelations(clan, ClanRelations.RelationTypes.Enemies)); clan.SendMessage(new Message(String.Format("We Have Enemied the clan {0}", tclan.ClanName), System.Drawing.Color.Red, Message.Clan)); tclan.SendMessage(new Message(String.Format("The Clan {0} Has Made us their Enemy!", clan.ClanName), System.Drawing.Color.Red, Message.Clan)); } } else client.Send(new Message("This clan is one of your alliance, What has gone wrong?", System.Drawing.Color.Red, Message.TopLeft)); } else client.Send(new Message("This clan is Already One of Your Enemies", System.Drawing.Color.Red, Message.TopLeft)); } } break; } default: Console.WriteLine("Clan Type " + packet[4]); break; } break; } #endregion #region SubClass (2320) case 2320: { byte[] Packet = null; switch (packet[4]) { //9 = learn 10= upgrade pro #region [Restore/Switch] case 0: byte To = packet[6]; Packet = new byte[0]; client.Send(packet); if (To > 0)//Switch { /*switch ((Game.ClassID)To) { case Game.ClassID.Wrangler: { switch (client.Entity.SubClasses.Classes[To].Level) { case 9: { //client.Entity.Hitpoints += 1200; //client.Entity.MaxHitpoints += 1200; break; } } break; } }*/ Packet = new byte[0]; Packet = new SubClassShowFull(true) { ID = 1, Class = To, Level = client.Entity.SubClasses.Classes[To].Phase }.ToArray();//client.Entity.SubClasses.Classes[To].Phase client.Send(Packet); //Packet = new SubClass(client.Entity).ToArray(); //client.Send(Packet); client.Entity.SubClass = To; /// client.Entity.SubClassLevel = client.Entity.SubClasses.Classes[To].Level; client.Entity.SubClasses.Active = To; client.Entity.SubClassesActive = To; // Console.WriteLine("s " + To + ""); } else//Restore { client.Entity.SubClass = 0; //client.Entity.SubClassLevel = 0; client.Entity.SubClasses.Active = 0; client.Entity.SubClassesActive = 0; Packet = new SubClassShowFull(true) { ID = 1 }.ToArray(); client.Send(Packet); } client.SendScreen(client.Entity.SpawnPacket, false); break; #endregion #region [Upgrade] case 2: { byte Class = packet[6]; ushort Required = 0; Statement.SubClass Sc = client.Entity.SubClasses.Classes[Class]; #region [Set Required] switch ((Statement.ClassID)Sc.ID) { case Statement.ClassID.MartialArtist: switch (Sc.Level) { case 1: Required = 300; break; case 2: Required = 900; break; case 3: Required = 1800; break; case 4: Required = 2700; break; case 5: Required = 3600; break; case 6: Required = 5100; break; case 7: Required = 6900; break; case 8: Required = 8700; break; case 9: Required = ushort.MaxValue; break; } break; case Statement.ClassID.Warlock: switch (Sc.Level) { case 1: Required = 300; break; case 2: Required = 900; break; case 3: Required = 1800; break; case 4: Required = 2700; break; case 5: Required = 3600; break; case 6: Required = 5100; break; case 7: Required = 6900; break; case 8: Required = 8700; break; case 9: Required = ushort.MaxValue; break; } break; case Statement.ClassID.ChiMaster: switch (Sc.Level) { case 1: Required = 600; break; case 2: Required = 1800; break; case 3: Required = 3600; break; case 4: Required = 5400; break; case 5: Required = 7200; break; case 6: Required = 10200; break; case 7: Required = 13800; break; case 8: Required = 17400; break; case 9: Required = ushort.MaxValue; break; } break; case Statement.ClassID.Sage: switch (Sc.Level) { case 1: Required = 400; break; case 2: Required = 1200; break; case 3: Required = 2400; break; case 4: Required = 3600; break; case 5: Required = 4800; break; case 6: Required = 6800; break; case 7: Required = 9200; break; case 8: Required = 11600; break; case 9: Required = ushort.MaxValue; break; } break; case Statement.ClassID.Apothecary: switch (Sc.Level) { case 1: Required = 100; break; case 2: Required = 200; break; case 3: Required = 300; break; case 4: Required = 400; break; case 5: Required = 500; break; case 6: Required = 1000; break; case 7: Required = 4000; break; case 8: Required = 9000; break; case 9: Required = ushort.MaxValue; break; } break; case Statement.ClassID.Wrangler: case Statement.ClassID.Performer: switch (Sc.Level) { case 1: Required = 400; break; case 2: Required = 1200; break; case 3: Required = 2400; break; case 4: Required = 3600; break; case 5: Required = 4800; break; case 6: Required = 6800; break; case 7: Required = 9200; break; case 8: Required = 11600; break; case 9: Required = ushort.MaxValue; break; } break; } #endregion if (client.Entity.SubClasses.StudyPoints >= Required) { client.Entity.SubClasses.StudyPoints -= Required; client.Entity.SubClasses.Classes[Class].Level++; Packet = new byte[0]; Packet = new SubClassShowFull(true) { ID = 1, Class = Class, Level = client.Entity.SubClasses.Classes[Class].Level }.ToArray(); client.Send(Packet); Packet = new SubClass(client.Entity).ToArray(); client.Send(Packet); Database.SubClassTable.Update(client.Entity, client.Entity.SubClasses.Classes[Class]); //Database.SubClassTable.Update(client); } break; } #endregion #region [Info] case 6: Game.Entity Owner = client.Entity; if (Owner.SubClasses.Classes.Count > 0) { Statement.SubClass[] Classes = new Statement.SubClass[Owner.SubClasses.Classes.Count]; Owner.SubClasses.Classes.Values.CopyTo(Classes, 0); foreach (Statement.SubClass Class in Classes) { if (Class.ID == 9) { for (byte i = 0; i < Class.Phase; i++) { Packet = new byte[0]; Packet = new SubClassShowFull(true) { ID = 4, Class = Class.ID, Level = Class.Level }.ToArray(); client.Send(Packet); } continue; } Packet = new byte[0]; Packet = new SubClassShowFull(true) { ID = 4, Class = Class.ID, Level = Class.Level }.ToArray(); client.Send(Packet); } } Packet = new SubClass(client.Entity).ToArray(); client.Send(Packet); break; #endregion #region [Learn] case 9://class type packet6 byte Class1 = packet[6]; if (PacketHandler.PassLearn((byte)packet[6], client.Entity)) { if (!client.Entity.SubClasses.Classes.ContainsKey((byte)packet[6])) { { client.Entity.SubClasses.Classes.Add((byte)packet[6], new PhoenixProject.Statement.SubClass() { ID = (byte)packet[6], Level = 1, Phase = 1 }); PhoenixProject.Database.SubClassTable.Insert(client.Entity, (byte)packet[6]); Packet = new byte[0]; Packet = new SubClassShowFull(true) { ID = 1, Class = Class1, Level = client.Entity.SubClasses.Classes[Class1].Level }.ToArray(); client.Send(Packet); Packet = new SubClass(client.Entity).ToArray(); client.Send(Packet); } } } break; #endregion #region [UpgradePro] case 10: byte Class2 = packet[6]; if (client.Entity.SubClasses.Classes[(byte)Class2].Phase < client.Entity.SubClasses.Classes[(byte)Class2].Level) { client.Entity.SubClasses.Classes[(byte)Class2].Phase++; Database.SubClassTable.Update(client.Entity, client.Entity.SubClasses.Classes[(byte)Class2]); Packet = new byte[0]; Packet = new SubClassShowFull(true) { ID = 1, Class = Class2, Level = client.Entity.SubClasses.Classes[Class2].Level }.ToArray(); client.Send(Packet); Packet = new SubClass(client.Entity).ToArray(); client.Send(Packet); } break; #endregion default: Console.WriteLine("Unknown 2320 packet type " + packet[4]); break; } break; } #endregion #region ItemAdding Stabilization case 1038: { ItemAddingStabilization stabilization = new ItemAddingStabilization(false); stabilization.Deserialize(packet); StabilazeArtifact(stabilization, client); break; } #endregion #region Data (10010) case 10010: { if (client.Action != 2) return; Data gData = new Data(false); gData.Deserialize(packet); if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.Coder) { client.Send(new Message("Data ID: " + gData.ID, System.Drawing.Color.CadetBlue, Message.Talk)); } switch (gData.ID) { /*case Data.AllowAnimation: { LoginMessages(client); client.Send(new FlowerPacket(client.Entity.Flowers)); //Database.SubClassTable.Load(client.Entity); ClientEquip equips = new ClientEquip(); equips.DoEquips(client); client.Send(equips); client.Send(packet); } break;*/ #region Appearance case 0xb2: { byte appearance = (byte)gData.dwParam; Data app = new Data(true) { ID = 0xb2, UID = client.Entity.UID, dwParam = appearance, wParam1 = client.Entity.X, wParam2 = client.Entity.Y }; client.Send(gData); client.Send(app); client.SendScreen(gData, true); client.SendScreen(app, true); return; } #endregion case 132: { // Console.WriteLine(" this "); client.Disconnect(); break; } /* case Data.KimoGearDis: { Console.WriteLine("data " + gData.dwParam + ""); break; }*/ case Data.UpdateProf: if (client != null) { ushort UplevelProficiency; UplevelProficiency = (ushort)gData.dwParam; var prof = client.Proficiencies[UplevelProficiency]; if ((prof.Level >= 1) && (prof.Level <= 19)) { if (prof.Level == 19 && client.Entity.ConquerPoints >= 1420) { client.Entity.ConquerPoints -= 1420; prof.Level++; prof.Experience = 0; prof.Send(client); } if (prof.Level == 18 && client.Entity.ConquerPoints >= 1154) { client.Entity.ConquerPoints -= 1154; prof.Level++; prof.Experience = 0; prof.Send(client); } if (prof.Level == 17 && client.Entity.ConquerPoints >= 799) { client.Entity.ConquerPoints -= 799; prof.Level++; prof.Experience = 0; prof.Send(client); } if (prof.Level == 16 && client.Entity.ConquerPoints >= 548) { client.Entity.ConquerPoints -= 548; prof.Level++; prof.Experience = 0; prof.Send(client); } if (prof.Level == 15 && client.Entity.ConquerPoints >= 375) { client.Entity.ConquerPoints -= 375; prof.Level++; prof.Experience = 0; prof.Send(client); } if (prof.Level >= 11 && prof.Level <= 14 && client.Entity.ConquerPoints >= 324) { client.Entity.ConquerPoints -= 324; prof.Level++; prof.Experience = 0; prof.Send(client); } if (prof.Level == 10 && client.Entity.ConquerPoints >= 270) { client.Entity.ConquerPoints -= 270; prof.Level++; prof.Experience = 0; prof.Send(client); } if (prof.Level == 9 && client.Entity.ConquerPoints >= 162) { client.Entity.ConquerPoints -= 162; prof.Level++; prof.Experience = 0; prof.Send(client); } if (prof.Level == 8 && client.Entity.ConquerPoints >= 135) { client.Entity.ConquerPoints -= 135; prof.Level++; prof.Experience = 0; prof.Send(client); } if (prof.Level == 7 && client.Entity.ConquerPoints >= 81) { client.Entity.ConquerPoints -= 81; prof.Level++; prof.Experience = 0; prof.Send(client); } if (prof.Level == 6 && client.Entity.ConquerPoints >= 54) { client.Entity.ConquerPoints -= 54; prof.Level++; prof.Experience = 0; prof.Send(client); } if (prof.Level >= 2 && prof.Level <= 5 && client.Entity.ConquerPoints >= 27) { client.Entity.ConquerPoints -= 27; prof.Level++; prof.Experience = 0; prof.Send(client); } if (prof.Level == 1) { client.Entity.ConquerPoints -= 22; prof.Level++; prof.Experience = 0; prof.Send(client); } } } else { //break; } break; case Data.UpdateSpell: if (client != null) { ushort UplevelProficiency; UplevelProficiency = (ushort)gData.dwParam; if (client.Spells.ContainsKey(UplevelProficiency)) { var prof = client.Spells[UplevelProficiency]; if (prof != null) { int num2 = (int)Database.SpellTable.SpellInformations[UplevelProficiency][prof.Level].CPUpgradeRatio; int num3 = Math.Max((int)prof.Experience, 1); int num4 = 100 - ((int)(((ulong)num3) / ((ulong)Math.Max((uint)(Database.SpellTable.SpellInformations[UplevelProficiency][prof.Level].NeedExperience / 100), (uint)1)))); uint num = (uint)(((double)((num2 * num4) / 100)) / 22.2); if (client.Entity.ConquerPoints >= num) { client.Entity.ConquerPoints -= num; // Console.WriteLine(" " + num + ""); prof.Level++; prof.Experience = 0; prof.Send(client); break; } else { Network.GamePackets.NpcReply npc = new Network.GamePackets.NpcReply(6, "Sorry you dont have " + num + " cps i cant help you!"); npc.OptionID = 255; client.Send(npc.ToArray()); break; //sorry you dont have 100 cps } } } break; } else { //break; } break; case Data.SwingPickaxe: client.Mining = true; break; case Data.Revive: Revive(gData, client); break; case Data.UsePortal: UsePortal(gData, client); break; case Data.ChangePKMode: ChangePKMode(gData, client); break; case Data.ChangeAction: ChangeAction(gData, client); break; case Data.ChangeDirection: ChangeDirection(gData, client); break; case Data.Hotkeys: client.Send(packet); break; case Data.ConfirmSpells: if (client.Spells != null) foreach (Interfaces.ISkill spell in client.Spells.Values) if (spell.ID != 3060) spell.Send(client); client.Send(packet); break; case Data.ConfirmProficiencies: if (client.Proficiencies != null) foreach (Interfaces.IProf proficiency in client.Proficiencies.Values) proficiency.Send(client); client.Send(packet); break; case Data.ConfirmGuild: client.Send(packet); break; case Data.ConfirmFriends: #region Friends/Enemy/TradePartners/Apprentices Message msg2 = new Message("Your friend, " + client.Entity.Name + ", has logged on.", System.Drawing.Color.Red, Message.TopLeft); foreach (Game.ConquerStructures.Society.Friend friend in client.Friends.Values) { if (friend.IsOnline) { var pckt = new KnownPersons(true) { UID = client.Entity.UID, Type = KnownPersons.RemovePerson, Name = client.Entity.Name, Online = true }; friend.Client.Send(pckt); pckt.Type = KnownPersons.AddFriend; friend.Client.Send(pckt); friend.Client.Send(msg2); } client.Send(new KnownPersons(true) { UID = friend.ID, Type = KnownPersons.AddFriend, Name = friend.Name, Online = friend.IsOnline }); if (friend.Message != "") { client.Send(new Message(friend.Message, client.Entity.Name, friend.Name, System.Drawing.Color.Red, Message.Whisper)); Database.KnownPersons.UpdateMessageOnFriend(friend.ID, client.Entity.UID, ""); } } foreach (Game.ConquerStructures.Society.Enemy enemy in client.Enemy.Values) { client.Send(new KnownPersons(true) { UID = enemy.ID, Type = KnownPersons.AddEnemy, Name = enemy.Name, Online = enemy.IsOnline }); } Message msg3 = new Message("Your partner, " + client.Entity.Name + ", has logged in.", System.Drawing.Color.Red, Message.TopLeft); foreach (Game.ConquerStructures.Society.TradePartner partner in client.Partners.Values) { if (partner.IsOnline) { var packet3 = new TradePartner(true) { UID = client.Entity.UID, Type = TradePartner.BreakPartnership, Name = client.Entity.Name, HoursLeft = (int)(new TimeSpan(partner.ProbationStartedOn.AddDays(3).Ticks).TotalHours - new TimeSpan(DateTime.Now.Ticks).TotalHours), Online = true }; partner.Client.Send(packet3); packet3.Type = TradePartner.AddPartner; partner.Client.Send(packet3); partner.Client.Send(msg3); } var packet4 = new TradePartner(true) { UID = partner.ID, Type = TradePartner.AddPartner, Name = partner.Name, HoursLeft = (int)(new TimeSpan(partner.ProbationStartedOn.AddDays(3).Ticks).TotalHours - new TimeSpan(DateTime.Now.Ticks).TotalHours), Online = partner.IsOnline }; client.Send(packet4); } foreach (Game.ConquerStructures.Society.Apprentice appr in client.Apprentices.Values) { if (appr.IsOnline) { ApprenticeInformation AppInfo = new ApprenticeInformation(); AppInfo.Apprentice_ID = appr.ID; AppInfo.Apprentice_Level = appr.Client.Entity.Level; AppInfo.Apprentice_Class = appr.Client.Entity.Class; AppInfo.Apprentice_PkPoints = appr.Client.Entity.PKPoints; AppInfo.Apprentice_Experience = appr.Actual_Experience; AppInfo.Apprentice_Composing = appr.Actual_Plus; AppInfo.Apprentice_Blessing = appr.Actual_HeavenBlessing; AppInfo.Apprentice_Name = appr.Name; AppInfo.Apprentice_Online = true; AppInfo.Apprentice_Spouse_Name = appr.Client.Entity.Spouse; AppInfo.Enrole_date = appr.EnroleDate; AppInfo.Mentor_ID = client.Entity.UID; AppInfo.Mentor_Mesh = client.Entity.Mesh; AppInfo.Mentor_Name = client.Entity.Name; AppInfo.Type = 2; client.Send(AppInfo); MentorInformation Information = new MentorInformation(true); Information.Mentor_Type = 1; Information.Mentor_ID = client.Entity.UID; Information.Apprentice_ID = appr.ID; Information.Enrole_Date = appr.EnroleDate; Information.Mentor_Level = client.Entity.Level; Information.Mentor_Class = client.Entity.Class; Information.Mentor_PkPoints = client.Entity.PKPoints; Information.Mentor_Mesh = client.Entity.Mesh; Information.Mentor_Online = true; Information.Shared_Battle_Power = (uint)(((client.Entity.BattlePower - client.Entity.ExtraBattlePower) - (appr.Client.Entity.BattlePower - appr.Client.Entity.ExtraBattlePower)) / 3.3F); Information.String_Count = 3; Information.Mentor_Name = client.Entity.Name; Information.Apprentice_Name = appr.Name; Information.Mentor_Spouse_Name = client.Entity.Spouse; appr.Client.ReviewMentor(); appr.Client.Send(Information); } else { ApprenticeInformation AppInfo = new ApprenticeInformation(); AppInfo.Apprentice_ID = appr.ID; AppInfo.Apprentice_Name = appr.Name; AppInfo.Apprentice_Online = false; AppInfo.Enrole_date = appr.EnroleDate; AppInfo.Mentor_ID = client.Entity.UID; AppInfo.Mentor_Mesh = client.Entity.Mesh; AppInfo.Mentor_Name = client.Entity.Name; AppInfo.Type = 2; client.Send(AppInfo); } } #endregion client.Send(packet); break; case Data.EndTeleport: break; case Data.GetSurroundings: if (client.Booth != null) { client.Entity.TransformationID = 0; client.Booth.Remove(); client.Booth = null; } GetSurroundings(client); client.Send(new MapStatus() { BaseID = (ushort)client.Map.BaseID, ID = (uint)client.Map.ID, Status = Database.MapsTable.MapInformations[client.Map.ID].Status }); Game.Weather.CurrentWeatherBase.Send(client); client.Send(gData); break; case Data.SetLocation: SetLocation(gData, client); client.Entity.MapRegion = Region.Region.FindRegion((uint)client.Map.BaseID, client.Entity.X, client.Entity.Y); break; case Data.Jump: { PlayerJump(gData, client); break; } case Data.BlueCountdown: { // PlayerJump(gData, client); break; } case Data.UnknownEntity: { #region UnknownEntity Client.GameState pClient = null; if (ServerBase.Kernel.GamePool.TryGetValue(gData.dwParam, out pClient)) { if (ServerBase.Kernel.GetDistance(pClient.Entity.X, pClient.Entity.Y, client.Entity.X, client.Entity.Y) <= ServerBase.Constants.pScreenDistance && client.Map.ID == pClient.Map.ID) { if (pClient.Guild != null) pClient.Guild.SendName(client); if (client.Guild != null) client.Guild.SendName(pClient); if (pClient.Entity.UID != client.Entity.UID) { if (pClient.Map.ID == client.Map.ID) { if (pClient.Map.BaseID == 700) { if (client.QualifierGroup != null) { if (pClient.QualifierGroup != null) { client.Entity.SendSpawn(pClient, false); pClient.Entity.SendSpawn(client, false); } else { client.Entity.SendSpawn(pClient, false); client.Screen.Add(pClient.Entity); } } else { if (pClient.QualifierGroup != null) { pClient.Entity.SendSpawn(client, false); pClient.Screen.Add(client.Entity); } else { client.Entity.SendSpawn(pClient, false); pClient.Entity.SendSpawn(client, false); } } } else { client.Entity.SendSpawn(pClient, false); pClient.Entity.SendSpawn(client, false); } } } } } else { Game.Entity monster = null; for (int x = 0; x < client.Map.Entities.Count; x++) { if (x >= client.Map.Entities.Count) break; if (client.Map.Entities[x] != null) { if (client.Map.Entities[x].UID == gData.dwParam) { monster = client.Map.Entities[x]; break; } } } if (monster != null) { if (ServerBase.Kernel.GetDistance(monster.X, monster.Y, client.Entity.X, client.Entity.Y) <= ServerBase.Constants.pScreenDistance) { monster.SendSpawn(client, false); } } for (int x = 0; x < client.Map.Companions.Count; x++) { if (x >= client.Map.Companions.Count) break; if (client.Map.Companions[x] != null) { if (client.Map.Companions[x].UID == gData.dwParam) { monster = client.Map.Companions[x]; break; } } } if (monster != null) { if (ServerBase.Kernel.GetDistance(monster.X, monster.Y, client.Entity.X, client.Entity.Y) <= ServerBase.Constants.pScreenDistance) { monster.SendSpawn(client, false); } } } #endregion break; } case Data.CompleteLogin: { client.MonsterHunterStats = new MonsterHunterStats(client); //client.MonsterHunterStats.Kills = (ushort)client.Entity.Status4; // client.MonsterHunterStats.Load(client); LoginMessages(client); Network.GamePackets.Weather weather = new Network.GamePackets.Weather(true); weather.WeatherType = (uint)Program.WeatherType; weather.Intensity = 100; weather.Appearence = 2; weather.Direction = 4; client.Send(new FlowerPacket(client.Entity.Flowers)); client.Send(new FlowerPacket3(client)); /*ClientEquip equips = new ClientEquip(); equips.DoEquips(client); client.Send(equips);*/ client.Send(packet); client.Send(weather); break; } case Data.ChangeFace: ChangeFace(gData, client); break; case Data.ObserveEquipment: ObserveEquipment2(gData, client); break; case Data.ObserveEquipment2: ObserveEquipment(gData, client); break; case 408: { /* if (!client.ChangeGear) { Game.KimoChangeGear.Load(client); } else { Game.KimoChangeGear.Load2(client); } client.ChangeGear = true;*/ break; } case Data.ObserveKnownPerson: ObserveEquipment(gData, client); break; case Data.ViewEnemyInfo: { if (client.Enemy.ContainsKey(gData.dwParam)) { if (client.Enemy[gData.dwParam].IsOnline) { KnownPersonInfo info = new KnownPersonInfo(true); info.Fill(client.Enemy[gData.dwParam], true, false); if (client.Enemy[gData.dwParam].Client.Guild != null) client.Enemy[gData.dwParam].Client.Guild.SendName(client); client.Send(info); } } break; } case Data.ViewFriendInfo: { if (client.Friends.ContainsKey(gData.dwParam)) { if (client.Friends[gData.dwParam].IsOnline) { KnownPersonInfo info = new KnownPersonInfo(true); info.Fill(client.Friends[gData.dwParam], false, false); if (client.Friends[gData.dwParam].Client.Guild != null) client.Friends[gData.dwParam].Client.Guild.SendName(client); client.Send(info); } } break; } case Data.ViewPartnerInfo: { if (client.Partners.ContainsKey(gData.dwParam)) { if (client.Partners[gData.dwParam].IsOnline) { TradePartnerInfo info = new TradePartnerInfo(true); info.Fill(client.Partners[gData.dwParam]); if (client.Partners[gData.dwParam].Client.Guild != null) client.Partners[gData.dwParam].Client.Guild.SendName(client); client.Send(info); } } break; } case Data.EndFly: client.Entity.RemoveFlag(Update.Flags.Fly); break; case Data.EndTransformation: client.Entity.Untransform(); break; case Data.XPListEnd: case Data.Die: break; case Data.Confiscator: client.Send(packet); break; case Data.OwnBooth: { client.Booth = new PhoenixProject.Game.ConquerStructures.Booth(client, gData); client.Send(new Data(true) { ID = Data.ChangeAction, UID = client.Entity.UID, dwParam = 0 }); break; } case Data.Away: { if (client.Entity.Away == 0) client.Entity.Away = 1; else client.Entity.Away = 0; client.SendScreenSpawn(client.Entity, false); break; } case Data.DeleteCharacter: { if ((client.WarehousePW == null || client.WarehousePW == "" || client.WarehousePW == "0" && gData.dwParam == 0) || (client.WarehousePW == gData.dwParam.ToString())) { client.Account.TempID = 400; client.Disconnect(); } break; } case Data.TeamSearchForMember: { if (client.Team != null) { Client.GameState Client = null; if (!client.Team.IsTeammate(gData.UID)) return; if (Kernel.GamePool.TryGetValue(gData.UID, out Client)) { // Console.WriteLine(" " + gData.dwParam + ""); gData.wParam1 = Client.Entity.X; gData.wParam2 = Client.Entity.Y; gData.Send(client); } } break; } default: if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.ProjectManager || client.Account.State == PhoenixProject.Database.AccountTable.AccountState.Coder) client.Send(new Message("Unknown generaldata id: " + gData.ID, System.Drawing.Color.CadetBlue, Message.Talk)); break; } break; } #endregion #region TimePacket (1033) case 1033: { ServerTime time = new ServerTime(); time.Year = (uint)DateTime.Now.Year; time.Month = (uint)DateTime.Now.Month; time.DayOfYear = (uint)DateTime.Now.DayOfYear; time.DayOfMonth = (uint)DateTime.Now.Day; time.Hour = (uint)DateTime.Now.Hour; time.Minute = (uint)DateTime.Now.Minute; time.Second = (uint)DateTime.Now.Second; client.Send(time); break; } #endregion #region MemoryAgate case 2110: { uint ItemUID = BitConverter.ToUInt32(packet, 8); switch (packet[4]) { case 1: { if (client.Map.IsDynamic()) return; if (ServerBase.Constants.revnomap.Contains(client.Entity.MapID)) return; Interfaces.IConquerItem Item = null; if (client.Inventory.TryGetItem(ItemUID, out Item)) { if (Item.Agate_map.ContainsKey(packet[12])) { Item.Agate_map[(uint)packet[12]] = client.Entity.MapID + "~" + client.Entity.X + "~" + client.Entity.Y; Database.ConquerItemTable.UpdateItemAgate(Item); Item.SendAgate(client); break; } if (packet[12] > Item.Agate_map.Count) { Item.Agate_map.Add((byte)(Item.Agate_map.Count), client.Entity.MapID + "~" + client.Entity.X + "~" + client.Entity.Y); Database.ConquerItemTable.UpdateItemAgate(Item); Item.SendAgate(client); break; } else { if (!Item.Agate_map.ContainsKey(packet[12])) { Item.Agate_map.Add(packet[12], client.Entity.MapID + "~" + client.Entity.X + "~" + client.Entity.Y); Database.ConquerItemTable.UpdateItemAgate(Item); Item.SendAgate(client); } break; } } break; } case 3: { if (client.Map.IsDynamic()) return; if (ServerBase.Constants.revnomap.Contains(client.Entity.MapID)) return; Interfaces.IConquerItem Item = null; if (client.Inventory.TryGetItem(ItemUID, out Item)) { if (Item.Agate_map.ContainsKey(packet[12])) { if (ServerBase.Constants.MemoryAgateNotAllowedMap.Contains(ushort.Parse(Item.Agate_map[packet[12]].Split('~')[0].ToString()))) { return; } /*if (ushort.Parse(Item.Agate_map[packet[12]].Split('~')[0].ToString()) == 1038) return; if (ushort.Parse(Item.Agate_map[packet[12]].Split('~')[0].ToString()) == 6001) return;*/ client.Entity.Teleport(ushort.Parse(Item.Agate_map[packet[12]].Split('~')[0].ToString()) , ushort.Parse(Item.Agate_map[packet[12]].Split('~')[1].ToString()) , ushort.Parse(Item.Agate_map[packet[12]].Split('~')[2].ToString())); Item.Durability--; Item.SendAgate(client); Database.ConquerItemTable.UpdateItemAgate(Item); } } break; } case 4: { if (ServerBase.Constants.MemoryAgateNotAllowedMap.Contains(client.Entity.MapID)) return; Interfaces.IConquerItem Item = null; if (client.Inventory.TryGetItem(ItemUID, out Item)) { uint cost = (uint)(Item.MaximDurability - Item.Durability) / 2; if (cost == 0) cost = 1; if (client.Entity.ConquerPoints > cost) { client.Entity.ConquerPoints -= cost; Item.Durability = Item.MaximDurability; Item.SendAgate(client); Database.ConquerItemTable.UpdateItemAgate(Item); } } break; } } break; } #endregion #region Ayudante case 1321: case 1322: case 1136: case 1320: client.Send(packet); break; case 2261: { client.Send(packet); } break; #endregion #region Advertise case 2226: { byte[] firstpacket = new byte[724]{0xCC,0x02,0xB2,0x08,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00//;̲0x,0x0x0x ,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x67,0x01,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x,0xg0x0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x75,0x83,0x83,0x50//;0x0x0x,0x,0xPuP ,0x75,0x83,0x83,0x50,0x61,0x24,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;uPa$$0x0x0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x44//;0x0x0x0x0xD ,0x65,0x76,0x69,0x6C,0x5F,0x44,0x6F,0x67,0x67,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;evil_Dogg0x0x,0x ,0x01,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x81,0xC3,0x15,0x00,0x00,0x00,0x00,0x00//;0x0xÃ0x,0x,0x ,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;,0x0x0x0x0x,0x ,0x7E,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;~0x0x0x0x,0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x41,0x4F,0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0xAOW0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;0x0x0x0x0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x61,0x61,0x6E,0x00,0x00,0x00,0x00,0x00//;0x0x,0xsaan0x,0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x0D,0x00,0x00,0x00//;0x0x,0x,0x0x0x ,0xA5,0x0C,0x0E,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00//;¥0x,0x,0x,0x0x,0x,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x51,0x53,0x65//;0x0x0x0xTQSe ,0x72,0x76,0x65,0x72};//;rver client.Send(firstpacket); byte[] secondpacket = new byte[724]{0xCC,0x02,0xB2,0x08,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00//;̲//////,0x//,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x01,0x00,0x00,0x00,0x00,0x00,0x00//;////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x2A,0x41,0x75,0x74//;//////,0x`*Aut ,0x68,0x65,0x6E,0x74,0x69,0x63,0x2A,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;hentic*`//// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4E//;//////,0xN ,0x61,0x72,0x72,0x63,0x6F,0x74,0x69,0x63,0x7A,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;arrcoticz//,0x ,0x01,0x00,0x00,0x00,0x59,0x00,0x00,0x00,0xDF,0xA3,0x59,0x00,0x00,0x00,0x00,0x00//;//,0xY//,0xߣY////,0x ,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;,0x////,0x ,0x7B,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;{////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x7E,0x2A,0x44,0x65,0x5F,0x41,0x5F,0x74,0x68,0x2A,0x7E,0x00,0x00//;//,0x~*De_A_th*~// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//;//////// ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5E,0x5E,0x5E,0x5E,0x5E,0x32,0x5E,0x5E,0x5E//;//,0x^^^^^2^^^ ,0x5E,0x5E,0x5E,0x5E,0x5E,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00//;^^^^^//,0x//,0x//,0x ,0x10,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00//;'//,0x////,0x ,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x51,0x53,0x65//;////TQSe ,0x72,0x76,0x65,0x72};//////////////;rver client.Send(secondpacket); break; } #endregion #region OneArmedBandit 1351 AboRagab/Kimo/Amro kan bys2f case 1351: { if (packet[4] == 0) { if (client.Entity.ConquerPoints >= 100 * packet[5]) { client.Send(packet); Sendonearmed(client); //PrintPacket(packet); client.Entity.ConquerPoints -= (uint)(100 * packet[5]); //Console.WriteLine("cps " +(uint)(100 * packet[5])); } } else { Sendonearmed2(client); Prize3X(client); client.Entity.ConquerPoints += client.Entity.CPSS * packet[5]; //Console.WriteLine("Win " + (uint)(client.Entity.CPSS * packet[5])); //PrintPacket(packet); } break; } #endregion /*case 1044: PrintPacket(packet); client.Send(packet); break;*/ /*#region PK Explorer (2220) case 2220: { PkExplorer pk = new PkExplorer(packet, client); pk.SubType = 1; client.Send(pk.Build()); break; } #endregion*/ /* #region Cases de Packs case 1034: case 1037: { client.Send(packet); break; } case 1135: client.Send(packet); break; case 1134: { switch (ID2) { case 1: client.Send(packet); break; case 2: client.Send(packet); break; case 3: client.Send(packet); break; case 4: client.Send(packet); break; case 5: client.Send(packet); break; case 6: client.Send(packet); break; case 7: client.Send(packet); break; case 8: client.Send(packet); break; case 9: client.Send(packet); break; case 10: client.Send(packet); break; } break; } #endregion*/ /*case 1134: { PhoenixProject.Network.GamePackets.Quest.QuestInfo.Handle(packet, client); break; } case 1135: { PhoenixProject.Network.GamePackets.Quest.QuestQuery2.Handle(packet, client); break; }*/ /* case 1136: { //PrintPacket(packet); client.Send(packet); // PrintPacket(packet); break; }*/ default: { if (client.Account.State == PhoenixProject.Database.AccountTable.AccountState.Coder) { ushort key = BitConverter.ToUInt16(packet, 2); //PrintPacket(packet); Console.WriteLine("[Kimo]=> Unknown Packet: " + key + ""); // Console.WriteLine("[Kimo]=> Unknown Packet: " + key + " " + PacketConstructor.Dump(packet) + ""); } break; } } } } catch (Exception e) { Program.SaveException(e); } }
public static void LuckyBox(uint npcID, Client.GameState h, bool jade = false) { if (h.LotteryEntries < 10 || jade) { if (jade || h.Inventory.Contains(0xadb50, 3)) { if (!jade) { h.LotteryEntries++; } else { h.Entity.LotteryJadeAdd++; } if ((npcID != 0) && !jade) { _String packet = new _String(true); packet.UID = npcID; packet.TextsCount = 1; packet.Type = _String.Effect; packet.Texts.Add("lottery"); h.Send(packet); if (h.Entity.LotteryItemID > 0) { //GiveLotteryPrize(h); } } tryagain: int rand = PhoenixProject.ServerBase.Kernel.Random.Next(PhoenixProject.Database.LotteryTable.LotteryItems.Count); var item = PhoenixProject.Database.LotteryTable.LotteryItems[rand]; var Itemd = PhoenixProject.Database.ConquerItemInformation.BaseInformations[item.ID]; if (Itemd == null) goto tryagain; if (PhoenixProject.ServerBase.Kernel.Rate(item.Rank, item.Chance) && PhoenixProject.ServerBase.Kernel.Rate(item.Rank, 35 - item.Rank)) { IConquerItem Item = new ConquerItem(true); Item.ID = item.ID; h.Entity.LotteryItemID = item.ID; h.Entity.LotteryItemPlus = item.Plus; h.Entity.LotteryItemColor = (byte)PhoenixProject.Game.Enums.Color.Blue; Item.Plus = item.Plus; Item.Color = PhoenixProject.Game.Enums.Color.Blue; if (item.Sockets > 0) { Item.SocketOne = PhoenixProject.Game.Enums.Gem.EmptySocket; h.Entity.LotteryItemSoc1 = 255; } if (item.Sockets > 1) { Item.SocketTwo = PhoenixProject.Game.Enums.Gem.EmptySocket; h.Entity.LotteryItemSoc2 = 255; } Item.Durability = Item.MaximDurability = Itemd.Durability; // h.Inventory.Add(Item, Game.Enums.ItemUse.Add); //h.Entity.LotteryPrize = Item; if ((Item != null)) { if (!jade) { if (h.Inventory.Contains(0xadb50, 3)) { h.Inventory.Remove(0xadb50, 3); } else { return; } } else { if (h.Inventory.Contains(0xadb50, 1)) { h.Inventory.Remove(0xadb50, 1); } else { return; } } h.Entity.LotteryPrize = Item; PhoenixProject.Network.GamePackets.Lottery lottery = new PhoenixProject.Network.GamePackets.Lottery { Chances = (byte)(10 - h.LotteryEntries), Color = Item.Color, Plus = Item.Plus, Prize = Item.ID, SocketOne = (byte)Item.SocketOne, SocketTwo = (byte)Item.SocketTwo, AddJadeChances = h.Entity.LotteryJadeAdd, Type = PhoenixProject.Network.GamePackets.Lottery.LotteryTypes.ShowGUI }; h.Send((byte[])lottery); } else { // string msg = string.Format("Error generating lottery prize.", h.Entity.Name, h.Entity.Name); // h.Send(new Message(msg, System.Drawing.Color.White, Message.Talk)); } } else { goto tryagain; } } else { string msg = string.Format("You need 3 Small Lottery Tickets to try at the lottery!", h.Entity.Name, h.Entity.Name); h.Send(new Message(msg, System.Drawing.Color.White, Message.Talk)); } } else { string msg = string.Format("You have used up all your lottery attempts today! But if you have a LotteryTicket you can exchange it for another try from Lady Luck!", h.Entity.Name, h.Entity.Name); h.Send(new Message(msg, System.Drawing.Color.White, Message.Talk)); } }