المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : لاول مره علي الانترنت كوست TowerOfMystery


Hassan Emprator
2019-10-23, 05:23 PM
بسم الله و الصلاة و السلام علي رسول الله

موضوعنا النهرده سهل و بسيط و هوه اضافة كوست TowerOfMystery لعشاق السيرفرات الصعبه

اول حاجه
Npc.cs


#region TowerOfMystery
case 4020:
{
switch (client.ActiveNpc)
{
#region FieryDragon
case 19166:
{
switch (npcRequest.OptionID)
{
case 0:
{
dialog.Text("Have you been to the Fiery Dragon region? The land was home to the Bright Tribe.");
dialog.Text("~I wonder what it looks like now.");

dialog.Option("Send~me~to~Fiery~Dragon.", 1);
dialog.Option("You`ll~return~home~soon.", 255);
dialog.Send();
break;
}
case 1:
{
Data datapacket = new Data(true);
datapacket.UID = client.Entity.UID;
datapacket.ID = 162;
datapacket.dwParam = 4020;
datapacket.Facing = (Game.Enums.ConquerAngle)client.Entity.Facing;
datapacket.wParam1 = 73;
datapacket.wParam2 = 98;
client.Send(datapacket);
break;
}
}
break;
}
#endregion
#region Conductress
case 19231:
{
switch (npcRequest.OptionID)
{
case 0:
{
dialog.Text("Where do you want to go? I may be able to help you.");

dialog.Option("Twin~City.", 1);
dialog.Option("Market.", 2);
dialog.Option("Nothing.", 255);
dialog.Send();
break;
}
case 1:
client.Entity.Teleport(1002, 252, 234);
break;
case 2:
client.Entity.Teleport(1036, 254, 152);
break;
}
break;
}
#endregion
#region TowerKeeper
case 19127:
{
switch (npcRequest.OptionID)
{
case 0:
{
if (client.Entity.TOM == 0)
{
dialog.Text("You must be here to challenge the Tower of Mystery. Since the tower is extremely dangerous, I suggest you to");
dialog.Text("~make adequate preparations, and team up with your friends for the challenge. If you`re ready, I`ll lead you into the Mystery.");
dialog.Text("You can unlock Elite mode after completing all floors of the tower at Common mode.");

dialog.Option("Start~the~challenge.~(Common)", 1);
dialog.Option("Could~you~tell~me~more~details?", 2);
dialog.Option("I`ll~talk~to~you~later.", 255);
dialog.Send();
}
else
{
dialog.Text("You can challenge any floor of the tower every day, but you can only claim the reward up to 3 times in a day.");
dialog.Text(" Today`s challenge mode: Common");
dialog.Text(" Remaining challenge chances: " + client.Entity.TOMRC + "");
if (client.Entity.TOM == 1)
dialog.Option("Continue~to~challenge~1F.", 101);
if (client.Entity.TOM == 2)
dialog.Option("Continue~to~challenge~2F.", 102);
if (client.Entity.TOM == 3)
dialog.Option("Continue~to~challenge~3F.", 103);
if (client.Entity.TOM == 4)
dialog.Option("Continue~to~challenge~4F.", 104);
if (client.Entity.TOM == 5)
dialog.Option("Continue~to~challenge~5F.", 105);
if (client.Entity.TOM == 6)
dialog.Option("Continue~to~challenge~6F.", 106);
if (client.Entity.TOM == 7)
dialog.Option("Continue~to~challenge~7F.", 107);
if (client.Entity.TOM == 8)
dialog.Option("Continue~to~challenge~8F.", 108);
if (client.Entity.TOM == 9)
dialog.Option("Continue~to~challenge~9F.", 109);
dialog.Option("Choose~a~floor~to~challenge.", 200);
dialog.Option("I`ll~talk~to~you~later.", 255);
dialog.Send();



}
break;
}
case 200:
{
dialog.Text("Which floor of the tower would you like to challenge now?");
if (client.Entity.TOM >= 1)
dialog.Option("Floor~1.", 201);
if (client.Entity.TOM >= 2)
dialog.Option("Floor~2.", 202);
if (client.Entity.TOM >= 3)
dialog.Option("Floor~3.", 203);
if (client.Entity.TOM >= 4)
dialog.Option("Floor~4.", 204);
if (client.Entity.TOM >= 5)
dialog.Option("Floor~5.", 205);
if (client.Entity.TOM >= 6)
dialog.Option("Floor~6.", 206);
if (client.Entity.TOM >= 7)
dialog.Option("Floor~7.", 207);
if (client.Entity.TOM >= 8)
dialog.Option("Floor~8.", 208);
if (client.Entity.TOM >= 9)
dialog.Option("Floor~9.", 209);
dialog.Option("Let~me~think~about~it.", 255);
dialog.Send();
break;
}
case 201:
case 202:
case 203:
case 204:
case 205:
case 206:
case 207:
case 208:
case 209:
{
dialog.Text("Okay, you`ve selected a floor. If you want to challenge this floor in person,");
dialog.Text("~I`ll send you there. While if you want to enable `Sweep` function,");
dialog.Text("~you can directly get the reward without challenging it in person. So, what do you say?");

dialog.Option("Challenge~it~in~person.", (byte)(npcRequest.OptionID + 10));
dialog.Option("Enable~`Sweep`.", (byte)(npcRequest.OptionID + 20));
dialog.Option("I~need~to~think~about~it.", 255);
dialog.Send();
break;
}
case 221:
case 222:
case 223:
case 224:
case 225:
case 226:
case 227:
case 228:
case 229:
{
if (client.Entity.TOMQ == 0 || client.Entity.TOMQ == 255)
client.Entity.TOMQ = (byte)Kernel.Random.Next(1, 6);
dialog.Text(" Bright Tribe`s Reward ");
if (client.Entity.TOMQ == 1)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xffffffff desc=Item#Reward:#a#Blazing#CP#Fragment,#30-min#EXP#Pack>Normal</tip>");
dialog.Text(" <tip color=0xffffffff desc=Item#Reward:#a#Blazing#CP#Fragment,#30-min#EXP#Pack>1-Star</tip>");
dialog.Text(" **************************************");
}
if (client.Entity.TOMQ == 2)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xff5d86c9 desc=Item#Reward:#a#Blazing#CP#Fragment,#60-min#EXP#Pack>Refined</tip>");
dialog.Text(" <tip color=0xff5d86c9 desc=Item#Reward:#a#Blazing#CP#Fragment,#60-min#EXP#Pack>2-PerfectionLevel</tip>");
dialog.Text(" **************************************");
}
if (client.Entity.TOMQ == 3)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xff00fa00 desc=Item#Reward:#a#Blazing#CP#Fragment,#90-min#EXP#Pack,#a#Super#Protection#Pill>Unique</tip>");
dialog.Text(" <tip color=0xff00fa00 desc=Item#Reward:#a#Blazing#CP#Fragment,#90-min#EXP#Pack,#a#Super#Protection#Pill>3-PerfectionLevel</tip>");
dialog.Text(" **************************************");
}
if (client.Entity.TOMQ == 4)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xffc501e7 desc=Item#Reward:#a#Blazing#CP#Fragment,#120-min#EXP#Pack,#2#Super#Protection#Pills>Elite</tip>");
dialog.Text(" <tip color=0xffc501e7 desc=Item#Reward:#a#Blazing#CP#Fragment,#120-min#EXP#Pack,#2#Super#Protection#Pills>4-PerfectionLevel</tip>");
dialog.Text(" **************************************");

}
if (client.Entity.TOMQ >= 5)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xffffae00 desc=Item#Reward:#a#Blazing#CP#Fragment,#180-min#EXP#Pack,#3#Super#Protection#Pills>Super</tip>");
dialog.Text(" <tip color=0xffffae00 desc=Item#Reward:#a#Blazing#CP#Fragment,#180-min#EXP#Pack,#3#Super#Protection#Pills>5-PerfectionLevel</tip>");
dialog.Text(" **************************************");

}

dialog.Option("Refresh~reward.~(1~CP)", 245);
dialog.Option("Enable~`Sweep`.~(5~CPs)", 246);
dialog.Option("Refresh~reward.~(25~Study~Pts)", 247);
dialog.Option("`Sweep`.~(1~MetorScrolls)", 248);
dialog.Option("I`ll~think~about~it.", 255);
dialog.Send();
break;
}
case 246:
{
if (client.Entity.ConquerPoints >= 5)
{
client.Entity.ConquerPoints -= 5;
client.Inventory.Add(3008727, 0, 1);
if (client.Entity.TOMQ == 1)
{
client.Inventory.AddTime(3008956, 1 * 24 * 60 * 60);
dialog.Text(" You received a Blazing CP Fragment, 30-min EXP Pack!");
}
if (client.Entity.TOMQ == 2)
{
client.Inventory.AddTime(3008957, 1 * 24 * 60 * 60);
dialog.Text(" You received a Blazing CP Fragment, 60-min EXP Pack!");
}
if (client.Entity.TOMQ == 3)
{
client.Inventory.Add(3002030, 0, 1);
client.Inventory.AddTime(3008958, 1 * 24 * 60 * 60);
dialog.Text(" You received a Blazing CP Fragment, 90-min EXP Pack, 1 Super Protection Pills!");
}
if (client.Entity.TOMQ == 4)
{
client.Inventory.Add(3002030, 0, 2);
client.Inventory.AddTime(3008959, 1 * 24 * 60 * 60);
dialog.Text(" You received a Blazing CP Fragment, 120-min EXP Pack, 2 Super Protection Pills!");
}
if (client.Entity.TOMQ >= 5)
{
client.Inventory.Add(3002030, 0, 3);
client.Inventory.AddTime(3008962, 1 * 24 * 60 * 60);
dialog.Text(" You received a Blazing CP Fragment, 180-min EXP Pack, 3 Super Protection Pills!");
}
dialog.Option("Thanks.", 255);
dialog.Send();
client.Entity.TOMRC--;
}
else
{
dialog.Text("You don't have enough Conquer Points!");

dialog.Option("Sorry!", 255);
dialog.Send();
}
break;
}
case 245:
{
if (client.Entity.ConquerPoints >= 1)
{
client.Entity.ConquerPoints -= 1;
client.Entity.TOMQ = (byte)Kernel.Random.Next(1, 5);
dialog.Text(" Bright Tribe`s Reward ");
if (client.Entity.TOMQ == 1)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xffffffff desc=Item#Reward:#a#Blazing#CP#Fragment,#30-min#EXP#Pack>Normal</tip>");
dialog.Text(" <tip color=0xffffffff desc=Item#Reward:#a#Blazing#CP#Fragment,#30-min#EXP#Pack>1-Star</tip>");
dialog.Text(" **************************************");
}
if (client.Entity.TOMQ == 2)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xff5d86c9 desc=Item#Reward:#a#Blazing#CP#Fragment,#60-min#EXP#Pack>Refined</tip>");
dialog.Text(" <tip color=0xff5d86c9 desc=Item#Reward:#a#Blazing#CP#Fragment,#60-min#EXP#Pack>2-PerfectionLevel</tip>");
dialog.Text(" **************************************");
}
if (client.Entity.TOMQ == 3)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xff00fa00 desc=Item#Reward:#a#Blazing#CP#Fragment,#90-min#EXP#Pack,#a#Super#Protection#Pill>Unique</tip>");
dialog.Text(" <tip color=0xff00fa00 desc=Item#Reward:#a#Blazing#CP#Fragment,#90-min#EXP#Pack,#a#Super#Protection#Pill>3-PerfectionLevel</tip>");
dialog.Text(" **************************************");
}
if (client.Entity.TOMQ == 4)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xffc501e7 desc=Item#Reward:#a#Blazing#CP#Fragment,#120-min#EXP#Pack,#2#Super#Protection#Pills>Elite</tip>");
dialog.Text(" <tip color=0xffc501e7 desc=Item#Reward:#a#Blazing#CP#Fragment,#120-min#EXP#Pack,#2#Super#Protection#Pills>4-PerfectionLevel</tip>");
dialog.Text(" **************************************");

}
if (client.Entity.TOMQ >= 5)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xffffae00 desc=Item#Reward:#a#Blazing#CP#Fragment,#180-min#EXP#Pack,#3#Super#Protection#Pills>Super</tip>");
dialog.Text(" <tip color=0xffffae00 desc=Item#Reward:#a#Blazing#CP#Fragment,#180-min#EXP#Pack,#3#Super#Protection#Pills>5-PerfectionLevel</tip>");
dialog.Text(" **************************************");

}

dialog.Option("Refresh~reward.~(1~CP)", 225);
dialog.Option("Enable~`Sweep`.~(5~CPs)", 246);
dialog.Option("Refresh~reward.~(25~Study~Pts)", 227);
dialog.Option("`Sweep`.~(1~MetorScrolls)", 248);
dialog.Option("I`ll~think~about~it.", 255);
dialog.Send();
}
else
{
dialog.Text("You don't have enough Conquer Points!");

dialog.Option("Sorry!", 255);
dialog.Send();
}
break;
}

case 248:
{
if (client.Inventory.Contains(720027, 5))
{
client.Entity.TOMRC--;
client.Inventory.Remove(720027, 5);
client.Inventory.Add(3008727, 0, 1);
if (client.Entity.TOMQ == 1)
{
client.Inventory.AddTime(3008956, 1 * 24 * 60 * 60);
dialog.Text(" You received a Blazing CP Fragment, 30-min EXP Pack!");
}
if (client.Entity.TOMQ == 2)
{
client.Inventory.AddTime(3008957, 1 * 24 * 60 * 60);
dialog.Text(" You received a Blazing CP Fragment, 60-min EXP Pack!");
}
if (client.Entity.TOMQ == 3)
{
client.Inventory.Add(3002030, 0, 1);
client.Inventory.AddTime(3008958, 1 * 24 * 60 * 60);
dialog.Text(" You received a Blazing CP Fragment, 90-min EXP Pack, 1 Super Protection Pills!");
}
if (client.Entity.TOMQ == 4)
{
client.Inventory.Add(3002030, 0, 2);
client.Inventory.AddTime(3008959, 1 * 24 * 60 * 60);
dialog.Text(" You received a Blazing CP Fragment, 120-min EXP Pack, 2 Super Protection Pills!");
}
if (client.Entity.TOMQ >= 5)
{
client.Inventory.Add(3002030, 0, 3);
client.Inventory.AddTime(3008962, 1 * 24 * 60 * 60);
dialog.Text(" You received a Blazing CP Fragment, 180-min EXP Pack, 3 Super Protection Pills!");
}
dialog.Option("Thanks.", 255);
dialog.Send();
}
else
{
dialog.Text("You don't have enough Meteor Scrolls!");

dialog.Option("Sorry!", 255);
dialog.Send();
}
break;
}
case 247:
{
if (client.Entity.SubClasses.StudyPoints >= 25)
{
client.Entity.SubClasses.StudyPoints -= 25;
client.Entity.TOMQ = (byte)Kernel.Random.Next(1, 5);
dialog.Text(" Bright Tribe`s Reward ");
if (client.Entity.TOMQ == 1)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xffffffff desc=Item#Reward:#a#Blazing#CP#Fragment,#30-min#EXP#Pack>Normal</tip>");
dialog.Text(" <tip color=0xffffffff desc=Item#Reward:#a#Blazing#CP#Fragment,#30-min#EXP#Pack>1-Star</tip>");
dialog.Text(" **************************************");
}
if (client.Entity.TOMQ == 2)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xff5d86c9 desc=Item#Reward:#a#Blazing#CP#Fragment,#60-min#EXP#Pack>Refined</tip>");
dialog.Text(" <tip color=0xff5d86c9 desc=Item#Reward:#a#Blazing#CP#Fragment,#60-min#EXP#Pack>2-PerfectionLevel</tip>");
dialog.Text(" **************************************");
}
if (client.Entity.TOMQ == 3)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xff00fa00 desc=Item#Reward:#a#Blazing#CP#Fragment,#90-min#EXP#Pack,#a#Super#Protection#Pill>Unique</tip>");
dialog.Text(" <tip color=0xff00fa00 desc=Item#Reward:#a#Blazing#CP#Fragment,#90-min#EXP#Pack,#a#Super#Protection#Pill>3-PerfectionLevel</tip>");
dialog.Text(" **************************************");
}
if (client.Entity.TOMQ == 4)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xffc501e7 desc=Item#Reward:#a#Blazing#CP#Fragment,#120-min#EXP#Pack,#2#Super#Protection#Pills>Elite</tip>");
dialog.Text(" <tip color=0xffc501e7 desc=Item#Reward:#a#Blazing#CP#Fragment,#120-min#EXP#Pack,#2#Super#Protection#Pills>4-PerfectionLevel</tip>");
dialog.Text(" **************************************");

}
if (client.Entity.TOMQ >= 5)
{
dialog.Text(" **************************************");
dialog.Text(" <tip color=0xffffae00 desc=Item#Reward:#a#Blazing#CP#Fragment,#180-min#EXP#Pack,#3#Super#Protection#Pills>Super</tip>");
dialog.Text(" <tip color=0xffffae00 desc=Item#Reward:#a#Blazing#CP#Fragment,#180-min#EXP#Pack,#3#Super#Protection#Pills>5-PerfectionLevel</tip>");
dialog.Text(" **************************************");

}

dialog.Option("Refresh~reward.~(1~CP)", 225);
dialog.Option("Enable~`Sweep`.~(5~CPs)", 226);
dialog.Option("Refresh~reward.~(25~Study~Pts)", 227);
dialog.Option("`Sweep`.~(1~MetorScrolls)", 228);
dialog.Option("I`ll~think~about~it.", 255);
dialog.Send();
}
else
{
dialog.Text("You don't have enough Study Points!");

dialog.Option("Sorry!", 255);
dialog.Send();
}
break;
}
case 211:
case 212:
case 213:
case 214:
case 215:
case 216:
case 217:
case 218:
case 219:
{
client.Entity.InTOM = true;
var DM = Kernel.Maps[4000].MakeDynamicMap();
INpc npc = new Network.GamePackets.NpcSpawn();
if ((npcRequest.OptionID - 210) == 1)
{
npc.UID = 56550;
npc.Mesh = 40460;
npc.Name = "GreatPheasant";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 1F where an aggressive devil, GreatPheasant(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if ((npcRequest.OptionID - 210) == 2)
{
npc.UID = 56551;
npc.Mesh = 40470;
npc.Name = "WingedLord";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 2F where an aggressive devil, WingedLord(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if ((npcRequest.OptionID - 210) == 3)
{
npc.UID = 56552;
npc.Mesh = 40480;
npc.Name = "WaterTerror";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 3F where an aggressive devil, WaterTerror(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if ((npcRequest.OptionID - 210) == 4)
{
npc.UID = 56553;
npc.Mesh = 40490;
npc.Name = "RuthlessAsura";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 4F where an aggressive devil, RuthlessAsura(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if ((npcRequest.OptionID - 210) == 5)
{
npc.UID = 56554;
npc.Mesh = 40500;
npc.Name = "SoulStrangler";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 5F where an aggressive devil, SoulStrangler(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if ((npcRequest.OptionID - 210) == 6)
{
npc.UID = 56555;
npc.Mesh = 40510;
npc.Name = "InfernalGlutton";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 6F where an aggressive devil, InfernalGlutton(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if ((npcRequest.OptionID - 210) == 7)
{
npc.UID = 56556;
npc.Mesh = 40520;
npc.Name = "AlienDragon";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 7F where an aggressive devil, AlienDragon(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if ((npcRequest.OptionID - 210) == 8)
{
npc.UID = 56557;
npc.Mesh = 40530;
npc.Name = "ShadowSpider";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 8F where an aggressive devil, ShadowSpider(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if ((npcRequest.OptionID - 210) == 9)
{
npc.UID = 56558;
npc.Mesh = 40540;
npc.Name = "FlameGiant";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 9F where an aggressive devil, FlameGiant(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if (client.Entity.TOM > 9) break;
npc.Type = (Enums.NpcType)2;
npc.X = 66;
npc.Y = 66;
npc.MapID = DM.ID;
DM.AddNpc(npc);
client.Entity.TOMM = DM;

client.Entity.Teleport(DM.ID, (ushort)Kernel.Random.Next(49, 79), (ushort)Kernel.Random.Next(49, 79));

break;
}
case 2:
{
dialog.Text("There is no limit on the number of times you can challenge the tower, but only 3 chances to claim the reward every day.");
dialog.Text("~Alternatively, you can use CPs or Meteor Scrolls to start `sweeping` and directly get the reward. If you create a team");
dialog.Text("~to challenge the tower at Elite mode, you can also claim a Concerted Effort Pack from the Cloud Sweeper after completing it.");

dialog.Option("Start~the~challenge.", 1);
dialog.Option("I`ll~talk~to~you~later.", 255);
dialog.Send();
break;
}
case 101:
case 102:
case 103:
case 104:
case 105:
case 106:
case 107:
case 108:
case 109:
case 1:
{

if (client.Entity.TOM == 0)
client.Entity.TOM = 1;
client.Entity.InTOM = true;
var DM = Kernel.Maps[4000].MakeDynamicMap();
INpc npc = new Network.GamePackets.NpcSpawn();
if (client.Entity.TOM == 1)
{
npc.UID = 56550;
npc.Mesh = 40460;
npc.Name = "GreatPheasant";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 1F where an aggressive devil, GreatPheasant(Common), was sealed. Be careful! ", Color.Red, Message.System));

}
if (client.Entity.TOM == 2)
{
npc.UID = 56551;
npc.Mesh = 40470;
npc.Name = "WingedLord";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 2F where an aggressive devil, WingedLord(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if (client.Entity.TOM == 3)
{
npc.UID = 56552;
npc.Mesh = 40480;
npc.Name = "WaterTerror";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 3F where an aggressive devil, WaterTerror(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if (client.Entity.TOM == 4)
{
npc.UID = 56553;
npc.Mesh = 40490;
npc.Name = "RuthlessAsura";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 4F where an aggressive devil, RuthlessAsura(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if (client.Entity.TOM == 5)
{
npc.UID = 56554;
npc.Mesh = 40500;
npc.Name = "SoulStrangler";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 5F where an aggressive devil, SoulStrangler(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if (client.Entity.TOM == 6)
{
npc.UID = 56555;
npc.Mesh = 40510;
npc.Name = "InfernalGlutton";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 6F where an aggressive devil, InfernalGlutton(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if (client.Entity.TOM == 7)
{
npc.UID = 56556;
npc.Mesh = 40520;
npc.Name = "AlienDragon";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 7F where an aggressive devil, AlienDragon(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if (client.Entity.TOM == 8)
{
npc.UID = 56557;
npc.Mesh = 40530;
npc.Name = "ShadowSpider";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 8F where an aggressive devil, ShadowSpider(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if (client.Entity.TOM == 9)
{
npc.UID = 56558;
npc.Mesh = 40540;
npc.Name = "FlameGiant";
client.Send(new Message("You`ve already arrived (Common) in Tower of Mystery 9F where an aggressive devil, FlameGiant(Common), was sealed. Be careful! ", Color.Red, Message.System));
}
if (client.Entity.TOM > 9) break;
npc.Type = (Enums.NpcType)2;
npc.X = 66;
npc.Y = 66;
npc.MapID = DM.ID;
DM.AddNpc(npc);
client.Entity.TOMM = DM;
client.Entity.Teleport(DM.ID, (ushort)Kernel.Random.Next(49, 79), (ushort)Kernel.Random.Next(49, 79));

break;
}
}
break;
}
#endregion
#region CloudSweeper
case 19128:
{
switch (npcRequest.OptionID)
{
case 0:
{
dialog.Text("Every day, when you team up with at least one friend, and conquer the Tower of Mystery at any challenge mode,");
dialog.Text("~you can claim a reward from me.");

dialog.Option("Claim~my~team~reward.", 1);
dialog.Option("I~see.", 255);
dialog.Send();
break;
}
case 1:
{
dialog.Text("To claim a reward from me, you need to team up with your friends and conquere the Tower of Mystery.");

dialog.Option("I~see.", 255);
dialog.Send();
break;
}
}
break;
}
#endregion
}
break;
}
#endregion
#region HeavenlyMaster
case 8233:
{
dialog.Avatar(67);
switch (npcRequest.OptionID)
{
case 0:
{
if (client.Quests.GetQuest(QuestID.TowerOfMystery) == null || client.Quests.CheckQuest(QuestID.TowerOfMystery) == QuestPacket.QuestData.QuestStatus.Available)
client.Quests.Accept(QuestID.TowerOfMystery);
dialog.Text("Every day when you successfully challenged the Tower of Mystery, you can claim"); dialog.Text("~a Chi Token, 200 Champion Points, 3 Exorcism Tokens and 100 Study Points from me.");

dialog.Option("Take~me~to~the~tower.", 1);
if (!client.Entity.DidTOM)
dialog.Option("Claim~my~rewards.", 2);
dialog.Option("Exchange~for~Exorcism~Pack.", 6);
dialog.Option("I`ll~talk~to~you~later.", 255);
break;
}
case 1:
{
client.Entity.Teleport(4020, 83, 73);
break;
}
case 6:
{
dialog.Text("You can exchange 3 Exorcism Tokens for an Exorcism Pack, or 9 Exorcism Tokens for a Golden Exorcism Pack.");
dialog.Text("~Which pack would you like to exchange for?");

dialog.Option("Exorcism~Pack.", 8);
dialog.Option("Golden~Exorcism~Pack.", 9);
dialog.Option("I`ll~think~about~it.", 255);
dialog.Send();
break;
}
case 8:
{
if (client.Inventory.Contains(711211, 3))
{
client.Inventory.Remove(711211, 3);
client.Inventory.Add(720948, 0, 1);
}
else
{
dialog.Text("Stop kidding me! You don`t have 3 Exorcism Tokens to exchange for an Exorcism Pack.");
dialog.Text("~No bargain here.");

dialog.Option("Sorry,~I~forgot.", 255);
dialog.Send();
}
break;
}
case 9:
{
if (client.Inventory.Contains(711211, 9))
{
client.Inventory.Remove(711211, 9);
client.Inventory.Add(729594, 0, 1);
}
else
{
dialog.Text("Stop kidding me! You don`t have 9 Exorcism Tokens to exchange for an Exorcism Pack.");
dialog.Text("~No bargain here.");

dialog.Option("Sorry,~I~forgot.", 255);
dialog.Send();
}
break;
}
case 2:
{
if (client.Quests.GetQuest(QuestID.TowerOfMystery).Ki lls >= 1)
{
client.Quests.FinishQuest(QuestID.TowerOfMystery);
client.Entity.ThirllingSpook = true;
client.Entity.ChampionPoints += 200;
client.Inventory.Add(711211, 0, 3);
client.Inventory.Add(729304, 0, 1);
client.Entity.DidTOM = true;
client.Entity.SubClasses.StudyPoints += 100;
}
else
{
dialog.Text("You haven`t completed the challenge of the Tower of Mystery, and you can`t claim");
dialog.Text("~the rewards, otherwise you would like to pay 27 CPs or a Mystery Amulet.");

dialog.Option("Pay~27~CPs~for~reward.", 5);
dialog.Option("I~haven`t~decided,~yet!", 255);
dialog.Send();
}
break;
}
case 5:
{
if (client.Entity.ConquerPoints >= 27)
{
client.Quests.FinishQuest(QuestID.TowerOfMystery);
client.Entity.ThirllingSpook = true;
client.Entity.ChampionPoints += 200;
client.Inventory.Add(711211, 0, 3);
client.Inventory.Add(729304, 0, 1);
client.Entity.DidTOM = true;
client.Entity.ConquerPoints -= 27;
client.Entity.SubClasses.StudyPoints += 100;
}
break;
}

}
break;
}
#endregion

بعد كده هندخل علي
MonesterTable.cs

هتروح ل Drop او تبحث علي اسم اي وحش و تحط ده تحته
#region TowerofMystery
if (Name.Contains("GreatPheasant") || Name.Contains("WingedLord") || Name.Contains("WaterTerror") || Name.Contains("RuthlessAsura") || Name.Contains("FlameGiant") || Name.Contains("SoulStrangler") || Name.Contains("DarkGlutton") || Name.Contains("AlienDragon") || Name.Contains("ShadowSpider"))
{
if (killer.Owner.Quests.GetQuest(QuestID.TowerOfMyste ry) == null || killer.Owner.Quests.CheckQuest(QuestID.TowerOfMyst ery) == QuestPacket.QuestData.QuestStatus.Available)
killer.Owner.Quests.Accept(QuestID.TowerOfMystery) ;
killer.Owner.Quests.DoneTowerMystery();
killer.Owner.MessageBox("You`ve successfully defeated the devil on Tower of Mystery " + killer.TOM + "F. Hurry and go claim the Bright Tribe`s reward for you.");
_String str = new _String(true);
str.TextsCount = 1;
str.UID = killer.UID;
str.Type = 10;
str.Texts.Add("zf2-281");
killer.Owner.SendScreen(str, true);
Romyo.Interfaces.INpc npc = new Network.GamePackets.NpcSpawn();
npc.UID = 200028;
npc.Mesh = 40150;
npc.Name = "BrightTribe`s";
npc.Type = (Game.Enums.NpcType)2;
npc.X = 66;
npc.Y = 66;
npc.MapID = killer.MapID;
killer.TOMM.AddNpc(npc);
foreach (var client in Kernel.GamePool.Values)
{
if (client.Entity.MapID != killer.MapID) continue;
client.Screen.Reload(null);
}
_String str2 = new _String(true);
str2.TextsCount = 1;
str2.X = npc.X;
str2.Y = npc.Y;
str2.Type = 9;
str2.Texts.Add("zf2-280");
killer.Owner.SendScreen(str2, true);
}
#endregion

خلصنا يله بينا ع باكت هندلر PacketHandler.cs
سيرش
public static void PlayerJump(Data generalData, GameClient client)

و ارمي دول جواه بس براحه عشان ميتكسروش XD
if (Kernel.GetDistance(client.Entity.X, client.Entity.Y, 73, 98) < 3 && client.Entity.MapID == 4020)//TOWEROFMYSTERY
{
client.Entity.Teleport(3998, 90, 352);
}
if (Kernel.GetDistance(client.Entity.X, client.Entity.Y, 40, 66) <= 1 && client.Entity.InTOM || Kernel.GetDistance(client.Entity.X, client.Entity.Y, 46, 44) <= 1 && client.Entity.InTOM)//TOWEROFMYSTERY
{
client.MessageBox("Do you want to leave the Tower of Mystery?",
p => { p.Entity.Teleport(4020, 84, 74); });
}
if (client.Entity.OnCheckGuard)
{
client.Entity.OnCheckGuard = false;
client.MessageBox("Unable~to~check!", null, null, 0);
client.Entity.CheckGuardSec = 0;
}
if (!client.Entity.OnCyclone() && !client.Entity.ContainsFlag(Update.Flags.Ride) && !client.Entity.OnOblivion() && !client.Entity.OnSuperman() && !client.Entity.ContainsFlag3(Update.Flags3.DragonC yclone) && !client.Entity.OnSuperCyclone() && !client.Entity.Transformed)
{
AntiSpeedHack.Process(client, Time64.Now);
}
if (client.Team == null)
{
if (client.Entity.SpookMap != null && client.Entity.MapID == client.Entity.SpookMap.ID && Kernel.GetDistance(client.Entity.X, client.Entity.Y, 36, 24) < 25)
{
((INpc)new NpcSpawn
{
UID = 8798,
Mesh = 7610,
Type = Enums.NpcType.Talker,
X = 36,
Y = 24,
MapID = client.Entity.MapID
}).SendSpawn(client);

((INpc)new NpcSpawn
{
UID = 8308,
Mesh = 2507,
Type = Enums.NpcType.Talker,
X = 25,
Y = 30,
MapID = client.Entity.MapID
}).SendSpawn(client);
}
}
else
{
if (client.Team.SpookMap != null && client.Entity.MapID == client.Team.SpookMap.ID && Kernel.GetDistance(client.Entity.X, client.Entity.Y, 36, 24) < 25)
{
((INpc)new NpcSpawn
{
UID = 8798,
Mesh = 7610,
Type = Enums.NpcType.Talker,
X = 36,
Y = 24,
MapID = client.Entity.MapID
}).SendSpawn(client);

((INpc)new NpcSpawn
{
UID = 8308,
Mesh = 2507,
Type = Enums.NpcType.Talker,
X = 25,
Y = 30,
MapID = client.Entity.MapID
}).SendSpawn(client);
}
}
بعد كده دور علي
public enum QuestID : uint
حط جواه
TowerOfMystery = 6126,

بعد كده
Entity.cs

ارمي دول جواها
public bool DidTOM = false;
public bool DidBrightFortune = false;

public Map TOMM;
public bool ClaimedTOM = false;
public bool InTOM = false;
public byte TOM = 0;
public byte TOMRC = 3;
public byte TOMQ = 255;


انتظروا الكوستات مفجاه

محمد ياسر
2019-10-23, 05:26 PM
منتظر بس ممكن تقولي ايه هي هههههههه

nova
2019-10-23, 08:53 PM
والله مستنى

ALz3em
2019-10-24, 11:38 AM
مفجاه حلوه
هتنزل ابجريد الانيما والتروجان
طيب احنا في الانتظار اهو
ربنا معاك

Hassan Emprator
2019-10-24, 11:46 AM
مفجاه حلوه
هتنزل ابجريد الانيما والتروجان
طيب احنا في الانتظار اهو
ربنا معاك



هههههههههه لا يعم مش للدراجدي ههه

ALz3em
2019-10-24, 12:02 PM
ربنا معاك يامدير وفي انتظار المفاجئه

رفيق القلم
2019-10-25, 02:18 AM
ربنا معاك منتظرينك

عمرو الجنرال
2019-10-29, 04:42 AM
تسلم ايدك

ALz3em
2019-10-30, 08:32 PM
أيه دا أنت ضحكت علينا كده هى دى المفجأه
وانا اللى كنت مفكرك هتنزلنا لودر أوبن سورس أحدث أصدار بورتو
يلا مش مهم خليها علينا
تسلم يا شيخ

Hassan Emprator
2019-10-30, 09:47 PM
أيه دا أنت ضحكت علينا كده هى دى المفجأه
وانا اللى كنت مفكرك هتنزلنا لودر أوبن سورس أحدث أصدار بورتو
يلا مش مهم خليها علينا
تسلم يا شيخ


هههههههههههههه ولله دا كان الي هيحصل بس


لائسف وربنا كنت هجيبه من ميجو وكان هيدهولي بس اول لما افتكر انو للناس قال لا
هوا كان هيدوهلي عشان انا صاحبه وكدا وانا كنت هنزلهلكو بس مش هينفع
لان لودر بتاع البروتو دا محمي ومتشفر تشفير صعب :1eye: