Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.95 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading;
  7. using Mr_Panda.Client;
  8. using Mr_Panda.Interfaces;
  9. using Mr_Panda.Network.GamePackets;
  10.  
  11.  
  12. namespace Mr_Panda.Game
  13. {
  14. public class TreasureBox
  15. {
  16. static Map Map = Kernel.Maps[3820];
  17. const int MAX_BOXES = 12, ITEMS = 1000, CPSMoney = 1001, LEVEL = 1002, DEATH = 1003, STUN = 1004, KICK = 1005;
  18. static int CurrentBoxes = 0;
  19. static Mr_Panda.Interfaces.INpc npc;
  20. static ushort tempX, tempY = 0;
  21. static uint BaseId = 101002;
  22. static List<Point> VaildOnes = new List<Point>();
  23. public static bool OnGoing;
  24.  
  25. public static void Generate()
  26. {
  27. try
  28. {
  29. if (CurrentBoxes < MAX_BOXES)
  30. {
  31. if (Map == null)
  32. {
  33. Map = Kernel.Maps[3820];
  34. return;
  35. }
  36. tempX = (ushort)Kernel.Random.Next(0, Map.Floor.Bounds.Width);
  37. tempY = (ushort)Kernel.Random.Next(0, Map.Floor.Bounds.Height);
  38. if (Map.Floor[tempX, tempY, MapObjectType.Item, null])
  39. {
  40. npc = new Network.GamePackets.NpcSpawn();
  41. npc.UID = BaseId++;
  42. npc.Mesh = (ushort)Kernel.RandFromGivingNums(9307, 9277, 9267, 9287, 9287, 9287, 9257, 9257, 9257, 9257, 9257, 9257, 9307, 9307, 9307, 9307, 9307, 9277, 9267, 9267, 9267, 9277, 9277, 9277, 9277, 9277);
  43. npc.Type = Enums.NpcType.Talker;
  44. npc.MapID = Map.ID;
  45. npc.X = tempX;
  46. npc.Y = tempY;
  47. npc.Name = "Real-Conquer";
  48. var value1 = Update.Flags.BlackName;
  49. Map.AddNpc(npc);
  50. CurrentBoxes++;
  51. Kernel.SendWorldMessage(new Message("A new treasure box appeared!", Color.Red, 2012));
  52. }
  53. }
  54. }
  55. catch (Exception e)
  56. {
  57. Console.WriteLine(e.ToString());
  58. }
  59.  
  60. }
  61.  
  62. public static void Reward(GameState client)
  63. {
  64. client.Player.CurrentTreasureBoxes++;
  65. var orders = Kernel.GamePool.Values.OrderByDescending(x => x.Player.CurrentTreasureBoxes).ToArray();
  66. for (int i = 0; i < orders.Length + 1; i++)
  67. {
  68. if (i == 11) break;
  69. Message msg;
  70.  
  71. if (i == 0)
  72. {
  73. msg = new Message("", System.Drawing.Color.Red, Message.FirstRightCorner);
  74. }
  75. else
  76. {
  77. if (orders[i - 1].Player.CurrentTreasureBoxes == 0) continue;
  78. msg = new Message("No " + i.ToString() + "- " + orders[i - 1].Player.Name + " Opened " + orders[i - 1].Player.CurrentTreasureBoxes.ToString() + " Boxes!", System.Drawing.Color.Red, Message.ContinueRightCorner);
  79. }
  80.  
  81. Kernel.SendWorldMessage(msg, Program.GamePool, (ushort)3820);
  82. }
  83.  
  84. int prize = 0;
  85.  
  86. if (client.Player.Level <= 135)
  87. prize = Kernel.RandFromGivingNums(ITEMS, CPSMoney, KICK, ITEMS, CPSMoney, ITEMS, CPSMoney, DEATH);
  88. else prize = Kernel.RandFromGivingNums(ITEMS, CPSMoney, KICK, ITEMS, CPSMoney, ITEMS, CPSMoney, DEATH);
  89. //#warning TREASURE BOX PRIZE
  90. switch (prize)
  91. {
  92. case CPSMoney:
  93. {
  94. uint amount = (uint)Kernel.Random.Next(500000, 5000000);
  95. if (amount >= 1)
  96. {
  97. client.Player.ConquerPoints += amount;
  98. Kernel.SendWorldMessage(new Message(client.Player.Name + " got " + amount.ToString() + " CPs while opening the TreasureBox!", Color.White, Message.Talk));
  99. }
  100. break;
  101. }
  102. case ITEMS:
  103. {
  104. Database.ConquerItemBaseInformation temp;
  105. uint itemid = (uint)Kernel.RandFromGivingNums(720027, 720027, 720027, 1088000, 1088000, 1088000, 720028, 720028, 720028, 193445, 193525, 193235, 193235,720027, 720027, 720027, 1088000, 1088000, 1088000, 720028, 720028, 720028, 193445, 193525, 193235, 193235, 188515, 720027, 720027, 720027, 1088000, 1088000, 1088000, 720028, 720028, 720028, 193445, 193525, 193235, 193235,720027, 720027, 720027, 1088000, 1088000, 1088000, 720028, 720028, 720028, 193445, 193525, 193235, 193235, 200221);
  106. client.Inventory.Add(itemid, 0, 1);
  107. Database.ConquerItemInformation.BaseInformations.TryGetValue(itemid, out temp);
  108. Kernel.SendWorldMessage(new Message(client.Player.Name + " got " + temp.Name + " while opening the TreasureBox!", Color.White, Message.Talk));
  109. break;
  110. }
  111. case KICK:
  112. {
  113. client.Player.Die(client.Player);
  114. Kernel.SendWorldMessage(new Message(client.Player.Name + " got Death! while opening the TreasureBox!", Color.White, Message.Talk));
  115. break;
  116. }
  117. case DEATH:
  118. {
  119. client.Player.Die(client.Player);
  120. Kernel.SendWorldMessage(new Message(client.Player.Name + " got Death! while opening the TreasureBox!", Color.White, Message.Talk));
  121. break;
  122. }
  123. }
  124.  
  125. CurrentBoxes--;
  126. client.Player.ConquerPoints += 100000;
  127. //client.Entity.TreasuerPoints += 1;
  128. }
  129. }
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement