Поиск Admin Strip Knife?
NYAN 13.06.2021
Hello! Does such plugin exist? The function is with command like amx_stripknife admin would disable a players knife until its re-enabled by the same command again?
dasiek 14.06.2021
Automatyczna wiadomość
Ten temat został przeniesiony z forum
AMX Mod X → Szukam pluginu
do
AMX Mod X → Multilingual
Ten temat został przeniesiony z forum
AMX Mod X → Szukam pluginu
do
AMX Mod X → Multilingual
Engi 14.06.2021
Try this:
Spoiler
#include <amxmodx> #include <amxmisc> #include <hamsandwich> #include <engine> #include <fun> public plugin_init() register_concmd("amx_stripknife", "cmdStripKnife", ADMIN_KICK, "<player name>") public cmdStripKnife(id, level, cid){ if (!cmd_access(id, level, cid, 2, false)) return new szArg[33] read_argv(1, szArg, charsmax(szArg)) new player = cmd_target(id, szArg, CMDTARGET_ALLOW_SELF) if (!player) return PlayerStripKnife(id, player) } PlayerStripKnife(id, player){ if(is_user_alive(player)){ new szAdminName[33] new szTargetName[33] get_user_name(id, szAdminName, charsmax(szAdminName)) get_user_name(player, szTargetName, charsmax(szTargetName)) new knfEntity = find_ent_by_owner(-1, "weapon_knife", player) if (!is_valid_ent(knfEntity)){ give_item(player,"weapon_knife") client_print(0, print_chat, "Admin %s gave knife to %s", szAdminName, szTargetName) }else{ client_print(0, print_chat, "Admin %s stripped knife from %s", szAdminName, szTargetName) ExecuteHamB(Ham_RemovePlayerItem, player, knfEntity) remove_entity(knfEntity) } } }
or with reapi (better):
Spoiler
#include <amxmodx> #include <amxmisc> #include <reapi> #define SAVE_DATA #if defined SAVE_DATA #include <fvault> new g_szFVault[] = "RemovedKnife" new g_szName[MAX_PLAYERS + 1][MAX_NAME_LENGTH] #endif new g_bRemovedKnife[MAX_PLAYERS + 1] public plugin_init() { register_plugin("Remove Knife", "1.0", "Huehue @ AMXX-BG.INFO") RegisterHookChain(RG_CBasePlayer_Spawn, "RG__CBasePlayer_Spawn", 1) register_clcmd("amx_knife", "Command_Knife", ADMIN_BAN, "<name|#uid>") } public RG__CBasePlayer_Spawn(id) { if (is_user_alive(id)) { if (g_bRemovedKnife[id]) { if (user_has_weapon(id, CSW_KNIFE)) { rg_remove_item(id, "weapon_knife") } } } } public Command_Knife(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new szArgs[MAX_NAME_LENGTH] read_argv(1, szArgs, charsmax(szArgs)) new iPlayer = cmd_target(id, szArgs, CMDTARGET_ALLOW_SELF) if (!iPlayer) return PLUGIN_HANDLED if (g_bRemovedKnife[iPlayer]) { g_bRemovedKnife[iPlayer] = false if (is_user_alive(iPlayer)) rg_give_item(iPlayer, "weapon_knife", GT_APPEND) client_print_color(0, print_team_default, "ADMIN ^3%n^1: gave knife to ^3%n^1.", id, iPlayer) } else { g_bRemovedKnife[iPlayer] = true if (is_user_alive(iPlayer)) rg_remove_item(iPlayer, "weapon_knife") client_print_color(0, print_team_default, "ADMIN ^3%n^1: removed knife from ^3%n^1.", id, iPlayer) } return PLUGIN_HANDLED } #if defined SAVE_DATA public client_putinserver(id) { get_user_name(id, g_szName[id], charsmax(g_szName[])) set_task(0.1, "Load_Data", id, g_szName[id], sizeof(g_szName[])) } public client_disconnected(id) { Save_Data(id, g_szName[id]) } public client_infochanged(id) { if (!is_user_connected(id)) return PLUGIN_HANDLED new szNewName[MAX_NAME_LENGTH], szOldName[MAX_NAME_LENGTH] get_user_name(id, szOldName, charsmax(szOldName)) get_user_info(id, "name", szNewName, charsmax(szNewName)) if (!equal(szNewName, szOldName)) { Save_Data(id, szOldName) set_task(0.1, "Load_Data", id, szNewName, sizeof(szNewName)) g_szName[id] = szNewName return PLUGIN_HANDLED } return PLUGIN_HANDLED } public Save_Data(id, szName[]) { new szData[64] formatex(szData, charsmax(szData), "%i", g_bRemovedKnife[id]) fvault_set_data(g_szFVault, szName, szData) } public Load_Data(szName[], id) { if (!is_user_connected(id)) return new szData[64] fvault_get_data(g_szFVault, szName, szData, charsmax(szData)) new szKnifeStatus[3] parse(szData, szKnifeStatus, charsmax(szKnifeStatus)) g_bRemovedKnife[id] = str_to_num(szKnifeStatus) } #endif