Скриптер
Проверенный
Пользователь
- Сообщения
- 3,582
- Реакции
- 1,570
- Помог
- 137 раз(а)
#define TASKID_TASK 6133
set_task(5.0, "UnFrozenCT", TASKID_TASK);
public UnFrozenCT(const player)
set_entvar(player, var_flags, get_entvar(player, var_flags) & ~FL_FROZEN);
new szTime[33];
g_syncHudMessage = CreateHudSyncObj();
szTime[id] = 5;
set_hudmessage(0, 255, 0, -1.0, -1.0, 2, 1.0, 1.0, 0.1, 1.0, -1);
ShowSyncHudMsg(i, g_syncHudMessage, "Начинаем через %d", szTime[id]);
szTime[id]--
Костыль.Тебе проще хукать спавн игрока и делитать его инвентарь, после чего выдавать нужные пушки.
public PrimaryAttack(this)
public UnFrozenCT(const player)
public PlayerBlind(const index, const inflictor, const attacker, const Float:fadeTime, const Float:fadeHold, const alpha, Float:color[3])
public RoundEnd(WinStatus: iStatus, ScenarioEventEndRound: iEvent, Float: flDelay)
else
{
rg_give_item(i, "weapon_smokegrenade");
rg_give_item(i, "weapon_flashbang");
rg_set_user_bpammo(i, WEAPON_FLASHBANG, 2);
rg_set_user_footsteps(i, true);
}
Предложи свой вариант.Костыль.
В принципе, да. Как вариант.поставь мембер
ДаЕсли у террориста гранат не останется то и ножа не будет, точно так и надо?
#include <amxmodx>
#include <hamsandwich>
#include <reapi>
#define TASKID_TASK 6123
new g_syncHudMessage;
new szTime[33];
public plugin_init()
{
register_plugin("Hide'N'Seek Mode", "1.0b", "CG");
RegisterHookChain(RG_CBasePlayer_Spawn, "Player_Spawn", .post = true);
RegisterHookChain(RG_CSGameRules_RestartRound, "RestartRound_Post", .post = true);
RegisterHookChain(RG_PlayerBlind, "PlayerBlind", .post = false);
RegisterHookChain(RG_RoundEnd, "RoundEnd", .post = false);
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "PrimaryAttack");
g_syncHudMessage = CreateHudSyncObj();
}
public plugin_cfg()
{
set_cvar_num("sv_airaccelerate", 100);
set_cvar_num("mp_buytime", 0);
set_cvar_num("mp_give_player_c4", 0);
}
public Player_Spawn(player)
{
if(!is_user_alive(player))
return;
rg_remove_all_items(player);
if(get_member(player, m_iTeam) == TEAM_CT)
rg_give_item(player, "weapon_knife");
else
{
rg_give_item(player, "weapon_smokegrenade");
rg_give_item(player, "weapon_flashbang");
rg_set_user_bpammo(player, WEAPON_FLASHBANG, 2);
rg_set_user_footsteps(player, true);
}
}
public RestartRound_Post()
{
for(new i = 1; i <= MaxClients; i++)
{
if(!is_user_alive(i))
return;
szTime[id] = 5;
set_hudmessage(0, 255, 0, -1.0, -1.0, 2, 1.0, 1.0, 0.1, 1.0, -1);
ShowSyncHudMsg(i, g_syncHudMessage, "Начинаем через %d", szTime[id]);
szTime[id]--
if(get_member(i, m_iTeam) == TEAM_CT)
{
set_entvar(i, var_flags, get_entvar(i, var_flags) | FL_FROZEN);
set_task(5.0, "UnFrozenCT", i + TASKID_TASK);
}
}
}
public UnFrozenCT(player)
{
player -= TASKID_TASK;
set_entvar(player, var_flags, get_entvar(player, var_flags) & ~FL_FROZEN);
}
public PlayerBlind(index, inflictor, attacker, Float:fadeTime, Float:fadeHold, alpha, Float:color[3])
{
if(index == attacker || (get_member(index, m_iTeam) == get_member(attacker, m_iTeam)))
{
set_member(index, m_blindAlpha, 0);
return HC_SUPERCEDE;
}
return HC_CONTINUE;
}
public RoundEnd(WinStatus:status, ScenarioEventEndRound:event, Float:tmDelay)
{
if(status != WINSTATUS_CTS && status != WINSTATUS_TERRORISTS)
return;
if(status == WINSTATUS_CTS)
rg_swap_all_players();
}
public PrimaryAttack(this)
{
new player = get_member(this, m_pPlayer);
if(get_member(player, m_iTeam) == TEAM_CT)
ExecuteHamB(Ham_Weapon_SecondaryAttack, this);
return HAM_SUPERCEDE;
}
Судя по предоставленному коду - в названии.И еще вопрос, видел сток ScreenFade и имеется UTIL_ScreenFade, в чем разница?
case 1: rg_give_items(id, "weapon_deagle", 35);
case 2: give_weapon_revolver(id);
rg_give_custom_item(id, "weapon_deagle", GT_REPLACE, 11)
. GT_DROP_AND_REPLACE - не подходит, ибо при каждом Spawn'е игрок будет дропать предыдущий Deagle. Самое хорошее решение именно GT_REPLACE, но к сожалению не работает так, как хотелось бы.