1. افتح القاعدة وروح لـAccount واضغط F6 وأدخل هذي
  2. ALTER TABLE account ADD reason VARCHAR(256);
  3. وسوي run بعدها save
  4. --
  5. افتح ملف cmd.cpp وابحث عن
  6. ACMD(do_block_chat);
  7. اضف تحته
  8. ACMD(do_ban);
  9. ابحث عن
  10. {"rewarp", do_rewarp, 0, POS_DEAD, GM_LOW_WIZARD},
  11. اضف تحته
  12. { "ban", do_ban, 0, POS_DEAD, GM_LOW_WIZARD },
  13. افتح ملف cmd_gm.cpp وابحث عن
  14. ACMD(do_block_chat)
  15. اضف تحته
  16. ACMD(do_ban);
  17. أضف في اخر الملف
  18. ACMD(do_ban)
  19. {
  20.     // Args
  21.     char arg1[256], arg2[256], arg3[256];
  22.     // Local variables
  23.     const char*  szName;
  24.     const char*  escapestring;
  25.     int             iDuration;
  26.     one_argument(two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2)), arg3, sizeof(arg3));
  27.     // Invalid syntax
  28.     if (!*arg1 || !*arg2 || !*arg3)
  29.     {
  30.         ch->ChatPacket(CHAT_TYPE_INFO, "[النظام] الأمر هذا خاطئ, يجب كتابة التالي: /ban الاسم الوقت السبب");
  31.         return;
  32.     }
  33.     szName        = arg1;
  34.     iDuration    = atoi(arg2);
  35.     escapestring    = arg3;
  36.     if (iDuration <= 0)
  37.     {
  38.         ch->ChatPacket(CHAT_TYPE_INFO, "[النظام] يجب أن تكون مدة الحظر أكبر من 0");
  39.         return;
  40.     }
  41.     LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(szName);
  42.     if (!tch)
  43.     {
  44.         ch->ChatPacket(CHAT_TYPE_INFO, "[النظام] اللاعب %s ليس متصلًا باللعبة.", szName);
  45.         return;
  46.     }
  47.     if (!tch->GetDesc())
  48.     {
  49.         ch->ChatPacket(CHAT_TYPE_INFO, "[النظام] لا يوجد سبب لحظر %s.", szName);
  50.         return;
  51.     }
  52.     if (tch == ch)
  53.     {
  54.         ch->ChatPacket(CHAT_TYPE_INFO, "[النظام] لا يمكنك حظر نفسك.");
  55.         return;
  56.     }
  57.     if (tch->GetGMLevel() > GM_PLAYER)
  58.     {
  59.         ch->ChatPacket(CHAT_TYPE_INFO, "[النظام] لا يمكنك حظر مراقب.");
  60.         return;
  61.     }
  62.     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 * 60, escapestring, tch->GetDesc()->GetAccountTable().id));
  63.     
  64.     tch->GetDesc()->DelayedDisconnect(5);
  65.     sys_log(0, "%s[%d] banned %s for %i hours with reason: %s", ch->GetName(), ch->GetPlayerID(), szName, iDuration, escapestring);
  66.     ch->ChatPacket(CHAT_TYPE_INFO, "[النظام] اللاعب%s تم حظره بسبب %i وسيستمر الحظر لمدة: %s.", szName, iDuration, escapestring);
  67. }

نظام الحظر بإستخدام /ban