Пользователь
- Сообщения
- 182
- Реакции
- 4
Заметил странное поведение плагина:
Выставил такие настройки в конфиге:
В чем прикол:
- По идее молотов должен выдаваться автоматически только игрокам с флагом ADMIN_CHAT но не тут то было. Он выдается всем.
Поковырялся в коде и понял что дело тут:
Я поменял строчку на:
и вуаля, всё работает как часики.
Может это только у меня так?
Выставил такие настройки в конфиге:
C#:
// Флаги доступа - для покупки или выдачи молотова (требует наличия вписанных - "abc" / пустая строка "" - покупка доступна всем)
// -
// Default: ""
molotov_buy_access "i"
// Автоматически выдавать молотов в начале раунда
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
molotov_equip_access "1"
// Проверять находится ли игрок в зоне покупки
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
molotov_check_buyzone "0"
// Цена молотова
// -
// Default: "800"
// Minimum: "0.000000"
molotov_cost "800"
// Сколько молотовых можно купить за один раунд (значение: -1 убирает лимит)
// -
// Default: "1"
// Minimum: "-1.000000"
molotov_buy_limit "-1"
// С какого раунда после начала игры будет доступен молотов
// -
// Default: "2"
// Minimum: "0.000000"
molotov_limit_round "1"
// Сколько секунд с начала раунда можно купить молотов
// Время на покупку
// -2 - Подчиняться квару mp_buytime
// -1 - Без ограничений
// 0 - Выкл. покупку
// 1 и более - Время в секундах
//
// Default: "25"
// Minimum: "0.000000"
molotov_limit_buytime "25"
// Сколько урона наносить при попадании молотова в тело игрока
// -
// Default: "2"
// Minimum: "0.000000"
molotov_check_hit_player "2"
// Показывать ли в киллфиде рядом с именем приставку [ᴍᴏʟᴏᴛᴏᴠ]
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
molotov_killfeed "0"
// Радиус горения молотова
// -
// Default: "132.0"
// Minimum: "0.000000"
molotov_radius "132.0"
// Сколько секунд молотов может находиться в полете перед взрывом
// -
// Default: "2.5"
// Minimum: "0.000000"
molotov_throwtime "2.5"
// Сколько секунд будет гореть молотов
// -
// Default: "12"
// Minimum: "0.000000"
molotov_duration "12"
// Кто получает урон от коктейля молотова (0 - только противники, 1 - противники и игрок бросивший коктейль молотова, 2 - все игроки)
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "2.000000"
molotov_demage_mode "2"
// Как будет наноситься урон от огня (1 - через Ham_TakeDamage [урон фиксированный в любой точке радиуса горения], 2 - через rg_dmg_radius [урон зависит от даль
// -
// Default: "2"
// Minimum: "1.000000"
// Maximum: "2.000000"
molotov_demage_radius_mode "2"
// Периодичность нанесения урона
// -
// Default: "0.20"
// Minimum: "0.000000"
molotov_demage_time "0.20"
// Количество нанесенного урона за период (molotov_demage_time)
// -
// Default: "20.0"
// Minimum: "0.000000"
molotov_demage_value "20.0"
// Количество обрисовываемых волн огня
// -
// Default: "4"
// Minimum: "0.000000"
// Maximum: "10.000000"
molotov_effect_num "4"
// Тушить ли коктейль молотова дымовой гранатой
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
molotov_smoke_touch "1"
// Путь до модели дымовой гранаты. (Стандартная: models/w_smokegrenade.mdl)
// -
// Default: "models/w_smokegrenade.mdl"
molotov_smoke_owner "models/w_smokegrenade.mdl"
// Тушить ли коктейль молотова при соприкосновении с водой
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
molotov_water_touch "1"
// Удалять коктейль молотова при соприкосновении со скайбоксом карты
// -
// Default: "1"
// Minimum: "0.000000"
// Maximum: "1.000000"
molotov_sky_force "1"
В чем прикол:
- По идее молотов должен выдаваться автоматически только игрокам с флагом ADMIN_CHAT но не тут то было. Он выдается всем.
Поковырялся в коде и понял что дело тут:
C#:
public CBasePlayer_OnSpawnEquip_Post(const id){
if(!is_user_connected(id))
return;
BuyLimit[id] = g_eCvar[CVAR_BUY_LIMIT];
new bitAccess = g_eCvar[CVAR_BUY_ACCESS];
if(g_eCvar[CVAR_EQUIP_ACCESS] < 1)
return;
// Вот в этой строчке кода весь прикол
if (bitAccess && ~get_user_flags(id) & bitAccess)
return;
if(get_member_game(m_iTotalRoundsPlayed) + 1 < g_eCvar[CVAR_LIMIT_ROUND])
return;
giveNade(id);
}
if(~get_user_flags(id) & ADMIN_CHAT)
и вуаля, всё работает как часики.
Может это только у меня так?