Проверенный
Участник
Пользователь
d3m37r4
111111
- Сообщения
- 1,454
- Реакции
- 1,194
- Помог
- 10 раз(а)
Всем доброго времени суток!
Вопрос такой: при выдаче дефузов стоит-ли проверять, имеются ли дефуза у игрока или нет?
И по поводу проверки на "имеет-ли карта зону закладки бомбы", правильно ли я понимаю, что, приведенный ниже кусок кода отвечает за ту самую проверку и добавлять ее в плагине при выдаче не нужно?:
Вопрос такой: при выдаче дефузов стоит-ли проверять, имеются ли дефуза у игрока или нет?
Код:
cell AMX_NATIVE_CALL rg_give_defusekit(AMX *amx, cell *params)
{
enum args_e { arg_count, arg_index, arg_def, arg_color, arg_icon, arg_flash };
CHECK_GAMERULES();
CHECK_ISPLAYER(arg_index);
CBasePlayer *pPlayer = UTIL_PlayerByIndex(params[arg_index]);
CHECK_CONNECTED(pPlayer, arg_index);
// on the map there is not bomb places
if (CSGameRules() != nullptr && !CSGameRules()->m_bMapHasBombTarget && !CSGameRules()->m_bMapHasBombZone) {
return FALSE;
}
pPlayer->m_bHasDefuser = pPlayer->pev->body = params[arg_def] != 0;
if (params[arg_def] != 0)
{
Vector* color = (Vector *)getAmxAddr(amx, params[arg_color]);
char iconbuf[256];
const char* icon = getAmxString(amx, params[arg_icon], iconbuf);
MESSAGE_BEGIN(MSG_ONE, gmsgStatusIcon, nullptr, pPlayer->pev);
WRITE_BYTE(params[arg_flash] != 0 ? STATUSICON_FLASH : STATUSICON_SHOW);
WRITE_STRING(icon);
WRITE_BYTE(color->x);
WRITE_BYTE(color->y);
WRITE_BYTE(color->z);
MESSAGE_END();
}
else
{
MESSAGE_BEGIN(MSG_ONE, gmsgStatusIcon, nullptr, pPlayer->pev);
WRITE_BYTE(STATUSICON_HIDE);
WRITE_STRING("defuser");
MESSAGE_END();
}
return TRUE;
}
И по поводу проверки на "имеет-ли карта зону закладки бомбы", правильно ли я понимаю, что, приведенный ниже кусок кода отвечает за ту самую проверку и добавлять ее в плагине при выдаче не нужно?:
Код:
// on the map there is not bomb places
if (CSGameRules() != nullptr && !CSGameRules()->m_bMapHasBombTarget && !CSGameRules()->m_bMapHasBombZone) {
return FALSE;
}