/* AMX Mod X script. Bot Marker plugin (c) Copyright 2007, Simon Logic 'slspam@land.ru' This file is provided AS IS (no warranties). Info: Allows admin to hide or show bot marker for bots & real users on score table. Requirements: * AMX/X 1.7x or higher * RegEx module New cvars: * amx_botmarker <-1|0|1> (default=-1) control bot marker for bots: -1 - do nothing 0 - hide 1 - show New commands: * amx_botmark <0|1> set bot marker of custom user Changelog: v1.1.0 [2007-06-17] + added admin command 'amx_botmark' v1.0.0 [2007-06-16] * public release */ #include #include #include #pragma tabsize 4 #pragma ctrlchar '\' #define MY_PLUGIN_NAME "Bot Marker" #define MY_PLUGIN_VERSION "1.1.0" #define MY_PLUGIN_AUTHOR "Simon Logic" #define MAX_CLIENTS 32 //#define _DEBUG //#define _ASSERT new g_cvarControl //----------------------------------------------------------------------------- public plugin_init() { register_plugin(MY_PLUGIN_NAME, MY_PLUGIN_VERSION, MY_PLUGIN_AUTHOR) g_cvarControl = register_cvar("amx_botmarker", "-1") register_concmd("amx_botmark", "cmdSet", ADMIN_SLAY, " <0|1>") register_event("ResetHUD", "onPlayerSpawn", "be") } //----------------------------------------------------------------------------- public onPlayerSpawn(id) { if(is_user_bot(id)) { new iValue = get_pcvar_num(g_cvarControl) if(iValue > 0) set_user_info(id, "*bot", "1") else if(!iValue) set_user_info(id, "*bot", "0") } } //----------------------------------------------------------------------------- public cmdSet(id, level, cid) { if(!cmd_access(id, level, cid, 3)) return PLUGIN_HANDLED new arg1[32], arg2[2] read_argv(1, arg1, sizeof(arg1)-1) // user address read_argv(2, arg2, sizeof(arg2)-1) // bool new player = cmd_target_ex(id, arg1, 1) if(!player) return PLUGIN_HANDLED new authid[32], name[32], authid2[32], name2[32] get_user_authid(id, authid, 31) get_user_name(id, name, 31) get_user_authid(player, authid2, 31) get_user_name(player, name2, 31) if(arg2[0] != '0') arg2 = "1" set_user_info(player, "*bot", arg2) log_amx("Cmd: \"%s<%d><%s><>\" changed bot marker to \"%s\" of \"%s<%d><%s><>\"", name, get_user_userid(id), authid, arg2, name2, get_user_userid(player), authid2) switch(get_cvar_num("amx_show_activity")) { case 2: client_print(0, print_chat, "ADMIN %s: changed bot marker of %s to %s", name, name2, arg2) case 1: client_print(0, print_chat, "ADMIN: changed bot marker of %s to %s", name2, arg2) } return PLUGIN_HANDLED } //----------------------------------------------------------------------------- stock bool:isIP(const ip[]) { static Regex:res new iRet new sErr[1] res = regex_match(ip, "^#\\d+\\.\\d+\\.\\d+\\.\\d+$", iRet, sErr, 0) if(!res) return false return true } //----------------------------------------------------------------------------- stock copyOffset(const src[], dest[], len, offset=0) { if(!offset) copy(dest, len, src) else if(offset < strlen(src)) { new iPos = 0 for(new i=offset; src[i] && iPos