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

[Req] Using amx mod function without connect to game


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
kazihaha
New Member
Join Date: Jun 2015
Old 02-15-2017 , 04:15   [Req] Using amx mod function without connect to game
Reply With Quote #1

Dear everyone,
I had been set as mod on a server. But we (mods) got a problem here.
The cheaters always play on working time, so we can not log in to game and punish theme (ban, slay, kick ...)

So could we using amx_ban or amx_slay without playing in game?
I mean using the ingame console outside of the game. And we can use amx_ban as members ingame report to steam chat ...

We're just mods, not the Admin, so we do not have RCON password and it impossible to get it from admin (for security reason)

Thanks so much.
kazihaha is offline
waizedzzy
Member
Join Date: May 2016
Location: France
Old 02-15-2017 , 04:31   Re: [Req] Using amx mod function without connect to game
Reply With Quote #2

For cheater: This Forum do not Support Non-Steam servers, If your server is steam only then there will not be any cheaters in server.
For banning without being in server it's just simple, but as you told (security reason).
__________________
Invincible Wxx ^.^
waizedzzy is offline
EFFx
Veteran Member
Join Date: Feb 2016
Location: São Paulo, Brasil
Old 02-15-2017 , 04:40   Re: [Req] Using amx mod function without connect to game
Reply With Quote #3

By Hamlet and added the cheater's steamid to .ini file:

PHP Code:
/*
Copyleft 2015 @ HamletEagle

ReportsSystem is free software;
you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with ReportsSystem; if not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/

#include <amxmodx>
#include <amxmisc>

#define PluginName    "ReportsSystem"
#define PluginVersion "1.0"
#define PluginAuthor  "HamletEagle"

#define MAX_TIMES_REPORTED 3

enum _:ReportData
{
    
ReporterName[32],
    
ReportedName[32],
    
ReportedSteamID[35],
    
Reason[128]
}

enum _:Mode
{
    
ModeReasons,
    
ModeReports
}

const 
AdminFlag ADMIN_BAN

new Array:ArrayReasons
new Array:ArrayReports

new ReportedPlayer[33], TimesReported[33]
new 
ConfigsDirPath[80]
new 
ConfigFilePath[128]

new 
CvarReportLimit
new Float:FullReportTime[33]

public 
plugin_init()
{
    
register_plugin
    

        .
plugin_name PluginName,
        .
version     PluginVersion,
        .
author      PluginAuthor
    
)

    
register_clcmd("say /report_player""ClientCommand_Report")
    
register_clcmd("say_team /report_player""ClientCommand_Report")
    
register_concmd("amx_showreports""ClientCommand_ShowReports"AdminFlag)
    
register_concmd("amx_solvereport""ClientCommand_SolveReport"AdminFlag)
    
register_concmd("amx_clearreports""ClientCommand_ClearReports"AdminFlag)

    
CvarReportLimit register_cvar("amx_nextreport""10")

    
ArrayReasons ArrayCreate(128)
    
ArrayReports ArrayCreate(ReportData)

    
get_configsdir(ConfigsDirPathcharsmax(ConfigsDirPath))
    
ParseReasonsFile()
    
ParseReportsFile()
}

public 
plugin_end()
{
    
AddReportsToFile()
    
ArrayDestroy(ArrayReasons)
    
ArrayDestroy(ArrayReports)
}

public 
client_disconnect(id)
{
    new 
Size ArraySize(ArrayReports), Data[ReportData]
    for(new 
iSizei++)
    {
        
ArrayGetArray(ArrayReportsiData)
        if
        ( 
            
id == get_user_index(Data[ReporterName]) ||
            
id == get_user_index(Data[ReportedName])
        )
        {
            
ArrayDeleteItem(ArrayReportsi)
        }
    }
}

ParseReasonsFile()
{
    new const 
ReasonsFile[] = "report_reasons.ini"
    
formatex(ConfigFilePathcharsmax(ConfigFilePath), "%s/%s"ConfigsDirPathReasonsFile)
    
ReadFile(ConfigFilePathModeReasons)
}

ParseReportsFile()
{
    new const 
ReportsFile[] = "reports_list.ini"
    
formatex(ConfigFilePathcharsmax(ConfigFilePath), "%s/%s"ConfigsDirPathReportsFile)
    
ReadFile(ConfigFilePathModeReports)
}

AddReportsToFile()
{
    if(
file_exists(ConfigFilePath))
    {
        
delete_file(ConfigFilePath)
    }

    new 
FilePointer fopen(ConfigFilePath"wt"), Data[ReportData]
    if(
FilePointer)
    {
        new 
Size ArraySize(ArrayReports)
        for(new 
iSizei++)
        {
            
ArrayGetArray(ArrayReportsiData)
            
fprintf(FilePointer"%s %s (%s) %s^n"Data[ReporterName], Data[ReportedName], Data[ReportedSteamID], Data[Reason])
        }
        
fclose(FilePointer)
    }
}

ReadFile(File[], Mod)
{
    new 
FilePointer fopen(File"rt")
    if(
FilePointer)
    {
        new 
FileData[128], Data[ReportData]
        while(!
feof(FilePointer))
        {
            
fgets(FilePointerFileDatacharsmax(FileData))
            
trim(FileData)
            
            if(!
FileData[0] || FileData[0] == ';' || FileData[0] == '#' || FileData[0] == '/')
            {
                continue
            }
            switch(
Mod)
            {
                case 
ModeReasons:
                {
                    
ArrayPushString(ArrayReasonsFileData)
                }
                case 
ModeReports:
                {
                    
parse
                    
(
                        
FileData
                        
Data[ReporterName], charsmax(Data[ReporterName]), 
                        
Data[ReportedName], charsmax(Data[ReportedName]),
                        
Data[ReportedSteamID], charsmax(Data[ReportedSteamID]),
                        
Data[Reason      ], charsmax(Data[Reason      ])
                    )
                    
                    
ArrayPushArray(ArrayReportsData)
                }
            }
        }
    }    
}

public 
ClientCommand_Report(id)
{
    new 
Float:GameTime get_gametime()
    if(
GameTime FullReportTime[id])
    {
        new 
ReportMenu menu_create("Report:""HandleReportMenu")

        new 
Players[32], PlayersNumindex
        get_players
(PlayersPlayersNum)
        new 
PlayerName[32], UserId[6]
        
        for(new 
PlayersNumi++)
        {
            
index Players[i]
            
get_user_name(indexPlayerNamecharsmax(PlayerName))
            
num_to_str(get_user_userid(index), UserIdcharsmax(UserId))

            
menu_additem(ReportMenuPlayerNameUserId0)
        }

        
menu_display(idReportMenu0)
        
FullReportTime[id] = GameTime + (float(get_pcvar_num(CvarReportLimit)) * 60.0)
    }
    else
    {
        
client_print(idprint_chat"You must wait: %.1f in order to report again"FullReportTime[id] - GameTime)
    }
}

public 
ClientCommand_ShowReports(idlevelcid)
{
    if(!
cmd_access(idlevelcid0))
    {
        return 
1
    
}

    new 
Size ArraySize(ArrayReports), Data[ReportData]
    if(!
Size)
    {
        
console_print(id"There are no reports open")
    }
    else
    {
        for(new 
iSizei++)
        {
            
ArrayGetArray(ArrayReportsiData)
            
console_print(id"[ %i ]Reporter: %s^nReported: %s (%s)^nReason:%s",iData[ReporterName], Data[ReportedName], Data[ReportedSteamID], Data[Reason])
            
console_print(id"=========================================")
        }
        
console_print(id"Write amx_solvereport report_number to close it")
    }
    return 
1
}

public 
ClientCommand_SolveReport(idlevelcid)
{
    if(!
cmd_access(idlevelcid1))
    {
        return 
1
    
}

    new 
Argument[5], Data[ReportData], ArrayEntrySize ArraySize(ArrayReports)
    
read_argv(1Argumentcharsmax(Argument))

    
ArrayEntry str_to_num(Argument)
    if(
ArrayEntry >= Size || ArrayEntry 0)
    {
        
console_print(id"Report number is invalid. Valid range: 0 - %i"Size)
    }
    else
    {
        
ArrayGetArray(ArrayReportsArrayEntryData)
        
console_print(id"You closed the report with number %i"ArrayEntry)
        
client_print(0print_chat"%s reported %s (%s) for %s. Report is now closed"Data[ReporterName], Data[ReportedName], Data[ReportedSteamID], Data[Reason])

        
ArrayDeleteItem(ArrayReportsArrayEntry)
    }
    return 
1
}

public 
ClientCommand_ClearReports(idlevelcid)
{
    if(!
cmd_access(idlevelcid1))
    {
        return 
1
    
}

    
ArrayClear(ArrayReports)
    
console_print(id"You cleared all the reports")
    return 
1
}

public 
HandleReportMenu(idReportMenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(ReportMenu)
        return 
    }

    new 
UserId[6], Name[32], AccessCallBack
    menu_item_getinfo
(ReportMenuitemAccessUserIdcharsmax(UserId), Namecharsmax(Name), CallBack)

    new 
IntUserId str_to_num(UserId)
    new 
Target find_player("k"IntUserId//get reported player index

    
if(Target)
    {
        
ReportedPlayer[id] = Target
        BuildReasonsMenu
(id)
    }
    else
    {
        
client_print(idprint_chat"Target could not be found %s"Name)
    }

    
menu_destroy(ReportMenu)
}

BuildReasonsMenu(id)
{
    new 
ReasonsMenu menu_create("Select a reason""HandleReasonsMenu")

    new 
Size ArraySize(ArrayReasons), HandleReason[128]
    for(new 
iSizei++)
    {
        
ArrayGetString(ArrayReasonsiHandleReasoncharsmax(HandleReason))
        
menu_additem(ReasonsMenuHandleReason""0)
    }
    
menu_display(idReasonsMenu0)
}

public 
HandleReasonsMenu(idReasonsMenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(ReasonsMenu)
        return 
    }

    
TimesReported[ReportedPlaer[id]]++

    if(
TimesReported[ReportedPlayer[id]] >= MAX_TIMES_REPORTED)
    {
        
//Get the reason for reporting
        
new HandleReason[128]
        
ArrayGetString(ArrayReasonsitemHandleReasoncharsmax(HandleReason))

        
AddReport(idReportedPlayer[id], HandleReason)

        
client_print(idprint_chat"Report was succesfully sent")
    }
    
menu_destroy(ReasonsMenu)
}

AddReport(idTarget, const HandleReason[])
{
    new 
Data[ReportData]
    
get_user_name(idData[ReporterName], charsmax(Data[ReporterName]))
    
get_user_name(TargetData[ReportedName], charsmax(Data[ReportedName]))
    
get_user_authid(TargetData[ReportedSteamID], charsmax(Data[ReportedSteamID]))

    
copy(Data[Reason], charsmax(Data[Reason]), HandleReason)
    
ArrayPushArray(ArrayReportsData)

    new 
Players[32], Numindex
    get_players
(PlayersNum"c")
    for(new 
iNumi++)
    {
        
index Players[i]
        if(
get_user_flags(index) & AdminFlag)
        {
            
client_print(indexprint_center"A new report was send")
        }
    }


This plugin work like this:

A player will report the cheater, depending of how much times he will be repoted his steamID and name will be able to read in a .ini file at configs folder. So you can just take it and ban him.

PHP Code:
#define MAX_TIMES_REPORTED 3 
__________________
• Ranking System • AutoMix 5vs5 System
• Web Ban System • Plugins for free

____________________________________________
For private works:
• Discord: EFFEXo#8850 • Steam: EFFEXo

Last edited by EFFx; 02-15-2017 at 04:50.
EFFx is offline
kazihaha
New Member
Join Date: Jun 2015
Old 02-15-2017 , 09:37   Re: [Req] Using amx mod function without connect to game
Reply With Quote #4

Quote:
Originally Posted by EFFx View Post
By Hamlet and added the cheater's steamid to .ini file:

PHP Code:
/*
Copyleft 2015 @ HamletEagle

ReportsSystem is free software;
you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with ReportsSystem; if not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/

#include <amxmodx>
#include <amxmisc>

#define PluginName    "ReportsSystem"
#define PluginVersion "1.0"
#define PluginAuthor  "HamletEagle"

#define MAX_TIMES_REPORTED 3

enum _:ReportData
{
    
ReporterName[32],
    
ReportedName[32],
    
ReportedSteamID[35],
    
Reason[128]
}

enum _:Mode
{
    
ModeReasons,
    
ModeReports
}

const 
AdminFlag ADMIN_BAN

new Array:ArrayReasons
new Array:ArrayReports

new ReportedPlayer[33], TimesReported[33]
new 
ConfigsDirPath[80]
new 
ConfigFilePath[128]

new 
CvarReportLimit
new Float:FullReportTime[33]

public 
plugin_init()
{
    
register_plugin
    

        .
plugin_name PluginName,
        .
version     PluginVersion,
        .
author      PluginAuthor
    
)

    
register_clcmd("say /report_player""ClientCommand_Report")
    
register_clcmd("say_team /report_player""ClientCommand_Report")
    
register_concmd("amx_showreports""ClientCommand_ShowReports"AdminFlag)
    
register_concmd("amx_solvereport""ClientCommand_SolveReport"AdminFlag)
    
register_concmd("amx_clearreports""ClientCommand_ClearReports"AdminFlag)

    
CvarReportLimit register_cvar("amx_nextreport""10")

    
ArrayReasons ArrayCreate(128)
    
ArrayReports ArrayCreate(ReportData)

    
get_configsdir(ConfigsDirPathcharsmax(ConfigsDirPath))
    
ParseReasonsFile()
    
ParseReportsFile()
}

public 
plugin_end()
{
    
AddReportsToFile()
    
ArrayDestroy(ArrayReasons)
    
ArrayDestroy(ArrayReports)
}

public 
client_disconnect(id)
{
    new 
Size ArraySize(ArrayReports), Data[ReportData]
    for(new 
iSizei++)
    {
        
ArrayGetArray(ArrayReportsiData)
        if
        ( 
            
id == get_user_index(Data[ReporterName]) ||
            
id == get_user_index(Data[ReportedName])
        )
        {
            
ArrayDeleteItem(ArrayReportsi)
        }
    }
}

ParseReasonsFile()
{
    new const 
ReasonsFile[] = "report_reasons.ini"
    
formatex(ConfigFilePathcharsmax(ConfigFilePath), "%s/%s"ConfigsDirPathReasonsFile)
    
ReadFile(ConfigFilePathModeReasons)
}

ParseReportsFile()
{
    new const 
ReportsFile[] = "reports_list.ini"
    
formatex(ConfigFilePathcharsmax(ConfigFilePath), "%s/%s"ConfigsDirPathReportsFile)
    
ReadFile(ConfigFilePathModeReports)
}

AddReportsToFile()
{
    if(
file_exists(ConfigFilePath))
    {
        
delete_file(ConfigFilePath)
    }

    new 
FilePointer fopen(ConfigFilePath"wt"), Data[ReportData]
    if(
FilePointer)
    {
        new 
Size ArraySize(ArrayReports)
        for(new 
iSizei++)
        {
            
ArrayGetArray(ArrayReportsiData)
            
fprintf(FilePointer"%s %s (%s) %s^n"Data[ReporterName], Data[ReportedName], Data[ReportedSteamID], Data[Reason])
        }
        
fclose(FilePointer)
    }
}

ReadFile(File[], Mod)
{
    new 
FilePointer fopen(File"rt")
    if(
FilePointer)
    {
        new 
FileData[128], Data[ReportData]
        while(!
feof(FilePointer))
        {
            
fgets(FilePointerFileDatacharsmax(FileData))
            
trim(FileData)
            
            if(!
FileData[0] || FileData[0] == ';' || FileData[0] == '#' || FileData[0] == '/')
            {
                continue
            }
            switch(
Mod)
            {
                case 
ModeReasons:
                {
                    
ArrayPushString(ArrayReasonsFileData)
                }
                case 
ModeReports:
                {
                    
parse
                    
(
                        
FileData
                        
Data[ReporterName], charsmax(Data[ReporterName]), 
                        
Data[ReportedName], charsmax(Data[ReportedName]),
                        
Data[ReportedSteamID], charsmax(Data[ReportedSteamID]),
                        
Data[Reason      ], charsmax(Data[Reason      ])
                    )
                    
                    
ArrayPushArray(ArrayReportsData)
                }
            }
        }
    }    
}

public 
ClientCommand_Report(id)
{
    new 
Float:GameTime get_gametime()
    if(
GameTime FullReportTime[id])
    {
        new 
ReportMenu menu_create("Report:""HandleReportMenu")

        new 
Players[32], PlayersNumindex
        get_players
(PlayersPlayersNum)
        new 
PlayerName[32], UserId[6]
        
        for(new 
PlayersNumi++)
        {
            
index Players[i]
            
get_user_name(indexPlayerNamecharsmax(PlayerName))
            
num_to_str(get_user_userid(index), UserIdcharsmax(UserId))

            
menu_additem(ReportMenuPlayerNameUserId0)
        }

        
menu_display(idReportMenu0)
        
FullReportTime[id] = GameTime + (float(get_pcvar_num(CvarReportLimit)) * 60.0)
    }
    else
    {
        
client_print(idprint_chat"You must wait: %.1f in order to report again"FullReportTime[id] - GameTime)
    }
}

public 
ClientCommand_ShowReports(idlevelcid)
{
    if(!
cmd_access(idlevelcid0))
    {
        return 
1
    
}

    new 
Size ArraySize(ArrayReports), Data[ReportData]
    if(!
Size)
    {
        
console_print(id"There are no reports open")
    }
    else
    {
        for(new 
iSizei++)
        {
            
ArrayGetArray(ArrayReportsiData)
            
console_print(id"[ %i ]Reporter: %s^nReported: %s (%s)^nReason:%s",iData[ReporterName], Data[ReportedName], Data[ReportedSteamID], Data[Reason])
            
console_print(id"=========================================")
        }
        
console_print(id"Write amx_solvereport report_number to close it")
    }
    return 
1
}

public 
ClientCommand_SolveReport(idlevelcid)
{
    if(!
cmd_access(idlevelcid1))
    {
        return 
1
    
}

    new 
Argument[5], Data[ReportData], ArrayEntrySize ArraySize(ArrayReports)
    
read_argv(1Argumentcharsmax(Argument))

    
ArrayEntry str_to_num(Argument)
    if(
ArrayEntry >= Size || ArrayEntry 0)
    {
        
console_print(id"Report number is invalid. Valid range: 0 - %i"Size)
    }
    else
    {
        
ArrayGetArray(ArrayReportsArrayEntryData)
        
console_print(id"You closed the report with number %i"ArrayEntry)
        
client_print(0print_chat"%s reported %s (%s) for %s. Report is now closed"Data[ReporterName], Data[ReportedName], Data[ReportedSteamID], Data[Reason])

        
ArrayDeleteItem(ArrayReportsArrayEntry)
    }
    return 
1
}

public 
ClientCommand_ClearReports(idlevelcid)
{
    if(!
cmd_access(idlevelcid1))
    {
        return 
1
    
}

    
ArrayClear(ArrayReports)
    
console_print(id"You cleared all the reports")
    return 
1
}

public 
HandleReportMenu(idReportMenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(ReportMenu)
        return 
    }

    new 
UserId[6], Name[32], AccessCallBack
    menu_item_getinfo
(ReportMenuitemAccessUserIdcharsmax(UserId), Namecharsmax(Name), CallBack)

    new 
IntUserId str_to_num(UserId)
    new 
Target find_player("k"IntUserId//get reported player index

    
if(Target)
    {
        
ReportedPlayer[id] = Target
        BuildReasonsMenu
(id)
    }
    else
    {
        
client_print(idprint_chat"Target could not be found %s"Name)
    }

    
menu_destroy(ReportMenu)
}

BuildReasonsMenu(id)
{
    new 
ReasonsMenu menu_create("Select a reason""HandleReasonsMenu")

    new 
Size ArraySize(ArrayReasons), HandleReason[128]
    for(new 
iSizei++)
    {
        
ArrayGetString(ArrayReasonsiHandleReasoncharsmax(HandleReason))
        
menu_additem(ReasonsMenuHandleReason""0)
    }
    
menu_display(idReasonsMenu0)
}

public 
HandleReasonsMenu(idReasonsMenuitem)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(ReasonsMenu)
        return 
    }

    
TimesReported[ReportedPlaer[id]]++

    if(
TimesReported[ReportedPlayer[id]] >= MAX_TIMES_REPORTED)
    {
        
//Get the reason for reporting
        
new HandleReason[128]
        
ArrayGetString(ArrayReasonsitemHandleReasoncharsmax(HandleReason))

        
AddReport(idReportedPlayer[id], HandleReason)

        
client_print(idprint_chat"Report was succesfully sent")
    }
    
menu_destroy(ReasonsMenu)
}

AddReport(idTarget, const HandleReason[])
{
    new 
Data[ReportData]
    
get_user_name(idData[ReporterName], charsmax(Data[ReporterName]))
    
get_user_name(TargetData[ReportedName], charsmax(Data[ReportedName]))
    
get_user_authid(TargetData[ReportedSteamID], charsmax(Data[ReportedSteamID]))

    
copy(Data[Reason], charsmax(Data[Reason]), HandleReason)
    
ArrayPushArray(ArrayReportsData)

    new 
Players[32], Numindex
    get_players
(PlayersNum"c")
    for(new 
iNumi++)
    {
        
index Players[i]
        if(
get_user_flags(index) & AdminFlag)
        {
            
client_print(indexprint_center"A new report was send")
        }
    }


This plugin work like this:

A player will report the cheater, depending of how much times he will be repoted his steamID and name will be able to read in a .ini file at configs folder. So you can just take it and ban him.

PHP Code:
#define MAX_TIMES_REPORTED 3 
Thanks for your code, it the best solution now
kazihaha is offline
wickedd
Veteran Member
Join Date: Nov 2009
Old 02-15-2017 , 15:42   Re: [Req] Using amx mod function without connect to game
Reply With Quote #5

Quote:
Originally Posted by waizedzzy View Post
If your server is steam only then there will not be any cheaters in server.
That's not true. Who told you that lie?
__________________
Just buy the fucking game!!!!
I hate No-Steamers and lazy ass people.
wickedd is offline
kazihaha
New Member
Join Date: Jun 2015
Old 02-15-2017 , 22:35   Re: [Req] Using amx mod function without connect to game
Reply With Quote #6

Quote:
Originally Posted by wickedd View Post
That's not true. Who told you that lie?
Like for your idea Steam also use hack, but rarely.
kazihaha is offline
waizedzzy
Member
Join Date: May 2016
Location: France
Old 02-16-2017 , 05:48   Re: [Req] Using amx mod function without connect to game
Reply With Quote #7

And get VAC ban yes great lie, as you wish...
So can you explain me why allied mods do allow steamers? They can cheat right?
Everywhere some1 asked for anti cheat plugin here is for Non Steam and every single response were remove dproto, as you wish man...
It were just my opinion.
__________________
Invincible Wxx ^.^
waizedzzy is offline
wickedd
Veteran Member
Join Date: Nov 2009
Old 02-16-2017 , 06:31   Re: [Req] Using amx mod function without connect to game
Reply With Quote #8

Quote:
Originally Posted by waizedzzy View Post
Everywhere some1 asked for anti cheat plugin here is for Non Steam and every single response were remove dproto, as you wish man...
Wallhacks and Aimbots has nothing to with No-Steam, players can use them in Steam only servers.
So get your facts straight. Plus, if you would search the forum you would find a Wallhack blocker and a Aimbot detector.
__________________
Just buy the fucking game!!!!
I hate No-Steamers and lazy ass people.
wickedd 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 15:47.


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