1. navicat gir > account tablosuna gir > F6 tuşuna bas yapıştır ve enter'e bas
  2. ALTER TABLE account ADD reason VARCHAR(256);
  3. şimdi ara game/cmd.cpp
  4. ACMD(do_block_chat);
  5. Bunun altına şunu ekleyin:
  6. ACMD(do_ban);
  7. Bunu game / cmd.cpp'de arayın:
  8. { "block_chat_list",do_block_chat_list, 0, POS_DEAD, GM_PLAYER },
  9. Yeni bir satır oluşturun ve bunu altına ekleyin:
  10. { "ban", do_ban, 0, POS_DEAD, GM_IMPLEMENTOR },
  11. Ara game/cmd_gm.cpp:
  12. ACMD(do_block_chat)
  13. Üstüne ekle:
  14. ACMD(do_ban);
  15. En alta gel ekle
  16. ACMD(do_ban)
  17. {
  18. // Args
  19. char arg1[256], arg2[256], arg3[256];
  20. // Local variables
  21. const char* szName;
  22. const char* escapestring;
  23. int iDuration;
  24. one_argument(two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2)), arg3, sizeof(arg3));
  25. // Invalid syntax
  26. if (!*arg1 || !*arg2 || !*arg3)
  27. {
  28. ch->ChatPacket(CHAT_TYPE_INFO, "Gecersiz Sozdizimi, Kullanim: <oyuncu ismi> <zaman> <sebeb> ipucu: neden için boşluk kullanmayın, _ (alt tire)kullanın");
  29. return;
  30. }
  31. szName = arg1;
  32. iDuration = atoi(arg2);
  33. escapestring = arg3;
  34. if (iDuration <= 0)
  35. {
  36. ch->ChatPacket(CHAT_TYPE_INFO, "Süre 0 veya eksi olamaz.");
  37. return;
  38. }
  39. LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(szName);
  40. if (!tch)
  41. {
  42. ch->ChatPacket(CHAT_TYPE_INFO, "%s oyunda yok.", szName);
  43. return;
  44. }
  45. if (!tch->GetDesc())
  46. {
  47. ch->ChatPacket(CHAT_TYPE_INFO, "%s don't have desc", szName);
  48. return;
  49. }
  50. if (tch == ch)
  51. {
  52. ch->ChatPacket(CHAT_TYPE_INFO, "Kendini banlayamazsin");
  53. return;
  54. }
  55. if (tch->GetGMLevel() > GM_PLAYER)
  56. {
  57. ch->ChatPacket(CHAT_TYPE_INFO, "Gmleri Banlayamazsin");
  58. return;
  59. }
  60. std::auto_ptr<SQLMsg> msg(DBManager::instance().DirectQuery("UPDATE account.account SET availDt = FROM_UNIXTIME(UNIX_TIMESTAMP(CURRENT_TIMESTAMP()) + %i), reason = '%s' WHERE id = %d", iDuration * 3600, escapestring, tch->GetDesc()->GetAccountTable().id));
  61. tch->GetDesc()->DelayedDisconnect(5);
  62. sys_log(0, "%s[%d] banned %s for %i hours with reason: %s", ch->GetName(), ch->GetPlayerID(), szName, iDuration, escapestring);
  63. ch->ChatPacket(CHAT_TYPE_INFO, "%s %i saattir şu nedenle yasaklandı: %s", szName, iDuration, escapestring);
  64. }