Такая проблемка, значит есть режим кнопки для детрана, в нем есть функция, проверка, если игрок нажимает кнопку игнорируя меню с режимами, то автоматически выбирается первый режим (кнопки).
Захотел поставить дхуд уведомление на эти действия... Все выводиться, но если сперва нажать кнопку, то выводиться два дхуда, перебивая друг друга, т.к просто ставиться дефолт режим. Я ломаю голову не могу понять какую сделать проверку, чтобы дхуд выводился исключительно при нажатии кнопки, вообще отдельно от меню... Может кто подскажет?
- Код: Выделить всё
#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <dhudmessage>
#include <deathrun_modes>
#if AMXX_VERSION_NUM < 183
#include <colorchat>
#endif
#pragma semicolon 1
#define PLUGIN "Deathrun Mode: Buttons"
#define VERSION "1.0.0"
#define AUTHOR "Mistrick"
#define IsPlayer(%1) (%1 && %1 <= g_iMaxPlayers)
enum { NONE_MODE = 0 };
//new const PREFIX[] = "^4[DRM]";
new g_iModeButtons, g_iCurMode, g_iMaxPlayers;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
RegisterHam(Ham_Use, "func_button", "Ham_UseButtons_Pre", 0);
g_iMaxPlayers = get_maxplayers();
g_iModeButtons = dr_register_mode
(
.Name = "DRM_MODE_BUTTONS",
.Mark = "buttons",
.RoundDelay = 0,
.CT_BlockWeapons = 0,
.TT_BlockWeapons = 0,
.CT_BlockButtons = 0,
.TT_BlockButtons = 0,
.Bhop = 1,
.Usp = 1,
.Glock = 0,
.Hide = 0
);
}
public dr_selected_mode(id, mode)
{
g_iCurMode = mode;
if(mode == g_iModeButtons)
{
set_dhudmessage(random_num(0,255), random_num(20,255), random_num(0,255), -1.0, 0.2, 1, 0.0, 0.0, 0.1, 6.0);
show_dhudmessage(0, "%L", LANG_SERVER, "DRM_MODE_HUD_BUTTONS");
}
}
public Ham_UseButtons_Pre(ent, caller, activator, use_type)
{
if(g_iCurMode != NONE_MODE || !IsPlayer(activator)) return HAM_IGNORED;
new CsTeams:team = cs_get_user_team(activator);
if(team != CS_TEAM_T) return HAM_IGNORED;
dr_set_mode(g_iModeButtons, 1, activator);
show_menu(activator, 0, "^n");
//client_print_color(0, print_team_red, "%s %L", PREFIX, LANG_PLAYER, "DRM_USED_BUTTON", LANG_PLAYER, "DRM_MODE_BUTTONS");
set_dhudmessage(random_num(0,255), random_num(20,255), random_num(0,255), -1.0, 0.2, 1, 0.0, 0.0, 0.1, 6.0);
show_dhudmessage(0, "%L", LANG_SERVER, "DRM_USED_BUTTON");
return HAM_IGNORED;
}
P.S В голову только приходит сделать два одинаковых режима, с разными названиями, но как по мне не оч затея... Перво начально ставил проверку на IsPlayer, вроде бы было замечательно, но работала только если террорист нажимал кнопку вообще, т.е хотя бы раз за карту.