Advertisement
Guest User

Untitled

a guest
Nov 18th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.70 KB | None | 0 0
  1. #region Jiang Npc
  2. case 88854:
  3. {
  4. switch (npcRequest.OptionID)
  5. {
  6. case 0:
  7. {
  8. if (client.Player.MyJiang == null)
  9. {
  10. dialog.Text("Sorry But You Don't Have Jiang Yet.");
  11. dialog.Option("I'll think about it!", 255);
  12. dialog.Send();
  13. return;
  14. }
  15. dialog.Text("Hello I'M Matrix Jiang Seller You can Buy 1 stage super for [Free] .");
  16. for (int i = 0; i < client.Player.MyJiang.Stagers.Length; i++)
  17. {
  18. var stage = client.Player.MyJiang.Stagers[i];
  19. if (stage.Activate)
  20. dialog.Option("Stage [" + (byte)(i + 1) + "]", (byte)(i + 1));
  21.  
  22. }
  23. dialog.Option("I'll think about it!", 255);
  24. dialog.Send();
  25. break;
  26. }
  27. default:
  28. {
  29. int mStage = npcRequest.OptionID;
  30. if (mStage >= 1 && mStage <= 9)
  31. {
  32. foreach (var item in Database.JiangHu.CultivateStatus[(byte)mStage])
  33. {
  34. dialog.Option(((Game.JiangHu.JiangStages.AtributesType)item).ToString(), (byte)((item * 10) + mStage));
  35. }
  36.  
  37. }
  38. else
  39. {
  40. //if (client.Player.ConquerPoints < 0)
  41. //{
  42. // dialog.Text("Sorry But You Don't Have 10kk cps ");
  43. // dialog.Option("I'll think about it!", 255);
  44. // dialog.Send();
  45. // return;
  46. //}
  47. //client.Player.ConquerPoints -= 0;
  48. var typex = mStage / 10;
  49. mStage = mStage % 10;
  50. byte stageno = (byte)Math.Min(9, mStage);
  51. byte level = 5;
  52. var type = (Game.JiangHu.JiangStages.AtributesType)Math.Min(15, typex);
  53. if (client.Player.MyJiang.Stagers.Length >= stageno)
  54. {
  55. var stage = client.Player.MyJiang.Stagers[(stageno - 1)];
  56. for (byte i = 1; i < stage.Stars.Length + 1; i++)
  57. {
  58. client.Player.MyJiang.MyNewStart = new Game.JiangHu.GetNewStar();
  59. client.Player.MyJiang.MyNewStart.PositionStar = i;
  60. client.Player.MyJiang.MyNewStart.Stage = stageno;
  61. client.Player.MyJiang.MyNewStart.Star = new Game.JiangHu.JiangStages.Star();
  62. client.Player.MyJiang.MyNewStart.Star.Activate = true;
  63. client.Player.MyJiang.MyNewStart.Star.Level = level;
  64. client.Player.MyJiang.MyNewStart.Star.Typ = type;
  65. client.Player.MyJiang.MyNewStart.Star.UID = client.Player.MyJiang.ValueToRoll(client.Player.MyJiang.MyNewStart.Star.Typ, client.Player.MyJiang.MyNewStart.Star.Level);
  66. Network.GamePackets.JiangHuUpdate upd = new Network.GamePackets.JiangHuUpdate();
  67. upd.Atribute = client.Player.MyJiang.MyNewStart.Star.UID;
  68. upd.FreeCourse = client.Player.MyJiang.FreeCourse;
  69. upd.Stage = stageno;
  70. upd.Star = i;
  71. upd.FreeTimeTodeyUsed = (byte)client.Player.MyJiang.FreeTimeTodeyUsed;
  72. upd.RoundBuyPoints = client.Player.MyJiang.RoundBuyPoints;
  73. client.Send(upd.ToArray());
  74. client.Player.MyJiang.ApplayNewStar(client);
  75. }
  76. if (client.Player.MyJiang != null)
  77. client.Player.MyJiang.SendStatus(client, client);
  78. }
  79.  
  80. }
  81. break;
  82. }
  83. }
  84. break;
  85. }
  86. #endregion
  87. #region Chi Npc
  88. case 888540:
  89. {
  90. switch (npcRequest.OptionID)
  91. {
  92. case 0:
  93. {
  94. if (client.ChiPowers.Count == 0)
  95. {
  96. dialog.Text("Sorry But You Don't Have chi Yet.");
  97. dialog.Option("I'll think about it!", 255);
  98. dialog.Send();
  99. return;
  100. }
  101. dialog.Text("Hello I'M Selling Chi Full One Line For [Free] .");
  102. for (int i = 0; i < client.ChiPowers.Count; i++)
  103. {
  104. var stage = client.ChiPowers[i];
  105. dialog.Option(((Game.Enums.ChiPowerType)(i + 1)).ToString(), (byte)(i + 1));
  106. }
  107. dialog.Option("I'll think about it!", 255);
  108. dialog.Send();
  109. break;
  110. }
  111. default:
  112. {
  113. int mStage = npcRequest.OptionID;
  114. if (mStage >= 1 && mStage <= 4)
  115. {
  116. client.Player.SelectedStage = mStage;
  117. dialog.Text("You Choose " + ((Game.Enums.ChiPowerType)mStage).ToString() + " stage. please select Attribute you want to change ");
  118. for (int i = 0; i < 4; i++)
  119. {
  120. dialog.Option("Attribute [" + (byte)(i + 1) + "]", (byte)(i + 1 + 4));
  121. }
  122. dialog.Option("Back", 0);
  123. dialog.Option("I'll think about it!", 255);
  124. dialog.Send();
  125. break;
  126. }
  127. else if (mStage >= 4 && mStage <= 8)
  128. {
  129. client.Player.SelectedAttribute = mStage - 4;
  130. var mychiattribute = new List<Enums.ChiAttribute>();
  131. var powers = client.ChiPowers[(int)client.Player.SelectedStage - 1];
  132. for (int i = 0; i < powers.Attributes.Length; i++)
  133. {
  134. var Attribute = powers.Attributes[i];
  135. mychiattribute.Add(Attribute.Type);
  136. }
  137.  
  138. dialog.Text("You Choose Attribute [" + client.Player.SelectedAttribute + "] please select AttributeType you want to change ");
  139. for (int i = 0; i < (int)Enums.ChiAttribute.MagicDamageDecrease; i++)
  140. {
  141. var type = ((Enums.ChiAttribute)(i + 1));
  142. if (!mychiattribute.Contains(type))
  143. dialog.Option(type.ToString(), (byte)(((i + 1) * 10)));
  144. }
  145. dialog.Option("Back", (byte)client.Player.SelectedStage);
  146. dialog.Option("I'll think about it!", 255);
  147. dialog.Send();
  148. break;
  149. }
  150. else
  151. {
  152. //if (client.OnlinePoints < 1500)
  153. //{
  154. // dialog.Text("Sorry But You Don't Have 1500 OTP ");
  155. // dialog.Option("I'll think about it!", 255);
  156. // dialog.Send();
  157. // return;
  158. //}
  159. //client.OnlinePoints -= 1500;
  160.  
  161. var typex = mStage / 10;
  162.  
  163. var Mode = client.Player.SelectedStage;
  164. var pos = client.Player.SelectedAttribute - 1;
  165. var powers = client.ChiPowers[Mode - 1];
  166. var attributes = powers.Attributes;
  167.  
  168. var mychiattribute = new List<Enums.ChiAttribute>();
  169. for (int i = 0; i < powers.Attributes.Length; i++)
  170. {
  171. var Attribute = powers.Attributes[i];
  172. mychiattribute.Add(Attribute.Type);
  173. }
  174.  
  175. if (mychiattribute.Contains((Enums.ChiAttribute)typex))
  176. {
  177. dialog.Text("Sorry But You already Have" + (Enums.ChiAttribute)typex);
  178. dialog.Option("I'll think about it!", 255);
  179. dialog.Send();
  180. return;
  181. }
  182.  
  183. attributes[pos].Type = (Enums.ChiAttribute)typex;
  184. attributes[pos].Value = (ushort)Game.Enums.ChiMaxValues(attributes[pos].Type);
  185. powers.CalculatePoints();
  186. Database.ChiTable.Sort((Enums.ChiPowerType)Mode);
  187. powers.Power = (Enums.ChiPowerType)Mode;
  188. client.Send(new ChiPowers(true).Query(client));
  189. #region update ranking
  190. Database.ChiTable.ChiData[] array = null;
  191. switch ((Enums.ChiPowerType)Mode)
  192. {
  193. case Game.Enums.ChiPowerType.Dragon:
  194. array = Database.ChiTable.Dragon;
  195. break;
  196.  
  197. case Game.Enums.ChiPowerType.Phoenix:
  198. array = Database.ChiTable.Phoenix;
  199. break;
  200.  
  201. case Game.Enums.ChiPowerType.Tiger:
  202. array = Database.ChiTable.Tiger;
  203. break;
  204.  
  205. case Game.Enums.ChiPowerType.Turtle:
  206. array = Database.ChiTable.Turtle;
  207. break;
  208. }
  209. foreach (var chiData in array)
  210. {
  211. if (Kernel.GamePool.ContainsKey(chiData.UID))
  212. {
  213. var pClient = Kernel.GamePool[chiData.UID];
  214. if (pClient == null) continue;
  215. if (pClient.ChiData == null) continue;
  216. // make it public instead of private
  217. PacketHandler.SendRankingQuery(new GenericRanking(true) { Mode = GenericRanking.QueryCount }, pClient, GenericRanking.Chi + (uint)Mode, pClient.ChiData.SelectRank((Enums.ChiPowerType)Mode), pClient.ChiData.SelectPoints((Enums.ChiPowerType)Mode));
  218. if (pClient.Player.UID == client.Player.UID || pClient.ChiData.SelectRank((Enums.ChiPowerType)Mode) < 50)
  219. pClient.LoadItemStats();
  220. }
  221. }
  222. #endregion
  223. Database.ChiTable.Save(client);
  224. }
  225. break;
  226. }
  227. }
  228. break;
  229. }
  230. #endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement