Raised This Month: $51 Target: $400
 12% 

there are a few problems in this plugin, can anyone solve it?


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Darkwob
BANNED
Join Date: Oct 2018
Old 03-21-2021 , 18:37   there are a few problems in this plugin, can anyone solve it?
Reply With Quote #1

ask the plugin !idle or !afk does not show a countdown message with Indian message when we write. and afk does not pass. afk does not move the remaining players to the spectator team, and I think the players who remain in the spectator team for a long time do not kick the game.

PHP Code:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

/* general.inc */
#define MAXCLIENTS MAXPLAYERS + 1
/* ----------- */

/* left4dead.inc */
#define L4D_TEAM_UNASSIGNED 0
#define L4D_TEAM_SPECTATOR 1
#define L4D_TEAM_SURVIVOR 2
#define L4D_TEAM_INFECTED 3
/* ------------- */

#define PLUGIN_VERSION "1.3"

public Plugin:myinfo = {
    
name "[L4D(2)] AFK Manager",
    
author "Matthias Vance",
    
description "",
    
version PLUGIN_VERSION,
    
url "http://www.matthiasvance.com/"
};

new 
String:immuneFlagChar[] = "z";
new 
AdminFlag:immuneFlag Admin_Root;

new 
Float:advertiseInterval 120.0;
new 
Handle:advertiseTimer INVALID_HANDLE;
new 
String:ads[][] = {
    
"Use !idle if you plan to go AFK for a while.",
    
"Use !team if you want to change your team."
};
new 
adCount 0;
new 
adIndex 0;

new 
Float:specTime[MAXCLIENTS];
new 
Float:afkTime[MAXCLIENTS];

new 
Float:checkInterval 2.0;
new 
Float:maxAfkSpecTime 20.0;
new 
Float:maxAfkKickTime 40.0;
new 
Float:joinTeamInterval 5.0;
new 
Float:timeLeftInterval 5.0;

new 
Float:lastMessage[MAXCLIENTS];

new 
Float:clientPos[MAXCLIENTS][3];
new 
Float:clientAngles[MAXCLIENTS][3];

new 
messageLevel 3;

new 
Handle:hSetHumanSpecHandle:hTakeOverBot;

public 
OnPluginStart() {
    
CreateConVar("l4d_afkmanager_version"PLUGIN_VERSION"[L4D(2)] AFK Manager"FCVAR_PLUGIN FCVAR_SPONLY FCVAR_NOTIFY FCVAR_DONTRECORD);
    
SetConVarString(FindConVar("l4d_afkmanager_version"), PLUGIN_VERSION);
    
    new 
Handle:hConfig LoadGameConfigFile("l4d_afkmanager");
    if(
hConfig == INVALID_HANDLESetFailState("[AFK Manager] Could not load l4d_afkmanager gamedata.");

    
// SetHumanSpec
    
StartPrepSDKCall(SDKCall_Player);
    if(
PrepSDKCall_SetFromConf(hConfigSDKConf_Signature"SetHumanSpec")) {
        
PrepSDKCall_AddParameter(SDKType_CBasePlayerSDKPass_Pointer);
        
hSetHumanSpec EndPrepSDKCall();
    }
    if(
hSetHumanSpec == INVALID_HANDLESetFailState("[AFK Manager] SetHumanSpec not found.");

    
// TakeOverBot
    
StartPrepSDKCall(SDKCall_Player);
    if(
PrepSDKCall_SetFromConf(hConfigSDKConf_Signature"TakeOverBot")) {
        
PrepSDKCall_AddParameter(SDKType_BoolSDKPass_Plain);
        
hTakeOverBot EndPrepSDKCall();
    }
    if(
hTakeOverBot == INVALID_HANDLESetFailState("[AFK Manager] TakeOverBot not found.");

    
decl String:temp[12];

    
HookConVarChange(CreateConVar("afk_immuneflag"immuneFlagChar"Admins with this flag have kick immunity."), convar_ImmuneFlag);
    
FloatToString(advertiseIntervaltempsizeof(temp)); HookConVarChange(CreateConVar("afk_adinterval"temp"Interval in which the plugin will advertise the 'idle' command."), convar_AdvertiseTime);
    
FloatToString(maxAfkSpecTimetempsizeof(temp)); HookConVarChange(CreateConVar("afk_spectime"temp"AFK time after which you will be moved to the Spectator team."), convar_AfkSpecTime);
    
FloatToString(maxAfkKickTimetempsizeof(temp)); HookConVarChange(CreateConVar("afk_kicktime"temp"AFK time after which you will be kicked."), convar_AfkKickTime);
    
HookConVarChange(CreateConVar("afk_messages""2""Control spec/kick messages. (0 = disable, 1 = spec, 2 = kick, 3 = spec + kick"), convar_Messages);
    
FloatToString(joinTeamIntervaltempsizeof(temp)); HookConVarChange(CreateConVar("afk_joinmsg_time"temp), convar_JoinMsgTime);
    
FloatToString(timeLeftIntervaltempsizeof(temp)); HookConVarChange(CreateConVar("afk_warning_time"temp), convar_WarningTime);
    
    
RegConsoleCmd("sm_idle"cmd_Idle"Go AFK.");
    
RegConsoleCmd("sm_team"cmd_Team"Change team.");

    
advertiseTimer CreateTimer(advertiseIntervaltimer_Advertise_TIMER_REPEAT);
    
CreateTimer(checkIntervaltimer_Check_TIMER_REPEAT);

    
AutoExecConfig(true"l4d_afkmanager");

    
HookEvent("player_team"event_PlayerTeam);
}

public 
convar_JoinMsgTime(Handle:convar, const String:oldValue[], const String:newValue[]) {
    
joinTeamInterval StringToFloat(newValue);
}

public 
convar_WarningTime(Handle:convar, const String:oldValue[], const String:newValue[]) {
    
timeLeftInterval StringToFloat(newValue);
}

public 
convar_Messages(Handle:convar, const String:oldValue[], const String:newValue[]) {
    if(
messageLevel <= 0) {
        
SetConVarInt(convar0);
        return;
    }
    if(
messageLevel >= 3) {
        
SetConVarInt(convar3);
        return;
    }
    
messageLevel GetConVarInt(convar);
}

public 
Action:cmd_Team(clientargCount) {
    new 
Handle:menu CreateMenu(menu_Team);
    
SetMenuTitle(menu"Choose your team:");
    
AddMenuItem(menu"2""Survivors");
    
AddMenuItem(menu"3""Infected");
    
SetMenuExitButton(menutrue);
    
DisplayMenu(menuclient0);
    return 
Plugin_Handled;
}

public 
findBot(team) {
    new 
deadBot 0;
    for(new 
client 1client MaxClientsclient++) {
        if(!
IsClientInGame(client) || !IsFakeClient(client) || GetClientTeam(client) != team) continue;
        if(
IsPlayerAlive(client)) {
            return 
client;
        } else {
            
deadBot client;
        }
    }
    return 
deadBot;
    
}

public 
menu_Team(Handle:menuMenuAction:actionparam1param2) {
    switch(
action) {
        case 
MenuAction_Select: {
            new 
String:info[32];
            if(
GetMenuItem(menuparam2infosizeof(info))) {
                new 
team StringToInt(info);
                new 
bot;
                switch(
team) {
                    case 
L4D_TEAM_SURVIVOR: {
                        
bot findBot(L4D_TEAM_SURVIVOR);
                        if(
bot == 0) {
                            
PrintToChat(param1"This team is full.");
                        } else {
                            
SDKCall(hSetHumanSpecbotparam1);
                            
SDKCall(hTakeOverBotparam1true);
                        }
                    }
                    case 
L4D_TEAM_INFECTED: {
                        
ChangeClientTeam(param1L4D_TEAM_INFECTED);
                    }
                }
            }
        }
        case 
MenuAction_End: {
            
CloseHandle(menu);
        }
    }
}

public 
Action:cmd_Idle(clientargCount) {
    
ChangeClientTeam(clientL4D_TEAM_SPECTATOR);
    return 
Plugin_Handled;
}

public 
Action:timer_Check(Handle:timer) {
    new 
Float:currentPos[3];
    new 
Float:currentAngles[3];

    new 
team;
    new 
bool:isAFK false;
    new 
AdminId:id INVALID_ADMIN_ID;
    new 
clientindex;

    for(
client 1client <= MaxClientsclient++) {
        if(
IsClientInGame(client) && !IsFakeClient(client)) {
            
team GetClientTeam(client);
            if(
team == L4D_TEAM_SPECTATOR) {
                
id GetUserAdmin(client);
                if(
id != INVALID_ADMIN_ID && GetAdminFlag(idimmuneFlag)) {
                    if(
GetClientTime(client) - lastMessage[client] >= joinTeamInterval) {
                        
PrintToChat(client"[AFK Manager] Say !team to choose a team.");
                        
lastMessage[client] = GetClientTime(client);
                    }
                    continue;
                }

                
specTime[client] += checkInterval;
                if(
specTime[client] >= maxAfkKickTime) {
                    
KickClient(client"You were AFK for too long");
                    if(
messageLevel >= 2PrintToChatAll("[AFK Manager] Player '%N' was kicked."client);
                } else {
                    if(
GetClientTime(client) - lastMessage[client] >= timeLeftInterval) {
                        
PrintToChat(client"[AFK Manager] You can spectate for %d more seconds before you will be kicked."RoundToFloor(maxAfkKickTime specTime[client]));
                        
lastMessage[client] = GetClientTime(client);
                    }
                    if(
GetClientTime(client) - lastMessage[client] >= joinTeamInterval) {
                        
PrintToChat(client"[AFK Manager] Say !team to choose a team.");
                        
lastMessage[client] = GetClientTime(client);
                    }
                }
            } else if(
IsPlayerAlive(client) && (team == L4D_TEAM_SURVIVOR || team == L4D_TEAM_INFECTED)) {
                
GetClientAbsOrigin(clientcurrentPos);
                
GetClientAbsAngles(clientcurrentAngles);

                
isAFK true;
                for(
index 0index 3index++) {
                    if(
currentPos[index] != clientPos[client][index]) {
                        
isAFK false;
                        break;
                    }
                }
                if(
isAFK) {
                    for(
index 0index 3index++) {
                        if(
currentAngles[index] != clientAngles[client][index]) {
                            
isAFK false;
                            break;
                        }
                    }
                }
                if(
isAFK) {
                    
afkTime[client] += checkInterval;
                    if(
afkTime[client] >= maxAfkSpecTime) {
                        
ChangeClientTeam(clientL4D_TEAM_SPECTATOR);
                        if(
messageLevel == || messageLevel == 3PrintToChatAll("[AFK Manager] Player '%N' was moved to Spectator team."client);
                    }
                } else {
                    
afkTime[client] = 0.0;
                }

                for(
index 0index 3index++) {
                    
clientPos[client][index] = currentPos[index];
                    
clientAngles[client][index] = currentAngles[index];
                }
            }
        }
    }
    return 
Plugin_Continue;
}

public 
convar_AfkSpecTime(Handle:convar, const String:oldValue[], const String:newValue[]) {
    
maxAfkSpecTime StringToFloat(newValue);
    if(
maxAfkSpecTime == 0.0 || maxAfkSpecTime <= 10.0) {
        
SetConVarFloat(convar10.0);
        return;
    }
}

public 
convar_AfkKickTime(Handle:convar, const String:oldValue[], const String:newValue[]) {
    
maxAfkKickTime StringToFloat(newValue);
    if(
maxAfkKickTime == 0.0 || maxAfkKickTime <= 10.0) {
        
SetConVarFloat(convar10.0);
        return;
    }
}

public 
Action:event_PlayerTeam(Handle:event, const String:eventName[], bool:dontBroadcast) {
    new 
client GetClientOfUserId(GetEventInt(event"userid"));
    new 
team GetEventInt(event"team");
    switch(
team) {
        case 
L4D_TEAM_SPECTATOR: {
            
specTime[client] = 0.0;
        }
        case 
L4D_TEAM_SURVIVORL4D_TEAM_INFECTED: {
            
afkTime[client] = 0.0;
        }
    }
    if(
GetEventBool(event"disconnected")) {
        
clientPos[client] = Float:{ 0.00.00.0 };
        
clientAngles[client] = Float:{ 0.00.00.0 };
    }
}

public 
convar_AdvertiseTime(Handle:convar, const String:oldValue[], const String:newValue[]) {
    if(
advertiseTimer != INVALID_HANDLE) {
        
CloseHandle(advertiseTimer);
        
advertiseTimer INVALID_HANDLE;
    }
    
advertiseInterval StringToFloat(newValue);
    if(
advertiseInterval <= 10.0) {
        
SetConVarFloat(convar10.0);
        return;
    }
    if(
advertiseInterval 0.0advertiseTimer CreateTimer(advertiseIntervaltimer_Advertise_TIMER_REPEAT);
}

public 
Action:timer_Advertise(Handle:timer) {
    
PrintToChatAll("[AFK Manager] %s"ads[adIndex++]);
    if(
adIndex >= adCountadIndex 0;
    return 
Plugin_Continue;
}

public 
convar_ImmuneFlag(Handle:convar, const String:oldValue[], const String:newValue[]) {
    if(
strlen(newValue) != 1) {
        
PrintToServer("[AFK Manager] Invalid flag value (%s)."newValue);
        
SetConVarString(convaroldValue);
        return;
    }
    if(!
FindFlagByChar(newValue[0], immuneFlag)) {
        
PrintToServer("[AFK Manager] Invalid flag value (%s)."newValue);
        
SetConVarString(convaroldValue);
        return;
    }

Darkwob is offline
Teamkiller324
Senior Member
Join Date: Feb 2014
Location: Earth
Old 03-21-2021 , 20:53   Re: there are a few problems in this plugin, can anyone solve it?
Reply With Quote #2

Most likely didn't fix anything but updated to new syntax and made it easier to go through the code.
Attached Files
File Type: sp Get Plugin or Get Source (l4d_afkmanager.sp - 32 views - 11.3 KB)
__________________
Teamkiller324 is offline
Darkwob
BANNED
Join Date: Oct 2018
Old 03-22-2021 , 02:41   Re: there are a few problems in this plugin, can anyone solve it?
Reply With Quote #3

Quote:
Originally Posted by Teamkiller324 View Post
Most likely didn't fix anything but updated to new syntax and made it easier to go through the code.
haven't the problems I mentioned improved ?
Darkwob is offline
Darkwob
BANNED
Join Date: Oct 2018
Old 03-22-2021 , 03:25   Re: there are a few problems in this plugin, can anyone solve it?
Reply With Quote #4

I shared the wrong source code. these are faulty source codes.

Quote:
#pragma semicolon 1
#pragma newdecls required

#include <sourcemod>
#include <sdktools>

#define PLUGIN_VERSION "1.4"

public Plugin myinfo = {
name = "[L4D(2)] AFK Manager",
author = "Matthias Vance",
description = "",
version = PLUGIN_VERSION,
url = "http://www.matthiasvance.com/"
};

float advertiseInterval = 300.0;
Handle advertiseTimer = null;

float specTime[MAXPLAYERS + 1];
float afkTime[MAXPLAYERS + 1];

float checkInterval = 10.0;
float maxAfkSpecTime = 40.0;
float maxAfkKickTime = 480.0;
float joinTeamInterval = 60.0;
float timeLeftInterval = 5.0;

float lastMessage[MAXPLAYERS + 1];

float clientPos[MAXPLAYERS + 1][3];
float clientAngles[MAXPLAYERS + 1][3];

int messageLevel = 3;
int iTimeAfk;

public void OnPluginStart()
{
CreateConVar("l4d_afkmanager_version", PLUGIN_VERSION, "[L4D(2)] AFK Manager", FCVAR_SPONLY|FCVAR_NOTIFY|FCVAR_DONTRECORD);
SetConVarString(FindConVar("l4d_afkmanager_ve rsion"), PLUGIN_VERSION);

char temp[12];

FloatToString(advertiseInterval, temp, sizeof(temp)); (CreateConVar("afk_adinterval", temp, "Interval in which the plugin will advertise the 'idle' command.")).AddChangeHook(convar_AdvertiseTim e);
FloatToString(maxAfkSpecTime, temp, sizeof(temp)); (CreateConVar("afk_spectime", temp, "AFK time after which you will be moved to the Spectator team.")).AddChangeHook(convar_AfkSpecTime);
FloatToString(maxAfkKickTime, temp, sizeof(temp)); (CreateConVar("afk_kicktime", temp, "AFK time after which you will be kicked.")).AddChangeHook(convar_AfkKickTime);
(CreateConVar("afk_messages", "3", "Control spec/kick messages. (0 = disable, 1 = spec, 2 = kick, 3 = spec + kick")).AddChangeHook(convar_Messages);
FloatToString(joinTeamInterval, temp, sizeof(temp)); (CreateConVar("afk_joinmsg_time", temp)).AddChangeHook(convar_JoinMsgTime);
FloatToString(timeLeftInterval, temp, sizeof(temp)); (CreateConVar("afk_warning_time", temp)).AddChangeHook(convar_WarningTime);

HookEvent("player_team", Event_PlayerTeam);
HookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy);

CreateTimer(1.0, MapStart);
advertiseTimer = CreateTimer(advertiseInterval, timer_Advertise, _, TIMER_REPEAT);
CreateTimer(checkInterval, timer_Check, _, TIMER_REPEAT);

//AutoExecConfig(true, "l4d_afkmanager");
}

public Action MapStart(Handle timer)
{
OnMapStart();
}

public void OnMapStart()
{
iTimeAfk = GetTime();
}

public void convar_JoinMsgTime(ConVar convar, const char[] oldValue, const char[] newValue)
{
joinTeamInterval = StringToFloat(newValue);
}

public void convar_WarningTime(ConVar convar, const char[] oldValue, const char[] newValue)
{
timeLeftInterval = StringToFloat(newValue);
}

public void convar_Messages(ConVar convar, const char[] oldValue, const char[] newValue)
{
if (messageLevel <= 0)
{
convar.SetInt(0);
return;
}
if (messageLevel >= 3)
{
convar.SetInt(3);
return;
}
messageLevel = convar.IntValue;
}

public Action timer_Check(Handle timer)
{
float currentPos[3];
float currentAngles[3];

int team;
bool isAFK;
int client, index;

for (client = 1; client <= MaxClients; client++)
{
if (IsClientInGame(client) && !IsFakeClient(client))
{
team = GetClientTeam(client);
if (team == 1)
{
specTime[client] += checkInterval;
if (specTime[client] >= maxAfkKickTime)
{

if (GetRealClientCount() > 25)
{

if (!IsVip(client))
{
KickClient(client, "You were AFK for too long.");
if (messageLevel >= 2)
PrintToChatAll("\x04[\x05AFK Manager\x04]\x01 Player \x04'%N'\x01 was kicked.", client);
}
}

if (GetClientCount(false) >= 30 && !IsRoot(client))
{
KickClient(client, "You were AFK for too long.");
if (messageLevel >= 2)
PrintToChatAll("\x04[\x05AFK Manager\x04]\x01 Player \x04'%N'\x01 was kicked.", client);
}
else
specTime[client] = (specTime[client] - checkInterval - 1);
}
else
{
if (GetClientTime(client) - lastMessage[client] >= timeLeftInterval)
{
if (!IsRoot(client))
PrintToChat(client, "\x04[\x05AFK Manager\x04]\x01 You can spectate for \x04%d\x01 more seconds before you will be kicked.", RoundToFloor(maxAfkKickTime - specTime[client]));
lastMessage[client] = GetClientTime(client);
}
if (GetClientTime(client) - lastMessage[client] >= joinTeamInterval)
{
if (!IsRoot(client))
PrintToChat(client, "\x04[\x05AFK Manager\x04]\x01 Say \x05!join\x01 to join game.");
lastMessage[client] = GetClientTime(client);
}
}
}
else if (IsPlayerAlive(client) && (team == 2 || team == 3))
{
GetClientAbsOrigin(client, currentPos);
GetClientAbsAngles(client, currentAngles);

isAFK = true;
for (index = 0; index < 3; index++)
{
if(currentPos[index] != clientPos[client][index])
{
isAFK = false;
break;
}
}
if (isAFK)
{
for(index = 0; index < 3; index++)
{
if(currentAngles[index] != clientAngles[client][index])
{
isAFK = false;
break;
}
}
}
if (isAFK)
{
afkTime[client] += checkInterval;
if (afkTime[client] >= maxAfkSpecTime)
{
if (GetClientCount(false) >= 30)
{
KickClient(client, "Sorry, no open slots for spectators.");
if (messageLevel >= 2)
PrintToChatAll("\x04[\x05AFK Manager\x04]\x01 Player \x04'%N'\x01 was kicked. No open slots for spectators.", client);
}
else
ClientAFK(client);
}
}
else
afkTime[client] = 0.0;

for (index = 0; index < 3; index++)
{
clientPos[client][index] = currentPos[index];
clientAngles[client][index] = currentAngles[index];
}
}
}
}
return Plugin_Continue;
}

void ClientAFK(int client)
{
if (!IsClientInGame(client))
return;
if (IsFakeClient(client))
return;
if (GetClientTeam(client) == 1)
return;

float fAFK = GetRandomFloat(0.1, 5.1);
CreateTimer(fAFK, Timer_Afk, client);
}

public Action Timer_Afk(Handle timer, any client)
{
if (IsClientInGame(client))
{
if (!IsFakeClient(client))
{
if (GetClientTeam(client) != 1)
{
int afktime = (GetTime() - iTimeAfk);
if (afktime < 50)
afkTime[client] = (afkTime[client] - (checkInterval + 1.0));
else
{
if (GetClientCount(false) >= 30)
{
KickClient(client, "Sorry, no open slots for spectators.");
if (messageLevel >= 2)
PrintToChatAll("\x04[\x05AFK Manager\x04]\x01 Player \x04'%N'\x01 was kicked. No open slots for spectators.", client);
return Plugin_Stop;
}

if (messageLevel == 1 || messageLevel == 3)
PrintToChatAll("\x04[\x05AFK Manager\x04]\x01 Player \x04'%N'\x01 was moved to Spectator team.", client);
PrintToServer("[AFK Manager] Player '%N' was moved to Spectator team.", client);
ServerCommand("sm_switchplayer2 #%d 1", GetClientUserId(client));
iTimeAfk = GetTime();
}
}
}
}
return Plugin_Stop;
}

int GetRealClientCount()
{
int clients = 0;
for (int i = 1; i <= MaxClients; i++)
{
if (IsClientInGame(i))
{
if (!IsFakeClient(i))
clients++;
}
}
return clients;
}

public void convar_AfkSpecTime(ConVar convar, const char[] oldValue, const char[] newValue)
{
maxAfkSpecTime = StringToFloat(newValue);
if (maxAfkSpecTime == 0.0 || maxAfkSpecTime <= 30.0)
{
convar.SetFloat(30.0);
return;
}
}

public void convar_AfkKickTime(ConVar convar, const char[] oldValue, const char[] newValue)
{
maxAfkKickTime = StringToFloat(newValue);
if (maxAfkKickTime == 0.0 || maxAfkKickTime <= 60.0)
{
convar.SetFloat(60.0);
return;
}
}

public Action Event_PlayerTeam(Event event, const char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(event.GetInt("userid"));
int team = GetEventInt(event, "team");
switch(team)
{
case 1: specTime[client] = 0.0;
case 2, 3: afkTime[client] = 0.0;
}
if (event.GetBool("disconnected"))
{
clientPos[client] = view_as<float>({0.0, 0.0, 0.0});
clientAngles[client] = view_as<float>({0.0, 0.0, 0.0});
}
}

public void convar_AdvertiseTime(ConVar convar, const char[] oldValue, const char[] newValue)
{
if (advertiseTimer != null)
{
KillTimer(advertiseTimer);
advertiseTimer = null;
}
advertiseInterval = StringToFloat(newValue);
if (advertiseInterval <= 10.0)
{
convar.SetFloat(10.0);
return;
}
if (advertiseInterval > 0.0)
advertiseTimer = CreateTimer(advertiseInterval, timer_Advertise, _, TIMER_REPEAT);
}

public Action timer_Advertise(Handle timer)
{
PrintToChatAll("\x04[\x05AFK Manager\x04]\x01 Use \x05!idle \x01if you plan to go AFK for a while.");
return Plugin_Continue;
}

bool IsRoot(int client)
{
AdminId admin = GetUserAdmin(client);

if (admin == INVALID_ADMIN_ID)
return false;
if (GetAdminFlag(admin, Admin_Root) || GetAdminFlag(admin, Admin_Password))
return true;

return true;
}

bool IsVip(int client)
{
AdminId admin = GetUserAdmin(client);

if (admin == INVALID_ADMIN_ID)
return false;
if (GetAdminFlag(admin, Admin_Reservation))
return true;
return true;
}

public Action Event_RoundEnd(Event event, const char[] name, bool dontBroadcast)
{
int i = 1;
while (i <= MaxClients)
{
if (IsClientInGame(i))
{
afkTime[i] = 0.0;
}
i += 1;
}
}
Darkwob is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 12:42.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode