Advertisement
xFaelz

Rei C/Novas Capas

Apr 25th, 2018
501
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.02 KB | None | 0 0
  1. //Source Code By Faelz' && Thiagodp
  2. //Adicionar ao _MSG_Quest.cpp
  3. #pragma region KING
  4. case KING:
  5. {
  6. int ReiClan = pMob[npcIndex].MOB.Clan;
  7.  
  8. int Clan = pMob[conn].MOB.Clan;
  9. int cLevel = pMob[conn].MOB.CurrentScore.Level;
  10. int CapeMode = 0;
  11.  
  12. STRUCT_ITEM *Capa = &pMob[conn].MOB.Equip[15];
  13.  
  14. if (Capa->sIndex == 543 || Capa->sIndex == 545)
  15. Clan = 7;
  16.  
  17. if (Capa->sIndex == 544 || Capa->sIndex == 546)
  18. Clan = 8;
  19.  
  20. if (Capa->sIndex == 734 || Capa->sIndex == 736)
  21. Clan = 7;
  22.  
  23. if (Capa->sIndex == 735 || Capa->sIndex == 737)
  24. Clan = 8;
  25.  
  26. if (Capa->sIndex == 3191 || Capa->sIndex == 3194)
  27. Clan = 7;
  28.  
  29. if (Capa->sIndex == 3192 || Capa->sIndex == 3195)
  30. Clan = 8;
  31.  
  32. if (Capa->sIndex == 3197 || Capa->sIndex == 1767)
  33. Clan = 7;
  34.  
  35. if (Capa->sIndex == 3198 || Capa->sIndex == 1770)
  36. Clan = 8;
  37.  
  38. if (Capa->sIndex == 543 || Capa->sIndex == 544 || Capa->sIndex == 1767 || Capa->sIndex == 1770 || Capa->sIndex == 3191 || Capa->sIndex == 3194 || Capa->sIndex == 3192 || Capa->sIndex == 3195 || Capa->sIndex == 3197 || Capa->sIndex == 3198)
  39. CapeMode = 2;
  40.  
  41. if (Capa->sIndex == 545 || Capa->sIndex == 546 || Capa->sIndex == 549)
  42. CapeMode = 1;
  43.  
  44. if (Capa->sIndex == 3193)
  45. CapeMode = 1;
  46.  
  47. if (Capa->sIndex == 3196)
  48. CapeMode = 1;
  49.  
  50. if (Clan != 0 && Clan != ReiClan)
  51. break;
  52.  
  53.  
  54. int Saphire = Sapphire;
  55.  
  56. if (ReiClan == 8)
  57. {
  58. if (Sapphire == 1)
  59. Saphire = 60;
  60. if (Sapphire == 2)
  61. Saphire = 32;
  62. if (Sapphire == 4)
  63. Saphire = 16;
  64. if (Sapphire == 16)
  65. Saphire = 4;
  66. if (Sapphire == 32)
  67. Saphire = 2;
  68. if (Sapphire == 64)
  69. Saphire = 1;
  70. }
  71.  
  72. if (confirm == 0)
  73. {
  74. sprintf(temp, g_pMessageStringTable[_DN_Need_D_Sapphire], Saphire);
  75. SendClientMessage(conn, temp);
  76. break;
  77. }
  78.  
  79. if (pMob[conn].MOB.Equip[10].sIndex == 1742 && pMob[conn].MOB.Equip[11].sIndex >= 1760 && pMob[conn].MOB.Equip[11].sIndex <= 1763)
  80. {
  81. int sAgua = 0;
  82. int sTerra = 0;
  83. int sSol = 0;
  84. int sVento = 0;
  85.  
  86.  
  87. for (int i = 0; i < pMob[conn].MaxCarry; i++)
  88. {
  89. if (pMob[conn].MOB.Carry[i].sIndex == 5334)
  90. sAgua = 1;
  91.  
  92. if (pMob[conn].MOB.Carry[i].sIndex == 5335)
  93. sTerra = 1;
  94.  
  95. if (pMob[conn].MOB.Carry[i].sIndex == 5336)
  96. sSol = 1;
  97.  
  98. if (pMob[conn].MOB.Carry[i].sIndex == 5337)
  99. sVento = 1;
  100. }
  101.  
  102. if (sAgua == 1 && sTerra == 1 && sSol == 1 && sVento == 1)
  103. {
  104. for (int i = 0; i < pMob[conn].MaxCarry; i++)
  105. {
  106. if (pMob[conn].MOB.Carry[i].sIndex == 5334 && sAgua == 1)
  107. {
  108. memset(&pMob[conn].MOB.Carry[i], 0, sizeof(STRUCT_ITEM));
  109.  
  110. pMob[conn].MOB.Carry[i].sIndex = 5338;
  111.  
  112. SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry[i]);
  113. sAgua = 0;
  114. }
  115.  
  116. if (pMob[conn].MOB.Carry[i].sIndex == 5335 && sTerra == 1)
  117. {
  118. memset(&pMob[conn].MOB.Carry[i], 0, sizeof(STRUCT_ITEM));
  119. SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry[i]);
  120. sTerra = 0;
  121. }
  122.  
  123. if (pMob[conn].MOB.Carry[i].sIndex == 5336 && sSol == 1)
  124. {
  125. memset(&pMob[conn].MOB.Carry[i], 0, sizeof(STRUCT_ITEM));
  126. SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry[i]);
  127. sSol = 0;
  128. }
  129.  
  130. if (pMob[conn].MOB.Carry[i].sIndex == 5337 && sVento == 1)
  131. {
  132. memset(&pMob[conn].MOB.Carry[i], 0, sizeof(STRUCT_ITEM));
  133. SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry[i]);
  134. sVento = 0;
  135. }
  136. }
  137.  
  138. memset(&pMob[conn].MOB.Equip[10], 0, sizeof(STRUCT_ITEM));
  139. SendItem(conn, ITEM_PLACE_EQUIP, 10, &pMob[conn].MOB.Equip[10]);
  140.  
  141. memset(&pMob[conn].MOB.Equip[11], 0, sizeof(STRUCT_ITEM));
  142. SendItem(conn, ITEM_PLACE_EQUIP, 11, &pMob[conn].MOB.Equip[11]);
  143.  
  144. SendSay(npcIndex, g_pMessageStringTable[_NN_My_King_Bless1]);
  145.  
  146. sprintf(temp, "etc,king make ideal_stone name:%s level:%d", pMob[conn].MOB.MobName, pMob[conn].MOB.BaseScore.Level);
  147. Log(temp, "-system", 0);
  148.  
  149. break;
  150. }
  151.  
  152. if (pMob[conn].extra.ClassMaster == MORTAL && pMob[conn].MOB.CurrentScore.Level >= 299 && pMob[conn].Mode != MOB_WAITDB)
  153. {
  154.  
  155. int cls = pMob[conn].MOB.Equip[11].sIndex - 1760;
  156.  
  157. MSG_DBCreateArchCharacter sm_ca;
  158. memset(&sm_ca, 0, sizeof(MSG_DBCreateArchCharacter));
  159.  
  160. sm_ca.Size = sizeof(MSG_DBCreateArchCharacter);
  161. sm_ca.Type = _MSG_DBCreateArchCharacter;
  162. sm_ca.ID = conn;
  163.  
  164. sm_ca.MobClass = cls;
  165. sm_ca.MortalFace = pMob[conn].extra.MortalFace;
  166. sm_ca.MortalSlot = pUser[conn].Slot;
  167.  
  168. strncpy(sm_ca.MobName, pMob[conn].MOB.MobName, NAME_LENGTH);
  169.  
  170. pMob[conn].Mode = MOB_WAITDB;
  171. DBServerSocket.SendOneMessage((char*)&sm_ca, sizeof(MSG_DBCreateArchCharacter));
  172.  
  173. sprintf(temp, "etc,king_arch name:%s class:%d mortalface:%d mortalslot:%d", pMob[conn].MOB.MobName, cls, pMob[conn].extra.MortalFace, pUser[conn].Slot);
  174. Log(temp, pUser[conn].AccountName, pUser[conn].IP);
  175. break;
  176. }
  177. }
  178.  
  179. if (CapeMode >= 2)
  180. {
  181. if (ReiClan == 7)
  182. SendClientMessage(conn, g_pMessageStringTable[_NN_My_King_Bless1]);
  183. else
  184. SendClientMessage(conn, g_pMessageStringTable[_NN_My_King_Bless2]);
  185.  
  186. break;
  187. }
  188.  
  189. if ((pMob[conn].extra.ClassMaster == CELESTIAL || pMob[conn].extra.ClassMaster == CELESTIALCS || pMob[conn].extra.ClassMaster == SCELESTIAL) && (pMob[conn].MOB.Equip[15].sIndex == 3199 || pMob[conn].MOB.Equip[15].sIndex == 573))
  190. {
  191. int NumSepInv = 0;
  192.  
  193. for (int i = 0; i < pMob[conn].MaxCarry; i++)
  194. {
  195. if (pMob[conn].MOB.Carry[i].sIndex == 697)
  196. NumSepInv++;
  197.  
  198. else if (pMob[conn].MOB.Carry[i].sIndex == 4131)
  199. NumSepInv += 10;
  200. }
  201.  
  202. if (NumSepInv < Saphire)
  203. {
  204. sprintf(temp, g_pMessageStringTable[_DN_Need_D_Sapphire], Saphire);
  205. SendClientMessage(conn, temp);
  206. break;
  207. }
  208.  
  209. MSG_STANDARDPARM sm_us;
  210. memset(&sm_us, 0, sizeof(MSG_STANDARDPARM));
  211.  
  212. sm_us.ID = 0;
  213. sm_us.Type = _MSG_DBUpdateSapphire;
  214.  
  215. sm_us.Size = sizeof(MSG_STANDARDPARM);
  216.  
  217. sm_us.Parm = ReiClan == 7;
  218.  
  219. DBServerSocket.SendOneMessage((char*)&sm_us, sizeof(MSG_STANDARD));
  220.  
  221. for (int i = 0; i < pMob[conn].MaxCarry && Saphire > 0; i++)
  222. {
  223. if (pMob[conn].MOB.Carry[i].sIndex == 697)
  224. {
  225. memset(&pMob[conn].MOB.Carry[i], 0, sizeof(STRUCT_ITEM));
  226. SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry[i]);
  227. Saphire--;
  228. }
  229.  
  230. else if (pMob[conn].MOB.Carry[i].sIndex == 4131)
  231. {
  232. memset(&pMob[conn].MOB.Carry[i], 0, sizeof(STRUCT_ITEM));
  233. SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry[i]);
  234.  
  235. if ((Saphire - 10) < 0)
  236. Saphire = 0;
  237.  
  238. else
  239. Saphire -= 10;
  240. }
  241. }
  242.  
  243. if ((pMob[conn].extra.ClassMaster == CELESTIAL || pMob[conn].extra.ClassMaster == CELESTIALCS))
  244. {
  245. if (ReiClan == 7)
  246. {
  247. pMob[conn].MOB.Equip[15].sIndex = 3197;
  248. SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
  249. SendClientMessage(conn, g_pMessageStringTable[_NN_My_King_Bless1]);
  250. }
  251. if (ReiClan == 8)
  252. {
  253. pMob[conn].MOB.Equip[15].sIndex = 3198;
  254. SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
  255. SendClientMessage(conn, g_pMessageStringTable[_NN_My_King_Bless2]);
  256. }
  257. }
  258.  
  259. if ((pMob[conn].extra.ClassMaster == SCELESTIAL))
  260. {
  261. if (ReiClan == 7)
  262. {
  263. pMob[conn].MOB.Equip[15].sIndex = 1767;
  264. SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
  265. SendClientMessage(conn, g_pMessageStringTable[_NN_My_King_Bless1]);
  266. }
  267. if (ReiClan == 8)
  268. {
  269. pMob[conn].MOB.Equip[15].sIndex = 1770;
  270. SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
  271. SendClientMessage(conn, g_pMessageStringTable[_NN_My_King_Bless2]);
  272. }
  273. }
  274.  
  275. int Guild = pMob[conn].MOB.Guild;
  276. int Group = ServerGroup;
  277. int Server = Guild / MAX_GUILD;
  278. int usGuild = Guild & MAX_GUILD - 1;
  279.  
  280. if (Guild && pMob[conn].MOB.GuildLevel == 9)
  281. {
  282. MSG_GuildInfo sm_gi;
  283. memset(&sm_gi, 0, sizeof(MSG_GuildInfo));
  284.  
  285. sm_gi.Type = _MSG_GuildInfo;
  286. sm_gi.Size = sizeof(MSG_GuildInfo);
  287. sm_gi.ID = conn;
  288.  
  289. sm_gi.Guild = Guild;
  290.  
  291. GuildInfo[Guild].Clan = ReiClan;
  292. GuildInfo[Guild].Fame = 0;
  293.  
  294. sm_gi.GuildInfo = GuildInfo[Guild];
  295.  
  296. DBServerSocket.SendOneMessage((char*)&sm_gi, sizeof(MSG_GuildInfo));
  297. }
  298.  
  299. sprintf(temp, "etc,get mantle %d - sapphire:%d", pMob[conn].MOB.Equip[15].sIndex, Saphire);
  300. Log(temp, pUser[conn].AccountName, pUser[conn].IP);
  301. break;
  302. }
  303.  
  304. if (cLevel < 219)
  305. {
  306. SendClientMessage(conn, g_pMessageStringTable[_NN_Need_Level]);
  307. break;
  308. }
  309.  
  310. if (CapeMode != 1 || cLevel >= 255)
  311. {
  312. int NumSepInv = 0;
  313.  
  314. for (int i = 0; i < pMob[conn].MaxCarry; i++)
  315. {
  316. if (pMob[conn].MOB.Carry[i].sIndex == 697)
  317. NumSepInv++;
  318.  
  319. else if (pMob[conn].MOB.Carry[i].sIndex == 4131)
  320. NumSepInv += 10;
  321. }
  322.  
  323. if (NumSepInv < Saphire && pMob[conn].MOB.Equip[13].sIndex != 4081)
  324. {
  325. sprintf(temp, g_pMessageStringTable[_DN_Need_D_Sapphire], Saphire);
  326. SendClientMessage(conn, temp);
  327. break;
  328. }
  329.  
  330. MSG_STANDARDPARM sm_us;
  331. memset(&sm_us, 0, sizeof(MSG_STANDARDPARM));
  332.  
  333. sm_us.ID = 0;
  334. sm_us.Type = _MSG_DBUpdateSapphire;
  335.  
  336. sm_us.Size = sizeof(MSG_STANDARDPARM);
  337.  
  338. sm_us.Parm = ReiClan == 7;
  339.  
  340. DBServerSocket.SendOneMessage((char*)&sm_us, sizeof(MSG_STANDARD));
  341.  
  342. for (int i = 0; i < pMob[conn].MaxCarry && Saphire > 0 && pMob[conn].MOB.Equip[13].sIndex != 4081; i++)
  343. {
  344. if (pMob[conn].MOB.Carry[i].sIndex == 697)
  345. {
  346. memset(&pMob[conn].MOB.Carry[i], 0, sizeof(STRUCT_ITEM));
  347. SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry[i]);
  348. Saphire--;
  349. }
  350.  
  351. else if (pMob[conn].MOB.Carry[i].sIndex == 4131)
  352. {
  353. memset(&pMob[conn].MOB.Carry[i], 0, sizeof(STRUCT_ITEM));
  354. SendItem(conn, ITEM_PLACE_CARRY, i, &pMob[conn].MOB.Carry[i]);
  355.  
  356. if ((Saphire - 10) < 0)
  357. Saphire = 0;
  358.  
  359. else
  360. Saphire -= 10;
  361. }
  362. }
  363.  
  364. if (pMob[conn].MOB.Equip[13].sIndex == 4081)
  365. {
  366. memset(&pMob[conn].MOB.Equip[13], 0, sizeof(STRUCT_ITEM));
  367. SendItem(conn, ITEM_PLACE_EQUIP, 13, &pMob[conn].MOB.Equip[13]);
  368. }
  369.  
  370. if (CapeMode == 0)
  371. {
  372. if (Capa->sIndex != 548)
  373. memset(&pMob[conn].MOB.Equip[15], 0, sizeof(STRUCT_ITEM));
  374.  
  375. if (ReiClan == 7)
  376. pMob[conn].MOB.Equip[15].sIndex = 545;
  377. else
  378. pMob[conn].MOB.Equip[15].sIndex = 546;
  379. }
  380.  
  381. if (CapeMode == 1)
  382. {
  383. if (Capa->sIndex == 3193)
  384. {
  385. if (ReiClan == 7)
  386. pMob[conn].MOB.Equip[15].sIndex = 3191;
  387. else
  388. pMob[conn].MOB.Equip[15].sIndex = 3192;
  389. }
  390.  
  391. else if (Capa->sIndex == 3196)
  392. {
  393. if (ReiClan == 7)
  394. pMob[conn].MOB.Equip[15].sIndex = 3194;
  395. else
  396. pMob[conn].MOB.Equip[15].sIndex = 3195;
  397. }
  398.  
  399. else
  400. {
  401. if (Capa->sIndex != 549)
  402. memset(&pMob[conn].MOB.Equip[15], 0, sizeof(STRUCT_ITEM));
  403.  
  404. if (ReiClan == 7)
  405. pMob[conn].MOB.Equip[15].sIndex = 543;
  406. else
  407. pMob[conn].MOB.Equip[15].sIndex = 544;
  408. }
  409. }
  410.  
  411.  
  412. SendItem(conn, ITEM_PLACE_EQUIP, 15, &pMob[conn].MOB.Equip[15]);
  413.  
  414. if (ReiClan == 7)
  415. SendClientMessage(conn, g_pMessageStringTable[_NN_My_King_Bless1]);
  416. else
  417. SendClientMessage(conn, g_pMessageStringTable[_NN_My_King_Bless2]);
  418.  
  419. int Guild = pMob[conn].MOB.Guild;
  420. int Group = ServerGroup;
  421. int Server = Guild / MAX_GUILD;
  422. int usGuild = Guild & MAX_GUILD - 1;
  423.  
  424. if (Guild && pMob[conn].MOB.GuildLevel == 9)
  425. {
  426. MSG_GuildInfo sm_gi;
  427. memset(&sm_gi, 0, sizeof(MSG_GuildInfo));
  428.  
  429. sm_gi.Type = _MSG_GuildInfo;
  430. sm_gi.Size = sizeof(MSG_GuildInfo);
  431. sm_gi.ID = conn;
  432.  
  433. sm_gi.Guild = Guild;
  434.  
  435. GuildInfo[Guild].Clan = ReiClan;
  436.  
  437. sm_gi.GuildInfo = GuildInfo[Guild];
  438.  
  439. DBServerSocket.SendOneMessage((char*)&sm_gi, sizeof(MSG_GuildInfo));
  440. }
  441.  
  442. sprintf(temp, "etc,get mantle %d - sapphire:%d", pMob[conn].MOB.Equip[15].sIndex, Saphire);
  443. Log(temp, pUser[conn].AccountName, pUser[conn].IP);
  444. break;
  445. }
  446. else
  447. {
  448. SendClientMessage(conn, g_pMessageStringTable[_NN_Need_Level]);
  449. break;
  450. }
  451. } break;
  452. #pragma endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement