Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ACMD(do_block_chat)
- {
- // GM? ???? block_chat_privilege? ?? ??? ??? ?? ??
- if (ch && (ch->GetGMLevel() < GM_HIGH_WIZARD && ch->GetQuestFlag("chat_privilege.block") <= 0))
- {
- ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("?? ???? ????"));
- return;
- }
- char arg1[256];
- argument = one_argument(argument, arg1, sizeof(arg1));
- if (!*arg1)
- {
- if (ch)
- ch->ChatPacket(CHAT_TYPE_INFO, "Usage: block_chat <name> <time> (0 to off)");
- return;
- }
- const char* name = arg1;
- long lBlockDuration = parse_time_str(argument);
- if (lBlockDuration < 0)
- {
- if (ch)
- {
- ch->ChatPacket(CHAT_TYPE_INFO, "??? ??? ?????. h, m, s? ??? ??? ????.");
- ch->ChatPacket(CHAT_TYPE_INFO, "?) 10s, 10m, 1m 30s");
- }
- return;
- }
- sys_log(0, "BLOCK CHAT %s %d", name, lBlockDuration);
- LPCHARACTER tch = CHARACTER_MANAGER::instance().FindPC(name);
- if (!tch)
- {
- CCI * pkCCI = P2P_MANAGER::instance().Find(name);
- if (pkCCI)
- {
- TPacketGGBlockChat p;
- p.bHeader = HEADER_GG_BLOCK_CHAT;
- strlcpy(p.szName, name, sizeof(p.szName));
- p.lBlockDuration = lBlockDuration;
- P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGBlockChat));
- }
- else
- {
- TPacketBlockChat p;
- strlcpy(p.szName, name, sizeof(p.szName));
- p.lDuration = lBlockDuration;
- db_clientdesc->DBPacket(HEADER_GD_BLOCK_CHAT, ch ? ch->GetDesc()->GetHandle() : 0, &p, sizeof(p));
- }
- if (ch)
- ch->ChatPacket(CHAT_TYPE_INFO, "Chat block requested.");
- return;
- }
- if (tch && ch != tch)
- tch->AddAffect(AFFECT_BLOCK_CHAT, POINT_NONE, 0, AFF_NONE, lBlockDuration, 0, true);
- }
Advertisement
Add Comment
Please, Sign In to add comment