Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.51 KB | None | 0 0
  1. EVENTFUNC(pvp_check_disconnect)
  2. {
  3. if (event == NULL)
  4. return 0;
  5.  
  6. if (event->info == NULL)
  7. return 0;
  8.  
  9. TPVPCheckDisconnect* info = dynamic_cast<TPVPCheckDisconnect*>(event->info);
  10.  
  11. if (info == NULL)
  12. {
  13. sys_err("disconnect_event> <Factor> Null pointer");
  14. return 0;
  15. }
  16.  
  17. LPCHARACTER chA = info->ch;
  18. LPCHARACTER chB = info->victim;
  19. #ifdef ENABLE_PVP_ADVANCED_CORE_CRASH_FIX_2
  20. if (!chA && !chB)
  21. {
  22. event_cancel(&m_pCheckDisconnect);
  23. m_pCheckDisconnect = NULL;
  24. return 0;
  25. }
  26. #endif
  27. if (chA == NULL)
  28. {
  29. const char* szTableStaticPvP[] = {BLOCK_CHANGEITEM, BLOCK_BUFF, BLOCK_POTION, BLOCK_RIDE, BLOCK_PET, BLOCK_POLY, BLOCK_PARTY, BLOCK_EXCHANGE_, BET_WINNER, CHECK_IS_FIGHT};
  30.  
  31. int betMoney = chB->GetQuestFlag(szTableStaticPvP[8]);
  32.  
  33. if (betMoney > 0)
  34. {
  35. chB->PointChange(POINT_GOLD, betMoney, true);
  36. chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("duel_victim_disconnect_receive_money"));
  37. }
  38.  
  39. char buf[CHAT_MAX_LEN + 1];
  40. snprintf(buf, sizeof(buf), "BINARY_Duel_Delete");
  41. chB->ChatPacket(CHAT_TYPE_COMMAND, buf);
  42.  
  43. for (int i = 0; i < _countof(szTableStaticPvP); i++) {
  44. chB->SetQuestFlag(szTableStaticPvP[i], 0);
  45. }
  46.  
  47. chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("duel_victim_disconnect"));
  48.  
  49. event_cancel(&m_pCheckDisconnect);
  50. m_pCheckDisconnect = NULL;
  51. return 0;
  52. }
  53.  
  54. if (chB == NULL)
  55. {
  56. const char* szTableStaticPvP[] = {BLOCK_CHANGEITEM, BLOCK_BUFF, BLOCK_POTION, BLOCK_RIDE, BLOCK_PET, BLOCK_POLY, BLOCK_PARTY, BLOCK_EXCHANGE_, BET_WINNER, CHECK_IS_FIGHT};
  57.  
  58. int betMoney = chA->GetQuestFlag(szTableStaticPvP[8]);
  59.  
  60. if (betMoney > 0)
  61. {
  62. chA->PointChange(POINT_GOLD, betMoney, true);
  63. chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("duel_victim_disconnect_receive_money"));
  64. }
  65.  
  66. char buf[CHAT_MAX_LEN + 1];
  67. snprintf(buf, sizeof(buf), "BINARY_Duel_Delete");
  68. chA->ChatPacket(CHAT_TYPE_COMMAND, buf);
  69.  
  70. for (int i = 0; i < _countof(szTableStaticPvP); i++) {
  71. chA->SetQuestFlag(szTableStaticPvP[i], 0);
  72. }
  73.  
  74. chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("duel_victim_disconnect"));
  75.  
  76. event_cancel(&m_pCheckDisconnect);
  77. m_pCheckDisconnect = NULL;
  78. return 0;
  79. }
  80. return PASSES_PER_SEC(1);
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement