Hns+Laser+Niveles :b
#1
Nueva actualizacion en progreso,sea paciente.

Hns+Laser+Niveles V-1.0.0

ChangeLog:
Código:
V-1.0.0 - Posteo Del Plugin

Esperando BUGs TrolleyesTrolleyes

Lo Que Voy A Postear En Este Th Va a ser Un HnsNiveles Que a diferencia del Anterior,Esta Tal Ves un poco Mas accesible a la Hora de Editar el Code U Otra Cosa.
Esta mucho mas Ordenado Y (Creo) No Contiene Ningún BuG. Lo Termine Ayer,Lo Posteo Hoy Gran sonrisa.

Tengan Presente Que Es Un "Hns Por Niveles" Un Poco Simple Comparado a La Versión que Había Posteado Antes,Les Puede Servir como BASE para Seguirle Agregando Cosas o Usarlo Directamente.Me Llevo Unas Semanas Armarlo Ya que Lo Estoy Realizando Para Una Comunidad Que Tal Ves Empiece.


Requerimientos:
  • Include:ColorChat
  • Include:HnsNatives(Posteado Por Mi)
  • Archivo .ini: Vips (en configs)
  • Archivo de Texto: informacion.txt(En Cstrike para la información)

Contiene 2 CVars:
  • menu_abrir(Por Defecto 1) = Permite Determinar Si Podemos Abrir el Menu Principal

  • carnage_habilidades(Por Defecto 0) = Permite Determinar Si Las Habilidades Estarán habilitadas en carnage (Recomendado 0)

Contiene Un Guardado Por SQLite y También:
  • Sistema de Logueo/Registro SQL
  • Habilidades
  • Niveles X Frags
  • Sistema de Dinero (Para Poder comprar Items en la Tienda)
  • Party (Incluida División de Frags)
  • HappyHour
  • Vips( Multiplicador Indicado en Vips.ini y El Players)
  • Hookeo Del Say
  • Carnage
  • Rangos TT / CT
  • Cambio de Contraseña
  • Informacion/Reglas
  • Menu Admin(AmxModMenu / DarNiveles)
  • Menu de Reseteo
  • Estadisticas

Creditos:
Código:
r0ma'
CSAXEL
cLAANS
[R]ank

Espero Les Guste Y Este Mod Sea De Su Agrado.

Código PHP:
#include amxmisc
#include amxmodx
#include ColorChat
#include cstrike
#include engine
#include fakemeta
#include fakemeta_util
#include fun
#include hamsandwich
#include sqlx

new const Plugin[] = "HnsNiveles"
new const Version[] = "1.0.0"
new const Author[] = "jollero"
new const Prefix[] = "BlackGaming"
new const SayProhibidos[][] = { "190""200" "210"":"}

#define CARNAGE_ROUND 5
#define Macro(%1)  %1 *15
#define vida(%1)   (%1 * 10)
#define chaleco(%1)  (%1 * 10)
#define gravedad(%1)   (%1 * 0.05)
#define velocidad(%1)   (%1 * 5)
#define damage(%1)  (%1 *10)
#define tiempoitems(%1)  (%1 * 1)
#define ADMIN_ACCESS_ALL ADMIN_RCON
#define MYSQL

#if defined MYSQL

#define MYSQL_HOST "127.0.0.1"
#define MYSQL_USER "root"
#define MYSQL_PASS ""
#define MYSQL_DATEBASE "cuentas"

#else

#define SQLITE_DATEBASE "cuentas"

#endif


enum {
    
OFFLINE,
    
LOGUEADO
}

enum
{
    
REGISTRAR_USUARIO,
    
REGISTRAR_PASSWORD,
    
LOGUEAR_USUARIO,
    
LOGUEAR_PASSWORD,
    
CARGAR_DATOS,
    
GUARDAR_DATOS,
    
CAMBIAR_PASSWORD
}

enum _DatosHab
{
    
NombreHab[40],
    
Necesario,
    
Maximo
}
new const 
HabDatos[][DatosHab] = {
    {
"Vida"715},
    {
"Chaleco"1010},
    {
"Velocidad"8,5},
    {
"Gravedad"106},
    {
"Danio"1210},
    {
"-Tiempo En Plantar Laser"65},
    {
"-Tiempo En Sacar Laser"65},
    {
"+1 Laser"104},
    {
"-Tiempo En Congelacion"75},
    {
"+Tiempo En Congelacion"75},
    {
"+Tiempo de Items"86}
}

enum _:DatosShop
{
    
Nombre[36],
    
Precio,
    
lvl
}
new const 
ShopDatos[][DatosShop] = {
    {
"Flashbang"300006},
    {
"HeGrenade"450008},
    {
"Pasos Silenciosos(Solo TT || 15's)"7000013},
    {
"Gravedad ( 10's)"10000020},
    {
"Congeladora"8000023},
    {
"Velocidad ( 15's)"13000035},
    {
"Invisibilidad( 15's)"15000050},
    {
"+150 Vida"14200064},
    {
"Pack De Granadas"12000070},
    {
"Arma Random"18000085},
    {
"Inmunidad (20's)"230000110},
    {
"Respawn"250000125}
}

enum _DatosVenta
{
    
NombreVenta[60],
    
PrecioVenta
}
new const 
VentaDatos[][DatosVenta] = {
    {
"Admin Comun"15},
    {
"Admin Full"20},
    {
"Multiplicador x2"15},
    {
"Multiplicador x3"20},
    {
"Multiplicador x4"30},
    {
"Multiplicador x5"40},
    {
"Multiplicador x6"55},
    {
"Admin Full + Multiplicador x3"30}
}

enum _DatosReglas
{
    
NombreReglas[92]
}
new const 
ReglasDatos[][DatosReglas] = {
    {
"No bugear players poniendo minas y no matar bugeados"},
    {
"No poner minas en escalera de arriba o abajo, solo de costado"},
    {
"No romper minas que no pertenezcan a uno mismo"},
    {
"No regalarse frags en party"},
    {
"No floodear el chat (abusar del say y del mic)"},
    {
"No insultar, tanto a usuarios como a admins"},
    {
"No prestar cuentas, de lo contrario, seran borradas"},
    {
"Esta completamente prohibido usar cualquier Tipo de Cheats"},
    {
"Los CTs estan obligados a buscar y tratar de matar a los TTs"},
    {
"En caso de no obedecer las reglas, seran baneados"}
}

enum vip_data
{
    
szname[32],
    
imultiplicador
}

enum (+= 77) {
    
TASK_ACEPT
}

enum {
    
NONE = -1,
    
Master,
    
Start_Amount
}

enum _:pdata {
    
In_Party,
    
Position,
    
Amount_In_Party,
    
Block_Party,
    
UserName[32]
}

enum _:DataCallBack {
    
MASTER,
    
USER
}

new const 
Costo[] = {1,6,15,24,50}
new const 
RangosT[][] = {"TestT","RangoT1","RangoT2","RangoT3","RangoT4"}
new const 
RangosCT[][] = {"TestCT","RangoCT1","RangoCT2","RangoCT3","RangoCT4"}
new const 
szTable[ ] = "cuentas"
new const szPrefix[ ] = "[Cuentas]"

const VelocidadHab 240
const VidaHab 100
const ChalecoHab 100

new Float:HUD_STATS_X[33]
new 
Float:HUD_STATS_Y[33]  

new 
Cvar_HabCarnage
new Cvar_Menu
new cvar_time_acept
new cvar_max_players
new cvar_allow_bots

new g_experiencia33 ]
new 
Nivel[33]
new 
Frags[33]
new 
Reset[33]
new 
Plata[33]
new 
Puntos[33]
new 
ItemRonda[33]
new 
Velocidad[33]
new 
Habilidades[33][11]
new 
Rangos[33]
new 
FragsCarnage[33]
new 
g_target[33]
new 
g_vipmult[33]
new 
Laseres[33]
new 
g_PartyData[33][pdata]
new 
g_MenuCallback[DataCallBack]
new Array:
Party_Ids[33]
new 
g_id33 ]
new 
g_estado33 ]
new 
g_usuario33 ][ 34 ]
new 
g_password33 ][ 34 ]
new 
g_playername33 ][ 33 ]
new 
red[33]
new 
green[33]
new 
blue[33]  

new 
Key = (1<<0) | (1<<1) | (1<<2) | (1<<3) | (1<<4) | (1<<5) | (1<<6) | (1<<7) | (1<<8) | (1<<9) | (1<<10
new const 
horas[] = { 17,18,00,01,02,03,04,05,06,07,08,09,10 }
new 
Ham:Ham_Player_ResetMaxSpeed Ham_Item_PreFrame
new Handle:g_hTuple
new g_rondas
new g_carnage
new g_maxplayers
new boolHappyHour
new Array:g_vips
new g_nomoney
new moneymessage
new MostrarHora
new HudCarnage
new HudHappy
new HudHora
new Hud

public hns_hab_laserplantas(id) return Habilidades[id][5]
public 
hns_hab_lasersacas(id) return Habilidades[id][6]
public 
hns_frags_laser(id)
{
    new 
frags 1
    
if(HappyHour){
        
Frags[id] += frags g_vipmult[id]*2
        Plata
[id] += 500*2
        Check
(id)
    } 
    else {
        
Frags[id] += frags g_vipmult[id]
        
Plata[id] += 500
        Check
(id)
    }
}
public 
hns_hab_lasermas(id)
{
    if(
Habilidades[id][6] == 1) { Laseres[id] = 4
    
}
    else if(
Habilidades[id][7] == 2) { Laseres[id] = 5
    
}
    else if(
Habilidades[id][7] == 3) { Laseres[id] = 6
    
}
    else if(
Habilidades[id][7] == 4) { Laseres[id] = 
    
}
    return 
Habilidades[id][7],Laseres[id]
}
public 
hns_hab_frostdescongelacion(id) return Habilidades[id][8]
public 
hns_hab_frostcongelacion(id) return Habilidades[id][9]

public 
plugin_init() {
    
register_plugin(PluginVersionAuthor)
    
    
register_clcmd"chooseteam""clcmd_changeteam" )
    
register_clcmd"jointeam""clcmd_changeteam" )
    
register_clcmd"menuselect""menu_select" )
    
register_menu("menu estadisticas"Key"HandlerEstadisticas")    
    
    
register_event("DeathMsg""EventoM""a")
    
RegisterHamHam_Spawn"player""fw_PlayerSpawn_Post"1)
    
RegisterHam(Ham_TakeDamage"player""TakeDamage")
    
register_event("HLTV" "RoundStart" "a""1=0""2=0")
    
register_event("Money""EventMoney""b")
    
register_logevent("round_end"2"1=Round_End")
    
RegisterHam(Ham_Player_ResetMaxSpeed"player""Ham_Player_ResetMaxSpeed_Post"true)
    
    
register_clcmd("DAR_LEVEL""nivel")
    
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("CAMBIAR_PASSWORD""cambiar_password")
    
    
register_clcmd("say""message_saytext")
    
register_messageget_user_msgid"ShowMenu" ), "message_ShowMenu" )
    
register_messageget_user_msgid"VGUIMenu" ), "message_VGUIMenu" )
    
register_message(get_user_msgid("StatusIcon"), "message_statusicon")
    
    
Cvar_HabCarnage register_cvar("carnage_habilidades""0")
    
Cvar_Menu register_cvar("menu_abrir""1")
    
g_nomoney register_cvar("bloquear_dinero""1")
    
    
cvar_time_acept register_cvar("party_time_acept","15")
    
cvar_max_players register_cvar("party_max_players","3")
    
cvar_allow_bots register_cvar("party_allow_bots","1")
    
    
g_MenuCallback[MASTER] = menu_makecallback("check_master")
    
g_MenuCallback[USER] = menu_makecallback("check_user")    
    
Hud CreateHudSyncObj()
    
HudHappy CreateHudSyncObj()
    
HudCarnage CreateHudSyncObj()
    
HudHora CreateHudSyncObj()
    
g_maxplayers get_maxplayers()
    
moneymessage get_user_msgid("Money")
    
g_rondas 0
    load_vips
()
    
    
    
MySQLx_Init( )
}

public 
plugin_natives()
{
    
register_native("hns_hab_laserplantas""hns_hab_laserplantas"1)
    
register_native("hns_hab_lasersacas""hns_hab_lasersacas"1)
    
register_native("hns_frags_laser""hns_frags_laser"1)
    
register_native("hns_hab_lasermas""hns_hab_lasermas"1)
    
register_native("hns_hab_frostdescongelacion""hns_hab_frostdescongelacion"1)
    
register_native("hns_hab_frostcongelacion""hns_hab_frostcongelacion"1)
}
public 
plugin_cfg(){
    for(new 
1<= g_maxplayersi++)
        
Party_Ids[i] = ArrayCreate(11)
}
public 
client_putinserver(id)
{
    
Nivel[id] = 1
    Frags
[id] = 0
    Reset
[id] = 0
    Plata
[id] = 0
    Puntos
[id] = 0
    FragsCarnage
[id] = 0
    ItemRonda
[id] = 0
    Laseres
[id] = 3
    HUD_STATS_X
[id] = 0.03
    HUD_STATS_Y
[id] = 0.08 
    red
[id] = 42
    green
[id] = 255
    blue
[id] = 85 
    MostrarHora 
true
    remover_item
(id)
    
check_rango(id)
    
set_task(1.0,"ShowHud"id+570_,_,"b")
    
show_login_menuid );
    
//----------------Vip-----------------------
    
g_vipmult[id] = 1
    
new name[32]
    
get_user_name(idnamecharsmax(name))
    new 
size ArraySize(g_vips)
    new 
vips[vip_data]
    for(new 
0sizei++)
    {
    
ArrayGetArray(g_vipsivips)
    if(
equali(vips[szname], name)) 
    {
    
g_vipmult[id] = vips[imultiplicador]
    break
    }
    }    
}
public 
client_disconnect(id)
{
    if( 
g_estadoid ] == LOGUEADO ) {
        
guardar_datosid );
        
g_estadoid ] = OFFLINE;
    }
    
remove_task(id+570)
    if(
g_PartyData[id][In_Party])
    
g_PartyData[id][Position] ? g_PartyData[id][Amount_In_Party] == destoy_party(id) : remove_party_user(id) : destoy_party(id)    
    
g_PartyData[id][UserName][0] = 0
    g_PartyData
[id][Block_Party] = false
}

public 
client_infochangedid ) {
    if( 
g_estadoid ] == OFFLINE )
        return 
PLUGIN_CONTINUE;
    
    static 
nam33 ];
    
get_user_infoid"name"namcharsmaxnam ) );
    
    if( !
equalg_playernameid ], nam ) ) {
        
set_user_infoid"name"g_playernameid ] );
        
        return 
PLUGIN_HANDLED;
    }
    
    return 
PLUGIN_CONTINUE;
}
public 
plugin_precache()
{
    
register_forward(FM_PlayerPreThink"fw_PlayerPreThink")
}
public 
message_saytext(id

    static 
szSay[192]
    
read_args(szSaycharsmax(szSay)) 
    
remove_quotes(szSay
    
    
    
replace_all(szSaycharsmax(szSay), "%"" "
    
    static 
szNombre[32];get_user_name(idszNombre32
    
    for(new 
0sizeof(SayProhibidos); i++)
    {
        if(
contain(szSaySayProhibidos[i]) != -1)
    {
        
ColorChat(idGREEN"^4[^3%s^4]^1:^4 Estan Prohibidos Estos Tipos de Numeros",Prefix)
        return 
PLUGIN_HANDLED
    
}
    }
    
    switch(
cs_get_user_team(id))
    {
        case 
CS_TEAM_UNASSIGNEDColorChat(0GREEN"^4[^3%s^4] ^3%s ^1: %s"szNombreszSay)
    case 
CS_TEAM_TColorChat(0GREEN"^4[^3%d^4][^3x%d^4]^3%s ^1: %s"Nivel[id],g_vipmult[id], szNombreszSay)
    case 
CS_TEAM_CTColorChat(0GREEN"^4[^3%d^4][^3x%d^4] ^3%s ^1: %s"Nivel[id],g_vipmult[id], szNombreszSay)
    case 
CS_TEAM_SPECTATORColorChat(0GREY"^4[^3%d^4] ^3%s ^1: %s"szNombreszSay)
    }
    
    return 
PLUGIN_HANDLED 
}
public 
message_statusicon(msg_idmsg_destid)
{
    static 
szIcon[8]
    
get_msg_arg_string(2szIconcharsmax(szIcon))
 
    if (
equal(szIcon"buyzone") && get_msg_arg_int(1))
    {
        
set_pdata_int(id235get_pdata_int(id235) & ~(1<<0))
        return 
PLUGIN_HANDLED;
    }
 
    return 
PLUGIN_CONTINUE;


public 
EventMoneyid 
{
    if(
get_pcvar_num(g_nomoney))
    {
        
set_pdata_int(id1150);
        
        
message_begin(MSG_ONE_UNRELIABLEmoneymessage_id)
        
write_long(0
        
write_byte(1)
        
message_end()
    }
}
public 
fw_PlayerPreThink(id)
{
    if (!
is_user_alive(id))
        return;

    if (
Velocidad[id])
        
set_pev(idpev_maxspeed350.0)
}
public 
ShowHud(id)
{
    
id -= 570
    
    
new nombre[32];get_user_name(idnombrecharsmax(nombre))
    new 
Hora[9];get_time("%H:%M:%S",Hora,8
    
    if(!
is_user_alive(id))
    return 
    
    if (
is_user_alive(id))
    {
        
set_hudmessage(red[id], green[id], blue[id], HUD_STATS_X[id], HUD_STATS_Y[id], 06.012.0)
        
ShowSyncHudMsg(idHud"Name: %s | Nivel: %d ^nFrags: %d | Resets: %d ^nPlata: %d | Pts: %d ^nFragsC: %d | HAPPY: %s ^n%s  %s",
        
nombre,Nivel[id],Frags[id],Reset[id],Plata[id], Puntos[id],FragsCarnage[id], HappyHour "ON | Frags x2" "OFF"cs_get_user_team(id) == CS_TEAM_T "RangoTT:" "RangoCT:",
        
cs_get_user_team(id) == CS_TEAM_T RangosT[Rangos[id]] : RangosCT[Rangos[id]])
    }        
    if(
HappyHour) {
        
set_hudmessage(0852550.030.0206.012.0)
        
ShowSyncHudMsg(idHudHappy"Estas Jugando La HappyHours: Ganas el Doble de Frags y Dinero")
    }
    if(
MostrarHora){
        
set_hudmessage(2122552120.650.0506.012.0)
        
ShowSyncHudMsg(id,HudHora,"La Hora Es:^n[ %s ]",Hora)
    }

    if(
g_carnage){
        
set_hudmessage(0120220, -1.00.0611.01.01.01.0)
        
ShowSyncHudMsg(idHudCarnage"Comenzo la Ronda Carnage!")
    }
    else {
        
set_hudmessage(0120220, -1.00.0611.01.01.01.0)
        
ShowSyncHudMsg(idHudCarnage"Para la Ronda Carnage: falta%s %d ronda%s."
        
CARNAGE_ROUND g_rondas "n" ""CARNAGE_ROUND g_rondasCARNAGE_ROUND g_rondas "s" "")
    }
}
public 
remover_item(id)
{
    
set_user_footsteps(id0)
    
set_pev(idpev_gravity1.0)
    
Velocidad[id] = false
    set_user_rendering
(idkRenderFxGlowShell000kRenderTransAlpha250)
    
set_user_godmode(id0)
}
public 
fw_PlayerSpawn_Post(id)
{
    if(!
is_user_alive(id) || cs_get_user_team(id))
    return
    
    
ItemRonda[id] = 0
    remover_item
(id)
    
set_task(1.0"check_carnage"id)
    if(
g_carnage || get_pcvar_num(Cvar_HabCarnage))
    {    
        
set_user_health(idVidaHab vida(Habilidades[id][0]))
        
cs_set_user_armor(idChalecoHab chaleco(Habilidades[id][1]), CS_ARMOR_KEVLAR
        
set_user_gravity(idget_user_gravity(id) - gravedad(Habilidades[id][3]))
    }
    
    if(
cs_get_user_team(id) == CS_TEAM_T)
    {
        
strip_user_weapons(id)
        
give_item(id,"weapon_hegrenade")
        
give_item(id,"weapon_flashbang")
        
give_item(id,"weapon_flashbang")
        
give_item(id,"weapon_smokegrenade")
    } 
    else if(
cs_get_user_team(id) == CS_TEAM_CT
    {
        
strip_user_weapons(id)
        
give_item(id,"weapon_knife")
    }
}
public 
TakeDamage(victimattacker,inflictorFloat:damagedamage_type)
{

    if (
victim == attacker || ! is_user_connected(attacker)) 
    return
    
    if (
g_carnage || get_pcvar_num(Cvar_HabCarnage))
         {
         
    
damage += (damage(Habilidades[attacker][4]))
    
    if (
damage 0.0SetHamParamFloat(4damage)
         }
}
public 
Ham_Player_ResetMaxSpeed_Post(id
{
    if (!
is_user_alive(id)) 
    return
    
    if(
g_carnage || get_pcvar_num(Cvar_HabCarnage))
    {
        
set_user_maxspeed(idfloat(VelocidadHab) + float(velocidad(Habilidades[id][2])))
    }
}
public 
RoundStart()
{
    new 
data[12
    
get_time("%H"data12
    new 
Tiempo str_to_num(data
    
    
    for( new 
1<= g_maxplayersi++ ) {
        
        if( 
g_estado] == LOGUEADO && is_user_connected) )
        
guardar_datos);
    }
    for(new 
i=0;<= sizeof horas 1;i++) 
    {     
        if(
Tiempo != horas[i]) continue 
        
HappyHour true 
        
break; 
    }
    
    
g_rondas++
    
g_carnage 0    
    
if (g_rondas == CARNAGE_ROUND)
    {
        
        
g_rondas 0
        g_carnage 
1
        set_cvar_num
("hns_hidetime"0)
        
set_cvar_num("hns_hiders_knife"2)
        
set_cvar_num("hns_hiders_flashbangs"0)
        
set_cvar_num("hns_hiders_smokegren"0)
    }
}
public 
round_end()
{
    if (
g_carnage) {
        
set_cvar_num("hns_hidetime"10)
        
set_cvar_num("hns_hiders_knife"1)
        
set_cvar_num("hns_hiders_flashbangs"2)
        
set_cvar_num("hns_hiders_smokegren"1)
    }
    if (!
EquipoTTAlive())
    {
        
set_task(0.5"taskChangeTeam")
    }
}
public 
taskChangeTeam()
{
    static 
idCsTeams:Teams
    
    
for (id 1id <= g_maxplayersid++)
    {
        if (!
is_user_connected(id))
            continue;
        
        
Teams cs_get_user_team(id)
        
        switch (
Teams)
        {
            case 
CS_TEAM_T:
            {
                
cs_set_user_team(idCS_TEAM_CT)
            }
            case 
CS_TEAM_CT:
            {
                
cs_set_user_team(idCS_TEAM_T)
            }
        }
    }
}
public 
EventoM()
{
    new 
attacker read_data(1)
    new 
victim read_data(2)
    new 
Player[32], usuarios;get_party_index(attackerPlayer)
    
    if(!
is_user_connected(attacker) || is_user_connected(victim) && attacker == victim)
    return;
    
    new 
frags 1
    
    
if(HappyHour){
        if(
g_PartyData[attacker][Amount_In_Party]) {
            for(new 
0g_PartyData[attacker][Amount_In_Party]; i++)
            {
                
                
usuarios Player[i]
                
Frags[usuarios] += frags g_vipmult[attacker]*2
                Plata
[attacker] += 500*2
                Check
(usuarios)
                
Check(i)
            } 
        }
        else if(
g_carnage){
            
FragsCarnage[attacker] += 2
            CheckCarnage
(attacker)
        }
        else {
            
            
Frags[attacker] += frags g_vipmult[attacker]*2
            Plata
[attacker] += 500*2
            Check
(attacker)
        }
    }
    else {
        if(
g_PartyData[attacker][Amount_In_Party]) {
            for(new 
0g_PartyData[attacker][Amount_In_Party]; i++)
            {
                
                
usuarios Player[i]
                
Frags[usuarios] += frags g_vipmult[attacker]
                
Plata[attacker] += 500
                Check
(usuarios)
                
Check(i)
            } 
        }
        else if(
g_carnage){
            
FragsCarnage[attacker] += 1
            CheckCarnage
(attacker)
        }
        else { 
            
            
Frags[attacker] += frags g_vipmult[attacker]
            
Plata[attacker] += 500
            Check
(attacker)
        }
    }
}
Check(id)
{
    if(
Frags[id] >= Macro(Nivel[id]))
    {
        
Frags[id] = 0
        Nivel
[id]++
        
check_rango(id)
        
ColorChat(idGREEN"^4[^3%s^4] Felicidades !! Avanzaste de Nivel"Prefix)
    }
}
CheckCarnage(id)
{
    if(
FragsCarnage[id] >= 10)
    {
        
Puntos[id]++
        
ColorChat(idGREEN"^4[^3%s^4] Ganaste Un Punto"Prefix)
    }
}
public 
check_rango(id)
{
    if(
Nivel[id] >= Costo[Rangos[id]])
    {
        
Rangos[id]++
    }
}
public 
check_carnage(id)
{
    if (!
g_carnage)
    return
    
    switch(
random_num(1,4))
    {
        case 
1:
        {
        
set_hudmessage(25542420.260.106.012.0)
        
show_hudmessage(id"Carnage AWP")
        
        
set_user_health(id100)
        
strip_user_weapons(id)
        
Dar_arma(id,"weapon_knife"CSW_KNIFE1)
        
Dar_arma(id,"weapon_awp"CSW_AWP30)
    }
    case 
2:
    {
        
set_hudmessage(25542420.260.106.012.0)
        
show_hudmessage(id"Carnage HEADSHOT")
        
        
set_user_health(id100)
        
strip_user_weapons(id)
        
set_user_hitzones(id,0,2)
        
Dar_arma(id,"weapon_deagle"CSW_DEAGLE100)
    }
    case 
3:
    {
        
set_hudmessage(25542420.260.106.012.0)
        
show_hudmessage(id"Carnage CUCHI")
        
        
set_user_health(id100)
        
strip_user_weapons(id)
        
Dar_arma(id,"weapon_knife"CSW_KNIFE1)
    }
    case 
4:
    {
        
set_hudmessage(25542420.260.106.012.0)
        
show_hudmessage(id"Carnage M3")
        
        
set_user_health(id100)
        
strip_user_weapons(id)
        
Dar_arma(id,"weapon_knife"CSW_KNIFE1)
        
Dar_arma(id,"weapon_m3,"CSW_M3100)
    }
    }
}
public 
message_VGUIMenuiMsgidiDestid ) {
    if( 
g_estadoid ] == LOGUEADO ||  get_msg_arg_int) != 
        return 
PLUGIN_CONTINUE;
    
    
show_login_menuid )
    return 
PLUGIN_HANDLED
}

public 
message_ShowMenuiMsgidiDestid ) {
    if( 
g_estadoid ] == LOGUEADO )
        return 
PLUGIN_CONTINUE
    
    
static sMenuCode33 ]
    
get_msg_arg_string4sMenuCodecharsmaxsMenuCode ) )
    
    if( 
containisMenuCode"Team_Select" ) != -) {
        
show_login_menuid )
        return 
PLUGIN_HANDLED
    
}
    
    return 
PLUGIN_CONTINUE
}

public 
clcmd_changeteamid ) {
    if( 
g_estadoid ] != LOGUEADO ) {
        
show_login_menuid )
        return 
PLUGIN_HANDLED
    
}
    else {
        
Asd(id)
    return 
PLUGIN_HANDLED
    
}
    
    return 
PLUGIN_CONTINUE
}

public 
Asd(id)
{
    if(
get_pcvar_num(Cvar_Menu))
    {
        
GameMenu(id)
        return 
PLUGIN_HANDLED
    
}
    return 
PLUGIN_HANDLED
}


public 
show_login_menuid ) {
    new 
menu menu_create"Menu de cuentas""login_menu" )
    
    
menu_additemmenu"\r    [ \yCrear cuenta \r]""1" )
    
menu_additemmenu"\r    [ \yIngresar \r]""2" )
    
    
menu_setpropmenuMPROP_EXITMEXIT_NEVER )
    
    
menu_displayidmenu )
    
menu_destroymenu )
}

public 
login_menuidmenuitem ) {
}

public 
menu_selectid ) {
    if( 
g_estadoid ] == OFFLINE ) {
        new 
args]
        
        
read_argsargscharsmaxargs ) )
        
        if( 
str_to_numargs ) == )
            
client_cmdid"messagemode CREAR_USUARIO" )
        else
            
client_cmdid"messagemode LOGUEAR_USUARIO" )
        
        return 
PLUGIN_HANDLED
    
}
    
    return 
PLUGIN_CONTINUE
}

public 
GameMenu(id)
{
    new 
menu,Texto[200]
    
    
    
formatex(Texto,charsmax(Texto),"\wMenu Principal \y%s\
    \wV.\y%s  \wBy \y%s"
,Plugin,Version,Author)
    
menu menu_create(Texto,"HandlerPrincipal")
    
    
formatex(Texto,charsmax(Texto),"    \r[\w  Estadisticas  \r]")
    
menu_additem(menu,Texto,"0")
    
    
formatex(Texto,charsmax(Texto),"    \r[\w  Resetear Niveles  \r]")
    
menu_additem(menu,Texto,"1")
    
    
formatex(Texto,charsmax(Texto),"    \r[\w  Tienda  \r]")
    
menu_additem(menu,Texto,"2")
    
    
formatex(Texto,charsmax(Texto),"    \r[\w  Habilidades  \r]")
    
menu_additem(menu,Texto,"3")

    
formatex(Texto,charsmax(Texto),"    \r[\w  Party  \r]")
    
menu_additem(menu,Texto,"4")
    
    
formatex(Texto,charsmax(Texto),"    \r[\w  Menu Extra  \r]")
    
menu_additem(menu,Texto,"5")
    
    
formatex(Texto,charsmax(Texto),"    \r[\y  Reglas  \r]")
    
menu_additem(menu,Texto,"6")
    
    
    
menu_display(idmenu0)
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    return 
PLUGIN_HANDLED
}
public 
HandlerPrincipal(idmenuitem)
{
    if(
item == MENU_EXIT)
    return 
PLUGIN_HANDLED
    
    
switch(item)
    {
        case 
0EstadisticasMenu(id)
        case 
1ResetMenu(id)
        case 
2TiendaMenu(id)
        case 
3HabMenu(id)
        case 
4cmdParty(id)
        case 
5ExtraMenu(id)
        case 
6ReglasMenu(id)
    }
    return 
PLUGIN_HANDLED
}    
public 
ExtraMenu(id)
{
    new 
menu,Texto[50]
    
    
formatex(Texto,charsmax(Texto),"\rMenu \wExtra \y%s",Plugin)
    
menu menu_create(Texto,"HandlerExtra")
    
    
formatex(Texto,charsmax(Texto),"   \r[\w Menu de Admin  \r]")
    
menu_additem(menu,Texto,"0"_menu_makecallback("MenuAcceso"))
    
    
formatex(Texto,charsmax(Texto),"   \r[\w Lista de Niveles  \r]")
    
menu_additem(menu,Texto,"1")
    
    
formatex(Texto,charsmax(Texto),"   \r[\w Venta  \r]")
    
menu_additem(menu,Texto,"2")
    
    
formatex(Texto,charsmax(Texto),"   \r[\w Pocision Hud Principal \r]")
    
menu_additem(menu,Texto,"3")
    
    
formatex(Texto,charsmax(Texto),"   \r[\w Color Hud Principal  \r]")
    
menu_additem(menu,Texto,"4")    
    
    
formatex(Texto,charsmax(Texto),"   \r[\y Informacion  \r]")
    
menu_additem(menu,Texto,"5")
    
    
formatex(Texto,charsmax(Texto),"   \r[\y Cambiar Contrasenia  \r]")
    
menu_additem(menu,Texto,"6")
    
    
    
menu_display(idmenu)
}
public 
MenuAcceso(id)
{
    if (
get_user_flags(id) & ADMIN_ACCESS_ALL
    return 
ITEM_ENABLED
    
    
return ITEM_DISABLED
}
public 
HandlerExtra(id,menu,item)
{
    if(
item == MENU_EXIT)
    return 
PLUGIN_HANDLED
    
    
switch(item)
    {
        case 
0Menu_Admin(id)
        case 
1ListaNiveles(id)
        case 
2Venta(id)
        case 
3MenuHud(id)
        case 
4MenuHudColor(id)
        case 
5:
        {
        
show_motd(id"informacion.txt""Informacion del servidor")
        return 
PLUGIN_HANDLED
        
}
        case 
6client_cmd(id"messagemode CAMBIAR_PASSWORD")
    }
    return 
PLUGIN_HANDLED
}
public 
EstadisticasMenu(id)
{
    new 
menu[1800], lenMiNombre[33];get_user_name(idMiNombre32)
    
len 0
    
    len 
+= formatex(menu[len], charsmax(menu) - len,"\wEstadisticas \y%s^n",Plugin)
    
    
len += formatex(menu[len], charsmax(menu) - len,"\wAlias \r[\y %s \r] \y|| \w%s \r[\y %s \r] \y|| \wNivel \r[\y %d \r]^n",MiNombre,cs_get_user_team(id) == CS_TEAM_T "RangoTT:" "RangoCT:",cs_get_user_team(id) == CS_TEAM_T RangosT[Rangos[id]] : RangosCT[Rangos[id]],Nivel[id])
    
    
len += formatex(menu[len], charsmax(menu) - len,"\wFrags \r[\y %d \r] \y|| \wVips \r[\y x%d \r]^n",Frags[id], g_vipmult[id])
    
    
len += formatex(menu[len], charsmax(menu) - len,"\wResets \r[\y %d \r] \y|| \wPlata \r[\y %d \r]^n",Reset[id],Plata[id])
        
    
len += formatex(menu[len], charsmax(menu) - len,"\wPuntos \r[\y %d \r] \y|| \wFragsC \r[\y %d \r]^n",Puntos[id],FragsCarnage[id])
    
    
len += formatex(menu[len], sizeof menu -len ,"\r0.\wSalir")
    
    
menu_display(idmenu[len])
    
    
show_menuid Keymenu, -1,"menu estadisticas")
}
public 
HandlerEstadisticas(id,key)
{
    switch(
key)
    {
        case 
0: return PLUGIN_HANDLED
    
}
    return 
PLUGIN_HANDLED
}

public 
ResetMenu(id)
{
    new 
menu,Texto[100]
    
    
formatex(Texto,charsmax(Texto),"\wMenu de Reseteo \y%s^nResets: \r[ \y%d/3 \r]",PluginReset[id])
    
menu menu_create(Texto,"HandlerReset")
    
    
formatex(Texto,charsmax(Texto),"\wResetear Cuenta: \r[\y %s \r]"Nivel[id] >= 200 "Disponible" "Nivel Requerido : 200")
    
menu_additem(menu,Texto,"0")
    
    
menu_display(idmenu0)
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
}
public 
HandlerReset(idmenuitem)
{
    if(
item == MENU_EXIT)
    return 
PLUGIN_HANDLED
    
    
switch(item)
    {
        case 
0
        {
            if(
Reset[id] < 3)
            {
                if(
Nivel[id] >= 200)
                {
                    
Nivel[id] = 1
                    Frags
[id] = 0
                    Reset
[id]++
                    
Plata[id] += 30000
                    ColorChat
(idGREEN"^4[^3%s^4] Reseteaste Tu Cuenta Con Exito"Prefix)
                }
                else
                {
                    
ColorChat(idGREEN"^4[^3%s^4] Necesitas Ser Nivel 200 Para Resetear Tu Cuenta"Prefix)
                    return 
PLUGIN_HANDLED
                
}
            }
            else
            {
                
ColorChat(idGREEN"^4[^3%s^4] Llegaste Al Maximo De Resets Permitidos"Prefix)
                return 
PLUGIN_HANDLED
            
}
        }
    }
    return 
PLUGIN_HANDLED
}
public 
TiendaMenu(id)
{
    new 
menu,Texto[200]
    
    if(
g_carnage)
    {
        
ColorChat(idGREEN"^4[^3%s^4] No Puedes Abir La Tienda en Carnage",Prefix)
        return 
PLUGIN_HANDLED
    
}
    
    if(!
is_user_alive(id))
    {
        
ColorChat(idGREEN"^4[^3%s^4] Necesitas Estar Vivo Para Abrir La Tienda"Prefix)
        return 
PLUGIN_HANDLED
    
}
    
    
formatex(Texto,charsmax(Texto),"\wTienda \y%s ^nPlata: \r[\y %d \r]",Plugin,Plata[id])
    
menu menu_create(Texto,"HandlerTienda")
    
    for(new 
0;sizeof(ShopDatos); i++)
    {
        
formatex(Texto,charsmax(Texto),"\w%s\r||\wCosto \y%d\r||\wLvl\y%d ",ShopDatos[i][Nombre],ShopDatos[i][Precio],ShopDatos[i][lvl])
        
menu_additem(menuTexto)
    }
    
menu_display(idmenu 0)
    
menu_setprop(menuMPROP_BACKNAME"Anterior")
    
menu_setprop(menuMPROP_NEXTNAME"Siguiente")
    
menu_setprop(menuMPROP_EXITNAME"Salir del Menu")
    return 
PLUGIN_HANDLED
}
public 
HandlerTienda(idmenuitem)
{
    if(
item == MENU_EXIT)
    return 
PLUGIN_HANDLED
    
    
if(Plata[id] < ShopDatos[item][Precio])
    {
        
ColorChat(idGREEN"^4[^3%s^4] No Tenes Plata Suficiente para Comprar %s",Prefix,ShopDatos[item][Nombre])
        return 
PLUGIN_HANDLED
    
}
    if(
Nivel[id] < ShopDatos[item][lvl])
    {
        
ColorChat(idGREEN"^4[^3%s^4] No Tenes Nivel Suficiente Para Comprar %s",Prefix,ShopDatos[item][Nombre])
        return 
PLUGIN_HANDLED
    
}
    if(
ItemRonda[id] >= 1)
    {
        
ColorChat(idGREEN"^4[^3%s^4] Solo Puedes Comprar 1 Ves Por Ronda",Prefix)
        return 
PLUGIN_HANDLED
    
}
    switch(
item)
    {
        case 
0Dar_arma(id"weapon_hegrenade"CSW_HEGRENADE1)
        case 
1Dar_arma(id"weapon_flashbang"CSW_FLASHBANG1)
        case 
2: {
            if(
cs_get_user_team(id) == CS_TEAM_T) {
                
set_user_footsteps(id1)
                
set_task(15.0 tiempoitems(Habilidades[id][10]),"remover_item"id)
            }
            else {
                
ColorChat(idGREEN"^4[^3%s^4] Necesitas Ser Terrorista Para Comprar Este Item",Prefix)
                return 
PLUGIN_HANDLED
            
}
        }
        case 
3: { set_pev(idpev_gravity0.1);set_task(10.0 tiempoitems(Habilidades[id][10]), "remover_item"id)
        }
        case 
4Dar_arma(id"weapon_smokegrenade"CSW_SMOKEGRENADE1)
        case 
5: { Velocidad[id] = true;set_task(15.0 tiempoitems(Habilidades[id][10]), "remove_item"id)
        }
        case 
6: { set_user_rendering(idkRenderFxGlowShell000kRenderTransAlpha10);set_task(15.0 tiempoitems(Habilidades[id][10]),"remove_item"id)
        }
        case 
7set_user_health(idget_user_health(id) + 150)
        case 
8: {
            
Dar_arma(id"weapon_hegrenade"CSW_HEGRENADE1)
            
Dar_arma(id"weapon_flashbang"CSW_FLASHBANG2)
            
Dar_arma(id"weapon_smokegrenade"CSW_SMOKEGRENADE1)
        }
        case 
9: {
            new 
AlAzar random_num(4)
            switch(
AlAzar)
            {
                case 
0Dar_arma(id"weapon_usp"CSW_USP5)
                case 
1Dar_arma(id"weapon_ak47"CSW_AK474)
                case 
2Dar_arma(id"weapon_m4a1"CSW_M4A15)
                case 
3Dar_arma(id"weapon_deagle"CSW_DEAGLE2)
                case 
4Dar_arma(id"weapon_awp"CSW_AWP3)
            }
        }
        case 
10: { set_user_godmode(id1);set_task(20.0 tiempoitems(Habilidades[id][10]), "remove_item"id
        }
        case 
11ExecuteHamB(Ham_CS_RoundRespawnid)
    }
    
    
Plata[id] -= ShopDatos[item][Precio]
    
ItemRonda[id]++
    
ColorChat(idGREEN"^4[^3%s^4] Compraste %s",PrefixShopDatos[item][Nombre])
    return 
PLUGIN_HANDLED
}
public 
HabMenu(id)
{
    new 
menu,Texto[150]
    
    if(
g_carnage)
    {
        
ColorChat(idGREEN"^4[^3%s^4] No Puedes Abir El Menu de Habilidades en Carnage",Prefix)
        return 
PLUGIN_HANDLED
    
}
    
    if(!
is_user_alive(id))
    {
        
ColorChat(idGREEN"^4[^3%s^4] Necesitas Estar Vivo Para Mejorar Tus Habilidades"Prefix)
        return 
PLUGIN_HANDLED
    
}    
    
    
formatex(Texto,charsmax(Texto),"\wHabilidades \y%s ^n\wPuntos: \r[\y %d \r]",Plugin,Puntos[id])
    
menu menu_create(Texto,"HandlerHabilidades")
    
    for(new 
0;sizeof(HabDatos); i++)
    {
        if(
Habilidades[id][i] < HabDatos[i][Maximo])
        
formatex(Texto,charsmax(Texto),"\w%s \r|| \wP.Necesarios: \r[\y %d \r]",HabDatos[i][NombreHab],HabDatos[i][Necesario])
        
        else
        
formatex(Texto,charsmax(Texto),"\w%s \r|| \wMejorada Al Maximo",HabDatos[i][NombreHab])
        
        
menu_additem(menu,Texto)
    }
    
menu_display(idmenu0)
    
menu_setprop(menuMPROP_EXITMEXIT_ALL)
    return 
PLUGIN_HANDLED
}
public 
HandlerHabilidades(idmenuitem)
{
    if(
item == MENU_EXIT)
    return 
PLUGIN_HANDLED
    
    
if(Puntos[id] < HabDatos[item][Necesario])
    {
        
ColorChat(idGREEN"^4[^3%s^4] No Tenes Puntos Necesarios Para Mejorar esta Habilidad",Prefix)
        return 
PLUGIN_HANDLED
    
}
    if(
Habilidades[id][item] >= HabDatos[item][Maximo])
    {
        
ColorChat(idGREEN"^4[^3%s^4] Ya Mejoraste Al Maximo Esta Habilidad",Prefix)
        return 
PLUGIN_HANDLED
    
}
    
    
Habilidades[id][item]++
    
Puntos[id] -= HabDatos[item][Necesario]
    
ColorChat(idGREEN"^4[^3%s^4] Mejoraste la Habilidad %s",Prefix,HabDatos[item][NombreHab])
    return 
PLUGIN_HANDLED
}
public 
Menu_Admin(id)
{
    new 
menu,Texto[100]
    
    if (!(
get_user_flags(id) & ADMIN_ACCESS_ALL)){
        
ColorChat(idRED"[ %s ] Solo Los Admins Pueden Abrir Este Menu")
        return 
PLUGIN_HANDLED
         
}
    
    
formatex(Texto,charsmax(Texto),"\wMenu \rAdmin \y%s",Plugin)
    
menu menu_create(Texto,"HandlerMenuAdmin")
    
    
formatex(Texto,charsmax(Texto),"\wAdminMenu")
    
menu_additem(menu,Texto,"0")
    
    
formatex(Texto,charsmax(Texto),"\wDar Niveles")
    
menu_additem(menu,Texto,"1")
    
    
menu_display(idmenu)
    return 
PLUGIN_HANDLED
}
public 
HandlerMenuAdmin(id,menu,item)
{
    if(
item == MENU_EXIT)
    return 
PLUGIN_HANDLED
    
    
switch(item)
    {
        case 
0client_cmd(id"amxmodmenu")
        case 
1cmd_level(id)
    }
    return 
PLUGIN_HANDLED
}

public 
cmd_levelid 

    if (!(
get_user_flags(id) & ADMIN_KICK)) {
        
ColorChat(idGREY"Solo Los Admins Pueden Ingresar A Este Menu")
        return 
PLUGIN_HANDLED
    
}
    new 
menu menu_create"\y[ BlackGaming] \rEliga jugador a dar \ynivel\w:""player_nivel" )
    
    new 
Temp[40], players32 ], tempidszName[32], szTempid10 ], pnum
    
    get_players
(playerspnum"a")
    
    for( new 
ii<pnumi++ ) 
    {    
        
tempid players]
        
        
get_user_nametempidszNamecharsmaxszName ))
        
        
formatex(Tempcharsmax(Temp), "%s"szName)
        
        
num_to_strtempidszTempidcharsmaxszTempid ))
        
        
menu_additemmenuTempszTempid)
    } 
    
menu_setprop(menuMPROP_BACKNAME"\yAtras")
    
menu_setprop(menuMPROP_NEXTNAME"\ySiguiente")
    
menu_setprop(menuMPROP_EXITNAME"\ySalir")
    
menu_display(idmenu)
    
    return 
PLUGIN_HANDLED
}

public 
player_nivelidmenuitem 

    if( 
item == MENU_EXIT ) {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    
    new 
data[6], basura
    menu_item_getinfo
(menuitembasuradatacharsmax(data), ""0basura)
    
    
g_target[id] = str_to_num(data); 
    
    
console_cmd(id"messagemode DAR_LEVEL")    
    
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED 


public 
nivel(id

    static 
iNumStr[12];
    
read_args(iNumStrcharsmax(iNumStr))
    
remove_quotes(iNumStr)
    
trim(iNumStr)
    new 
iArg32 ]
    
read_argv1iArg32 )
    
    new 
len strlen(iArg
    for (new 
0leni++) {
        if (!
isdigit(iArg[i])) {
            
ColorChat(idGREY"Solo Numeros.")
            return
        }
    }
    
niveles(idstr_to_numiArg ))
}
public 
nivelesidamount 
{    
    if (!
is_user_connected(g_target[id])) return
    
    new 
dName32 ]; get_user_name(iddNamecharsmax(dName)) 
    new 
rName32 ]; get_user_name(g_target[id], rNamecharsmax(rName))
    
    
Nivel[g_target[id]] += amount
    check_rango
(g_target[id])
    
    
ColorChat(idGREEN"Le Diste %d Niveles a %s"amountrName)
    
ColorChat(g_target[id], GREEN"el admin %s te dio %d niveles"dNameamount



public 
cmdParty(id) {
    
    if(
g_PartyData[id][In_Party])
        
show_party_info_menu(id)
    else
        
show_party_menu(id)
    
    return 
PLUGIN_HANDLED
}

public 
show_party_menu(id) {
    
    new 
iMenu menu_create("\rMenu Party:","party_menu"), BlockParty[50]
    
    
menu_additem(iMenu"\yCrear Party""0")
    
    
formatex(BlockPartycharsmax(BlockParty), "\yBloquear Invitaciones De Party: \w%s",g_PartyData[id][Block_Party] ? "Si" "No")
    
    
menu_additem(iMenuBlockParty"1")
    
    
menu_setprop(iMenuMPROP_EXITNAME"Salir")
    
menu_setprop(iMenuMPROP_EXITMEXIT_ALL)
    
    
menu_display(idiMenu0)
}

public 
show_party_info_menu(id) {
    
    new 
iMenu menu_create("\rMenu Party:","party_info_menu")
    
    
menu_additem(iMenu"Agregar Integrante", .callback g_MenuCallback[MASTER])
    
menu_additem(iMenu"Expulsar Integrande", .callback g_MenuCallback[MASTER])
    
menu_additem(iMenu"Destruir Party", .callback g_MenuCallback[MASTER])
    
menu_additem(iMenu"Salir del Party", .callback g_MenuCallback[USER])
    
    
menu_setprop(iMenuMPROP_EXITNAME"Salir")
    
menu_setprop(iMenuMPROP_EXITMEXIT_ALL)
    
    
menu_display(idiMenu)
}

public 
show_party_add_menu(id) {
    
    new 
iMenu menu_create(g_PartyData[id][In_Party] ? "\rAgregar Integrante:" "\rCrear Party:""party_create_menu"), Poss[3], Name[32]
    
    for(new 
1<= g_maxplayersi++) {
        
        if(!
is_available_to_party(i) || id == i)
            continue;
            
        
get_user_name(iNamecharsmax(Name))
        
num_to_str(iPosscharsmax(Poss))
        
menu_additem(iMenuNamePoss)
    }
    
    
menu_setprop(iMenuMPROP_EXITNAME"Salir")
    
menu_setprop(iMenuMPROP_EXITMEXIT_ALL)
    
    
menu_display(idiMenu)
}

public 
show_party_kick_menu(id) {
    
    new 
iMenu menu_create("\rKick Party Menu:","party_kick_menu"), Players[32], Poss[3], user
    
    get_party_index
(idPlayers)
    
    for(new 
ig_PartyData[id][Amount_In_Party]; i++) {
        
user Players[i]
        
num_to_str(userPosscharsmax(Poss))
        
menu_additem(iMenug_PartyData[user][UserName], Poss)
    }
    
    
menu_setprop(iMenuMPROP_EXITNAME"Salir")
    
    
menu_display(idiMenu)
}

public 
show_party_invite_menu(id2MasterId) {
    
    new 
MenuTitle[128], iMenuStr_MasterId[3]
    
    
set_player_party_name(MasterId)
    
set_player_party_name(id2)
    
    
ColorChat(MasterIdGREEN"^4[^3%s^4] Solicitud enviada a %s"Prefixg_PartyData[id2][UserName])
    
    
formatex(MenuTitlecharsmax(MenuTitle), "%s te mando una invitacion para %s Party"g_PartyData[MasterId][UserName], g_PartyData[MasterId][In_Party] ? "unirte al" "crear un")
    
    new 
UserTaskArgs[3]
    
    
UserTaskArgs[0] = iMenu menu_createMenuTitle "party_invite_menu")
    
UserTaskArgs[1] = MasterId
    
    num_to_str
(MasterIdStr_MasterIdcharsmax(Str_MasterId))
    
    
menu_additemiMenu "Aceptar"Str_MasterId)
    
menu_additemiMenu "Rechazar"Str_MasterId)
    
    if(
is_user_bot(id2) && get_pcvar_num(cvar_allow_bots)) {
        
party_invite_menu(id2iMenu0)
        return
    }
    
    
menu_setprop(iMenuMPROP_EXITMEXIT_NEVER)
    
    
menu_display(id2iMenu)
    
    
remove_task_acept(id2)
    
    
set_task(get_pcvar_float(cvar_time_acept), "Time_Acept"id2+TASK_ACEPTUserTaskArgs2)
}
    

public 
party_menu(idmenuitem) {
    
    if(
item == MENU_EXIT) {
        
menu_destroy(menu)
        return
    }
    
    if(
item) {
        
g_PartyData[id][Block_Party] = g_PartyData[id][Block_Party] ? false true
        show_party_menu
(id)
    }
    else
        
show_party_add_menu(id)
    
    
menu_destroy(menu)
    
}

public 
party_create_menu(idmenuitem) {
    
    if(
item == MENU_EXIT) {
        
menu_destroy(menu)
        return
    }
    
    new 
iKey[6], iAccessiCallbackid2
    
    menu_item_getinfo
(menuitemiAccessiKeycharsmax(iKey), __iCallback)
    
    
id2 str_to_num(iKey)
    
    if(!
is_available_to_party(id2))
        return
    
    
show_party_invite_menu(id2id)
    
    
menu_destroy(menu)
}

public 
party_invite_menu(idmenuitem) {
    
    if(
item == MENU_EXIT) {
        
menu_destroy(menu)
        
remove_task_acept(id)
        return
    }
    
    new 
iKey[6], iAccessiCallbackid_master
    
    menu_item_getinfo
(menuitemiAccessiKeycharsmax(iKey), __iCallback)
    
    
id_master str_to_num(iKey)
    
    switch(
item) {
        case 
0: {
                        
            if(!
g_PartyData[id_master][In_Party]) {
                
create_party(id_masterid)
                
set_task_party_hud(id_master)
                
set_task_party_hud(id)
            }
            else {
                if(
g_PartyData[id_master][Amount_In_Party] == get_pcvar_num(cvar_max_players)) {
                
                    
ColorChat(idBLUE"^3[^4%s^3] Ya se alcanzo el numero maximo de integrantes en la party"Prefix)
                    
ColorChat(id_masterBLUE"^3[^4%s^3] Ya alcanzaste el numero maximo de integrantes en la party"Prefix)
                
                    
remove_task_acept(id)
    
                    
menu_destroy(menu)
                    return
                }
                
                
add_party_user(id_masterid)
                
set_task_party_hud(id)
            }
            
            
ColorChat(id_masterGREEN"^4[^3%s^4] %s fue agregado al Party"Prefixg_PartyData[id][UserName])
        }
        case 
1ColorChat(id_masterBLUE"^3[^4%s^3] %s cancelo la invitacion de Party"Prefixg_PartyData[id][UserName])
    }
    
    
remove_task_acept(id)
    
    
menu_destroy(menu)
}

public 
party_kick_menu(idmenuitem) {
    
    if(
item == MENU_EXIT) {
        
menu_destroy(menu)
        return
    }
    
    new 
iKey[6], iAccessiCallbackid2
    
    menu_item_getinfo
(menuitemiAccessiKeycharsmax(iKey), __iCallback)
    
    
id2 str_to_num(iKey)
    
    if(
is_user_connected(id2))
        
g_PartyData[id][Amount_In_Party] == destoy_party(id) : remove_party_user(id2)
    
    
menu_destroy(menu)
}

public 
party_info_menu(idmenu,item) {
    
    if(
item == MENU_EXIT) {
        
menu_destroy(menu)
        return
    }
    
    switch(
item) {
        case 
0: {
            if(
g_PartyData[id][Amount_In_Party] < get_pcvar_num(cvar_max_players))
                
show_party_add_menu(id)
            else
                
ColorChat(idBLUE"^3[^4%s^3] Ya alcanzaste el numero maximo de integrantes en la party"Prefix)
        }
        case 
1show_party_kick_menu(id)
        case 
2destoy_party(id)
        case 
3remove_party_user(id)
    }
    
    
menu_destroy(menu)
}

public 
PartyHud(taskid) {
    
    static 
id
    id 
570
    
    
if(!is_user_connected(id)) {
        
remove_task(id+570)
        return
    }
    
    static 
CountPartyPartyMsg[256], Players[32], id2
    
    CountParty 
0
    PartyMsg
[0] = 0

    get_party_index
(idPlayers)
    for(new 
ig_PartyData[id][Amount_In_Party]; i++) {
        
        
id2 Players[i]
        
        if(
CountParty)
            
add(PartyMsgcharsmax(PartyMsg), "^n")
        
        
format(PartyMsgcharsmax(PartyMsg), "%s%s"strlen(PartyMsg) ? PartyMsg "Miembros del Party^n"g_PartyData[id2][UserName])
        
CountParty++
    }
        
    
set_hudmessage(852552120.50.2506.012.0)
    
show_hudmessage(idPartyMsg)
}

public 
Time_Acept(UserTaskArgs[], taskid) {
    
    
taskid -= TASK_ACEPT;
    
    if(!
g_PartyData[taskid][In_Party]) {
        
        
ColorChat(UserTaskArgs[1], BLUE"^3[^4%s^3] %s cancelo la invitacion de party"Prefixg_PartyData[taskid][UserName])
        
menu_destroy(UserTaskArgs[0])
        
show_menu(taskid0"^n"1)
    }
}
public 
check_master(id)
    return 
g_PartyData[id][Position] ? ITEM_DISABLED ITEM_ENABLED
    
public check_user(id)
    return 
g_PartyData[id][Position] ? ITEM_ENABLED ITEM_DISABLED

    
public ReglasMenu(id)
{
    new 
menu,Texto[230]
    
    
formatex(Texto,charsmax(Texto),"\rReglas \y%s",Plugin)
    
menu menu_create(Texto,"HandlerReglas")
    
    for(new 
0;sizeof(ReglasDatos);i++)
    {
        
formatex(Texto,charsmax(Texto),"\w%s.",ReglasDatos[i][NombreReglas])
        
menu_additem(menu,Texto)
    }
    
menu_display(idmenu0)
}
public 
HandlerReglas(idmenuitem)
{
    if(
item == MENU_EXIT)
    return 
PLUGIN_HANDLED
    
return PLUGIN_HANDLED
}
public 
ListaNiveles(id)
{
    new 
menu,niveles[50], Posicion[10]
    
formatex(niveles,charsmax(niveles),"\wLista de \rNiveles \y%s"Plugin)
    
menu menu_create(niveles,"HandlerNiveles")
    
    for(new 
1251 1i++)
    {
        
formatex(nivelescharsmax(niveles), "\wNivel %d \d|%s Frags: %d"iNivel[id] >= "\y" "\r"Macro(i))
        
num_to_str(iPosicioncharsmax(Posicion))
        
menu_additem(menunivelesPosicion)
    }
    
menu_setprop(menuMPROP_BACKNAME"Anterior")
    
menu_setprop(menuMPROP_NEXTNAME"Siguiente")
    
menu_setprop(menuMPROP_EXITNAME"Salir del Menu")
    
    
menu_display(idmenu0)
}    
public 
HandlerNiveles(idmenuitem)
{
    if(
item == MENU_EXIT)
    return 
PLUGIN_HANDLED
    
    
return PLUGIN_HANDLED
}
public 
Venta(id)
{
    new 
menu,Texto[180]
    
    
formatex(Texto,charsmax(Texto),"\rInformacion \wSobre Venta \y%s ^n\wPrecios Basados en 1 Mes",Plugin)
    
menu menu_create(Texto,"HandlerVenta")
    
    for(new 
0;sizeof(VentaDatos); i++)
    {
        
formatex(Texto,charsmax(Texto),"\w%s \r||\y %s $$"VentaDatos[i][NombreVenta],VentaDatos[i][PrecioVenta])
        
menu_additem(menu,Texto)
    }
    
menu_display(idmenu0)
}
public 
HandlerVenta(id,menu,item)
{
    if(
item == MENU_EXIT)
    return 
PLUGIN_HANDLED
    
    
return PLUGIN_HANDLED
}
public 
MenuHud(id)
{
    new 
menu,Texto[100]
    
    
formatex(Texto,charsmax(Texto),"\rModificar \yHud")
    
menu menu_create(Texto,"HandlerMenuHud")
    
    
formatex(Texto,charsmax(Texto),"\wMover HUD \yArriba")
    
menu_additem(menu,Texto,"0")
    
    
formatex(Texto,charsmax(Texto),"\wMover HUD \yAbajo")
    
menu_additem(menu,Texto,"1")
    
    
formatex(Texto,charsmax(Texto),"\wMover HUD \yIsquierda")
    
menu_additem(menu,Texto,"2")
    
    
formatex(Texto,charsmax(Texto),"\wMover HUD \yDerecha")
    
menu_additem(menu,Texto,"3")
    
    
formatex(Texto,charsmax(Texto),"\wPosicion \yCentrada")
    
menu_additem(menu,Texto,"4")
    
    
formatex(Texto,charsmax(Texto),"\wPosicion \yOriginal")
    
menu_additem(menu,Texto,"5")    
    
    
menu_display(id,menu,0)
}
public 
HandlerMenuHud(id,menu,item)
{
    if(
item == MENU_EXIT)
    return 
PLUGIN_HANDLED
    
    
switch(item)
    {
        case 
0:
        {
            
HUD_STATS_Y[id] -= 0.003
            MenuHud
(id)
        }
        case 
1
        {
            
HUD_STATS_Y[id] += 0.003
            MenuHud
(id)
        }
        case 
2
        {
            
HUD_STATS_X[id] -= 0.003
            MenuHud
(id)
        }
        case 
3
        {
            
HUD_STATS_X[id] += 0.003
            MenuHud
(id)
        }
        case 
4:
        {
            
HUD_STATS_X[id] = -1.0
            HUD_STATS_Y
[id] = 0.26
            MenuHud
(id)
        }
        case 
5:
        {
            
HUD_STATS_X[id] = 0.03
            HUD_STATS_Y
[id] = 0.08
            MenuHud
(id)
        }
    }
    return 
PLUGIN_HANDLED
}  


public 
MenuHudColor(id)
{
    new 
menu,Texto[100]
    
    
formatex(Texto,charsmax(Texto),"\rModificar \yHud")
    
menu menu_create(Texto,"HandlerMenuHudColor")

    
formatex(Texto,charsmax(Texto),"\wColor Original")
    
menu_additem(menu,Texto,"0")    
    
    
formatex(Texto,charsmax(Texto),"\wBlanco")
    
menu_additem(menu,Texto,"1")
    
    
formatex(Texto,charsmax(Texto),"\wRojo")
    
menu_additem(menu,Texto,"2")
    
    
formatex(Texto,charsmax(Texto),"\wVerde")
    
menu_additem(menu,Texto,"3")
    
    
formatex(Texto,charsmax(Texto),"\wAzul")
    
menu_additem(menu,Texto,"4")
    
    
formatex(Texto,charsmax(Texto),"\wAmarillo")
    
menu_additem(menu,Texto,"5")
    
    
formatex(Texto,charsmax(Texto),"\wVioleta")
    
menu_additem(menu,Texto,"6")    
    
    
formatex(Texto,charsmax(Texto),"\wCeleste")
    
menu_additem(menu,Texto,"7")        
    
    
    
menu_display(id,menu,0)
}
public 
HandlerMenuHudColor(id,menu,item)
{
    if(
item == MENU_EXIT)
    return 
PLUGIN_HANDLED
    
    
switch(item)
    {
        case 
0:
        {
            
red[id] = 42
            green
[id] = 255
            blue
[id] = 85
            MenuHudColor
(id)
        }
        case 
1:
        {
            
red[id] = 255
            green
[id] = 255
            blue
[id] = 255
            MenuHudColor
(id)
        }
        case 
2
        {
            
red[id] = 255
            green
[id] = 0
            blue
[id] = 0
            MenuHudColor
(id)
        }
        case 
3
        {
            
red[id] = 0
            green
[id] = 255
            blue
[id] = 0
            MenuHudColor
(id)
        }
        case 
4
        {
            
red[id] = 0
            green
[id] = 0
            blue
[id] = 255
            MenuHudColor
(id)
        }
        case 
5:
        {
            
red[id] = 255
            green
[id] = 255
            blue
[id] = 0
            MenuHudColor
(id)
        }
        case 
6:
        {
            
red[id] = 255
            green
[id] = 0
            blue
[id] = 255
            MenuHudColor
(id)
        }
        case 
7:
        {
            
red[id] = 0
            green
[id] = 255
            blue
[id] = 255
            MenuHudColor
(id)
        }        
    }
    return 
PLUGIN_HANDLED
}  

//-----------------------------------------------------------------------
//----                          StockS                               ----
//-----------------------------------------------------------------------        
        
stock Dar_arma(id, const weapon[], CSWbalas)
{
    static 
ent
    
    ent 
give_item(idweapon)
    
    if(
ent <= 0)
        
ent find_ent_by_owner(idweaponid)
    
    
cs_set_weapon_ammo(entbalas)
    
cs_set_user_bpammo(idCSW0)
}
stock create_party(masterguest) {
    
    
set_party_member(mastermaster)
    
set_party_member(masterguest)
    
set_party_member(guestmaster)
    
set_party_member(guestguest)
    
    
set_party_vars(masterStart_Amount)
    
set_party_vars(guest, ++g_PartyData[master][Amount_In_Party])
}

stock add_party_user(masterguest) {
    
    new 
Players[32], memberamount g_PartyData[master][Amount_In_Party]
        
    
get_party_index(masterPlayers)
    
    for(new 
iamounti++) {
        
        
member Players[i]
        
        
set_party_member(guestmember)
        
set_party_member(memberguest)
        
g_PartyData[member][Amount_In_Party]++
        
    }
    
    
set_party_member(guestguest)
    
set_party_vars(guestamount+1)    
}

stock set_party_member(idid2)
    
ArrayPushCell(Party_Ids[id], id2)

stock set_party_vars(idamount) {
    
    
g_PartyData[id][In_Party] = true
    g_PartyData
[id][Position] = amount-1
    g_PartyData
[id][Amount_In_Party] = amount
    
}

stock destoy_party(id) {
    
    new 
Players[32], id2Amount g_PartyData[id][Amount_In_Party]
    
get_party_index(idPlayers)
    
    for(new 
iAmounti++) {
        
id2 Players[i]
        
clear_party_user(id2)
        
ColorChat(id2BLUE"^3[^4%s^3] La party fue destruida"Prefix)
        
    }
}

stock remove_party_user(user) {
    
    new 
Players[32], idAmount g_PartyData[user][Amount_In_Party]
    
    
get_party_index(userPlayers)
    
    
clear_party_user(user)
    
    for(new 
iAmounti++) {
    
        
id Players[i]
        
        if(
id != user) {
            
            
ArrayClear(Party_Ids[id])
            
            for(new 
zAmountz++)                    
                if(
Players[z] != user)
                    
set_party_member(idPlayers[z])
                
            
g_PartyData[id][Position] = i
            g_PartyData
[id][Amount_In_Party] = Amount-1
            ColorChat
(idBLUE"^3[^4%s^3] %s salio del party"Prefixg_PartyData[user][UserName])
        }
    }
}

stock clear_party_user(id) {
    
    
ArrayClear(Party_Ids[id])
    
g_PartyData[id][In_Party] = false
    g_PartyData
[id][Position] = NONE
    g_PartyData
[id][Amount_In_Party] = NONE
    remove_task_party_hud
(id)
    
}

stock set_task_party_hud(id)
    
set_task(1.0"PartyHud"id+570__"b")
    
stock remove_task_party_hud(id)
    
remove_task(id+570)

stock remove_task_acept(id)
    if(
task_exists(id+TASK_ACEPT))
        
remove_task(id+TASK_ACEPT)
    

stock set_player_party_name(id) {
    
    if(
g_PartyData[id][UserName][0])
        return 
0
    
    get_user_name
(idg_PartyData[id][UserName], charsmax(g_PartyData[][UserName]))
    
    return 
1
}

stock is_available_to_party(id) {
    
    if(!
is_user_connected(id) || g_PartyData[id][In_Party] || g_PartyData[id][Block_Party])
        return 
false
    
    
return true
}        
    
stock get_party_index(idplayers[]) {
    
    for(new 
ig_PartyData[id][Amount_In_Party]; i++)
        
players[i] = ArrayGetCell(Party_Ids[id], i)
    
    return 
players[0] ? 0
}

load_vips()
{
    new 
buffer[64]
    
get_configsdir(buffercharsmax(buffer))
    
add(buffercharsmax(buffer), "/vips.ini")

    new 
fopen(buffer"rt")
    if(!
f)
    {
        
set_fail_state("No existe el archivo de vips")
        return 
PLUGIN_HANDLED
    
}

    new 
vips[vip_data], szmult[32], cont
    g_vips 
ArrayCreate(sizeof(vips), 1)

    while(!
feof(f))
    {
        
fgets(fbuffercharsmax(buffer))
        
trim(buffer)

        if(!
buffer[0] || buffer[0] == ';' || buffer[0] == '/')
            continue

        
parse(buffervips[szname], charsmax(vips[szname]), szmultcharsmax(szmult))

        if(!
is_str_num(szmult))
            continue

        
vips[imultiplicador] = str_to_num(szmult)
        
ArrayPushArray(g_vipsvips)
        
cont++
    }
    
fclose(f)
    
log_amx("vips cargados desde archivo: %d"cont)
    return 
PLUGIN_HANDLED

EquipoTTAlive()
{
    static 
idTerrors
    Terrors 
0
    
    
for (id 1id <= g_maxplayersid++)
    {
        if (!
is_user_connected(id) || cs_get_user_team(id) != CS_TEAM_T)
            continue
            
        if (
is_user_alive(id))
        {
            
Terrors++
        }
    }
    
    return 
1

/************************************************************************************************************************
                                                  Registro Y Eso :v
*************************************************************************************************************************/
public reg_usuarioid ) {
    
read_argsg_usuarioid ], charsmaxg_usuario[ ] ) );
    
remove_quotesg_usuarioid ] );
    
trimg_usuarioid ] );
    
    
md5g_usuarioid ], g_usuarioid ] );
    
    new 
szQuery128 ], iData];
    
    
iData] = id;
    
iData] = REGISTRAR_USUARIO;
    
    
formatexszQuerycharsmaxszQuery ), "SELECT * FROM %s WHERE Usuario=^"%s^""szTableg_usuarioid ] );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
    
    return 
PLUGIN_HANDLED;
}

public 
reg_passwordid ) {
    
read_argsg_passwordid ], charsmaxg_password[ ] ) );
    
remove_quotesg_passwordid ] );
    
trimg_passwordid ] );
    
md5g_passwordid ], g_passwordid ] );
    
    new 
szQuery256 ], iData];
    
    
iData] = id;
    
iData] = REGISTRAR_PASSWORD;
    
    
get_user_nameidg_playernameid ], charsmaxg_playername[ ] ) );
    
    
formatexszQuerycharsmaxszQuery ), "INSERT INTO %s (Usuario, Password, Pj) VALUES (^"%s^", ^"%s^", ^"%s^")"szTableg_usuarioid ], g_passwordid ], g_playernameid ] );
    
SQL_ThreadQuery(g_hTuple"DataHandler"szQueryiData2);
    
    return 
PLUGIN_HANDLED;
}

public 
log_usuarioid ) {
    
read_argsg_usuarioid ], charsmaxg_usuario[ ] ) );
    
remove_quotesg_usuarioid ] );
    
trimg_usuarioid ] );
    
md5g_usuarioid ], g_usuarioid ] );
    
    new 
szQuery128 ], iData];
    
    
iData] = id;
    
iData] = LOGUEAR_USUARIO;
    
    
formatexszQuerycharsmaxszQuery ), "SELECT * FROM %s WHERE Usuario=^"%s^""szTableg_usuarioid ] );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
    
    return 
PLUGIN_HANDLED;
}

public 
log_passwordid ) {
    
read_argsg_passwordid ], charsmaxg_password[ ] ) );
    
remove_quotesg_passwordid ] );
    
trimg_passwordid ] );
    
md5g_passwordid ], g_passwordid ] );
    
    
    new 
szQuery128 ], iData];
    
    
iData] = id;
    
iData] = LOGUEAR_PASSWORD;
    
    
formatexszQuerycharsmaxszQuery ), "SELECT * FROM %s WHERE Usuario=^"%s^" AND Password=^"%s^""szTableg_usuarioid ], g_passwordid ] );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
    
    return 
PLUGIN_HANDLED;
}
public 
cambiar_password(id)
{
    new 
szPass[34]
    
read_args(szPasscharsmax(szPass))
    
remove_quotes(szPass)
    
trim(szPass)
    
    
md5(szPassszPass)
    
    if (
equal(g_password[id], szPass))
    {
        
client_print(idprint_center"Tu clave nueva es igual a la actual.")
        
client_cmd(id"messagemode CAMBIAR_PASSWORD")
    }
    else
    {
        
g_password[id] = szPass
        
        
new szQuery[250], szData[2]
        
szData[0] = id
        szData
[1] = CAMBIAR_PASSWORD

        formatex
szQuerycharsmaxszQuery ), "UPDATE %s SET Password=^"%s^" WHERE Usuario=^"%s^""szTableszPassg_usuarioid ])

        
SQL_ThreadQueryg_hTuple"DataHandler"szQueryszData);
    }

    return 
PLUGIN_HANDLED;

public 
guardar_datosid ) {
    new 
szQuery[900 ], iData];
    
iData] = id;
    
iData] = GUARDAR_DATOS;
    
    
formatexszQuerycharsmaxszQuery ), "UPDATE %s SET Experiencia='%d',Nivel='%d',Frags='%d',Reset='%d',Plata='%d',Puntos='%d',Rangos='%d',FragsC='%d',HB1='%d',HB2='%d',HB3='%d',HB4='%d',HB5='%d',HB6='%d',HB7='%d',HB8='%d',HB9='%d',HB10='%d',HB11='%d',Red='%d',Green='%d',Blue='%d',HudX='%.2f',HudY='%.2f' WHERE id='%d'"
    
szTableg_experienciaid ],Nivel[id],Frags[id],Reset[id],Plata[id],Puntos[id],Rangos[id],FragsCarnage[id],
    
Habilidades[id][0],Habilidades[id][1],Habilidades[id][2],Habilidades[id][3],Habilidades[id][4],Habilidades[id][5],Habilidades[id][6],Habilidades[id][7],Habilidades[id][8],Habilidades[id][9],Habilidades[id][10],red[id],green[id],blue[id],HUD_STATS_X[id],HUD_STATS_Y[id], g_idid ] );
    
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
}

public 
DataHandlerfailstateHandle:Queryerror[ ], error2data[ ], datasizeFloat:time ) {
    static 
id;
    
id data];
    
    if( !
is_user_connectedid ) )
        return;

    switch( 
failstate ) {
        case 
TQUERY_CONNECT_FAILED: {
            
log_to_file"SQL_LOG_TQ.txt""Error en la conexion al MySQL [%i]: %s"error2error );
            return;
        }
        case 
TQUERY_QUERY_FAILED:
            
log_to_file"SQL_LOG_TQ.txt""Error en la consulta al MySQL [%i]: %s"error2error );
    }
    
    switch( 
data] ) {
        case 
REGISTRAR_USUARIO: {
            if( !
SQL_NumResultsQuery ) )
                
client_cmdid"messagemode CREAR_PASSWORD" );
            else {
                
client_printidprint_chat"%s El usuario ya existe."szPrefix );
                
client_cmdid"spk buttons/button10.wav" );
                
                
show_login_menuid );
            }
        }
        
        case 
REGISTRAR_PASSWORD: {
            if( 
failstate TQUERY_SUCCESS ) {
                if( 
containierror"Usuario" ) != -)
                    
client_printidprint_chat"%s El usuario ya existe."szPrefix );

                else if( 
containierror"Pj" ) != -)
                    
client_printidprint_chat"%s El nombre de personaje esta en uso."szPrefix );
                else
                    
client_printidprint_chat"%s Error al crear la cuenta. Intente nuevamente."szPrefix );
                
                
client_cmdid"spk buttons/button10.wav" );
                
                
show_login_menuid );
            }
            else {
                
client_printidprint_chat"%s Tu cuenta ha sido creada correctamente."szPrefix );
                
                new 
szQuery900 ], iData];
                
                
iData] = id;
                
iData] = CARGAR_DATOS;
                
                
formatexszQuerycharsmaxszQuery ), "SELECT id, Experiencia,Nivel,Frags,Reset,Plata,Puntos,Rangos,FragsC,HB1,HB2,HB3,HB4,HB5,HB6,HB7,HB8,HB9,HB10,HB11,Red,Green,Blue,HudX,HudY FROM %s WHERE Usuario=^"%s^""szTableg_usuarioid ] );
                
SQL_ThreadQueryg_hTuple"DataHandler"szQueryiData);
            }
            
        }
        case 
LOGUEAR_USUARIO: {
            if( 
SQL_NumResultsQuery ) )
                
client_cmdid"messagemode LOGUEAR_PASSWORD" );
            else {
                
client_printidprint_chat"%s El usuario no existe."szPrefix );
                
client_cmdid"spk buttons/button10.wav" );
                
                
show_login_menuid );
            }
        }
        case 
LOGUEAR_PASSWORD: {
            if( 
SQL_NumResultsQuery ) ) {
            
g_idid ] = SQL_ReadResultQuery);
            
SQL_ReadResultQuery3g_playernameid ], charsmaxg_playername[ ] ) );
        
            
g_experienciaid ] = SQL_ReadResultQuery)
        
Nivel[id]  = SQL_ReadResultQuery)
        
Frags[id]  = SQL_ReadResultQuery)
        
Reset[id]  = SQL_ReadResultQuery)
        
Plata[id]  = SQL_ReadResultQuery)
        
Puntos[id]  = SQL_ReadResultQuery)
        
Rangos[id]  = SQL_ReadResultQuery10 )
        
FragsCarnage[id]  = SQL_ReadResultQuery11 )
        
Habilidades[id][0]  = SQL_ReadResultQuery12 )
        
Habilidades[id][1]  = SQL_ReadResultQuery13 )
        
Habilidades[id][2]  = SQL_ReadResultQuery14 )
        
Habilidades[id][3]  = SQL_ReadResultQuery15 )
        
Habilidades[id][4]  = SQL_ReadResultQuery16 )
        
Habilidades[id][5]  = SQL_ReadResultQuery17 )
        
Habilidades[id][6]  = SQL_ReadResultQuery18 )
        
Habilidades[id][7]  = SQL_ReadResultQuery19 )
        
Habilidades[id][8]  = SQL_ReadResultQuery20 )
        
Habilidades[id][9]  = SQL_ReadResultQuery21 )
        
Habilidades[id][10]  = SQL_ReadResultQuery22 )
        
red[id]  = SQL_ReadResultQuery23 )
        
green[id]  = SQL_ReadResultQuery24 )
        
blue[id]  = SQL_ReadResultQuery25 )
        
SQL_ReadResult(Query26HUD_STATS_X[id])
        
SQL_ReadResult(Query27HUD_STATS_Y[id])
        
            
func_login_successid )
            }
            else {
                
client_printidprint_chat"%s Contrasenia incorrecta."szPrefix );
                
client_cmdid"spk buttons/button10.wav" );
                
                
show_login_menuid );
            }
        }
        case 
CARGAR_DATOS: {
            if( 
SQL_NumResultsQuery ) ) {
            
g_idid ] = SQL_ReadResultQuery);
                
            
g_experienciaid ] = SQL_ReadResultQuery);
        
Nivel[id] = SQL_ReadResultQuery)
        
Frags[id] = SQL_ReadResultQuery)
        
Reset[id] = SQL_ReadResultQuery)
        
Plata[id] = SQL_ReadResultQuery)
        
Puntos[id] = SQL_ReadResultQuery)
        
Rangos[id] = SQL_ReadResultQuery)
        
FragsCarnage[id] = SQL_ReadResultQuery)
        
        
Habilidades[id][0] = SQL_ReadResultQuery)
        
Habilidades[id][1] = SQL_ReadResultQuery10 )
        
Habilidades[id][2] = SQL_ReadResultQuery11 )
        
Habilidades[id][3] = SQL_ReadResultQuery12 )
        
Habilidades[id][4] = SQL_ReadResultQuery13 )
        
Habilidades[id][5] = SQL_ReadResultQuery14 )
        
Habilidades[id][6] = SQL_ReadResultQuery15 )
        
Habilidades[id][7] = SQL_ReadResultQuery16 )
        
Habilidades[id][8] = SQL_ReadResultQuery17 )
        
Habilidades[id][9] = SQL_ReadResultQuery18 )
        
Habilidades[id][10] = SQL_ReadResultQuery19 )
        
red[id] = SQL_ReadResultQuery20 )
        
green[id] = SQL_ReadResultQuery21 )
        
blue[id] = SQL_ReadResultQuery22 )
        
SQL_ReadResult(Query23HUD_STATS_X[id])
        
SQL_ReadResult(Query24HUD_STATS_Y[id])
        
            
func_login_successid );
            }
            else {
                
client_printidprint_chat"%s Error al cargar los datos, intente nuevamente."szPrefix );
                
show_login_menuid );
            }
        }
        case 
GUARDAR_DATOS: {
            if( 
failstate TQUERY_SUCCESS )
                
console_printid"%s Error en el guardado de datos."szPrefix );
            
            else
                
console_printid"%s Datos guardados."szPrefix );
        }
        case 
CAMBIAR_PASSWORD: {
            if( 
failstate TQUERY_SUCCESS )
                
client_printidprint_chat"%s Error al intentar cambiar la clave."szPrefix );
            else
                
client_printidprint_chat"%s Clave cambiada correctamente."szPrefix );
            } 
    }
}

public 
func_login_successid ) {
    
engclient_cmdid"jointeam""5" );
    
engclient_cmdid"joinclass""5" );
    
    
g_estadoid ] = LOGUEADO;
    
    
set_user_infoid"name"g_playernameid ] );
}

#if defined MYSQL
public MySQLx_Init( )
{
    
g_hTuple SQL_MakeDbTupleMYSQL_HOSTMYSQL_USERMYSQL_PASSMYSQL_DATEBASE );
    
    if( !
g_hTuple 
    {
        
log_to_file"SQL_ERROR.txt""No se pudo conectar con la base de datos." );
        return 
pause"a" );
    }
    
    return 
PLUGIN_CONTINUE;
}
#else

public MySQLx_Init( )
{
    new 
get_type12 ];
    
    
SQL_SetAffinity"sqlite" );
    
    
SQL_GetAffinityget_typesizeof get_type );

    if( !
equaliget_type"sqlite" ) )
    {
        
log_to_file"SQLITE_ERROR.txt""Error de conexion" );
        return 
pause"a" );
    }
    
    
g_hTuple SQL_MakeDbTuple""""""SQLITE_DATEBASE );
    
    return 
PLUGIN_CONTINUE
}
#endif

public plugin_end( )
    
SQL_FreeHandleg_hTuple ); 


Archivos adjuntos
.rar   HnsNiveles_2.rar (Tamaño: 98.84 KB / Descargas: 500)
Arroba
Responder
#2
Buen aporte!, lo que me gusta que es simple y accesible para ya empezar a editarlo a su gusto Guiño

PD: Que beneficios trae agregar una MAYÚSCULA en cada palabra? Whatever
Responder
#3
Gracias Me Alegra que te Guste Y Te Agrade.

La verdad Es que automáticamente Noce porque Pongo mayúscula a cada letra Inicial de Palabras que Pienso deberían Llevar xD
Arroba
Responder
#4
genial ! gracias por el gran aporte
tal vez lo utilice Gran sonrisa
Responder
#5
Todo muy lindo, se agradece que quieran aportar, pero... pueden leer donde crean el tema... Dafuq


AMX Mod X - Scripting / Aportes /
Responder
#6
Si destro we
Arroba
Responder
#7
Q loco se parece mucho a el primer hns q hice claro q el mio era re bug y nunca lo aregle ahora iba a ver si lo posteaba pero este esta mejor asi q no hace falta. Buen aporte
[TUT] Carnage

Fight

"El limite de los backdoors de gente q sabe programar como nostros lo impone nuestra maldad interior y creeme q soy muy malo en el interior"

Anónimo
Responder
#8
Todo muy "lindo" pero vos creaste el party?
Hi Milashkasiya CrabCrab

Soy un #Panda.. Soy solo un tipo que parece #común pero soy todo lo contrario; alguien #atípico en esta sociedad actual

[Imagen: xl0jvd-5.png]
Link
Responder
#9
Hola jollero, buen aporte, puse el hns en el sv y cuando entre al sv me aparecia loguear y crear cuenta, pongo crear cuenta, pongo el nombre de cuenta, le doy enter y no hace nada, se queda ahi como si fuera un spect todo bugeado, nadie puede entrar, a todos les pasa lo mismo, que sera?
Responder
#10
(19/02/2015, 05:42 PM)deadmau escribió: Hola jollero, buen aporte, puse el hns en el sv y cuando entre al sv me aparecia loguear y crear cuenta, pongo crear cuenta, pongo el nombre de cuenta, le doy enter y no hace nada, se queda ahi como si fuera un spect todo bugeado, nadie puede entrar, a todos les pasa lo mismo, que sera?

Pusiste los datos de tu mysql?Crab
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#11
(19/02/2015, 06:09 PM)LeiToH escribió:
(19/02/2015, 05:42 PM)deadmau escribió: Hola jollero, buen aporte, puse el hns en el sv y cuando entre al sv me aparecia loguear y crear cuenta, pongo crear cuenta, pongo el nombre de cuenta, le doy enter y no hace nada, se queda ahi como si fuera un spect todo bugeado, nadie puede entrar, a todos les pasa lo mismo, que sera?

Pusiste los datos de tu mysql?Crab

Hola leito, nono, puse los datos que estaba en el archivo rar q subio jollero, tengo que dejar los mios q vienen con el sv o q ?
Responder
#12
El mod viene con un guardado , mysql el cual aloja la base de datos , que el mod precisa . Si no tienes lo dicho anteriormente no puedes usarlo , nunca te va funcionar
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#13
(19/02/2015, 06:16 PM)LeiToH escribió: El mod viene con un guardado , mysql el cual aloja la base de datos , que el mod precisa . Si no tienes lo dicho anteriormente no puedes usarlo , nunca te va funcionar

y como consigo eso que vos decis?
Responder
#14
Tienes webhost o si tienes acceso a la pc donde alojas el servidor lo puedes instalar
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#15
Sqlite señor Leito ....

Si hiciste C&P entonces fijate en tu archivo "modules.ini" de tener el modulo sqlite Activado

Como me fijo ? Muy simple,solo tenes que ver si el "Modulo" que queres buscar este sin las ";" al principio

Un ejemplo de como deberia estar :

Cita:;mysql

sqlite
fun

engine

fakemeta

;geoip

;sockets

;regex

nvault

hamsandwich

cstrike
Arroba
Responder
#16
(19/02/2015, 06:44 PM)jollero escribió: Sqlite señor Leito ....

Si hiciste C&P entonces fijate en tu archivo "modules.ini" de tener el modulo sqlite Activado

Como me fijo ? Muy simple,solo tenes que ver si el "Modulo" que queres buscar este sin las ";" al principio

Un ejemplo de como deberia estar :

Cita:;mysql

sqlite
fun

engine

fakemeta

;geoip

;sockets

;regex

nvault

hamsandwich

cstrike



hola jollero, cuales tengo que activar, te muestro como lo tengo

Cita:Activar Y/O Desactivar MODULOS


;mysql
;sqlite
fun
;engine
;fakemeta
;geoip
;sockets
;regex
;nvault
orpheu_amxx
cstrike
csx
;hamsandwich
;csdm_amxx (Sacar el ; del principio para activar)
Responder
#17
(19/02/2015, 06:44 PM)jollero escribió: Sqlite señor Leito ....

Si hiciste C&P entonces fijate en tu archivo "modules.ini" de tener el modulo sqlite Activado

Como me fijo ? Muy simple,solo tenes que ver si el "Modulo" que queres buscar este sin las ";" al principio

Un ejemplo de como deberia estar :

Cita:;mysql

sqlite
fun

engine

fakemeta

;geoip

;sockets

;regex

nvault

hamsandwich

cstrike

perdon solo que asi como esta , esta puesto para mysql
[Imagen: tumblr_mt8w6d7yz11rn3500o1_400.gif]
Responder
#18
(19/02/2015, 06:47 PM)deadmau escribió:
(19/02/2015, 06:44 PM)jollero escribió: Sqlite señor Leito ....

Si hiciste C&P entonces fijate en tu archivo "modules.ini" de tener el modulo sqlite Activado

Como me fijo ? Muy simple,solo tenes que ver si el "Modulo" que queres buscar este sin las ";" al principio

Un ejemplo de como deberia estar :

Cita:;mysql

sqlite
fun

engine

fakemeta

;geoip

;sockets

;regex

nvault

hamsandwich

cstrike



hola jollero, cuales tengo que activar, te muestro como lo tengo

Cita:Activar Y/O Desactivar MODULOS


;mysql
;sqlite
fun
;engine
;fakemeta
;geoip
;sockets
;regex
;nvault
orpheu_amxx
cstrike
csx
;hamsandwich
;csdm_amxx (Sacar el ; del principio para activar)
---------->
Cita:;mysql
sqlite
fun
engine
fakemeta
;geoip
;sockets
;regex
;nvault
orpheu_amxx
cstrike
csx
hamsandwich
;csdm_amxx (Sacar el ; del principio para activar)
Arroba
Responder
#19
[/quote]
---------->
Cita:;mysql
sqlite
fun
engine
fakemeta
;geoip
;sockets
;regex
;nvault
orpheu_amxx
cstrike
csx
hamsandwich
;csdm_amxx (Sacar el ; del principio para activar)
[/quote]

Listo jollero solucionado, ahora me podes decir porque arranco con arma? jaja, como desactivo eso ?
Responder
#20
Estas hockeando el spawn ? con otro plugin
Arroba
Responder
#21
(19/02/2015, 07:50 PM)jollero escribió: Estas hockeando el spawn ? con otro plugin

ah ya viene con anti-spam ? sisi tengo un anti spam q le puse yo por eso! o spawn? no entiendo jaja! tengo un plugin q es el del parachute! capaz q es ese
POSDATA: nose que es hockear ni spawn!! jaja
Responder
#22
Tengo un error que debe ser muy basico pero no lo se resolver cuando empeiza la rondas aparecen tanto CTS como TTS con arma, osea no funciona la frostnade
Gracias de antemano.
Responder
#23
(11/03/2015, 04:44 PM)devon escribió: Tengo un error que debe ser muy basico pero no lo se resolver cuando empeiza la rondas aparecen tanto CTS como TTS con arma, osea no funciona la frostnade
Gracias de antemano.

Tenes que poner como plugin aparte el HideNSeek de Exolent, si no sabes hacer uno desde 0. Y te va a andar todo perfecto.
Lo de la frostnade es otro plugin aparte, buscalo.
Responder
#24
(11/03/2015, 05:20 PM)Kisuke escribió:
(11/03/2015, 04:44 PM)devon escribió: Tengo un error que debe ser muy basico pero no lo se resolver cuando empeiza la rondas aparecen tanto CTS como TTS con arma, osea no funciona la frostnade
Gracias de antemano.

Tenes que poner como plugin aparte el HideNSeek de Exolent, si no sabes hacer uno desde 0. Y te va a andar todo perfecto.
Lo de la frostnade es otro plugin aparte, buscalo.

Ahora si muchas gracias por ayudar!

Ahora surge otro problema, no funciona el menu del hns laser apretando la m
Responder
#25
(11/03/2015, 05:35 PM)devon escribió:
(11/03/2015, 05:20 PM)Kisuke escribió:
(11/03/2015, 04:44 PM)devon escribió: Tengo un error que debe ser muy basico pero no lo se resolver cuando empeiza la rondas aparecen tanto CTS como TTS con arma, osea no funciona la frostnade
Gracias de antemano.

Tenes que poner como plugin aparte el HideNSeek de Exolent, si no sabes hacer uno desde 0. Y te va a andar todo perfecto.
Lo de la frostnade es otro plugin aparte, buscalo.

Ahora si muchas gracias por ayudar!

Ahora surge otro problema, no funciona el menu del hns laser apretando la m

Tenes q cambiar una cvar del hns de exolent q bloquea el choseteam
[TUT] Carnage

Fight

"El limite de los backdoors de gente q sabe programar como nostros lo impone nuestra maldad interior y creeme q soy muy malo en el interior"

Anónimo
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)