alexmy
Участник
- Сообщения
- 284
- Реакции
- 13
Всем привет, ребята помогите плиз. Уже не знаю что придумать, пока стоишь на месте, все нормально но как проходишь не сколько метров, команды вырубаются, опять включаешь они опять сразу вырубаются.
Оффтоп
Оффтоп
PHP:
#include <sourcemod>
#pragma semicolon 1
bool g_bFastReload[MAXPLAYERS + 1];
bool g_bSilencer[MAXPLAYERS + 1];
bool g_bLaser[MAXPLAYERS + 1];
public void OnPluginStart()
{
RegConsoleCmd("sm_upgrades", sm_upgrades);
RegConsoleCmd("sm_upgrades", sm_upgrades1);
RegConsoleCmd("sm_upgrades", sm_upgrades2);
HookEvent("round_end", Event_RoundEnd, EventHookMode_Pre);
HookEvent("player_spawn", player_spawn, EventHookMode_PostNoCopy);
HookEvent("player_death", Event_RoundEnd, EventHookMode_Post);
HookEvent("map_transition", Event_RoundEnd, EventHookMode_Pre);
}
public void player_spawn(Handle event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(GetEventInt(event, "userid"));
if (!IsFakeClient(client)) FakeClientCommandEx(client, "say /upgrades");
}
public Action sm_upgrades(int client, int args)
{
if(IsClientInGame(client) && !IsFakeClient(client) && GetClientTeam(client) == 2 && IsPlayerAlive(client)) SilencerActivate(client);
}
SilencerActivate(client)
{
new upgrades = GetEntProp(client, Prop_Send, "m_upgradeBitVec");
if (!g_bSilencer[client])
{
SetEntProp(client, Prop_Send, "m_upgradeBitVec", upgrades + 262144, 4);
g_bSilencer[client] = true;
PrintToChat(client, "\x03Silencer \x04On");
}
else
{
SetEntProp(client, Prop_Send, "m_upgradeBitVec", upgrades - 262144, 4);
g_bSilencer[client] = false;
PrintToChat(client, "\x03Silencer \x04Off");
}
}
public Action sm_upgrades1(int client, int args)
{
if(IsClientInGame(client) && !IsFakeClient(client) && GetClientTeam(client) == 2 && IsPlayerAlive(client)) SwitchNightVision(client);
}
SwitchNightVision(client)
{
new upgrades = GetEntProp(client, Prop_Send, "m_upgradeBitVec");
if (!g_bLaser[client])
{
SetEntProp(client, Prop_Send, "m_upgradeBitVec", upgrades + 131072, 4);
g_bLaser[client] = true;
PrintToChat(client, "\x03Laser \x04On");
}
else
{
SetEntProp(client, Prop_Send, "m_upgradeBitVec", upgrades - 131072, 4);
g_bLaser[client] = false;
PrintToChat(client, "\x03Laser \x04Off");
}
}
public Action sm_upgrades2(int client, int args)
{
if(IsClientInGame(client) && !IsFakeClient(client) && GetClientTeam(client) == 2 && IsPlayerAlive(client)) FastReloadActivate(client);
}
FastReloadActivate(client)
{
new upgrades = GetEntProp(client, Prop_Send, "m_upgradeBitVec");
if (!g_bFastReload[client])
{
SetEntProp(client, Prop_Send, "m_upgradeBitVec", upgrades + 536870912, 4);
g_bFastReload[client] = true;
PrintToChat(client, "\x03Reload \x04On");
}
else
{
SetEntProp(client, Prop_Send, "m_upgradeBitVec", upgrades - 536870912, 4);
g_bFastReload[client] = false;
PrintToChat(client, "\x03Reload \x04Off");
}
}
public void Event_RoundEnd(Event event, const char[] name, bool dontBroadcast)
{
for(int i=1; i<=MaxClients; i++)
{
if(IsClientInGame(i)) Disable(i);
}
}
stock Disable(client)
{
SetEntProp(client, Prop_Send, "m_upgradeBitVec", 0, 4);
g_bFastReload[client] = false;
g_bLaser[client] = false;
g_bSilencer[client] = false;
}