RU
RU
UA
EN
PL
ГЛАВНАЯ
УСЛУГИ
ПЛАГИНЫ
КАРТЫ
REBUY
SCANMON
CASSA
SALE
ФОРУМ
МОНИТОР
HELP
КОНТАКТ
Главная
/
Plugins
/
[CS 1.6] Buyzone Range
[CS 1.6] Buyzone Range
Теги:
Скачать плагины cs
Серверные
Плагин позволяет установить предел закупочной зоны: "везде", "нигде" или "по умолчанию".
Компилятор: 1.8.3 Multibild
1104
Команды:
bz_range
0: запрещена закупка
1: по умолчанию
2: везде
.sma / .sp
#include
#include
// plugin's main information #define PLUGIN_NAME "Buyzone Range" #define PLUGIN_VERSION "0.1" #define PLUGIN_AUTHOR "VEN" // OPTIONS BELOW // CVAR name and its default value #define CVAR_NAME "bz_range" #define CVAR_DEF "1" // uncomment to disable automatic 32/64bit processor detection // possible values is <0: 32bit | 1: 64bit> //#define PROCESSOR_TYPE 0 // OPTIONS ABOVE // mapzone player's private data offset #define OFFSET_32BIT 235 #define OFFSET_64BIT 268 // offset's linux difference #define OFFSET_LINUX_DIFF 5 // buyzone bit #define BIT_BUYZONE (1<<0) // determination of actual offsets #if !defined PROCESSOR_TYPE // is automatic 32/64bit processor detection? #if cellbits == 32 // is the size of a cell 32 bits? // then considering processor as 32 bit #define OFFSET OFFSET_32BIT #else // in other case considering the size of a cell as 64 bits // and then considering processor as 64 bit #define OFFSET OFFSET_64BIT #endif #else // processor type is specified by PROCESSOR_TYPE define #if PROCESSOR_TYPE == 0 // 32bit processor defined #define OFFSET OFFSET_32BIT #else // considering that defined 64bit processor #define OFFSET OFFSET_64BIT #endif #endif // get/set mapzone bits #define CS_GET_USER_MAPZONES(%1) get_pdata_int(%1, OFFSET, OFFSET_LINUX_DIFF) #define CS_SET_USER_MAPZONES(%1,%2) set_pdata_int(%1, OFFSET, %2, OFFSET_LINUX_DIFF) // fake buyzone absmin and absmax new Float:g_buyzone_min[3] = {-8192.0, -8192.0, -8192.0} new Float:g_buyzone_max[3] = {-8191.0, -8191.0, -8191.0} new g_buyzone new g_pcvar new bool:g_enabled new g_bit new bool:g_new_round new g_maxplayers #define MAX_PLAYERS 32 new bool:g_alive[MAX_PLAYERS + 1] new g_msgid_icon new g_icon_name[] = "buyzone" #define ICON_R 0 #define ICON_G 160 #define ICON_B 0 public plugin_init() { register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR) g_pcvar = register_cvar(CVAR_NAME, CVAR_DEF) register_clcmd("buy", "menu_block") register_clcmd("buyequip", "menu_block") register_clcmd("fullupdate", "clcmd_fullupdate") register_event("HLTV", "event_new_round", "a", "1=0", "2=0") register_event("ResetHUD", "event_player_alive", "be") register_event("Health", "event_player_dead", "bd", "1=0") register_forward(FM_PlayerPostThink, "forward_player_postthink") g_msgid_icon = get_user_msgid("StatusIcon") register_message(g_msgid_icon, "message_status_icon") g_maxplayers = get_maxplayers() g_buyzone = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "func_buyzone")) dllfunc(DLLFunc_Spawn, g_buyzone) engfunc(EngFunc_SetSize, g_buyzone, g_buyzone_min, g_buyzone_max) update_state_vars() } public forward_player_postthink(id) { if (g_alive[id] && g_enabled) { switch (g_bit) { case BIT_BUYZONE: dllfunc(DLLFunc_Touch, g_buyzone, id) default: CS_SET_USER_MAPZONES(id, CS_GET_USER_MAPZONES(id) & ~BIT_BUYZONE) } } } public event_new_round() { g_new_round = true set_task(0.1, "task_unset_var") update_state_vars() } public task_unset_var() { g_new_round = false } public event_player_alive(id) { g_alive[id] = true if (g_new_round) { if (g_enabled) draw_buyzone_icon(id, g_bit) } else { update_state_vars() if (g_enabled) { for (new i = 1; i <= g_maxplayers; ++i) { if (g_alive[i]) draw_buyzone_icon(i, g_bit) } } } } public event_player_dead(id) { g_alive[id] = false } public client_disconnect(id) { g_alive[id] = false } public message_status_icon(msg_id, msg_dest, id) { if (!g_alive[id] || !g_enabled) return PLUGIN_CONTINUE new icon[8] get_msg_arg_string(2, icon, 7) if (equal(icon, g_icon_name)) return PLUGIN_HANDLED return PLUGIN_CONTINUE } public menu_block(id) { if (g_alive[id] && g_enabled && !g_bit) return PLUGIN_HANDLED return PLUGIN_CONTINUE } public clcmd_fullupdate() { return PLUGIN_HANDLED } update_state_vars() { new cvar_value = get_pcvar_num(g_pcvar) g_enabled = true switch (cvar_value) { case 0: g_bit = 0 case 1: g_enabled = false default: g_bit = BIT_BUYZONE } } draw_buyzone_icon(id, draw) { message_begin(MSG_ONE, g_msgid_icon, _, id) write_byte(draw) write_string(g_icon_name) if (draw) { write_byte(ICON_R) write_byte(ICON_G) write_byte(ICON_B) } message_end() }
Отправить
Загрузил
FliNe
2019-03-21 13:57:23
0
16
Установить на сервер
Скачать
Нет оплаченых серверов
Купить сервер CS 1.6
Купить сервер CS:GO
Купить сервер CSS v34
Подключить свой VDS к панели
Данная иконка означает, что плагин был проверен администрацией хостинга на тестовом сервере, и проблем с ним не было выявлено. Рекомендуем ставить исключительно проверенные плагины.
Плагин загружен на сервер, но проверка еще не была проведена.
CSHOST.COM.UA 2012-2024 Хостинг игровых серверов