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

Help Error: Expected token: "}", but found "-string-" on line 45


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Colombinus
Junior Member
Join Date: Nov 2020
Old 05-03-2022 , 05:46   Help Error: Expected token: "}", but found "-string-" on line 45
Reply With Quote #1

I'm trying to use a range plugin which fails to compile and I don't know what to do

HTML Code:
new GroupNames[GROUPS_NAME][] =
#include <amxmodx>
#include <amxmisc>

#define PLUGIN            "ULTIMATE WHO"
#define VERSION            "1.1"
#define AUTHOR            "P.Of.Pw"

#define CharsMax(%1)        sizeof %1 - 1
#define time_shower        1.0

#define GROUPS_NAME        15
#define GROUPS_ACCESS        15

#define motd_msg        "Admin's Online"

new color[][] =
{
    "FF0000",
    "66FF00",
    "FF9900",
    "33FF33",
    "CC3333",
    "3300CC",
    "330066",
    "006699",
    "CCFF00",
    "FF0099",
    "FF3300",
    "FF6633",
    "FFCC99",
    "3399CC",
    "663366"
}
new GroupNames[GROUPS_NAME][] =
{
    "---=== Detinator ===---",
    "---=== Owner+Vip ===---",
    "---=== Owner ===---",
    "---=== Co-Owner+Vip ===---",
    "---=== Co-Owner ===---",
    "---=== God+Vip ===---",
    "---=== God ===---",
    "---=== Moderator+Vip ===---",
    "---=== Moderator ===---"
    "---=== Helper+Vip ===---",
    "---=== Helper ===---",
    "---=== Slot ===---",
    "---=== Vip ===---"
};

new GroupFlags[GROUPS_ACCESS][] = 
{
    "abcdefghijklmnopqrstu",
    "bcdefghijklmnopqrstu",
    "bdefghijklmnopqrsu",
    "bcdefghijklmnopqrst",
    "bdefghijklmnopqrs",
    "bcdefghijlmnopqrst",
    "bdefghijlmnopqrs",
    "bcdefgijlmnopqrt",
    "bdefgijlmnopqr",
    "bdefgijmnop",
    "bcdefgijmnopt",
    "bcdefgijmnot",
    "bdefgijmno",
    "b",
    "ct"
}

new GroupFlagsValue[GROUPS_NAME]

public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
   
    for(new p_of_pw = 0 ; p_of_pw < GROUPS_NAME ; p_of_pw++)
        GroupFlagsValue[p_of_pw] = read_flags(GroupFlags[p_of_pw])
   
    register_clcmd("say", "cmdSay")
    register_clcmd("say_team", "cmdSay")
}

public cmdSay(id)
{
    new say[8]
    read_args(say, 7)
    
    if ((containi(say, "who") != -1 
    || containi(say, "admin") != -1 
    || containi(say, "admins") != -1  
    || contain(say, "/who") != -1 
    || contain(say, "/admin") != -1 
    || contain(say, "/admins") != -1))
        who_motd(id)
    
    return PLUGIN_CONTINUE
}

who_motd(id)
{
    new sPlayers[32], iNum, iPlayer
    new sName[32], sBuffer[1024]
    new iLen
    
    iLen = formatex(sBuffer, sizeof sBuffer - 1, "<body bgcolor=#000000><font color=#7b68ee><pre>")
   
    get_players(sPlayers, iNum, "ch")
   
    for(new p_of_pw = 0; p_of_pw < GROUPS_NAME ; p_of_pw++)
    {   
        iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><h5><font color=^"violet^">%s^n</font></h5></center>", GroupNames[p_of_pw])
     
        for(new a = 0; a < iNum ; a++)
        {   
            iPlayer = sPlayers[a]
         
            if(get_user_flags(iPlayer) == GroupFlagsValue[p_of_pw])
            {
                get_user_name(iPlayer, sName, sizeof sName - 1)
                iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><font color=^"%s^">%s^n</center></font>", color[p_of_pw], sName)
            }
        }        
    }
    
    show_motd(id, sBuffer, motd_msg)
    return PLUGIN_CONTINUE
}
This area is where it says there is an error
Error: Expected token: "}", but found "-string-" on line 45

HTML Code:
new GroupNames[GROUPS_NAME][] =
{
    "---=== Detinator ===---",
    "---=== Owner+Vip ===---",
    "---=== Owner ===---",
    "---=== Co-Owner+Vip ===---",
    "---=== Co-Owner ===---",
    "---=== God+Vip ===---",
    "---=== God ===---",
    "---=== Moderator+Vip ===---",
    "---=== Moderator ===---"
    "---=== Helper+Vip ===---",
    "---=== Helper ===---",
    "---=== Slot ===---",
    "---=== Vip ===---"
};
Colombinus is offline
jimaway
Heeeere's Jimmy!
Join Date: Jan 2009
Location: Estonia
Old 05-03-2022 , 06:02   Re: Help Error: Expected token: "}", but found "-string-" on line 45
Reply With Quote #2

missing comma after "---=== Moderator ===---"
jimaway is offline
PawnBegg
Junior Member
Join Date: Apr 2022
Old 05-03-2022 , 07:18   Re: Help Error: Expected token: "}", but found "-string-" on line 45
Reply With Quote #3

Code:
 #include <amxmodx>
#include <amxmisc>

#define PLUGIN            "ULTIMATE WHO"
#define VERSION            "1.1"
#define AUTHOR            "P.Of.Pw"

#define CharsMax(%1)        sizeof %1 - 1
#define time_shower        1.0

#define GROUPS_NAME        13
#define GROUPS_ACCESS        15

#define motd_msg        "Admin's Online"

new color[][] =
{
    "FF0000",
    "66FF00",
    "FF9900",
    "33FF33",
    "CC3333",
    "3300CC",
    "330066",
    "006699",
    "CCFF00",
    "FF0099",
    "FF3300",
    "FF6633",
    "FFCC99",
    "3399CC",
    "663366"
}
new GroupNames[GROUPS_NAME][] =
{
    "---=== Detinator ===---",
    "---=== Owner+Vip ===---",
    "---=== Owner ===---",
    "---=== Co-Owner+Vip ===---",
    "---=== Co-Owner ===---",
    "---=== God+Vip ===---",
    "---=== God ===---",
    "---=== Moderator+Vip ===---",
    "---=== Moderator ===---",
    "---=== Helper+Vip ===---",
    "---=== Helper ===---",
    "---=== Slot ===---",
    "---=== Vip ===---"
};

new GroupFlags[GROUPS_ACCESS][] = 
{
    "abcdefghijklmnopqrstu",
    "bcdefghijklmnopqrstu",
    "bdefghijklmnopqrsu",
    "bcdefghijklmnopqrst",
    "bdefghijklmnopqrs",
    "bcdefghijlmnopqrst",
    "bdefghijlmnopqrs",
    "bcdefgijlmnopqrt",
    "bdefgijlmnopqr",
    "bdefgijmnop",
    "bcdefgijmnopt",
    "bcdefgijmnot",
    "bdefgijmno",
    "b",
    "ct"
};

new GroupFlagsValue[GROUPS_NAME]

public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
   
    for(new p_of_pw = 0 ; p_of_pw < GROUPS_NAME ; p_of_pw++)
        GroupFlagsValue[p_of_pw] = read_flags(GroupFlags[p_of_pw])
   
    register_clcmd("say", "cmdSay")
    register_clcmd("say_team", "cmdSay")
}

public cmdSay(id)
{
    new say[8]
    read_args(say, 7)
    
    if ((containi(say, "who") != -1 
    || containi(say, "admin") != -1 
    || containi(say, "admins") != -1  
    || contain(say, "/who") != -1 
    || contain(say, "/admin") != -1 
    || contain(say, "/admins") != -1))
        who_motd(id)
    
    return PLUGIN_CONTINUE
}

who_motd(id)
{
    new sPlayers[32], iNum, iPlayer
    new sName[32], sBuffer[1024]
    new iLen
    
    iLen = formatex(sBuffer, sizeof sBuffer - 1, "<body bgcolor=#000000><font color=#7b68ee><pre>")
   
    get_players(sPlayers, iNum, "ch")
   
    for(new p_of_pw = 0; p_of_pw < GROUPS_NAME ; p_of_pw++)
    {   
        iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><h5><font color=^"violet^">%s^n</font></h5></center>", GroupNames[p_of_pw])
     
        for(new a = 0; a < iNum ; a++)
        {   
            iPlayer = sPlayers[a]
         
            if(get_user_flags(iPlayer) == GroupFlagsValue[p_of_pw])
            {
                get_user_name(iPlayer, sName, sizeof sName - 1)
                iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><font color=^"%s^">%s^n</center></font>", color[p_of_pw], sName)
            }
        }        
    }
    
    show_motd(id, sBuffer, motd_msg)
    return PLUGIN_CONTINUE
}
First of all you missed "---=== Moderator ===---", <- [,]
Secondly you defined #define GROUPS_NAME 15, but you have only 13 GROUP_NAME.

It compiling without errors now but you must modify GROUPS_ACCESS cuz you define 15 of them but you have only 13 GROUP_NAME.
PawnBegg is offline
Colombinus
Junior Member
Join Date: Nov 2020
Old 05-03-2022 , 08:32   Re: Help Error: Expected token: "}", but found "-string-" on line 45
Reply With Quote #4

Quote:
Originally Posted by PawnBegg View Post
Code:
 #include <amxmodx>
#include <amxmisc>

#define PLUGIN            "ULTIMATE WHO"
#define VERSION            "1.1"
#define AUTHOR            "P.Of.Pw"

#define CharsMax(%1)        sizeof %1 - 1
#define time_shower        1.0

#define GROUPS_NAME        13
#define GROUPS_ACCESS        15

#define motd_msg        "Admin's Online"

new color[][] =
{
    "FF0000",
    "66FF00",
    "FF9900",
    "33FF33",
    "CC3333",
    "3300CC",
    "330066",
    "006699",
    "CCFF00",
    "FF0099",
    "FF3300",
    "FF6633",
    "FFCC99",
    "3399CC",
    "663366"
}
new GroupNames[GROUPS_NAME][] =
{
    "---=== Detinator ===---",
    "---=== Owner+Vip ===---",
    "---=== Owner ===---",
    "---=== Co-Owner+Vip ===---",
    "---=== Co-Owner ===---",
    "---=== God+Vip ===---",
    "---=== God ===---",
    "---=== Moderator+Vip ===---",
    "---=== Moderator ===---",
    "---=== Helper+Vip ===---",
    "---=== Helper ===---",
    "---=== Slot ===---",
    "---=== Vip ===---"
};

new GroupFlags[GROUPS_ACCESS][] = 
{
    "abcdefghijklmnopqrstu",
    "bcdefghijklmnopqrstu",
    "bdefghijklmnopqrsu",
    "bcdefghijklmnopqrst",
    "bdefghijklmnopqrs",
    "bcdefghijlmnopqrst",
    "bdefghijlmnopqrs",
    "bcdefgijlmnopqrt",
    "bdefgijlmnopqr",
    "bdefgijmnop",
    "bcdefgijmnopt",
    "bcdefgijmnot",
    "bdefgijmno",
    "b",
    "ct"
};

new GroupFlagsValue[GROUPS_NAME]

public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
   
    for(new p_of_pw = 0 ; p_of_pw < GROUPS_NAME ; p_of_pw++)
        GroupFlagsValue[p_of_pw] = read_flags(GroupFlags[p_of_pw])
   
    register_clcmd("say", "cmdSay")
    register_clcmd("say_team", "cmdSay")
}

public cmdSay(id)
{
    new say[8]
    read_args(say, 7)
    
    if ((containi(say, "who") != -1 
    || containi(say, "admin") != -1 
    || containi(say, "admins") != -1  
    || contain(say, "/who") != -1 
    || contain(say, "/admin") != -1 
    || contain(say, "/admins") != -1))
        who_motd(id)
    
    return PLUGIN_CONTINUE
}

who_motd(id)
{
    new sPlayers[32], iNum, iPlayer
    new sName[32], sBuffer[1024]
    new iLen
    
    iLen = formatex(sBuffer, sizeof sBuffer - 1, "<body bgcolor=#000000><font color=#7b68ee><pre>")
   
    get_players(sPlayers, iNum, "ch")
   
    for(new p_of_pw = 0; p_of_pw < GROUPS_NAME ; p_of_pw++)
    {   
        iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><h5><font color=^"violet^">%s^n</font></h5></center>", GroupNames[p_of_pw])
     
        for(new a = 0; a < iNum ; a++)
        {   
            iPlayer = sPlayers[a]
         
            if(get_user_flags(iPlayer) == GroupFlagsValue[p_of_pw])
            {
                get_user_name(iPlayer, sName, sizeof sName - 1)
                iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><font color=^"%s^">%s^n</center></font>", color[p_of_pw], sName)
            }
        }        
    }
    
    show_motd(id, sBuffer, motd_msg)
    return PLUGIN_CONTINUE
}
First of all you missed "---=== Moderator ===---", <- [,]
Secondly you defined #define GROUPS_NAME 15, but you have only 13 GROUP_NAME.

It compiling without errors now but you must modify GROUPS_ACCESS cuz you define 15 of them but you have only 13 GROUP_NAME.
I already added two other names but it tells me

Error: Initialization data exceeds declared size on line 48

And

Error: Invalid function or declaration on line 51

Code:
 #include <amxmodx>
#include <amxmisc>

#define PLUGIN            "ULTIMATE WHO"
#define VERSION            "1.1"
#define AUTHOR            "P.Of.Pw"

#define CharsMax(%1)        sizeof %1 - 1
#define time_shower        1.0

#define GROUPS_NAME        13
#define GROUPS_ACCESS        15

#define motd_msg        "Admin's Online"

new color[][] =
{
    "FF0000",
    "66FF00",
    "FF9900",
    "33FF33",
    "CC3333",
    "3300CC",
    "330066",
    "006699",
    "CCFF00",
    "FF0099",
    "FF3300",
    "FF6633",
    "FFCC99",
    "3399CC",
    "663366"
}
new GroupNames[GROUPS_NAME][] =
{
    "---=== Detinator ===---",
    "---=== Owner+Vip ===---",
    "---=== Owner ===---",
    "---=== Co-Owner+Vip ===---",
    "---=== Co-Owner ===---",
    "---=== God+Vip ===---",
    "---=== God ===---",
    "---=== Moderator+Vip ===---",
    "---=== Moderator ===---",
    "---=== Admin+Vip===---",
    "---=== Admin ===---",
    "---=== Helper+Vip ===---",
    "---=== Helper ===---",
    "---=== Slot ===---",
    "---=== Vip ===---"
};

new GroupFlags[GROUPS_ACCESS][] = 
{
    "abcdefghijklmnopqrstu",
    "bcdefghijklmnopqrstu",
    "bdefghijklmnopqrsu",
    "bcdefghijklmnopqrst",
    "bdefghijklmnopqrs",
    "bcdefghijlmnopqrst",
    "bdefghijlmnopqrs",
    "bcdefgijlmnopqrt",
    "bdefgijlmnopqr",
    "bdefgijmnop",
    "bcdefgijmnopt",
    "bcdefgijmnot",
    "bdefgijmno",
    "b",
    "ct"
};

new GroupFlagsValue[GROUPS_NAME]

public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
   
    for(new p_of_pw = 0 ; p_of_pw < GROUPS_NAME ; p_of_pw++)
        GroupFlagsValue[p_of_pw] = read_flags(GroupFlags[p_of_pw])
   
    register_clcmd("say", "cmdSay")
    register_clcmd("say_team", "cmdSay")
}

public cmdSay(id)
{
    new say[8]
    read_args(say, 7)
    
    if ((containi(say, "who") != -1 
    || containi(say, "admin") != -1 
    || containi(say, "admins") != -1  
    || contain(say, "/who") != -1 
    || contain(say, "/admin") != -1 
    || contain(say, "/admins") != -1))
        who_motd(id)
    
    return PLUGIN_CONTINUE
}

who_motd(id)
{
    new sPlayers[32], iNum, iPlayer
    new sName[32], sBuffer[1024]
    new iLen
    
    iLen = formatex(sBuffer, sizeof sBuffer - 1, "<body bgcolor=#000000><font color=#7b68ee><pre>")
   
    get_players(sPlayers, iNum, "ch")
   
    for(new p_of_pw = 0; p_of_pw < GROUPS_NAME ; p_of_pw++)
    {   
        iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><h5><font color=^"violet^">%s^n</font></h5></center>", GroupNames[p_of_pw])
     
        for(new a = 0; a < iNum ; a++)
        {   
            iPlayer = sPlayers[a]
         
            if(get_user_flags(iPlayer) == GroupFlagsValue[p_of_pw])
            {
                get_user_name(iPlayer, sName, sizeof sName - 1)
                iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><font color=^"%s^">%s^n</center></font>", color[p_of_pw], sName)
            }
        }        
    }
    
    show_motd(id, sBuffer, motd_msg)
    return PLUGIN_CONTINUE
}

Last edited by Colombinus; 05-03-2022 at 08:33.
Colombinus is offline
iceeedr
Veteran Member
Join Date: Apr 2017
Location: Brazil
Old 05-03-2022 , 08:35   Re: Help Error: Expected token: "}", but found "-string-" on line 45
Reply With Quote #5

#define GROUPS_NAME 15
__________________


Quote:
Originally Posted by fysiks View Post
Please stop trying to help. You appear to just be posting random stuff. Wait until you actually understand more about AMX Mod X and how the game works.
https://iceeedr.com.br/
iceeedr is offline
Send a message via Skype™ to iceeedr
Colombinus
Junior Member
Join Date: Nov 2020
Old 05-03-2022 , 08:41   Re: Help Error: Expected token: "}", but found "-string-" on line 45
Reply With Quote #6

Quote:
Originally Posted by iceeedr View Post
#define GROUPS_NAME 15
Thanks for the help
Colombinus is offline
Colombinus
Junior Member
Join Date: Nov 2020
Old 05-03-2022 , 11:33   Re: Help Error: Expected token: "}", but found "-string-" on line 45
Reply With Quote #7

To not open another theme in this plugin it tells me

Error: Cannot read from file: "api_oldmenu" on line 11

Code:
/* Script generated by Pawn Studio */

#include < amxmodx >
#include < amxmisc >
#include < cstrike >
#include < engine >
#include < fun >
#include < hamsandwich >
#include < fakemeta >
#include < xs >
#include < api_oldmenu >

#define PLUGIN "CSGO RANGOS"
#define VERSION "1.0b"
#define AUTHOR "Hypnotize"

#define m_LastHitGroup 75
#define TASK_SHOWHUD     50000
#define ID_SHOWHUD     (taskid - TASK_SHOWHUD)
#define ENG_NULLENT        -1 
#define EV_INT_WEAPONKEY    EV_INT_impulse 
#define porcentaje(%0,%1) (%0 / %1) * 100

#define IsValidConnected(%1) (1 <= %1 <= g_iMaxplayers && is_user_connected(%1))

//#define SQL_SYSTEM

#if defined SQL_SYSTEM
	#include < sqlx >
#else
	#include < mysqlt >
	new Handle:g_hConnection;
#endif

#if AMXX_VERSION_NUM < 183
	#include < dhudmessage >
	#define client_disconnected client_disconnect
	
	#else
	new g_szHashUser[ 33 ][ 34 ], g_szHashPass[ 33 ][ 34 ];
#endif

//*************************		ENUMERADORES	*****************************//

enum { REGISTRAR_CUENTA, LOGUEAR_CUENTA, GUARDAR_DATOS, INSERTAR_PJ, CARGAR_PJS, LOGUEAR_PJ, CARGAR_DATOS, CARGAR_DATOS2, SQL_RANK, SQL_TOP };
enum { DESCONECTADO = 0, CONECTADO, LOGUEADO, JUGANDO };

enum eLogros { szLogro[ 90 ], iNecesario, iGanancia, szDescripcion[ 200 ] };
enum { USP = 0, GLOCK18, SOBREVIVE, AS3, KN1, AP, MAXL };

enum eRangos { rangos_nombre[ 64 ], nivel_requerido, url_foto[ 200 ] };

enum _:eAdmin { ADMIN_TYPE[ 30 ], ADMIN_FLAGS[ 90 ], iMult };

enum TutorColor { TUTOR_RED = 1, TUTOR_BLUE, TUTOR_YELLOW, TUTOR_GREEN };

enum _:Armas{ CSW_NAME, WPN_ID[ 40 ], V_MDL[ 100 ], P_MDL[ 100 ], W_MDL[ 100 ], NAMEE[ 200 ], NIVEL, COSTO, CATEGORIA, WID, IS_ADMIN };
enum { cKNIFES = 0, cM4A1, cAWP, cDEAGLE, cGLOCK18, cAK47, cUSP, cMAX_ARMA };

//****************************************************************************//

//--------------------------------------------------------------------------------------------

//***********************	SISTEMA DE CUENTAS		**************************//

#if defined SQL_SYSTEM
new const g_szDBSQL[ ] = "BASE_DE_DATOS";
#else
new const MYSQL_HOST[] =  "127.0.0.1";
new const MYSQL_USER[] =  ""; 
new const MYSQL_PASS[] =  ""; 
new const MYSQL_DATEBASE[] =  "tcagame_svc129"; 
#endif

new const g_szCuentas[ ] = "ct_Cuentas";
new const g_szDatos[ ] = "ct_datos";

new const g_szPrefix[ ] = "[ CSGO ]";
new const DISPONIBLE[ ] = "DISPONIBLE";

new g_id[ 33 ], g_idCuenta[ 33 ];
new g_usuario[ 33 ][ 34 ];
new g_password[ 33 ][ 34 ];
new g_playername[ 33 ][ 33 ];
new g_iEstado[ 33 ];
new g_szPersonajes[ 5 ][ 32 ];

new g_iMenuPj;
new Handle:g_hTuple;

//****************************************************************************//

//-------------------------------------------------------------------------------------

//***********************	SISTEMA DE ADMINS		**************************//

new const Admins[][eAdmin] =
{
	{ "[ Creator ]", "l", 4 },
	{ "[ Owner ]", "l", 4 },
	{ "[ Staff ]", "a", 3 },
	{ "[ Leader ]", "d", 3 }
};

new g_iTipo[ 33 ][ 32 ], g_iMultiplicador[ 33 ];

//****************************************************************************//

//-------------------------------------------------------------------------------------

//***********************	SISTEMA DE LOGROS		**************************//

new const iLogros[ ][ eLogros ] = 
{
	{"1ra Primera Sangre", 1, 2, "Mata tu primer enemigo!"},//0
	{"Pro with USP", 1, 3, "haz 3 frags con USP!"},//1
	{"Pro with glock18", 1, 15, "15 Kills con glock18"},//2
	{"El Superviviente", 1, 25, "Sobrevive 3 rondas seguidas!"},//3
	{"Soy rico", 1, 15, "Consigue 9,000 Puntos"},//4
	{"Quiero ser Millonario", 1, 10, "Consigue 200,000 Puntos!"},//5
	{"ACE!", 1, 10, "Mata a 5 Jugadores seguidos!"},//6
	{"Ninja!", 1, 7, "Mata 7 mans con knife!"},//7
	{"Pro with AWP", 1, 7, "Mata a 3 seguidos con awp"}//8
};
new g_IsLogros[ 33 ][ sizeof(iLogros) ], g_isArma[ 33 ][ MAXL ]; 

new const iLogrosKill[ ][ eLogros ] = 
{
	{"1ra Primera Sangre", 1, 2, "Mata tu primer enemigo!"},
	{"uanjondred", 300, 50, "Pulberisa 100 nuvs!"},
	{"¿5*100?", 500, 100, "Acaba con 500 enemigos!"},
	{"Mi primera 1k", 1000, 200, "Mata 1000 Nuvs!"},
	{"1500 Kills", 1500, 300, "Mata 1500 Enemigos!"},
	{"¿1k * 2?", 2000, 250, "Acaba con 2000 enemigos!"},
	{"Conviertete en 5k", 5000, 500, "Mata 5000 enemigos!"}
}
new g_isKills[ 33 ], g_iLogro[ 33 ];
new g_iPuntos[ 33 ];
//****************************************************************************//

//-------------------------------------------------------------------------------------

//***********************	SISTEMA DE DOMINACION		**************************//

new g_iMatados[ 33 ][ 33 ];
new g_iMuertes[ 33 ][ 33 ];

new g_iScreenFade;

//****************************************************************************//

//-------------------------------------------------------------------------------------

//***********************	SISTEMA DE RANGOS		**************************//

new const rangos[ ][ eRangos ] =  
{
	{ "Recruit", 200, "" },
	{ "Private", 700, "https://ibb.co/BsH2MW1" },
	{ "Private First Class", 1300, "https://ibb.co/6D6Vbqx" },
	{ "Specialist", 2000, "https://ibb.co/z6j2xqr" },
	{ "Corporal", 2900, "https://ibb.co/zNW4khC" },
	{ "Sergeant", 4100, "https://ibb.co/zsWZ8Pg" },
	{ "Sergeant First Class", 5400, "https://ibb.co/QJq9fpk" },
	{ "Master Sergeant", 6200, "https://ibb.co/ZWVLcLc" },
	{ "First Sergeant", 8200, "https://ibb.co/vHJygtF" },
	{ "Sergeant Major", 10000, "https://ibb.co/86fbjr3" },
	{ "Command Sergeant Major", 12000, "https://ibb.co/fYQRRBD" },
	{ "Sergeant Major of the Army", 15000, "https://ibb.co/GPpBfjk" },
	{ "Second Lieutenant", 19000, "https://ibb.co/JdFLCZz" },
	{ "First Lieutenant", 24000, "https://ibb.co/hftdK5B" },
	{ "Captain", 30000, "https://ibb.co/QcBKGPN" },
	{ "Major", 37000, "https://ibb.co/c3q0wFY" },
	{ "Lieutenant Colonel",45000, "https://ibb.co/Ln613zQ" },
	{ "Colonel", 54000, "https://ibb.co/4dp1Nfs" },
	{ "Brigadier General", 64000, "https://ibb.co/jHhYTGp" }
	{ "Major General", "https://ibb.co/48V7qh2"}
	{ "Lieutenant General", "https://ibb.co/JvSNxqG"}
	{ "General", "https://ibb.co/SKL9fLQ"}
	{ "General of the Army", "https://ibb.co/86fbjr3"}
}
new g_iRango[ 33 ];
new g_iHud;

//****************************************************************************//

//-----------------------------------------------------------------------------------

//************************		SISTEMA DE SKINS		***************************//

new const WEAPONENTNAMES[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
    "weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
    "weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
    "weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
"weapon_ak47", "weapon_knife", "weapon_p90" }

new const Modelos[][Armas] = 
{
    { CSW_KNIFE, "weapon_knife", "v_knife", "default", "default", "Default cs:go", 0, 0, cKNIFES, 1110, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_daggers_CH", "default", "default", "Daggers - Case Hardened", 0, 50, cKNIFES, 1111, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_falchion_CH", "default", "default", "Falchion - Slaughter", 0, 120, cKNIFES, 1112, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_butterfly_marblefade", "default", "default", "Butterfly - MarbleFade", 1, 200, cKNIFES, 1113, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_bowie_vanilla", "default", "default", "Bowie - Vanilla", 13, 1000, cKNIFES, 1114, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_karambit_doppler2", "default", "default", "Karambit - Doppler Phase 2", 2, 300, cKNIFES, 1115, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_bayonet_tiger", "default", "default", "Bayonet - Tiger Tooth", 5, 490, cKNIFES, 1116, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_bayonet_marble", "default", "default", "Bayonet - Marble Fade", 6, 300, cKNIFES, 1117, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_daggers_boreal", "default", "default", "Daggers - Boreal", 7, 410, cKNIFES, 1118, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_bayonet_crimson", "default", "default", "Bayonet - Crimson", 8, 400, cKNIFES, 1119, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_bayonet_doppler1", "default", "default", "Bayonet - Doppler1", 9, 500, cKNIFES, 1120, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_bayonet_doppler4", "default", "default", "Bayonet - Doppler4", 10, 520, cKNIFES, 1121, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_karambit_tiger", "default", "default", "Karambit - Tiger", 11, 490, cKNIFES, 1122, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_flip_ruby", "default", "default", "Flip - Ruby", 12, 500, cKNIFES, 1123, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_huntsman_crimson", "default", "default", "Hunstman - Crimson", 13, 570, cKNIFES, 1124, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_karambit_fade", "default", "default", "Karambit - Fade", 14, 900, cKNIFES, 1125, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_karambit_magna", "default", "default", "Karambit - Magna", 15, 1000, cKNIFES, 1126, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_flip_doppler4", "default", "default", "Flip - Doppler4", 16, 1010, cKNIFES, 1127, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_falchion_slaughter", "default", "default", "Falchion - Slaughter", 16, 1400, cKNIFES, 1128, -1 },
    { CSW_KNIFE, "weapon_knife", "v_knife_m9_marble", "default", "default", "M9 - Marble V.I.P", 17, 2000, cKNIFES, 1129, -1 },

    
    { CSW_M4A1, "weapon_m4a1", "v_m4a1_chanticos_fire", "p_m4a1_chanticos_fire", "w_m4a1_chanticos_fire", "M4a1 - Chanticos", 0, 200, cM4A1, 2220, -1 },
    { CSW_M4A1, "weapon_m4a1", "v_m4a1_flashback", "p_m4a1_flashback", "w_m4a1_flashback", "M4a1 - Flashback", 0, 380, cM4A1, 2221, -1 },
    { CSW_M4A1, "weapon_m4a1", "v_m4a1_decimator", "p_m4a1_decimator", "w_m4a1_decimator", "M4a1 - Decimator", 3, 500, cM4A1, 2222, -1 },
    { CSW_M4A1, "weapon_m4a1", "v_m4a1_mecha", "p_m4a1_mecha", "w_m4a1_mecha", "M4a1 - Mecha", 4, 800, cM4A1, 2223, -1 },
    { CSW_M4A1, "weapon_m4a1", "v_m4a1_masterpiece", "p_m4a1_masterpiece", "w_m4a1_masterpiece", "M4a1 - Masterpice", 7, 1000, cM4A1, 2224, -1 },
    { CSW_M4A1, "weapon_m4a1", "v_m4a1_golden_coil", "p_m4a1_golden_coil", "w_m4a1_golden_coil", "M4a1 - Golden Coil", 10, 2000, cM4A1, 2225, -1 },
    { CSW_M4A1, "weapon_m4a1", "v_m4a1_hyper_beast", "p_m4a1_hyper_beast", "w_m4a1_hyper_beast", "M4a1 - Hyper Beast", 15, 5000, cM4A1, 2226, -1 },
    { CSW_M4A1, "weapon_m4a1", "v_m4a1_howl", "p_m4a1_howl", "w_m4a1_howl", "M4a1 - Howl V.I.P.", 17, 8000, cM4A1, 2222, -1 },
    
    
    { CSW_AWP, "weapon_awp", "v_awp_phobos", "p_awp_phobos", "w_awp_phobos", "AWP - Phobos", 0, 220, cAWP, 3330, -1 },
    { CSW_AWP, "weapon_awp", "v_awp_asiimov", "p_awp_asiimov", "w_awp_asiimov", "AWP - Asiimov", 3, 400, cAWP, 3331, -1 },
    { CSW_AWP, "weapon_awp", "v_awp_medusa", "p_awp_medusa", "w_awp_medusa", "AWP - Medusa", 7, 600, cAWP, 3332, -1 },
    { CSW_AWP, "weapon_awp", "v_awp_boom", "p_awp_boom", "w_awp_boom", "AWP - Boom", 5, 110, cAWP, 3333, -1 },
    { CSW_AWP, "weapon_awp", "v_awp_oni_taiji", "p_awp_oni_taiji", "w_awp_oni_taiji", "AWP - Oni Taiji", 10, 1100, cAWP, 3334, -1 },
    { CSW_AWP, "weapon_awp", "v_awp_dragon_lore", "p_awp_dragon_lore", "w_awp_dragon_lore", "AWP - Dragon Lore", 14, 3000, cAWP, 3335, -1 },
    { CSW_AWP, "weapon_awp", "v_awp_hyper_beast", "p_awp_hyper_beast", "w_awp_hyper_beast", "AWP - Hyper Beast", 17, 110, cAWP, 3336, -1 },
    
    { CSW_DEAGLE, "weapon_deagle", "v_deagle_blaze", "default", "default", "Deagle - Blaze", 0, 250, cDEAGLE, 4440, -1 },
    { CSW_DEAGLE, "weapon_deagle", "v_deagle_directive", "default", "default", "Deagle - Directive", 0, 500, cDEAGLE, 4441, -1 },
    { CSW_DEAGLE, "weapon_deagle", "v_deagle_fire_elemental", "default", "default", "Deagle - Fire Elemental", 5, 800, cDEAGLE, 4442, -1 },
    { CSW_DEAGLE, "weapon_deagle", "v_deagle_whitetiger", "default", "default", "Deagle - Whitetiger", 3, 600, cDEAGLE, 4443, -1 },
    { CSW_DEAGLE, "weapon_deagle", "v_deagle_salient", "default", "default", "Deagle - Salient", 7, 600, cDEAGLE, 4444, -1 },
    { CSW_DEAGLE, "weapon_deagle", "v_deagle_kumicho", "default", "default", "Deagle - Kumicho", 13, 1000, cDEAGLE, 4445, -1 },
    { CSW_DEAGLE, "weapon_deagle", "v_deagle_doomsday", "default", "default", "Deagle - Domm Sday", 15, 1100, cDEAGLE, 4446, -1 },
    
    
    { CSW_GLOCK18, "weapon_glock18", "v_glock18_fire_elemental", "default", "default", "Glock - Fire Elemental", 0, 100, cGLOCK18, 5550, -1 },
    { CSW_GLOCK18, "weapon_glock18", "v_glock18_tristrike", "default", "default", "Glock - Tristrike", 4, 270, cGLOCK18, 5551, -1 },
    { CSW_GLOCK18, "weapon_glock18", "v_glock18_water_elemental", "default", "default", "Glock - Water elemental", 8, 500, cGLOCK18, 5552, -1 },
    { CSW_GLOCK18, "weapon_glock18", "v_glock18_weasel", "default", "default", "Glock - Weasel", 13, 900, cGLOCK18, 5553, -1 },
    
    
    { CSW_AK47, "weapon_ak47", "v_ak47_fuel_injector", "p_ak47_fuel_injector", "w_ak47_fuel_injector", "AK47 - Fuel Injector", 0, 250, cAK47, 6660, -1 },
    { CSW_AK47, "weapon_ak47", "v_ak47_vulcan", "p_ak47_vulcan", "w_ak47_vulcan", "AK47 - Vulcan", 3, 600, cAK47, 6661, -1 },
    { CSW_AK47, "weapon_ak47", "v_ak47_case_hardened", "p_ak47_case_hardened", "w_ak47_case_hardened", "AK47 - Case Hardened", 0, 100, cAK47, 6662, -1 },
    { CSW_AK47, "weapon_ak47", "v_ak47_neon_revolution", "p_ak47_neon_revolution", "w_ak47_neon_revolution", "AK47 - Neon Rev.", 7, 500, cAK47, 6663, -1 },
    { CSW_AK47, "weapon_ak47", "v_ak47_point_disarray", "p_ak47_point_disarray", "w_ak47_point_disarray", "AK47 - Point Disarray", 9, 800, cAK47, 6664, -1 },
    { CSW_AK47, "weapon_ak47", "v_ak47_blood_sport", "p_ak47_blood_sport", "w_ak47_blood_sport", "AK47 - Blood Sport", 12, 1500, cAK47, 6665, -1 },
    { CSW_AK47, "weapon_ak47", "v_ak47_aquamarine", "p_ak47_aquamarine", "w_ak47_aquamarine", "AK47 - Marine", 15, 3000, cAK47, 6666, -1 },
    { CSW_AK47, "weapon_ak47", "v_ak47_fire_serpent", "p_ak47_fire_serpent", "w_ak47_fire_serpent", "AK47 - Fire Serpent", 17, 5000, cAK47, 6667, -1 },
    
    
    { CSW_USP, "weapon_usp", "v_usp_caiman", "default", "default", "USP - Caiman", 0, 180, cUSP, 7770, -1 },
    { CSW_USP, "weapon_usp", "v_usp_cyrex", "default", "default", "USP - Cyrex", 0, 400, cUSP, 7771, -1 },
    { CSW_USP, "weapon_usp", "v_usp_nightfire_dragon", "default", "default", "USP - Nightifre", 5, 700, cUSP, 7772, -1 },
    { CSW_USP, "weapon_usp", "v_usp_orion", "default", "default", "USP - Orion", 9, 1000, cUSP, 7773, -1 }
}

new const eWeapon[ 8 ][ ] = { "models/w_knife.mdl", "models/w_m4a1.mdl", "models/w_awp.mdl", "models/w_deagle.mdl", "models/w_glock18.mdl", "models/w_ak47.mdl", "models/w_usp.mdl",  "" };

new g_iCategoria[ 33 ];

new g_iElegida[ 33 ][ cMAX_ARMA ];
new g_iRecogida[ 33 ][ cMAX_ARMA ];
new g_iComprada[ 33 ][ cMAX_ARMA ][ 25 ];

//****************************************************************************//

//-----------------------------------------------------------------------------------

new const g_szLogro[ ] = "up.wav";

new const g_TutorPrecache[][] = 
{  
	"gfx/career/icon_!.tga", 
	"gfx/career/icon_!-bigger.tga", 
	"gfx/career/icon_i.tga",  
	"gfx/career/icon_i-bigger.tga", 
	"gfx/career/icon_skulls.tga",
	"gfx/career/round_corner_ne.tga", 
	"gfx/career/round_corner_nw.tga", 
	"gfx/career/round_corner_se.tga", 
	"gfx/career/round_corner_sw.tga", 
	"resource/TutorScheme.res", 
	"resource/UI/TutorTextWindow.res"
}

new g_iMsgTutClose, g_iMsgTutor;

new g_iPlanted, g_iDefuse;
new DefuseId, PlantedId;

new g_iConteo;
new g_bCalentamiento = true;

new g_iFrag[ 33 ];
new g_iElo[ 33 ];

new g_isLen[ 4000 ];
new g_iMaxplayers;
new g_msgVGUIMenu, g_msgShowMenu;

const m_iVGUI = 510;
const TASK_TUTOR = 467666646;

new const szGrenadeTT[][] = { "NsPnext_generation/t_grenade01.wav", "NsPnext_generation/t_grenade02.wav", "NsPnext_generation/t_grenade03.wav" };
new const szGrenadeCT[][] = { "NsPnext_generation/ct_grenade01.wav", "NsPnext_generation/ct_grenade02.wav", "NsPnext_generation/ct_grenade03.wav" };

new const szSmokeTT[][] = { "NsPnext_generation/t_smoke01.wav", "NsPnext_generation/t_smoke02.wav" };
new const szSmokeCT[][] = { "NsPnext_generation/ct_smoke01.wav", "NsPnext_generation/ct_smoke02.wav", "NsPnext_generation/ct_smoke03.wav" };

new const szFlashTT[][] = { "NsPnext_generation/t_flashbang01.wav", "NsPnext_generation/t_flashbang02.wav", "NsPnext_generation/t_flashbang03.wav" };
new const szFlashCT[][] = { "NsPnext_generation/ct_flashbang01.wav", "NsPnext_generation/ct_flashbang02.wav", "NsPnext_generation/ct_flashbang03.wav" };

new const g_szMdlGrenade[] = "models/NsPnext_generation/v_henade.mdl";
new const g_szMdlSmoke[] = "models/NsPnext_generation/v_smokenade.mdl";
new const g_szMdlFlash[] = "models/NsPnext_generation/v_flash.mdl";

public plugin_init( )  
{
	register_plugin( PLUGIN, VERSION, AUTHOR );
	
	register_clcmd( "CREAR_USUARIO", "reg_usuario" );
	register_clcmd( "CREAR_PASSWORD", "reg_password" );
	register_clcmd( "LOGUEAR_USUARIO", "log_usuario" );
	register_clcmd( "LOGUEAR_PASSWORD", "log_password" );
	register_clcmd( "say /skins", "cmdMenu" );
	register_clcmd( "chooseteam", "clcmd_changeteam" );
	register_clcmd( "jointeam", "clcmd_changeteam" );
	register_clcmd("say", "BlockSay");
	register_clcmd( "say /top15", "checkTop" );
	register_clcmd("say /rank", "checkRank");
	register_clcmd( "sayteam /top15", "checkTop" );
	register_clcmd("sayteam /rank", "checkRank");
	
	g_msgShowMenu = get_user_msgid("ShowMenu");
	g_msgVGUIMenu = get_user_msgid("VGUIMenu");
	register_message( g_msgShowMenu, "message_ShowMenu" );
	register_message( g_msgVGUIMenu, "message_VGUIMenu" );
	register_message( get_user_msgid( "TextMsg" ), "message_textmsg" );
	register_message( get_user_msgid( "SendAudio" ), "MESSAGE_SendAudio" );
	
	register_event( "HLTV", "event_round_start", "a", "1=0", "2=0" );
	
	register_logevent( "RoundEnd", 2, "1=Round_End" );
	
	for( new i = 1; i < sizeof WEAPONENTNAMES; i++ )
	{
        if( WEAPONENTNAMES[ i ][ 0 ] ) 
		{
			RegisterHam( Ham_Item_Deploy, WEAPONENTNAMES[ i ], "ham_ItemDeploy_AllWeapons", 1 );
			RegisterHam( Ham_Item_AddToPlayer, WEAPONENTNAMES[ i ], "fw_AddToPlayer", 1 );
		}
	}
	RegisterHam(Ham_Spawn,         "player",     "ham_PlayerSpawn_Post", 1);
	RegisterHam(Ham_Killed, "player", "Ham_PlayerKilled", 1);
	
	register_forward(FM_SetModel, "fw_SetModel");
	register_forward(FM_ClientUserInfoChanged, "ClientUserInfoChanged");
	register_forward(FM_ClientKill, "Fw_ClientKill");
	
	g_iMaxplayers = get_maxplayers( );
	g_iScreenFade = get_user_msgid("ScreenFade");
	g_iHud = CreateHudSyncObj( );
	
	g_iMsgTutor = get_user_msgid("TutorText");
	g_iMsgTutClose = get_user_msgid("TutorClose");
	
	MySQLx_Init( );
	oldmenu_register( );
	
	g_iConteo = 60;
	g_bCalentamiento = true;
	set_task( 1.0, "fnCalentamiento", 8596, _, _, "b" );
}
public plugin_precache( )
{
	new i, szModels[ 500 ];
	
	for( i = 0; i < sizeof g_TutorPrecache; ++i ) engfunc( EngFunc_PrecacheGeneric,g_TutorPrecache[ i ] );
	
	for( i = 0; i < sizeof Modelos; i++ )
	{
		if( !equal( Modelos[ i ][ V_MDL ], "default" ) )
		{
			formatex( szModels, charsmax( szModels ), "models/NsPnext_generation/%s.mdl", Modelos[ i ][ V_MDL ] );
			precache_model( szModels );
		}
		if( !equal( Modelos[ i ][ P_MDL ], "default" ) )
		{
			formatex( szModels, charsmax( szModels ), "models/NsPnext_generation/%s.mdl", Modelos[ i ][ P_MDL ] );
			precache_model( szModels );
		}
	}
	
	precache_model( g_szMdlGrenade );
	precache_model( g_szMdlSmoke );
	precache_model( g_szMdlFlash );
	
	for( i = 0; i < sizeof( szGrenadeTT ); ++i ) precache_sound( szGrenadeTT[ i ] );
	for( i = 0; i < sizeof( szGrenadeCT ); ++i ) precache_sound( szGrenadeCT[ i ] );
		
	for( i = 0; i < sizeof( szSmokeTT ); ++i ) precache_sound( szSmokeTT[ i ] );
	for( i = 0; i < sizeof( szSmokeCT ); ++i ) precache_sound( szSmokeCT[ i ] );
		
	for( i = 0; i < sizeof( szFlashTT ); ++i ) precache_sound( szFlashTT[ i ] );
	for( i = 0; i < sizeof( szFlashCT ); ++i ) precache_sound( szFlashCT[ i ] );
	
	precache_player_Sound( g_szLogro );
}
public client_disconnected(  id ) 
{
	if( g_iEstado[ id ] == JUGANDO ) 
	{
		g_iEstado[ id ] = DESCONECTADO;
		guardar_datos( id );
		remove_task( id+TASK_SHOWHUD ); 
	}
	
	g_usuario[ id ][ 0 ] = '^0';
	g_password[ id ][ 0 ] = '^0';
}
public client_putinserver( id )
{
	new i;
	
	get_user_name(id, g_playername[ id ], charsmax( g_playername[] ));
	
	set_task( 0.5, "show_login_menu", id );
	
	for( i = 0; i < sizeof( g_szPersonajes ); ++i )
		g_szPersonajes[ i ] = DISPONIBLE;
	
	for( i = 1; i <= g_iMaxplayers; ++i )
	{
		for( new cate = 0; cate < cMAX_ARMA; ++cate )
		{
			for( new arma = 0; arma < 25; ++arma )
				g_iComprada[ i ][ cate ][ arma ] = 0;
		}
	}
	
	g_iTipo[ id ] = "^0";
	g_iMultiplicador[ id ] = 1;
	g_iCategoria[ id ] = 0;
	
	arrayset( g_iRecogida[ id ], -1, sizeof( g_iRecogida[ ] ) );
	
	if( is_user_admin( id ) )
	{
		for( new i = 0 ; i < sizeof Admins ; i++ ) 
		{
			if( has_flag( id, Admins[ i ][ ADMIN_FLAGS ] ) )
			{                     
				formatex( g_iTipo[ id ], charsmax( g_iTipo ), "%s", Admins[ i ][ ADMIN_TYPE ] );
				g_iMultiplicador[ id ] = Admins[ i ][ iMult ];
				break;
			}
		}
	}
}
public Fw_ClientKill()
{
    return FMRES_SUPERCEDE
} 
public fnCalentamiento( )
{
	set_dhudmessage( 125, 125, 125, 0.38, 0.30, 1, 1.0, 0.1 );
	show_dhudmessage( 0,     "===================^n\
            ..:::> PARTIDA EN: %i <:::..^n\
            ===================", g_iConteo );
	--g_iConteo;
	
	if( g_iConteo <= 0 )
	{
		server_cmd( "amx_cvar sv_restart 1" );
		g_bCalentamiento = false;
		remove_task ( 8596 );
		return;
	}
}
public MESSAGE_SendAudio()
{
	static SZ_Text[18];
	
	get_msg_arg_string(2, SZ_Text, charsmax(SZ_Text))
	
	if(equal(SZ_Text,"%!MRAD_FIREINHOLE"))
		return PLUGIN_HANDLED;
	
	return PLUGIN_CONTINUE;
} 
public message_textmsg()
{
	static textmsg[22]
	
	if (get_msg_args() == 5 && get_msg_argtype(5) == ARG_STRING)
	{
		get_msg_arg_string(5, textmsg, sizeof textmsg - 1)
		
		if (equal(textmsg, "#Fire_in_the_hole"))
			return PLUGIN_HANDLED
	}
	return PLUGIN_CONTINUE;
}
public grenade_throw( id, greindex, wId ) 
{
	if( wId == CSW_HEGRENADE )
	{
		if( get_user_team( id ) == 1)
			emit_sound (id, CHAN_VOICE, szGrenadeTT[ random_num( 0, charsmax( szGrenadeTT ) ) ], 0.9, ATTN_NORM, 0, PITCH_NORM);
		else
			emit_sound (id, CHAN_VOICE, szGrenadeCT[ random_num( 0, charsmax( szGrenadeCT ) ) ], 0.9, ATTN_NORM, 0, PITCH_NORM);
		
		printf( id, "!team[ ^4CSGO !team] Haz lanzado una ^4Granada!" );
		return PLUGIN_HANDLED;
	}
	if( wId == CSW_FLASHBANG ) 
	{
		if( get_user_team( id ) == 1)
			emit_sound (id, CHAN_VOICE, szFlashTT[ random_num( 0, charsmax( szFlashTT ) ) ], 0.9, ATTN_NORM, 0, PITCH_NORM);
		else
			emit_sound (id, CHAN_VOICE, szFlashCT[ random_num( 0, charsmax( szFlashCT ) ) ], 0.9, ATTN_NORM, 0, PITCH_NORM);
			
		printf( id, "!team[ ^4CSGO !team] Haz lanzado una ^4Flash!" );
		return PLUGIN_HANDLED;
	}
	if( wId == CSW_SMOKEGRENADE )
	{
		if( get_user_team( id ) == 1)
			emit_sound (id, CHAN_VOICE, szSmokeTT[ random_num( 0, charsmax( szSmokeTT ) ) ], 0.9, ATTN_NORM, 0, PITCH_NORM);
		else
			emit_sound (id, CHAN_VOICE, szSmokeCT[ random_num( 0, charsmax( szSmokeCT ) ) ], 0.9, ATTN_NORM, 0, PITCH_NORM);
			
		printf( id, "!team[ ^4CSGO !team] Haz lanzado una ^4Smoke!" );
		return PLUGIN_HANDLED;
	}
	return PLUGIN_HANDLED;
} 
public fnPricipal( id )
{
	new gMenu;
	gMenu = menu_create("MENU \yPRINCIPAL^n____________________", "fnMenu");
	
	menu_additem(gMenu, "CAMBIAR A \yTT", "1");
	menu_additem(gMenu, "CAMBIAR A \yCT", "2") ;
	menu_additem(gMenu, "MENU DE \ySKINS", "3");
	menu_additem(gMenu, "MENU DE \yLOGROS", "3");
	menu_additem(gMenu, "TOP \yPLAYERS", "3");
	
	menu_display( id, gMenu, 0 );
	return PLUGIN_HANDLED;
}
public fnMenu( id, menu, item )
{
	if ( item == MENU_EXIT ) 
	{
		menu_destroy( menu );
		return PLUGIN_HANDLED;   
	}
	switch( item )   
	{
		case 0:
		{
			if( cs_get_user_team( id ) == CS_TEAM_T )
			{
				engclient_cmd( id, "jointeam", "1" );
				engclient_cmd( id, "joinclass", "5" );
			}
		}
		case 1:
		{
			if( cs_get_user_team( id ) == CS_TEAM_CT )
			{
				engclient_cmd( id, "jointeam", "2" );
				engclient_cmd( id, "joinclass", "5" );
			}
		}
		case 2: cmdMenu( id );
		case 3: menu_Logros( id );
		case 4: checkTop( id );
	}
	return PLUGIN_HANDLED;
}

//------------------------------------------------------------------------------------------------

//***********************	SISTEMA DE SKINS		**************************//

public cmdMenu( id )
{
	new gMenu = menu_create( "\rMenu skins", "handlerMenu" );
	menu_additem( gMenu, "Knives", "1" );
	menu_additem( gMenu, "m4a1", "2" );
	menu_additem( gMenu, "Awp", "3" ) ;
	menu_additem( gMenu, "Deagle", "4" ) ;
	menu_additem( gMenu, "Glock18", "5" ) ;
	menu_additem( gMenu, "Ak47", "6" ) ;
	menu_additem( gMenu, "Usp", "7" ) ;
	
	menu_display( id, gMenu, 0 );
	return PLUGIN_HANDLED;
}

public handlerMenu( id, menu, item ) 
{
	if( item == MENU_EXIT ) 
	{
		menu_destroy( menu );
		return PLUGIN_HANDLED;
	}
	
	g_iCategoria[ id ] = item;
	menu_armas( id, g_iCategoria[ id ]  );
	return PLUGIN_HANDLED;
} 

public menu_armas( id, item )
{
	new menu = menu_create( "Menu Skins", "handler_skins" );
	new Item[ 30 ], cont = 0;
	
	for( new i = 0; i < sizeof Modelos; i++ )
	{
		formatex( Item, charsmax( Item ), "%d", i );
		
		if( Modelos[ i ][ CATEGORIA ] != item ) 
			continue;
		
		if( ( g_iRango[ id ] >= Modelos[ i ][ NIVEL ] && g_iPuntos[ id ] >= Modelos[ i ][ COSTO ] ) || g_iComprada[ id ][ item ][ cont ] >= 1 ) 
			menu_additem( menu, Modelos[ i ][ NAMEE ], Item );
		else menu_additem( menu, "\r[Locked]", Item );
		
		++cont;
	}
	menu_display( id, menu );
	return PLUGIN_HANDLED;
} 
public handler_skins( id, menu, item ) 
{
	if(item == MENU_EXIT) 
	{
		menu_destroy( menu );
		return PLUGIN_HANDLED;
	}
	new szData[ 20 ], Item[ 400 ];
	new item_access, item_callback;
	menu_item_getinfo( menu, item, item_access, szData,charsmax( szData ), Item, charsmax(Item), item_callback );
	
	new item2 = str_to_num( szData );
	
	if ( ( g_iRango[ id ] >= Modelos[ item2 ][ NIVEL ] && g_iPuntos[ id ] >= Modelos[ item2 ][ COSTO ] ) || g_iComprada[ id ][ g_iCategoria[ id ] ][ item ] >= 1 )
	{
		g_iElegida[ id ][ g_iCategoria[ id ] ] = item2;
		g_iComprada[ id ][ g_iCategoria[ id ] ][ item ] = 1;
		if( g_iComprada[ id ][ g_iCategoria[ id ] ][ item ] < 1 )
			g_iPuntos[ id ] -= Modelos[ item2 ][ COSTO ];
			
		return PLUGIN_HANDLED;
	}
	return PLUGIN_HANDLED;
}
public ham_ItemDeploy_AllWeapons( wpn )
{
	static id; id = fm_cs_get_weapon_ent_owner( wpn );
	static IDWeapon; IDWeapon = cs_get_weapon_id( wpn );
	new szModels[ 500 ];
	
	if ( !pev_valid( id ) ) 
		return;
	
	if( !is_user_alive( id ) ) 
		return;
	
	switch( IDWeapon )
	{
		case CSW_FLASHBANG:
		{
			entity_set_string( id, EV_SZ_viewmodel, g_szMdlFlash );
		}
		case CSW_HEGRENADE:
		{
			entity_set_string( id, EV_SZ_viewmodel, g_szMdlGrenade );
		}
		case CSW_SMOKEGRENADE:
		{
			entity_set_string( id, EV_SZ_viewmodel, g_szMdlSmoke );
		}
	}
	
	for( new i = 0; i < cMAX_ARMA; i++ )
	{
		if( g_iRecogida[ id ][ i ] == -1 )
		{
			if( IDWeapon == Modelos[ g_iElegida[ id ][ i ] ][ CSW_NAME ] )
			{
				if( !equal( Modelos[ g_iElegida[ id ][ i ] ][ V_MDL ], "default" ) )
				{
					formatex( szModels, charsmax( szModels ), "models/NsPnext_generation/%s.mdl", Modelos[ g_iElegida[ id ][ i ] ][ V_MDL ] );
					entity_set_string( id, EV_SZ_viewmodel, szModels );
				}			
				if( !equal( Modelos[ g_iElegida[ id ][ i ] ][ P_MDL ], "default" ) )
				{
					formatex( szModels, charsmax( szModels ), "models/NsPnext_generation/%s.mdl", Modelos[ g_iElegida[ id ][ i ] ][ P_MDL ] );
					entity_set_string( id, EV_SZ_weaponmodel, szModels );
				}
				break;
			}
		}
		else
		{
			if( IDWeapon == Modelos[ g_iRecogida[ id ][ i ] ][ CSW_NAME ] )
			{
				if( !equal( Modelos[ g_iRecogida[ id ][ i ] ][ V_MDL ], "default" ) )
				{
					formatex( szModels, charsmax( szModels ), "models/NsPnext_generation/%s.mdl", Modelos[ g_iRecogida[ id ][ i ] ][ V_MDL ] );
					entity_set_string( id, EV_SZ_viewmodel, szModels );
				}
				if( !equal( Modelos[ g_iRecogida[ id ][ i ] ][ P_MDL ], "default" ) )
				{
					formatex( szModels, charsmax( szModels ), "models/NsPnext_generation/%s.mdl", Modelos[ g_iRecogida[ id ][ i ] ][ P_MDL ] );
					entity_set_string( id, EV_SZ_weaponmodel, szModels );
				}
				break;
			}
		}
	}
}
public fw_SetModel( entity, model[ ] ) 
{
	if( !is_valid_ent( entity ) ) 
		return FMRES_IGNORED;
	
	static szClassName[ 33 ]; entity_get_string( entity, EV_SZ_classname, szClassName, charsmax( szClassName ) );
	static iOwner; iOwner = entity_get_edict( entity, EV_ENT_owner );
	
	if( !equal( szClassName, "weaponbox" ) )
		return FMRES_IGNORED;
	
	if( !is_user_alive( iOwner ) ) 
		return FMRES_IGNORED;
	
	for( new i = 0; i < cMAX_ARMA; ++i )
	{
		//continue < 0
		if( equal( model, eWeapon[ i ] ) )
		{			
			static StoredId; StoredId = find_ent_by_owner( ENG_NULLENT, Modelos[ g_iElegida[ iOwner ][ i ] ][ WPN_ID ], entity );
				
			if( is_valid_ent( StoredId ) ) 
			{
				if( g_iRecogida[ iOwner ][ i ] > 0 )
					g_iRecogida[ iOwner ][ i ] = -1;
					
				entity_set_int( StoredId, EV_INT_WEAPONKEY, Modelos[ g_iElegida[ iOwner ][ i ] ][ WID ] );
					
			}
			break;
		}
	}
	return FMRES_IGNORED;
}
public fw_AddToPlayer( ent, id )
{
	if( !is_valid_ent( ent ) || !is_user_alive( id ) || !is_user_connected( id ) )
		return HAM_IGNORED
	
	static IDWeapon; IDWeapon = cs_get_weapon_id( ent );
	
	for( new i = 0; i < sizeof( Modelos ); ++i )
	{
		if( IDWeapon == Modelos[ i ][ CSW_NAME ] )
		{
			if( entity_get_int( ent, EV_INT_WEAPONKEY ) == Modelos[ i ][ WID ] )
			{
				g_iRecogida[ id ][ Modelos[ i ][ CATEGORIA ] ] = i;//
				entity_set_int( ent, EV_INT_WEAPONKEY, 0 );
				break;
			}
		}
	}
	
	return HAM_HANDLED	
}

//****************************************************************************************//

//------------------------------------------------------------------------------------------------

//***********************	SISTEMA DE MEJORES JUGADORES		**************************//

public RoundEnd( )
{  
	fnBestPlayer(); 
}

public fnBestPlayer( )
{
	if( g_iDefuse )
	{
		formatex( g_isLen, charsmax( g_isLen ), "El mejor Jugador es %s, ^nPOR HABER DEFUSADO LA C4!", g_playername[ DefuseId ] );
		Hud( 0, g_isLen, 225, 0, 0, 5.0 );
	}
	else
	{
		if( g_iPlanted )
		{
			formatex( g_isLen, charsmax( g_isLen ), "El mejor Jugador es %s, ^nPOR HABER PLANTADO LA C4!", g_playername[ PlantedId ] );
			Hud( 0, g_isLen, 225, 0, 0, 5.0 );
		}
		else
		{
			static gs, Kills; Kills = 1;
			gs = g_iFrag[ 0 ];
			for ( new i = Kills; i <= g_iMaxplayers; ++i ) 
			{
				if( g_iFrag[ i ] > gs )
					Kills = i;
			}	
			formatex( g_isLen, charsmax( g_isLen ), "El mejor Jugador es %s, ^nPOR HABER HECHO MAS KILLS!", g_playername[ Kills ] );
			Hud( 0, g_isLen, 225, 0, 0, 5.0 );
		}
	}
}

public bomb_planted( id ) 
{
	if( !is_user_connected( id ) ) 
		return;
	
	g_iPlanted= true;
	PlantedId = id;
	
	chequear_rango( id, 2, "GANASTE" );
}


public bomb_defused( id )
{
	if( !is_user_connected( id ) ) 
		return;
	
	g_iDefuse = true;
	DefuseId = id;
	
	chequear_rango( id, 2, "GANASTE" );
} 

//****************************************************************************//

//----------------------------------------------------------------------------

public fnRevivirJugador( id ) 
{
	if ( !is_user_connected( id ) ) 
		return; 
	
	ExecuteHamB( Ham_CS_RoundRespawn, id );
}
public ham_PlayerSpawn_Post( id )
{
	if( !is_user_alive( id ) ) 
		return;
	
	if( is_user_admin( id ) )
	{
		set_user_health( id, 120 );
		printf( id,  "!g%s !teamEn hora buena! Recibiste !g120 !teamde HP por ser !gADMIN.", g_szPrefix );
	}
	tutorMake( id, TUTOR_GREEN, 3.0, "[%s] Plugin hecho por Hypnotize.'", g_szPrefix );
	printf( id,  "%s Plugin hecho por ^4Hypnotize.'^1.", g_szPrefix );
}
public Ham_PlayerKilled( const victim, const attacker, const shouldgib ) 
{
	if ( !is_user_connected( attacker ) ) 
		return HAM_IGNORED; 
	
	static MoristeSolo; MoristeSolo = ( victim == attacker || !IsValidConnected( attacker ) ) ? 1 : 0
	
	if( MoristeSolo )
		return HAM_IGNORED;
	
	for( new i = 0; i < cMAX_ARMA; ++i )
	{
		if( g_iRecogida[ victim ][ i ] > 0 )
			g_iRecogida[ victim ][ i ] = -1;
	}
	
	new szweapon[ 64 ]; read_data( 4, szweapon, charsmax( szweapon ) );
	static iUsersAlive, iGana2; iUsersAlive = fnAlive( ); iGana2 = 0;
	get_user_name( attacker, g_playername[ attacker ], sizeof(  g_playername[ ] ) );
	get_user_name( victim, g_playername[ victim ], sizeof(  g_playername[ ] ) );
	
	if( g_bCalentamiento )
	{
		set_task( 2.0, "fnRevivirJugador", victim );
	}
	else
	{
		if( g_iElo[ victim ] >= 6 )
		{
			if( get_pdata_int( victim, m_LastHitGroup, 5 ) == HIT_HEAD )
			{
				chequear_rango( attacker, 4, "!gGANASTE!y" );
				chequear_rango( victim, -2, "!gPERDISTE!y" );	
			}
			else if ( get_user_weapon( attacker ) == CSW_KNIFE )
			{
				chequear_rango( attacker, 3, "!gGANASTE!y" );
				chequear_rango( victim, -2, "!gPERDISTE!y" );	
			}
			else
			{
				chequear_rango( attacker, 1, "!gGANASTE!y" );
				chequear_rango( victim, -1, "!gPERDISTE!y" );		
			}
		}
		else if( g_iElo[ victim ] == 0 )
		{
			if( get_pdata_int( victim, m_LastHitGroup, 5 ) == HIT_HEAD ) chequear_rango( attacker, 3, "!gGANASTE!y" );
			else if ( get_user_weapon( attacker ) == CSW_KNIFE ) chequear_rango( attacker, 2, "!gGANASTE!y" );
			else chequear_rango( attacker, 1, "!gGANASTE!y" );
		} 
	}
	
	
	++g_iMatados[ attacker ][ victim ];
	++g_iMuertes[ victim ][ attacker ];
	
	if( g_iMuertes[ attacker ][ victim ] >= 3 ) 
	{
		printf(0,    "%s^4 %s^1 se a vengado de ^4%s^1.", g_szPrefix, g_playername[ attacker ], g_playername[ victim ] );
		printf(attacker,   "%s^4 %s^1 te has vengado de ^4%s^1.", g_szPrefix, g_playername[ attacker ], g_playername[ victim ] );
		tutorMake(attacker, TUTOR_RED, 3.0, "%s %s te has vengado de %s.", g_szPrefix, g_playername[ attacker ], g_playername[ victim ] );
		printf(victim,   "%s^4 %s^1 se ha vengado.", g_szPrefix, g_playername[ attacker ] );
		
		g_iMuertes[ attacker ][ victim ] = 0;
		g_iMatados[ victim ][ attacker ] = 0;
	}
	else if ( g_iMatados[ attacker ][ victim ] == 3 )
	{
		printf(0,  "%s^4 %s^1 Esta dominando a ^4%s^1.", g_szPrefix, g_playername[ attacker ], g_playername[ victim ] );
		printf(attacker,    "%s Estas dominando a ^4%s^1.", g_szPrefix, g_playername[ victim ] );
		tutorMake(attacker, TUTOR_RED, 3.0, "%s Estas dominando a %s.", g_szPrefix, g_playername[ victim ] );
		printf(victim,  "%s^4 %s^1 Te esta dominando.", g_szPrefix, g_playername[ attacker ] );
		
	}
	else if ( g_iMatados[ attacker ][ victim ] > 3 )    
	{
		printf(0,   "%s^4 %s^1 Sigue dominando a^4 %s^1.", g_szPrefix, g_playername[ attacker ], g_playername[ victim ] );
		printf(attacker,   "%s^1 Sigues dominando a^4 %s^1.", g_szPrefix, g_playername[ victim ] );
		tutorMake(attacker, TUTOR_RED, 3.0, "%s Sigues dominando a %s.", g_szPrefix, g_playername[ victim ] );
		printf(victim,   "%s^4 %s^1 Te sigue dominando.", g_szPrefix, g_playername[ attacker ] );
		
	}
	
	Efect(victim, 200, 0, 0, 1);
	
	
	fnCheckLogro( attacker, 0 );
	
	if( iUsersAlive == 1 )
	{
		++g_isArma[ attacker][ SOBREVIVE ];
		if( g_isArma[ attacker ][ SOBREVIVE ] >= 3 ) fnCheckLogro( attacker, 3 );
	}
	
	g_isArma[ victim ][ AP ] = g_isArma[ victim ][ SOBREVIVE ] = g_isArma[ victim ][ AS3 ] = 0;
	
	if( ++g_isArma[ attacker ][ AS3 ] >= 5 ) fnCheckLogro( attacker, 6 );
		
	if ( equali( szweapon, "usp" ) )
	{
		if( ++g_isArma[ attacker ][ USP ] >= 3 ) 
			fnCheckLogro( attacker, 1 );
	}
	else if ( equali( szweapon, "glock18" ) )
	{
		if( ++g_isArma[ attacker ][ GLOCK18 ] >= 15 )
			fnCheckLogro( attacker, 2 );
	}
	else if ( equali( szweapon, "knife" ) )
	{
		if( ++g_isArma[ attacker ][ KN1 ] >= 50 )
			fnCheckLogro( attacker, 7 );
	}
	else if ( equali( szweapon, "awp" ) )
	{
		if( ++g_isArma[attacker][AP] >= 3 )
			fnCheckLogro( attacker, 8 );
	}
	
	
	++g_isKills[ attacker ];
	++g_iFrag[ attacker ];
	
	iGana2 = 2 * g_iMultiplicador[ attacker ];
	g_iPuntos[ attacker ] += iGana2;
	printf( attacker, "!g%s !yGanaste !team%i !yPuntos.", g_szPrefix, iGana2 );
	
	fnLogrosKills( attacker );
	return HAM_IGNORED;
}
//****************************************************************************//

//------------------------------------------------------------------------------------------------

//***********************	SISTEMA DE RANGOS		**************************//

public chequear_rango( id, cant, msj[] )
{
	static level; level = g_iRango[ id ];
	
	g_iElo[ id ] += cant * g_iMultiplicador[ id ];
	printf( id,  "!g%s !team%s !g%d de ELO", g_szPrefix, msj, cant );
	
	while( g_iElo[ id ] >= rangos[ g_iRango[ id ] ][ nivel_requerido ] && g_iRango[ id ] < sizeof( rangos )-1 )
		++g_iRango[ id ];
	
	if( g_iRango[ id ] > 0 )
	{
		if( g_iElo[ id ] < rangos[ g_iRango[ id ]-1 ][ nivel_requerido ] && g_iRango[ id ] > 0 )
			--g_iRango[ id ];
	}
	if ( g_iRango[ id ] > level )
	{
		tutorMake(id, TUTOR_GREEN, 3.0, "[%s] Subiste al rango: %s.", g_szPrefix, rangos[ g_iRango[ id ] ][ rangos_nombre ])
		printf(id,   "%s Subiste al rango: ^4%s^1.", g_szPrefix, rangos[ g_iRango[ id ] ][ rangos_nombre ])
	}
	else if ( g_iRango[ id ] < level )
	{
		tutorMake(id, TUTOR_GREEN, 3.0, "[%s] Bajaste al rango: %s.", g_szPrefix, rangos[ g_iRango[ id ] ][ rangos_nombre ])
		printf(id,   "%s^x Bajaste al rango: ^4%s^1.", g_szPrefix, rangos[ g_iRango[ id ] ][ rangos_nombre ])
	}
	return cant;
} 

public ShowHUD( taskid )
{
	new id;
	id = ID_SHOWHUD;
	
	if ( !is_user_alive( id ) )
	{
		id = pev( id, pev_iuser2 );
		return;
	}
	
	set_hudmessage( 0, 212, 255, -1.0, 0.9, 0, 6.0, 1.1, 0.0, 0.0 );
	if( g_iRango[ id ] < sizeof( rangos ) -1 )
	{
	ShowSyncHudMsg( id, g_iHud, "Rango: [ %s ] - ELO %d/%d [ %0.2f%% ]^nKills: %d - Puntos: %d", 
	rangos[ g_iRango[ id ] ][ rangos_nombre ], g_iElo[ id ], rangos[ g_iRango[ id ] ][ nivel_requerido ], porcentaje( g_iElo[ id ], rangos[ g_iRango[ id ] ][ nivel_requerido ] ), g_isKills[ id ], g_iPuntos[ id ] );
	}
	else
	{
	ShowSyncHudMsg( id, g_iHud, "Rango: [ %s ] - ELO %d/%d [ %0.2f%% ]^nKills: %d - Puntos: %d", 
	rangos[ g_iRango[ id ]-1 ][ rangos_nombre ], g_iElo[ id ], rangos[ g_iRango[ id ]-1 ][ nivel_requerido ], porcentaje( g_iElo[ id ], rangos[ g_iRango[ id ]-1 ][ nivel_requerido ] ), g_isKills[ id ], g_iPuntos[ id ] );
	} 
}

public BlockSay( index )
{
	static said[ 191 ];
	read_args( said, charsmax( said ) );
	remove_quotes( said );
	replace_all( said, charsmax( said ), "%", " " ); 
	replace_all( said, charsmax( said ), "#", " " );
	
	if ( !ValidMessage( said, 1 ) ) return PLUGIN_CONTINUE;
	
	static color[ 11 ], prefix[ 91 ];
	get_user_team( index, color, charsmax( color ) );
	
	formatex( prefix, charsmax( prefix ), "%s ^x04%s^x01[ ^x04%s ^x01] ^x03%s", 
	is_user_alive( index ) ? "^x01" : "^x01*MUERTO* ",  g_iTipo[ index ], rangos[ g_iRango[ index ] ][ rangos_nombre ], g_playername[ index ]);
	
	if ( is_user_admin( index ) ) format( said, charsmax( said ), "^x04%s", said ); 
	
	format( said, charsmax( said ), "%s^x01 :  %s", prefix, said );
	
	static i, team[ 11 ];
	for ( i = 1; i <= g_iMaxplayers; i++ )
	{
		if ( !is_user_connected( i ) ) 
			continue;
		
		if (is_user_admin( i ) || is_user_alive( index ) && is_user_alive( i ) || !is_user_alive( index ) && !is_user_alive( i ) )
		{        
			get_user_team( i, team, charsmax( team ) );            
			changeTeamInfo( i, color );            
			writeMessage( i, said );
			changeTeamInfo( i, team );
		}
	}
	
	return PLUGIN_HANDLED_MAIN;
}

public changeTeamInfo( player, team[ ] )
{
	message_begin( MSG_ONE, get_user_msgid( "TeamInfo" ), _, player );
	write_byte( player );
	write_string( team );
	message_end( );
}

public writeMessage( player, message[] )
{
	message_begin( MSG_ONE, get_user_msgid( "SayText" ), {0, 0, 0}, player );
	write_byte( player);
	write_string( message);
	message_end( );
}

//****************************************************************************//

//------------------------------------------------------------------------------------------------

//***********************	SISTEMA DE LOGROS		**************************//

public menu_Logros( id )
{
	oldmenu_create( "handler_Logros", "\rMenu Logros^n\yCS:GO (BETA)" );
	oldmenu_additem( 1, 0, "\r1. \wLogros Kills" );
	oldmenu_additem( 2, 0, "\r3. \wLogros Especiales" );
	
	oldmenu_additem( 0, 0, "^n^n\r0. \wSalir" );
	oldmenu_display( id );
	
	return PLUGIN_HANDLED;
}

public handler_Logros( id, item, value, page)
{
	if ( item == MENU_EXIT ) 
		return PLUGIN_HANDLED;
	
	switch( item )
	{
		case 1: fnLogros( id );
		case 2: fnLogros2( id );
	}
	return PLUGIN_HANDLED;
}

public fnLogros( id )
{
	new menu = menu_create( "Menu de logros Por Kills", "handlerLogros" );
	for( new i = 0; i < sizeof(iLogrosKill); ++i )
	{
		if( g_isKills[ id ] >= iLogrosKill[ i ][ iNecesario ] )
			menu_additem( menu, iLogrosKill[ i ][ szLogro ] );
		else 
		{	
			formatex( g_isLen, charsmax( g_isLen ), "\d%s", iLogrosKill[ i ][ szLogro ] );
			menu_additem( menu, g_isLen );
		}
	}
	menu_setprop( menu, MPROP_EXITNAME, "Cerrar" );
	
	menu_display( id, menu )
	return PLUGIN_HANDLED;
}

public handlerLogros( id, menu, item )
{
	if ( item == MENU_EXIT ) 
	{
		menu_destroy( menu );
		return PLUGIN_HANDLED;
	}
	fnViewLogros( id, iLogrosKill[ item ][ szLogro ], iLogrosKill[ item ][ szDescripcion ], iLogrosKill[ item ][ iNecesario ], g_isKills[ id ] );
	return PLUGIN_HANDLED;
}

public fnLogros2( id )
{
	new menu = menu_create( "Menu de logros", "MenuLogros_h" );
	for( new i = 0; i < sizeof(iLogros); ++i )
	{
		if( g_IsLogros[ id ][ i ] >= iLogros[ i ][ iNecesario ] )
			menu_additem( menu, iLogros[ i ][ szLogro ] );
		else 
		{	
			formatex( g_isLen, charsmax( g_isLen ), "\d%s", iLogros[ i ][ szLogro ] );
			menu_additem( menu, g_isLen );
		}
	}
	menu_setprop( menu, MPROP_EXITNAME, "Cerrar" );
	
	menu_display( id, menu )
	return PLUGIN_HANDLED;
}

public MenuLogros_h( id, menu, item )
{
	if ( item == MENU_EXIT ) 
	{
		menu_destroy( menu );
		return PLUGIN_HANDLED;
	}
	fnViewLogros( id, iLogros[ item ][ szLogro ], iLogros[ item ][ szDescripcion ], iLogros[ item ][ iNecesario ], g_IsLogros[ id ][ item ] );
	return PLUGIN_HANDLED;
}

public fnViewLogros( id, nombrel[ ], desl[ ], porcentaje, faltante )
{
	oldmenu_create( "handler_sLogros", "\rLogro:" );
	
	
	oldmenu_additem( -1, 0, "\y%s", nombrel );
	oldmenu_additem( -1, 0, "\dDescripcion: \y%s", desl );
	oldmenu_additem( -1, 0, "\y%d/\r%d", faltante, porcentaje );
	oldmenu_additem( -1, 0, "\r%.1f", ( ( faltante/porcentaje ) * 100.0 ) );
	
	oldmenu_additem( 0, 0, "^n^n\r0. \wSalir" );
	oldmenu_display( id );
	return PLUGIN_HANDLED;
}

public handler_sLogros( id, item, value, page )
{
	if ( item == 0 ) 
		return PLUGIN_HANDLED;
	
	menu_Logros( id );
	return PLUGIN_HANDLED;
}

public fnCheckLogro( id, Lg )
{
	if ( g_IsLogros[ id ][ Lg ] ) return;
	
	g_IsLogros[ id ][ Lg ] = 1;
	
	if( g_IsLogros[ id ][ Lg ] ) g_iElo[ id ] += iLogros[ Lg ][ iGanancia ];//le damos recompenza
	
	if( g_iPuntos[ id ] >= 9000 )  fnCheckLogro( id, 4 );
	else if( g_iPuntos[ id ] >= 200000 )  fnCheckLogro( id, 5 );
	PlaySound( 0, g_szLogro );
} 

public fnLogrosKills( index )
{
	while( g_isKills[ index ] >= iLogrosKill[ g_iLogro[ index ]+1 ][ iNecesario ])
	{
		++g_iLogro[ index ];
		g_iElo[ index ] += iLogrosKill[ g_iLogro[ index ] ][ iGanancia ];
	}
}

//****************************************************************************//

//------------------------------------------------------------------------------------------------

//***********************	SISTEMA DE CUENTAS		**************************//

public ClientUserInfoChanged( id ) 
{ 
	static const name[ ] = "name";
	static szOldName[ 32 ], szNewName[ 32 ];
	pev( id, pev_netname, szOldName, charsmax( szOldName ) );
	
	if( szOldName[ 0 ] ) 
	{ 
		get_user_info( id, name, szNewName, charsmax( szNewName ) );
		if( !equal( szOldName, szNewName ) ) 
		{ 
			set_user_info( id, name, szOldName ); 
			return FMRES_HANDLED;
		} 
	} 
	return FMRES_IGNORED 
} 

public message_VGUIMenu( iMsgid, iDest, id ) 
{
	if( g_iEstado[ id ] >= CONECTADO ||  get_msg_arg_int( 1 ) != 2 ) 
		return PLUGIN_CONTINUE;
	
	return PLUGIN_HANDLED;
}

public message_ShowMenu( iMsgid, iDest, id ) 
{
	if( g_iEstado[ id ] >= CONECTADO )
		return PLUGIN_CONTINUE;
	
	static sMenuCode[ 33 ];
	get_msg_arg_string( 4, sMenuCode, charsmax( sMenuCode ) );
	
	if( containi( sMenuCode, "Team_Select" ) != -1 ) 
		return PLUGIN_HANDLED;
	
	return PLUGIN_CONTINUE;
}

public clcmd_changeteam( id ) 
{
	if( g_iEstado[ id ] == DESCONECTADO ) 
	{
		show_login_menu( id );
		
		return PLUGIN_HANDLED;
	}
	if( g_iEstado[ id ] == LOGUEADO ) 
	{
		fnPj( id );
		return PLUGIN_HANDLED;
	}
	if( g_iEstado[ id ] == JUGANDO ) 
	{
		fnPricipal( id );
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}

public show_login_menu( id ) 
{
	
	oldmenu_create( "login_menu", "BIENVENIDOS AL \yCS:GO + SKINS^nVersion: \r%s \w- \yCreador: \r%s", VERSION, AUTHOR );
	
	oldmenu_additem( -1, -1, "\r____________________________^n" );
	
	oldmenu_additem( 1, 0, "\r1. \wCREAR CUENTA");
	oldmenu_additem( 2, 0, "\r2. \wLOGUEAR CUENTA");
	
	oldmenu_additem( -1, -1, "^n\yCuentas Registradas: \r5" );
	oldmenu_display( id );
	
	return PLUGIN_HANDLED;
}

public login_menu( id, item, value, page )
{
	
	switch( item ) 
	{
		case 1: client_cmd( id, "messagemode CREAR_USUARIO" );
		case 2: client_cmd( id, "messagemode LOGUEAR_USUARIO" );
	}
	
	return PLUGIN_HANDLED;
}

public checkTop( id )
{
	new szTabla[ 200 ], iData[ 2 ];
	
	iData[ 0 ] = id;
	iData[ 1 ] = SQL_TOP;
	formatex( szTabla, charsmax( szTabla ), "SELECT Personaje, Rango, Elo FROM %s ORDER BY Rango DESC, Elo DESC LIMIT 15", g_szDatos );
	
	#if defined SQL_SYSTEM
	SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, iData, 2 );
	#else
	mysql_query( g_hConnection, "DataHandler", szTabla, iData, 2 );
	#endif
}
public checkRank( id )
{
	new szTabla[ 200 ], iData[ 2 ];
	
	iData[ 0 ] = id;
	iData[ 1 ] = SQL_RANK;
	formatex( szTabla, charsmax( szTabla ), "SELECT (COUNT(*) + 1) FROM `%s` WHERE `Rango` > '%d' OR (`Rango` = '%d' AND `Elo` > '%d')", g_szDatos, g_iRango[ id ], g_iRango[ id ], g_iElo[ id ] );
	
	#if defined SQL_SYSTEM
	SQL_ThreadQuery(g_hTuple, "DataHandler", szTabla, iData, 2 );
	#else
	mysql_query( g_hConnection, "DataHandler", szTabla, iData, 2 );
	#endif
}
public fnPj( id )
{
	new szQuery[ 700 ], iData[ 2 ];
	
	iData[ 0 ] = id;
	iData[ 1 ] = CARGAR_PJS;
	
	formatex( szQuery, charsmax( szQuery ), "SELECT Personaje FROM %s WHERE idDatos= %d", g_szDatos, g_id[ id ] );
	
	#if defined SQL_SYSTEM
	SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2);
	#else
	mysql_query( g_hConnection, "DataHandler", szQuery, iData, 2 );
	#endif
	return PLUGIN_CONTINUE;
}
public select_pj( id, menu, item ) 
{
	if( item == MENU_EXIT )
	{
		menu_destroy( menu );
		return PLUGIN_HANDLED;
	}
	
	new szData[ 2 ], Item[ 400 ], szName[ 33 ];
	new item_access, item_callback;
	menu_item_getinfo( menu, item, item_access, szData,charsmax( szData ), Item, charsmax(Item), item_callback );
	
	new szQuery[ 700 ], iData[ 2 ];
	iData[ 0 ] = id;
	
	if( equal( Item, DISPONIBLE ) )
	{
		iData[ 1 ] = INSERTAR_PJ;
		
		formatex( szQuery, charsmax( szQuery ), "insert into %s (idDatos, Personaje) values(%d, ^"%s^")", g_szDatos, g_id[ id ], g_playername[ id ]);
		#if defined SQL_SYSTEM
		SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2);
		#else
		mysql_query( g_hConnection, "DataHandler", szQuery, iData, 2 );
		#endif
	}
	else
	{
		get_user_name( id, szName, charsmax( szName ) );
		
		if( equal( Item, szName ) )
		{
			iData[ 1 ] = LOGUEAR_PJ;
			
			formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE Personaje=^"%s^"", g_szDatos, Item );
			#if defined SQL_SYSTEM
			SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2);
			#else
			mysql_query( g_hConnection, "DataHandler", szQuery, iData, 2 );
			#endif
		}
		else
		{
			fnPj( id );
			printf( id, "!g%s!team TU NICK NO ES IGUAL, HAZ RETRY O CREA UN NUEVO PERSONAJE PARA USAR ESE NICK", g_szPrefix );
		}
	}
	return PLUGIN_HANDLED;
}

public reg_usuario( id ) 
{
	read_args( g_usuario[ id ], charsmax( g_usuario[ ] ) );
	remove_quotes( g_usuario[ id ] );
	trim( g_usuario[ id ] );
	#if AMXX_VERSION_NUM < 183
	md5( g_usuario[ id ], g_usuario[ id ] );
	#else
	hash_string( g_usuario[ id ], Hash_Md5, g_szHashUser[ id ], charsmax( g_szHashUser[] ) );
	#endif
	client_cmd( id, "messagemode CREAR_PASSWORD" );
	
	return PLUGIN_HANDLED;
}

public reg_password( id ) 
{
	read_args( g_password[ id ], charsmax( g_password[ ] ) );
	remove_quotes( g_password[ id ] );
	trim( g_password[ id ] );
	#if AMXX_VERSION_NUM < 183
	md5( g_password[ id ], g_password[ id ] );
	#else
	hash_string( g_password[ id ], Hash_Md5, g_szHashPass[ id ], charsmax( g_szHashPass[] ) );
	#endif
	
	new szQuery[ 700 ], iData[ 2 ];
	
	iData[ 0 ] = id;
	iData[ 1 ] = REGISTRAR_CUENTA;
	
	get_user_name( id, g_playername[ id ], charsmax( g_playername[ ] ) );
	#if AMXX_VERSION_NUM < 183
	formatex( szQuery, charsmax( szQuery ), "INSERT INTO %s (Usuario, Password) VALUES (^"%s^", ^"%s^")", g_szCuentas, g_usuario[ id ], g_password[ id ] );
	#else
	formatex( szQuery, charsmax( szQuery ), "INSERT INTO %s (Usuario, Password) VALUES (^"%s^", ^"%s^")", g_szCuentas, g_szHashUser[ id ], g_szHashPass[ id ] );
	#endif
	
	#if defined SQL_SYSTEM
	SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2);
	#else
	mysql_query(g_hConnection, "DataHandler", szQuery, iData, 2);
	#endif
	
	return PLUGIN_HANDLED;
}

public log_usuario( id ) 
{
	read_args( g_usuario[ id ], charsmax( g_usuario[ ] ) );
	remove_quotes( g_usuario[ id ] );
	trim( g_usuario[ id ] );
	#if AMXX_VERSION_NUM < 183
	md5( g_usuario[ id ], g_usuario[ id ] );
	#else
	hash_string( g_usuario[ id ], Hash_Md5, g_szHashUser[ id ], charsmax( g_szHashUser[] ) );
	#endif
	
	client_cmd( id, "messagemode LOGUEAR_PASSWORD" );
	
	return PLUGIN_HANDLED;
}

public log_password( id ) 
{
	read_args( g_password[ id ], charsmax( g_password[ ] ) );
	remove_quotes( g_password[ id ] );
	trim( g_password[ id ] );
	#if AMXX_VERSION_NUM < 183
	md5( g_password[ id ], g_password[ id ] );
	#else
	hash_string( g_password[ id ], Hash_Md5, g_szHashPass[ id ], charsmax( g_szHashPass[] ) );
	#endif
	new szQuery[ 700 ], iData[ 2 ];
	
	iData[ 0 ] = id;
	iData[ 1 ] = LOGUEAR_CUENTA;
	
	#if AMXX_VERSION_NUM < 183
	formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE Usuario=^"%s^" AND Password=^"%s^"", g_szCuentas, g_usuario[ id ], g_password[ id ] );
	#else
	formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE Usuario=^"%s^" AND Password=^"%s^"", g_szCuentas, g_szHashUser[ id ], g_szHashPass[ id ] );
	#endif
	#if defined SQL_SYSTEM
	SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2);
	#else
	mysql_query( g_hConnection, "DataHandler", szQuery, iData, 2 );
	#endif
	
	return PLUGIN_HANDLED;
}

new szQuery[ 3000 ], iData[ 2 ], len = 0;
new szgLogros[ 300 ], szARMAS[ 300 ], szM4[ 300 ], szDeagle[ 300 ], szAwp[ 300 ], szGlock[ 300 ], szAk[ 300 ], szUsp[ 300 ], szArmas[ 100 ];

public guardar_datos( id ) 
{
	if( g_idCuenta[ id ] != g_id[ id ] )
	{
		printf( id, "!team[ !gCSGO !team] !yTU !gID_CUENTA %d!y NO ES IGUAL A TU !gID_PJ %d", g_id[ id ], g_idCuenta[ id ] );
		return;
	}
	
	/*static szQuery[ 3000 ], iData[ 2 ], len = 0;
	static szgLogros[ 300 ], szARMAS[ 300 ], szM4[ 300 ]//, szDeagle[ 300 ], szAwp[ 300 ];
*/
	//arrayset( szM4, EOS, charsmax( szM4 ) );
	//arrayset( szARMAS, EOS, charsmax( szARMAS ) );
	iData[ 0 ] = id;
	iData[ 1 ] = GUARDAR_DATOS;

	arraynum_to_str( g_IsLogros[ id ], sizeof( g_IsLogros[ ] ), szgLogros, charsmax( szgLogros ), true );
	arraynum_to_str( g_iComprada[ id ][ cKNIFES ], 25, szARMAS, charsmax( szARMAS ), true );
	arraynum_to_str( g_iComprada[ id ][ cM4A1 ], 25, szM4, charsmax( szM4 ), true );
	arraynum_to_str( g_iComprada[ id ][ cAWP ], 25, szAwp, charsmax( szAwp ), true );
	arraynum_to_str( g_iComprada[ id ][ cDEAGLE ], 25, szDeagle, charsmax( szDeagle ), true );
	
	arraynum_to_str( g_iComprada[ id ][ cGLOCK18 ], 25, szGlock, charsmax( szGlock ), true );
	arraynum_to_str( g_iComprada[ id ][ cAK47 ], 25, szAk, charsmax( szAk ), true );
	arraynum_to_str( g_iComprada[ id ][ cUSP ], 25, szUsp, charsmax( szUsp ), true );
	arraynum_to_str( g_iElegida[ id ], sizeof( g_iElegida[ ] ), szArmas, charsmax( szArmas ), true );
	
	formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET Logros= ^"%s^", Kills= %d, Elo= %d, Logro= %d, Puntos= %d, Rango= %d, Knifes= ^"%s^", M4= ^"%s^", Awp= ^"%s^", Deagle= ^"%s^", Glock= ^"%s^", Ak= ^"%s^", Usp= ^"%s^", armas= ^"%s^" WHERE idDatos ='%d' AND Personaje = ^"%s^"", 
	g_szDatos, szgLogros, g_isKills[ id ], g_iElo[ id ], g_iLogro[ id ], g_iPuntos[ id ], g_iRango[ id ], szARMAS, szM4, szAwp, szDeagle, szGlock, szAk, szUsp, szArmas, g_id[ id ], g_playername[ id ] );
	
	#if defined SQL_SYSTEM
	SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2);
	#else
	mysql_query( g_hConnection, "DataHandler", szQuery, iData, 2 );
	#endif
	
}


#if defined SQL_SYSTEM
public DataHandler(failstate, Handle:Query, error[], error2, data[], size, Float:queuetime)
{
	#else
	public DataHandler( failstate, error[], error2, data[], size, Float:queuetime )
	{
		#endif
		static id; id = data[ 0 ];
		
		if( !is_user_connected( id ) ) return;
		
		switch( failstate ) {
			case TQUERY_CONNECT_FAILED: 
			{
				log_to_file( "SQL_LOG_TQ.txt", "Error en la conexion al MySQL [%i]: %s", error2, error );
				return;
			}
			case TQUERY_QUERY_FAILED: log_to_file( "SQL_LOG_TQ.txt", "Error en la consulta al MySQL [%i]: %s", error2, error );
		}
		
		switch( data[ 1 ] ) 
		{
			case REGISTRAR_CUENTA: 
			{
				if( failstate < TQUERY_SUCCESS ) 
				{
					if( containi( error, "Usuario" ) != -1 )
						printf( id,  "%s El usuario ya existe.", g_szPrefix );
					
					else if( containi( error, "Pj" ) != -1 ) printf( id,  "%s El nombre de personaje esta en uso.", g_szPrefix );
					else printf( id,  "%s Error al crear la cuenta. Intente nuevamente.", g_szPrefix );
					
					client_cmd( id, "spk buttons/button10.wav" );
					
					show_login_menu( id );
				}
				else 
				{
					new szQuery[ 128 ], iData[ 2 ];
					
					iData[ 0 ] = id;
					iData[ 1 ] = CARGAR_DATOS;
					#if AMXX_VERSION_NUM < 183
					formatex( szQuery, charsmax( szQuery ), "SELECT idCuenta FROM %s WHERE Usuario=^"%s^"", g_szCuentas, g_usuario[ id ] );
					#else
					formatex( szQuery, charsmax( szQuery ), "SELECT idCuenta FROM %s WHERE Usuario=^"%s^"", g_szCuentas, g_szHashUser[ id ] );
					#endif
					
					#if defined SQL_SYSTEM
					SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2);
					#else
					mysql_query( g_hConnection, "DataHandler", szQuery, iData, 2 );
					#endif
				}
				
			}
			case LOGUEAR_CUENTA: 
			{
				#if defined SQL_SYSTEM
				if( SQL_NumResults( Query ) ) 
				{
					g_iEstado[ id ] = LOGUEADO;
					
					g_id[ id ] = SQL_ReadResult( Query, 0 );
					
					fnPj( id );
				}
				#else
				if( mysql_num_results( ) ) 
				{
					g_iEstado[ id ] = LOGUEADO;
					
					g_id[ id ] = mysql_read_result( 0 );
					
					fnPj( id );
				}
				#endif
				else 
				{
					printf( id,  "[ %s ] Usuario o Contraseñ incorrecta.", g_szPrefix );
					client_cmd( id, "spk buttons/button10.wav" );
					
					show_login_menu( id );
				}
			}
			case GUARDAR_DATOS: 
			{
				if( failstate < TQUERY_SUCCESS ) console_print( id, "%s Error en el guardado de datos.", g_szPrefix );
				else console_print( id, "%s Datos guardados.", g_szPrefix );
			}
			case INSERTAR_PJ:
			{
				if( failstate < TQUERY_SUCCESS ) 
				{
					if( containi( error, "Personaje" ) != -1 ) printf( id,  "%s El nombre de personaje esta en uso.", g_szPrefix );
					else printf( id,  "%s Error al crear la cuenta. Intente nuevamente.", g_szPrefix );
					
					client_cmd( id, "spk buttons/button10.wav" );
				}
				else 
				{
					printf( id,  "%s Tu Personaje ha sido creada correctamente.", g_szPrefix );
					
					new szQuery[ 700 ], iData[ 2 ];
					
					iData[ 0 ] = id;
					iData[ 1 ] = CARGAR_DATOS2;
					
					formatex( szQuery, charsmax( szQuery ), "SELECT idDatos FROM %s WHERE Personaje=^"%s^"", g_szDatos, g_playername[ id ] );
					#if defined SQL_SYSTEM
					SQL_ThreadQuery(g_hTuple, "DataHandler", szQuery, iData, 2);
					#else
					mysql_query( g_hConnection, "DataHandler", szQuery, iData, 2 );
					#endif
				}
			}
			case CARGAR_PJS:
			{
				new text[ 500 ]; formatex( text, charsmax( text ), "\r[ \wMENU DE \yPERSONAJES \r]^n^n\r____________________________^n");
				g_iMenuPj = menu_create( text, "select_pj" );
				#if defined SQL_SYSTEM
				if( SQL_NumResults( Query ) ) 
				{
					new pj[ 300 ], iPosition = 0;
					
					while( SQL_MoreResults( Query ) )
					{
						SQL_ReadResult( Query, 0, pj, sizeof( pj ) );
						menu_additem(g_iMenuPj, pj);
						++iPosition;
						
						SQL_NextRow( Query );
					}
					if( iPosition < 5 ) menu_additem( g_iMenuPj, "DISPONIBLE" );
				}
				#else
				if( mysql_num_results() ) 
				{
					new pj[ 300 ], iPosition = 0;
					
					while( mysql_more_results( ) )
					{
						mysql_read_result( 0, pj, sizeof( pj ) );
						menu_additem(g_iMenuPj, pj);
						++iPosition;
						
						mysql_next_row( );
					}
					if( iPosition < 5 ) menu_additem( g_iMenuPj, "DISPONIBLE" );
				}
				#endif
				else 
				{
					menu_additem( g_iMenuPj, "DISPONIBLE" );
				}
				menu_display( id, g_iMenuPj );
			}
			case LOGUEAR_PJ:
			{
				new sztLogro[ 330 ], szARMAS[ 300 ], szM4[ 300 ], szDeagle[ 300 ], szAwp[ 300 ], szGlock[ 300 ], szAk[ 300 ], szUsp[ 300 ], szArmas[ 100 ];
				
				#if defined SQL_SYSTEM
				if( SQL_NumResults( Query ) ) 
				{
					g_idCuenta[ id ] = SQL_ReadResult( Query, 1 );
					SQL_ReadResult( Query, 2, g_playername[ id ], charsmax( g_playername[ ] ) );
					SQL_ReadResult( Query, 3, sztLogro, charsmax( sztLogro ) );
					g_isKills[ id ] = SQL_ReadResult( Query, 4 );
					g_iElo[ id ] = SQL_ReadResult( Query, 5 );
					g_iLogro[ id ] = SQL_ReadResult( Query, 6 );
					g_iPuntos[ id ] = SQL_ReadResult( Query, 7 );
					g_iRango[ id ] = SQL_ReadResult( Query, 8 );
					SQL_ReadResult( Query, 9, szARMAS, charsmax( szARMAS ) );
					SQL_ReadResult( Query, 10, szM4, charsmax( szM4 ) );
					SQL_ReadResult( Query, 11, szDeagle, charsmax( szDeagle ) );
					SQL_ReadResult( Query, 12, szAwp, charsmax( szAwp ) );
					SQL_ReadResult( Query, 13, szGlock, charsmax( szGlock ) );
					SQL_ReadResult( Query, 14, szAk, charsmax( szAk ) );
					SQL_ReadResult( Query, 15, szUsp, charsmax( szUsp ) );
					SQL_ReadResult( Query, 16, szArmas, charsmax( szArmas ) );
					
					str_to_arraynum( sztLogro, g_IsLogros[ id ], sizeof( g_IsLogros[ ] ) );
					str_to_arraynum( szARMAS, g_iComprada[ id ][ cKNIFES ], 25 );
					str_to_arraynum( szM4, g_iComprada[ id ][ cM4A1 ], 25 );
					str_to_arraynum( szDeagle, g_iComprada[ id ][ cDEAGLE ], 25 );
					str_to_arraynum( szAwp, g_iComprada[ id ][ cAWP ], 25 );
					str_to_arraynum( szM4, g_iComprada[ id ][ cGLOCK18 ], 25 );
					str_to_arraynum( szDeagle, g_iComprada[ id ][ cAK47 ], 25 );
					str_to_arraynum( szAwp, g_iComprada[ id ][ cUSP ], 25 );
					str_to_arraynum( szArmas, g_iElegida[ id ], sizeof( g_iElegida[ ] ) );
					
					func_login_success( id );
				}
				#else
				if( mysql_num_results() ) 
				{
					g_idCuenta[ id ] = mysql_read_result( 1 );
					mysql_read_result( 2, g_playername[ id ], charsmax( g_playername[ ] ) );
					mysql_read_result( 3, sztLogro, charsmax( sztLogro ) );
					g_isKills[ id ] = mysql_read_result( 4 );
					g_iElo[ id ] = mysql_read_result( 5 );
					g_iLogro[ id ] = mysql_read_result( 6 );
					g_iPuntos[ id ] = mysql_read_result( 7 );
					g_iRango[ id ] = mysql_read_result( 8 );
					mysql_read_result( 9, szARMAS, charsmax( szARMAS ) );
					mysql_read_result( 10, szM4, charsmax( szM4 ) );
					mysql_read_result( 11, szDeagle, charsmax( szDeagle ) );
					mysql_read_result( 12, szAwp, charsmax( szAwp ) );
					mysql_read_result( 13, szGlock, charsmax( szGlock ) );
					mysql_read_result( 14, szAk, charsmax( szAk ) );
					mysql_read_result( 15, szUsp, charsmax( szUsp ) );
					mysql_read_result( 16, szArmas, charsmax( szArmas ) );
					
					str_to_arraynum( sztLogro, g_IsLogros[ id ], sizeof( g_IsLogros[ ] ) );
					str_to_arraynum( szARMAS, g_iComprada[ id ][ cKNIFES ], 15 );
					str_to_arraynum( szM4, g_iComprada[ id ][ cM4A1 ], 25 );
					str_to_arraynum( szDeagle, g_iComprada[ id ][ cDEAGLE ], 25 );
					str_to_arraynum( szAwp, g_iComprada[ id ][ cAWP ], 25 );
					str_to_arraynum( szM4, g_iComprada[ id ][ cGLOCK18 ], 25 );
					str_to_arraynum( szDeagle, g_iComprada[ id ][ cAK47 ], 25 );
					str_to_arraynum( szAwp, g_iComprada[ id ][ cUSP ], 25 );
					str_to_arraynum( szArmas, g_iElegida[ id ], sizeof( g_iElegida[ ] ) );
					
					func_login_success( id );
				}
				#endif
				else 
				{
					printf( id,  "%s Personaje incorrecto.", g_szPrefix );
					client_cmd( id, "spk buttons/button10.wav" );
				}
			}
			case CARGAR_DATOS:
			{
				#if defined SQL_SYSTEM
				if( SQL_NumResults( Query ) ) 
				{
					g_id[ id ] = SQL_ReadResult( Query, 0 );
					
					arrayset( g_IsLogros[ id ], 0, sizeof( g_IsLogros[ ] ) );
					arrayset( g_iElegida[ id ], 0, sizeof( g_iElegida[ ] ) );
					arrayset( g_iRecogida[ id ], -1, sizeof( g_iRecogida[ ] ) );
					
					g_iPuntos[ id ] = g_iFrag[ id ] = g_iRango[ id ] = g_iLogro[ id ] = g_isKills[ id ] = 0;
					
					fnPj( id );
				}
				#else
				if( mysql_num_results() ) 
				{
					g_id[ id ] = mysql_read_result( 0 );
					
					arrayset( g_IsLogros[ id ], 0, sizeof( g_IsLogros[ ] ) );
					arrayset( g_iElegida[ id ], 0, sizeof( g_iElegida[ ] ) );
					arrayset( g_iRecogida[ id ], -1, sizeof( g_iRecogida[ ] ) );
					
					g_iPuntos[ id ] = g_iFrag[ id ] = g_iRango[ id ] = g_iLogro[ id ] = g_isKills[ id ] = 0;
					
					fnPj( id );
				}
				#endif
				else 
				{
					printf( id,  "%s Error al cargar los datos, intente nuevamente.", g_szPrefix );
					show_login_menu( id );
				}
				
			}
			case CARGAR_DATOS2:
			{
				#if defined SQL_SYSTEM
				if( SQL_NumResults( Query ) ) 
				{
					g_iEstado[ id ] = LOGUEADO;
					g_idCuenta[ id ] = SQL_ReadResult( Query, 0 );
					
					func_login_success( id );
				}
				#else
				if( mysql_num_results() ) 
				{
					g_iEstado[ id ] = LOGUEADO;
					g_idCuenta[ id ] = mysql_read_result( 0 );
					
					func_login_success( id );
				}
				#endif
				else 
				{
					printf( id,  "%s Error al cargar los datos, intente nuevamente.", g_szPrefix );
					show_login_menu( id );
				}
			}
			case SQL_RANK:
			{
				#if defined SQL_SYSTEM
				if( SQL_NumResults( Query ) ) 
					printf( id,  "^4%s^1 Tu Rank es ^4%i", g_szPrefix, SQL_ReadResult( Query, 0 ) );
				#else
				if( mysql_num_results() )
					printf( id,  "^4%s^1 Tu Rank es ^4%i", g_szPrefix, mysql_read_result( 0 ) );
				#endif
			}
			case SQL_TOP:
			{
				new len = 0, szBuffer[ 1024 ], iPosition, szName[ 33 ], iRng, iEloo;
				#if defined SQL_SYSTEM
				if( SQL_NumResults( Query ) ) 
				{
					len = format(szBuffer[len], charsmax(szBuffer) - len, 
					"<STYLE>body{background:#232323;color:#cfcbc2;font-family:sans-serif}table{width:100%%;line-height:160%%;font-size:12px}.q{border:1px solid #4a4945}.b{background:#2a2a2a}</STYLE><table cellpadding=2 cellspacing=0 border=0>");
					len += format(szBuffer[len], charsmax(szBuffer) - len, "<tr  align=center bgcolor=#52697B><th width=5%%> # <th width=22%% align=left> Personaje <th width=10%%> Rango <th width=13%%> Insignea <th width=13%%> Elo");
					
					while( SQL_MoreResults( Query ) )
					{
						++iPosition;

						SQL_ReadResult( Query, 0, szName, charsmax( szName ) );
						iRng = SQL_ReadResult( Query, 1 );
						iEloo = SQL_ReadResult( Query, 2 );

						len += format( szBuffer[ len ], charsmax( szBuffer ) - len, "<tr align=center%s><td> %d <td align=left> %s <td> %s <td> <img src= ^"%s^"> <td> %d ", ((iPosition%2)==0) ? "" : " bgcolor=#2f3030", iPosition, szName, rangos[ iRng ][ rangos_nombre ], rangos[ iRng ][ url_foto ], iEloo );
					
						SQL_NextRow( Query );
					}
					show_motd( id, szBuffer, "Top 15 Rangos" );
				}
				else
				#else
				if( mysql_num_results() )
				{
					len = format(szBuffer[len], charsmax(szBuffer) - len, 
					"<STYLE>body{background:#232323;color:#cfcbc2;font-family:sans-serif}table{width:100%%;line-height:160%%;font-size:12px}.q{border:1px solid #4a4945}.b{background:#2a2a2a}</STYLE><table cellpadding=2 cellspacing=0 border=0>");
					len += format(szBuffer[len], charsmax(szBuffer) - len, "<tr  align=center bgcolor=#52697B><th width=5%%> # <th width=22%% align=left> Personaje <th width=10%%> Rango <th width=13%%> Insignea <th width=13%%> Elo");
					
					while( mysql_more_results( ) )
					{
						++iPosition;

						mysql_read_result( 0, szName, charsmax( szName ) );
						iRng = mysql_read_result( 1 );
						iEloo = mysql_read_result( 2 );

						len += format( szBuffer[ len ], charsmax( szBuffer ) - len, "<tr align=center%s><td> %d <td align=left> %s <td> %s <td> <img src= ^"%s^"> <td> %d", ((iPosition%2)==0) ? "" : " bgcolor=#2f3030", iPosition, szName, rangos[ iRng ][ rangos_nombre ], rangos[ iRng ][ url_foto ], iEloo );
					
						mysql_next_row( );
					}
					show_motd( id, szBuffer, "Top 15 Rangos" );
				}
				else
				#endif
				{
					printf( id,  "^4%s^1 EL TOP15 ESTA VACIO", g_szPrefix );
				}
			}
		}
	}
	
	public func_login_success( id )
	{
		if( is_user_connected(id) )
		{
			static iRestore; iRestore = get_pdata_int( id, m_iVGUI );
			
			if( iRestore & (1<<0) )
				set_pdata_int( id, m_iVGUI, iRestore & ~(1<<0) );
			
			set_pdata_int( id, 365, 0 );
			set_msg_block( g_msgShowMenu, BLOCK_SET );
			set_msg_block( g_msgVGUIMenu, BLOCK_SET );
			
			engclient_cmd( id, "jointeam", "5" );
			engclient_cmd( id, "joinclass", "5" );
			
			set_msg_block( g_msgShowMenu, BLOCK_NOT );
			set_msg_block( g_msgVGUIMenu , BLOCK_NOT );
			
			if( iRestore & (1<<0) ) 
				set_pdata_int( id, m_iVGUI, iRestore );
			
			set_task( 1.0, "ShowHUD", id+TASK_SHOWHUD, _, _, "b" );
			
			guardar_datos( id );
			chequear_rango( id, 0, "GANASTE" );
			
			g_iEstado[ id ] = JUGANDO;
		}
	} 
	
	public event_round_start( ) 
	{
		for( new i = 1; i <= g_iMaxplayers; i++ ) 
		{
			if( g_iEstado[ i ] == JUGANDO && is_user_connected( i ) )
			{
				guardar_datos( i );
				
				g_iFrag[ i ] = 0;
			}
		}
		g_iDefuse = g_iPlanted = false;
	}        
	
	#if defined SQL_SYSTEM
	public MySQLx_Init( )
	{
		new get_type[ 12 ];
		
		SQL_SetAffinity( "sqlite" );
		
		SQL_GetAffinity( get_type, sizeof get_type );
		
		if( !equali( get_type, "sqlite" ) )
		{
			log_to_file( "SQLITE_ERROR.txt", "Error de conexion" );
			return pause( "a" );
		}
		
		g_hTuple = SQL_MakeDbTuple( "", "", "", g_szDBSQL );
		
		new szTabla[ 4000 ];
		new len = 0;
		
		len += formatex(szTabla[len], charsmax(szTabla) - len, "CREATE TABLE IF NOT EXISTS %s", g_szCuentas);
		len += formatex(szTabla[len], charsmax(szTabla) - len, "( idCuenta INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE,");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Usuario varchar NOT NULL UNIQUE,");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Password varchar NOT NULL )");
		
		SQL_ThreadQuery(g_hTuple, "QueryCreateTable", szTabla);
		
		arrayset(szTabla, EOS, sizeof( szTabla ) ); len = 0;
		
		len += formatex(szTabla[len], charsmax(szTabla) - len, "CREATE TABLE IF NOT EXISTS %s", g_szDatos);
		len += formatex(szTabla[len], charsmax(szTabla) - len, "( idRegistro INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE,");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "idDatos integer not null,");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Personaje varchar not null UNIQUE default '%s', ", DISPONIBLE);
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Logros varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Kills integer not null default '0', ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Elo integer not null default '0', ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Logro integer not null default '0', ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Puntos integer not null default '0', ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Rango integer not null default '0', ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Knifes varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "M4 varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Deagle varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Awp varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Glock varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "AK varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Usp varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "armas varchar(225) ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, ") ");
		SQL_ThreadQuery(g_hTuple, "QueryCreateTable", szTabla);
		
		arrayset(szTabla, EOS, sizeof( szTabla ) ); len = 0;
		return PLUGIN_CONTINUE
		
	}
	public plugin_end( ) SQL_FreeHandle( g_hTuple );
	#else
	public MySQLx_Init( )
	{
		g_hTuple = mysql_makehost(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DATEBASE)
		
		new error[32], errnum;
		g_hConnection = mysql_connect(g_hTuple, errnum, error, 31);
		
		if(errnum)
		{
			log_to_file("mysqlt.log", "ERROR1: [%d]- [%s]", errnum, error)
			return pause( "a" );
		}
		
		new szTabla[ 4000 ];
		new len = 0;
		
		len += formatex(szTabla[len], charsmax(szTabla) - len, "CREATE TABLE IF NOT EXISTS %s", g_szCuentas);
		len += formatex(szTabla[len], charsmax(szTabla) - len, "( idCuenta INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Usuario varchar(34) NOT NULL UNIQUE KEY,");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Password varchar(34) NOT NULL )");
		
		mysql_query(g_hConnection, "QueryCreateTable", szTabla);
		
		arrayset(szTabla, EOS, sizeof( szTabla ) ); len = 0;
		
		len += formatex(szTabla[len], charsmax(szTabla) - len, "CREATE TABLE IF NOT EXISTS %s", g_szDatos);
		len += formatex(szTabla[len], charsmax(szTabla) - len, "( idRegistro INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "idDatos int(50) not null,");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Personaje varchar(34) not null UNIQUE KEY default '%s',", DISPONIBLE);
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Logros varchar(225), " );
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Kills int(50) not null default '0', ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Elo int(50) not null default '0', ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Logro int(50) not null default '0', ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Puntos int(50) not null default '0', ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Rango int(50) not null default '0', ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Knifes varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "M4 varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Deagle varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Awp varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Glock varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "AK varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "Usp varchar(225), ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, "armas varchar(225) ");
		len += formatex(szTabla[len], charsmax(szTabla) - len, ") ");
		
		mysql_query(g_hConnection, "QueryCreateTable", szTabla);
		
		arrayset(szTabla, EOS, sizeof( szTabla ) ); len = 0;
		
		return PLUGIN_CONTINUE;
	}	
	#endif
	
	#if defined SQL_SYSTEM
	public QueryCreateTable(failstate, Handle:Query, error[], error2, data[], DataSize)
	{
		#else
		public QueryCreateTable(failstate, error[], error2, data[], size, Float:queuetime)
		{
			#endif
			switch ( failstate )
			{
				case TQUERY_CONNECT_FAILED: log_to_file("SQL_LOG_TQ.txt", "Failed to connect to database [%i]: %s", error2, error)
				case TQUERY_QUERY_FAILED: log_to_file("SQL_LOG_TQ.txt", "Error on query for creating table [%i]: %s", error2, error)
			}
			
			return PLUGIN_HANDLED;
		}
//****************************************************************************//

//---------------------------------------------------------------------------


//****************************		STOCKS		****************************//

stock fnAlive( )
{
	static at;
	for( new i = 1; i <= g_iMaxplayers; ++i )
	{
		if( is_user_alive( i ) ) 
			++at;
	}
	return at;
}

PlaySound( const id, const sound[ ] ) 
{
	client_cmd( id, "%s ^"%s^"", !IsMp3( sound ) ? "spk" : "mp3 play", sound );
}

IsMp3( const szSound[ ] ) return equali( szSound[ strlen( szSound ) - 4 ], ".mp3" );
stock precache_player_Sound( const soundd[ ] ) 
{ 
	if ( IsMp3(soundd) ) engfunc( EngFunc_PrecacheGeneric, soundd );
	else precache_sound( soundd );
	
}
arraynum_to_str(array[], arraysize, output[], len, trim_end)
{
    new i, _len

    do {
        _len += formatex(output[_len], len-_len, "%d ", array[i])
    } while(++i < arraysize && _len < len)
    
    if(i < arraysize) return 0 // ERROR
    
    if(trim_end) output[_len-1] = '^0'
    
    return _len
}

str_to_arraynum(strnum[], array_out[], array_size)
{
    new len, j, k, c, temp[12]
    
    while(strnum[len])
    {
        if(strnum[len] == ' ')
        {
            array_out[j++] = str_to_num(temp)

            for(c = 0; c < k; c++) temp[c] = 0
            k = 0
        }
        if(j >= array_size) return len

        temp[k++] = strnum[len++]
    }

    array_out[j++] = str_to_num(temp)
    while(j < array_size) array_out[j++] = 0
    
    return len
} 

stock Efect( id, rr, gg, bb, tt )
{
	message_begin( MSG_ONE_UNRELIABLE, g_iScreenFade, {0,0,0}, id );
	write_short( 10<<12 );
	write_short( 10<<16 );
	write_short( 1<<1 );
	write_byte( rr );
	write_byte( gg );
	write_byte( bb );
	write_byte( random_num(60, 255) );
	message_end();
	
	if (tt == 1)
	{
		set_pev(id, pev_iuser1, 0);
		set_pev(id, pev_gravity, 3.0); 
		set_pev(id, pev_maxspeed, 10);
	}
}
stock ValidMessage( text[ ], maxcount ) 
{
	static len, i, count;
	len = strlen(text);
	count = 0;
	
	if (!len) return false;
	
	for (i = 0; i < len; i++) 
	{
		if (text[i] != ' ') 
		{
			count++
			if (count >= maxcount)
				return true;
		}
	}
	
	return false;
} 

stock tutorMake( id, TutorColor:Colorz, Float:fTime = 0.0, const szText[], any:... )
{
	new szMessage[ 512 ];
	vformat( szMessage, charsmax( szMessage ), szText, 5 );
	
	if( !id )
	{
		message_begin( MSG_ALL,g_iMsgTutor );
		write_string( szMessage );
		write_byte( 0 );
		write_short( 0 );
		write_short( 0 );
		write_short( 1<<_:Colorz );
		message_end( );
	}
	else if(is_user_connected(id))
	{
		message_begin( MSG_ONE_UNRELIABLE, g_iMsgTutor, _, id );
		write_string( szMessage );
		write_byte( 0 );
		write_short( 0 );
		write_short( 0 );
		write_short( 1<<_:Colorz );
		message_end( );
	}
	
	if( fTime != 0.0 )
	{
		if( !id ){
			for( new i = 1; i <= g_iMaxplayers; ++i )
				remove_task( i+TASK_TUTOR );
			
			
			set_task( fTime,"tutorClose",TASK_TUTOR );
		}
		else
		{
			remove_task( id+TASK_TUTOR );
			set_task( fTime,"tutorClose",id+TASK_TUTOR );
		}
	}
}

public tutorClose( iTask )
{
	new id = iTask - TASK_TUTOR;
	
	if( !id )
	{
		message_begin( MSG_ALL,g_iMsgTutClose );
		message_end();
	}
	else if( is_user_connected( id ) )
	{
		message_begin( MSG_ONE_UNRELIABLE,g_iMsgTutClose,_,id );
		message_end( );
	}
}

stock Hud(id, txt[], rrr, ggg, bbb, Float:Time)
{
	set_hudmessage(rrr, ggg, bbb, -1.0, -1.0, 0, Time, 5.0, 1.0, 1.0);
	show_hudmessage(id, "%s", txt);
} 

stock fm_cs_get_weapon_ent_owner(ent)
{
    if (pev_valid(ent) != 2)
        return -1;
    
    return get_pdata_cbase(ent, 41, 4);
}

stock printf(id, const input[], any:...)
{
	static szMsg[191], msgSayText;
	
	if (!msgSayText)
		msgSayText = get_user_msgid("SayText");
	
	vformat(szMsg, 190, input, 3);
	
	replace_all(szMsg, 190, "!g", "^4");
	replace_all(szMsg, 190, "!y", "^1");
	replace_all(szMsg, 190, "!team", "^3");
	
	message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgSayText, .player = id);
	write_byte(id ? id : 33);
	write_string(szMsg);
	message_end();
} 

//****************************************************************************//

Last edited by Colombinus; 05-03-2022 at 12:11.
Colombinus is offline
kww
Senior Member
Join Date: Feb 2021
Location: Russia
Old 05-03-2022 , 16:11   Re: Help Error: Expected token: "}", but found "-string-" on line 45
Reply With Quote #8

put "api_oldmenu.inc" in "/scripting/include/"
__________________
Now working on: Side Weapons (Very lazy, tbh)
Avatar source: https://bit.ly/3BAk19g
Discord: kww#9951
kww is offline
Colombinus
Junior Member
Join Date: Nov 2020
Old 05-03-2022 , 22:35   Re: Help Error: Expected token: "}", but found "-string-" on line 45
Reply With Quote #9

Quote:
Originally Posted by kww View Post
put "api_oldmenu.inc" in "/scripting/include/"
The provider of the plugin did not pass it to me, do you know of a place where I can download it?
Colombinus is offline
kww
Senior Member
Join Date: Feb 2021
Location: Russia
Old 05-04-2022 , 02:38   Re: Help Error: Expected token: "}", but found "-string-" on line 45
Reply With Quote #10

here, but you must be registered
__________________
Now working on: Side Weapons (Very lazy, tbh)
Avatar source: https://bit.ly/3BAk19g
Discord: kww#9951
kww is offline
Reply


Thread Tools
Display Modes

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 04:19.


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