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

[TUT] Crear niveles por MACRO.


  
 
 
Thread Tools Display Modes
Author Message
fearAR
Veteran Member
Join Date: Oct 2010
Old 12-12-2011 , 21:16   [TUT] Crear niveles por MACRO.
#1

Bien, como nunca vi que lo hayan posteado en alguna parte, o si lo postearon no me importa, aquí les demostrare como utilizar MACRO's para realizar cuentas matemáticas útiles para diferentes tipos de ecuaciones. En este caso el conteo de la EXP, AP, Frags, necesarios para el siguiente nivel.

Un MACRO se define de esta forma:

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

/* Como es una constante en el tiempo, en programación se utilizan mayúsculas en el nombre del mismo */

/* Para declarar parámetros en un MACRO, se utiliza un '%' seguido de un número que lo identifique, los parametros deben ir sin separaciones luego de la coma, me ha pasado con diferentes MACRO's que el valor que retorna, a veces termina en basura */

/* Luego se pasa a declarar la ecuación, o simplemente atribuirla a una variable */

/* Como se que se van a poner a experimentar con los MACRO's (supongo o.o), alguno por ahí le va a pasar lo mismo que a mi, dentro de un macro no se pueden utilizar condicionales, no me refiero a IF o ELSE si no '?' y ':', me terminaba tirando un error de compilacion */ 

/* Bien les pasare una ecuación que no es muy utilizada pero es muy buena, debido a que todos se basan en una regla de superioridad al valor anterior, en este caso ustedes imaginen que yo tengo una array como esta:*/

/* new iValues[] = { 10, 30, 60, 100, 150, ... }; */

/* Como ven la EXP requerida para el siguiente nivel, aumenta tipo piramide, ya que el valor que necesita actualmente para avanzar en nivel, es el valor anterior mas el actual, lo cual me rompio demasiado las bolas, hasta que encontre cuya ecuación capaz de realizar ese conteo, se llama "Sucesión de Fibonacci, se debe trabajar con floats ya que un momento el posible resultado de una parte de la ecuacion retorna decimales necesarios para la sucesión de la ecuación */

// Experiencia para siguiente nivel.
#define NOMBRE_DEL_MACRO(%1)        floatround( ( (%1 + 1) * float(%1 / 2) ) * 10 )

// Experiencia del nivel anterior.
#define NOMBRE_DEL_MACRO2(%1)        floatround( ( %1 * float((%1-1) / 2) ) * 10 )

/* Con este MACRO, tenemos todos la EXP necesaria, sin necesidad de un Array, la cual retornara valores, si se podria decir infinitamente, lo cual no es completamente cierto, ya que todo tiene un limite */

/* Definimos las variables necesarias para el conteo del nivel y experiencia */

new g_level[33];    // Conteo de level
new g_exp[33];        // Conteo de EXP

public plugin_init()
{
    
register_plugin"NOMBRE""VERSION""AUTOR" ); // Registro el plugin.
    
    // Llamo a la forward de la libreria Ham Sandwich: Ham_Killed
    /* Esta función es llamada cuando una entidad de Classname "player" muere (la vida de la entidad es igual o menor a 0) */
    /* El 4to parametro indica que la función se ejecutara posterior a la muerte de la entidad y no antes, esto se debe a no interferir con ninguna función del CS Engine */
    
RegisterHamHam_Killed"player""Ham_PlayerKilled");
}

public 
client_putinserver(id)
{
    
// Reseteo valores cuando el usuario esta dentro del servidor
    
g_level[id] = 1;
    
g_exp[id] = 0;
}

/* Esta función devuelve los valores, tales como la victima, y el atacante cuando un usuario es asesinado */
public Ham_PlayerKilledvictimattacker 
{
    
// Si el atacante o victima no se encuentran conectados, no prosigo
    
if( !is_user_connected(victim) || !is_user_connected(attacker) )
        return 
HAM_IGNORED;

    
// Si el equipo de la victima es igual al del atacante, no prosigo
    
if( get_user_team(victim) == get_user_team(attacker) )
        return 
HAM_IGNORED;

    
// Si todo se cumple, le aumento un punto de experiencia al atacante
    
update_xp(attacker1);
    
    
// Devuelvo un valor, debido a las reglas de compilación
    
return HAM_IGNORED;
}

/* Parametros: 
    @id Es el index del usuario, el numero que identifica al cliente conectado al servidor 
    @value Es el valor que puede diferir entre negativo y positivo, el cual segun su signo, aumenta o disminuye el valor de la EXP */
public update_xp(idvalue)
{
    
/* Si el valor de value es negativo, y es mayor que la EXP, no prosigo */
    
if( ( g_exp[id] + value ) < ) return 0;

    
/* Aumento o disminuyo el valor de la EXP */
    
g_exp[id] += value;

    
/* Si el valor de value es positivo ... */
    
if( value )
    {
        
/* Mientras la experiencia que tenga sea mayor que la EXP necesaria para el 
        siguiente nivel */
        
while( g_exp[id] >= NOMBRE_DEL_MACRO(g_level[id]) )
        {
            
/* Verifico si el usuario sigue conectado, si no devuelvo valor y no prosigo */
            
if( !is_user_connected(id) ) return 0;    

            
/* Le imprimo un mensaje al usuario y aumento el nivel */
            
client_print(idprint_chat"Has aumentado de nivel: %d", ++g_level[id]);
        }
    }
    else 
// Si el valor de value no es positivo
    
{
        
/* Mientras la experiencia sea menor que la EXP necesaria para el nivel anterior al actual */
        
while( g_exp[id] < NOMBRE_DEL_MACRO2(g_level[id]) )
        {
            
/* Verifico si el usuario sigue conectado, si no devuelvo valor y no prosigo */
            
if( !is_user_connected(id) ) return 0;
            
/* Le imprimo un mensaje al usuario y disminuyo el nivel */
            
client_print(idprint_chat"Has disminuido de nivel: %d", --g_level[id]);
        }
    }
    
    
/* Devuelvo valor, debido a las reglas de compilación */
    
return 1;

Saludos, cualquier duda, correcion estoy a disposición.
__________________
~~~~ NPC AI ~~~~

[ Pathfinding - OK ]
[ Citizen AI - OK ]
[ Handle Weapons - --- ]

Last edited by fearAR; 12-12-2011 at 21:18.
fearAR is offline
Send a message via MSN to fearAR
rak
Veteran Member
Join Date: Oct 2011
Location: banned country
Old 12-12-2011 , 21:24   Re: [TUT] Crear niveles por MACRO.
#2

Buen post!.. por ahora solo uso 2 macros para modificar los valores de los items extra.. igual tengo varios links guardados sobre macros que subiste al foro

EJ:
Macro Reset

xD
__________________

www.amxmodx-es.com

Steam: Luchokoldo
rak is offline
Send a message via MSN to rak Send a message via Skype™ to rak
Neeeeeeeeeel.-
Some Guy Yellin'
Join Date: Jul 2010
Location: Argentina
Old 12-13-2011 , 00:26   Re: [TUT] Crear niveles por MACRO.
#3

Es verdad nunca había visto un tuto de macros para levels.
Y voy a ver como me funciona eso para aumentar el valor de los items extra porque intenté hacer algo parecido a como tengo en los niveles pero no sirve.

Gracias!
__________________

Last edited by Neeeeeeeeeel.-; 12-15-2011 at 11:13.
Neeeeeeeeeel.- is offline
Send a message via Skype™ to Neeeeeeeeeel.-
Old 12-13-2011, 09:51
Haseeb
This message has been deleted by Haseeb.
CoQuito
Senior Member
Join Date: Jul 2011
Location: Hempstead, New York
Old 12-13-2011 , 09:55   Re: [TUT] Crear niveles por MACRO.
#4

Quote:
Originally Posted by Neeeeeeeeeel.- View Post
Es verdad nunca había visto un tuto de marcos para levels.
Y voy a ver como me funciona eso para aumentar el valor de los items extra porque intenté hacer algo parecido a como tengo en los niveles pero no sirve.

Gracias!
marcos ? Quien es marcos ?
__________________
CoQuito is offline
Send a message via MSN to CoQuito Send a message via Skype™ to CoQuito
kratos.pro
Senior Member
Join Date: Nov 2011
Location: New york
Old 12-13-2011 , 10:40   Re: [TUT] Crear niveles por MACRO.
#5

Marcos jajjajajajajajaajajaaj

PD: Es macro xD
__________________
kratos.pro is offline
Send a message via MSN to kratos.pro
Exc3ll@N
Veteran Member
Join Date: Oct 2009
Location: Donde me lleve el viento
Old 12-13-2011 , 13:17   Re: [TUT] Crear niveles por MACRO.
#6

FearAr , siempre aportando vos eh!! , buen post , pero flashea cualquiera los prints , lo probe y flashea , igual lo mande en el hud y anda bien , igual buen th
__________________
Haz lo que sientas y te haga feliz.
Exc3ll@N is offline
Send a message via MSN to Exc3ll@N
Old 12-13-2011, 15:59
Haseeb
This message has been deleted by Haseeb.
XINLEI
me too
Join Date: Jun 2011
Location: Colombian Coffee storage
Old 12-13-2011 , 17:04   Re: [TUT] Crear niveles por MACRO.
#7

Dentro (a menos que encuentre la manera de extraer los ammopacks del zp).
XINLEI is offline
rak
Veteran Member
Join Date: Oct 2011
Location: banned country
Old 12-13-2011 , 19:05   Re: [TUT] Crear niveles por MACRO.
#8

Quote:
Originally Posted by Haseeb View Post
eso se tendria que poner dentro del zp4.3 ?? se podria conbinar con el plugin de abajo o ya el plugin de abajo lo tiene ya echo ??

PHP Code:
/* Plugin generated by AMXX-Studio */

#include <amxmodx> 
#include <amxmisc>
#include <cstrike>  
#include <nvault>  
#include <fun>
#include <fakemeta>
#include <hamsandwich> 

#define MAXCLASSES 19
#define MODELSET_TASK 100
#define MODELCHANGE_DELAY 0.5

enum {  
    
PLAYERLEVEL_1,
    
PLAYERLEVEL_2,
    
PLAYERLEVEL_3,
    
PLAYERLEVEL_4,
    
PLAYERLEVEL_5,
    
PLAYERLEVEL_6,
    
PLAYERLEVEL_7,
    
PLAYERLEVEL_8,
    
PLAYERLEVEL_9,
    
PLAYERLEVEL_10,
    
PLAYERLEVEL_11,
    
PLAYERLEVEL_12,
    
PLAYERLEVEL_13,
    
PLAYERLEVEL_14,
    
PLAYERLEVEL_15,
    
PLAYERLEVEL_16,
    
PLAYERLEVEL_17,
    
PLAYERLEVEL_18
};

enum {  
    
CLASS_NONE 0,  
    
CLASS_CIUDADANO,  
    
CLASS_RECLUTA,
    
CLASS_CADETE,  
    
CLASS_SOLDADO,  
    
CLASS_CABO,  
    
CLASS_SARGENTO,  
    
CLASS_BRIGADA,  
    
CLASS_SUBTENIENTE,  
    
CLASS_TENIENTE,  
    
CLASS_SUBOFICIAL,  
    
CLASS_OFICIAL,  
    
CLASS_STARS,  
    
CLASS_MERCENARIO,  
    
CLASS_BIOSOLDIER,  
    
CLASS_HIBRIDO,  
    
CLASS_SUPERSOLDADO,  
    
CLASS_DESTRUCTOR,  
    
CLASS_DEMOLEDOR  
};

new const 
CLASSES[MAXCLASSES][] = {  
    
"None",  
    
"Ciudadano",  
    
"Recluta",  
    
"Cadete",  
    
"Soldado",  
    
"Cabo",  
    
"Sargento",  
    
"Brigada",  
    
"SubTeniente",  
    
"Teniente",  
    
"SubOficial",  
    
"Oficial",  
    
"Stars",  
    
"Mercenario",  
    
"Biosoldier",  
    
"Hibrido",  
    
"SuperSoldado",  
    
"Destructor",  
    
"Demoledor"  
};

new const 
LEVELS[19] = {  
    
0,   
    
100,   
    
400,   
    
100,  
    
2300,  
    
6200,   
    
14300,  
    
28600,   
    
57200,  
    
114400,  
    
228800,   
    
457600,   
    
915200,   
    
1830400,  
    
3660800,  
    
7321600,   
    
14643200,   
    
29286400,  
    
58572800  
};  

new 
TengoClase[33]; 
new 
PlayerXP[33], PlayerLevel[33], PlayerClass[33];   
new 
gCvar_KillgCvar_Saveg_Vault;

new 
g_has_custom_model[33];
new 
g_player_model[33][32];

new 
Float:g_models_targettime
new Float:g_roundstarttime

new const HUMANOS_MODELS[] [] = { "zpleohas_r1_ciudadano.mdl""zpleohas_r2_recluta.mdl""zpleohas_r3_cadete.mdl""zpleohas_r4_soldado.mdl""zpleohas_r5_cabo.mdl""zpleohas_r6_sargento.mdl""zpleohas_r7_brigada.mdl""zpleohas_r8_subteniente.mdl""zpleohas_r9_teniente.mdl""zpleohas_r10_suboficial.mdl""zpleohas_r11_oficial.mdl""zpleohas_r12_stars.mdl""zpleohas_r13_mercenario.mdl""zpleohas_r14_biosoldier.mdl""zpleohas_r15_hibrido.mdl""zpleohas_r16_supersoldado.mdl""zpleohas_r17_destructor.mdl""zpleohas_r18_demoledor.mdl" }

public 
plugin_init()  
{  
    
register_plugin("MoD Zombie Revenge""1.0""LeOnArD")  
    
    
register_event("ResetHUD","skill","be");
    
register_event("DeathMsg""eDeath""a");
    
register_event"HLTV""event_round_start""a""1=0""2=0" );
    
    
gCvar_Save =   register_cvar("xp_save""1");
    
gCvar_Kill =   register_cvar("xp_per_kill""30");
    
g_Vault =   nvault_open("animod");
    
    
RegisterHamHam_Spawn "player" "fw_spawn" );
    
RegisterHamHam_Spawn "player" "fw_PlayerSpawn");
    
    
register_forwardFM_SetClientKeyValue"fw_SetClientKeyValue" );
    
register_forwardFM_ClientUserInfoChanged"fw_ClientUserInfoChanged" );
    
    
register_concmd("amx_takexp""cmd_take_xp"ADMIN_KICK"<target> <amount>" );   
    
register_concmd("amx_givexp""cmd_give_xp"ADMIN_KICK"<target> <amount>" );  
    
    
register_clcmd("say /class""ChangeClass");
    
register_clcmd("say /xp""ShowHud"); 
}  

public 
plugin_precache()
{
    new 
i,modelpath[100]
    
    for (
0sizeof HUMANOS_MODELSi++)
    {
        
formatex(modelpathsizeof modelpath 1"models/player/%s/%s.mdl"HUMANOS_MODELS[i],  HUMANOS_MODELS[i])
        
engfuncEngFunc_PrecacheModelmodelpath )
    }
    
    public 
fw_spawn (id
    { 
        if ( !
is_user_alive (id))
            return 
PLUGIN_HANDLED;
        
        if (
TengoClase [id] == 1)
            
ChangeClass (id);
        
        return 
PLUGIN_HANDLED 
    }   
    
    public 
fw_PlayerSpawnid )
    {
        if ( !
is_user_aliveid ) || !cs_get_user_teamid ) )
            return;
        
        
remove_taskid MODELSET_TASK )
        
        if ( 
cs_get_user_team(id) == CS_TEAM_CT || cs_get_user_team(id) == CS_TEAM_T )
        {
            switch(
PlayerClass[id])
            {
                case 
CLASS_CIUDADANOcopyg_player_model[id], charsmaxg_player_model[] ), HUMANOS_MODELS[CLASS_CIUDADANO-1] )
                    case 
CLASS_RECLUTAcopyg_player_model[id], charsmaxg_player_model[CLASS_RECLUTA-1] ),  )
                    case 
CLASS_CADETEcopyg_player_model[id], charsmaxg_player_model[CLASS_CADETE-1] ),  )
                    case 
CLASS_SOLDADOcopyg_player_model[id], charsmaxg_player_model[CLASS_SOLDADO-1] ),  )
                    case 
CLASS_CABOcopyg_player_model[id], charsmaxg_player_model[CLASS_CABO-1] ),  )
                    case 
CLASS_SARGENTOcopyg_player_model[id], charsmaxg_player_model[CLASS_SARGENTO-1] ),  )
                    case 
CLASS_BRIGADAcopyg_player_model[id], charsmaxg_player_model[CLASS_BRIGADA-1] ),  )
                    case 
CLASS_SUBTENIENTEcopyg_player_model[id], charsmaxg_player_model[CLASS_SUBTENIENTE-1] ),  )
                    case 
CLASS_TENIENTEcopyg_player_model[id], charsmaxg_player_model[CLASS_TENIENTE-1] ),  )
                    case 
CLASS_SUBOFICIALcopyg_player_model[id], charsmaxg_player_model[CLASS_SUBOFICIAL-1] ),  )
                    case 
CLASS_OFICIALcopyg_player_model[id], charsmaxg_player_model[CLASS_OFICIAL-1] ),  )
                    case 
CLASS_STARScopyg_player_model[id], charsmaxg_player_model[CLASS_STARS-1] ),  )
                    case 
CLASS_MERCENARIOcopyg_player_model[id], charsmaxg_player_model[CLASS_MERCENARIO-1] ),  )
                    case 
CLASS_BIOSOLDIERcopyg_player_model[id], charsmaxg_player_model[CLASS_BIOSOLDIER-1] ),  )
                    case 
CLASS_HIBRIDOcopyg_player_model[id], charsmaxg_player_model[CLASS_HIBRIDO-1] ),  )
                    case 
CLASS_SUPERSOLDADOcopyg_player_model[id], charsmaxg_player_model[CLASS_SUPERSOLDADO-1] ),  )
                    case 
CLASS_DESTRUCTORcopyg_player_model[id], charsmaxg_player_model[CLASS_DESTRUCTOR-1] ),  )
                    case 
CLASS_DEMOLEDORcopyg_player_model[id], charsmaxg_player_model[CLASS_DEMOLEDOR-1] ),  )
                }
            
            new 
currentmodel[32]
            
fm_get_user_modelidcurrentmodelcharsmaxcurrentmodel ) )
            
            if ( !
equalcurrentmodelg_player_model[id] ) )
            {
                if ( 
get_gametime() - g_roundstarttime 5.0 )
                    
set_task5.0 MODELCHANGE_DELAY"fm_user_model_update"id MODELSET_TASK )
                else
                    
fm_user_model_updateid MODELSET_TASK )
            }
        }
        else if ( 
g_has_custom_model[id] )
        {
            
fm_reset_user_modelid )
        }
    }
    
    public 
fw_SetClientKeyValueid, const infobuffer[], const key[] )
    {
        if ( 
g_has_custom_model[id] && equalkey"model" ) )
            return 
FMRES_SUPERCEDE;
        
        return 
FMRES_IGNORED;
    }
    
    public 
fw_ClientUserInfoChangedid )
    {
        if ( !
g_has_custom_model[id] )
            return 
FMRES_IGNORED;
        
        static 
currentmodel[32]
        
fm_get_user_modelidcurrentmodelcharsmaxcurrentmodel ) )
        
        if ( !
equalcurrentmodelg_player_model[id] ) && !task_existsid MODELSET_TASK ) )
            
fm_set_user_modelid MODELSET_TASK )
        
        return 
FMRES_IGNORED;
    }
    
    public 
skill(id)  
    {  
        if (
is_user_alive (id))  
        {  
            if (
PlayerClass[id] == CLASS_CIUDADANO || PlayerLevel[id] == 1// Checks Class and Level.  
            
{  
                
set_user_health(id100);
                
set_user_gravity(id1.0);
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_hegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gCiudadano !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_RECLUTA || PlayerLevel[id] == 2)
            {  
                
set_user_health(id115);
                
set_user_armor(id10);  
                
set_user_gravity(id1.0);
                
give_item(id,"weapon_tmp");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gRecluta !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_CADETE || PlayerLevel[id] == 3)
            {  
                
set_user_health(id130);
                
set_user_armor(id30); 
                
set_user_gravity(id1.0);
                
give_item(id,"weapon_mp5");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gCadete !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_SOLDADO || PlayerLevel[id] == 4)
            {  
                
set_user_health(id150);
                
set_user_armor(id35); 
                
set_user_gravity(id1.0);
                
give_item(id,"weapon_m4a1");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSoldado !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_CABO || PlayerLevel[id] == 5)
            {  
                
set_user_health(id175);
                
set_user_armor(id50); 
                
set_user_gravity(id0.9);
                
give_item(id,"weapon_mp5");  
                
give_item(id,"weapon_tmp");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gCabo !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_SARGENTO || PlayerLevel[id] == 6)
            {  
                
set_user_health(id250);
                
set_user_armor(id55);  
                
set_user_gravity(id0.9);
                
give_item(id,"weapon_m4a1");  
                
give_item(id,"weapon_mp5");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSargento !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_BRIGADA || PlayerLevel[id] == 7)
            {  
                
set_user_health(id350);
                
set_user_armor(id70);  
                
set_user_gravity(id0.9);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_m4a1");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gBrigada !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_SUBTENIENTE || PlayerLevel[id] == 8)
            {  
                
set_user_health(id400);
                
set_user_armor(id80);  
                
set_user_gravity(id0.8);
                
give_item(id,"weapon_m249");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSubTeniente !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_TENIENTE || PlayerLevel[id] == 9)
            {  
                
set_user_health(id450);
                
set_user_armor(id90);  
                
set_user_gravity(id0.8);
                
give_item(id,"weapon_famas");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gTeniente !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_SUBOFICIAL || PlayerLevel[id] == 10)
            {  
                
set_user_health(id510);
                
set_user_armor(id100); 
                
set_user_gravity(id0.8);
                
give_item(id,"weapon_galil");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSubOficial !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_OFICIAL || PlayerLevel[id] == 11)
            {  
                
set_user_health(id560); // gives him 560 health if he's a Cow on level 11  
                
set_user_armor(id150);  
                
set_user_gravity(id0.7);
                
give_item(id,"weapon_famas");  
                
give_item(id,"weapon_galil");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gOficial !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_STARS || PlayerLevel[id] == 12)
            {  
                
set_user_health(id600);
                
set_user_armor(id200);  
                
set_user_gravity(id0.7);
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gStars !y. Eres la aniquilacion a distancia." )  
            }    
            
            if (
PlayerClass[id] == CLASS_MERCENARIO || PlayerLevel[id] == 13)
            {  
                
set_user_health(id650);
                
set_user_armor(id270);  
                
set_user_gravity(id0.6);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_m249");  
                
give_item(id,"weapon_sg552");  
                
give_item(id,"weapon_m3");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gMercenario !y. Eres una Bestia Humana" )  
            }    
            
            if (
PlayerClass[id] == CLASS_BIOSOLDIER || PlayerLevel[id] == 14)
            {  
                
set_user_health(id675);
                
set_user_armor(id300);  
                
set_user_gravity(id0.6);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_aug");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !g BioSoldier !y. Tu ADN esta mezclado con el Virus." )  
            }    
            
            if (
PlayerClass[id] == CLASS_HIBRIDO || PlayerLevel[id] == 15)
            {  
                
set_user_health(id725);
                
set_user_armor(id350);  
                
set_user_gravity(id0.4);
                
give_item(id,"weapon_knife");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gHibrido !y. Eres la combinacion perfecta entre Humano y Zombie." )  
            }    
            
            if (
PlayerClass[id] == CLASS_SUPERSOLDADO || PlayerLevel[id] == 16)
            {  
                
set_user_health(id750);
                
set_user_armor(id400);  
                
set_user_gravity(id0.5);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_aug");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSuperSoldado !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_DESTRUCTOR || PlayerLevel[id] == 17)
            {  
                
set_user_health(id775);
                
set_user_armor(id450);
                
set_user_gravity(id0.5);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_aug");  
                
give_item(id,"weapon_m3");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gDestructor !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_DEMOLEDOR || PlayerLevel[id] == 18)
            {  
                
set_user_health(id800);
                
set_user_armor(id500);  
                
set_user_gravity(id0.4);  
                
set_user_maxspeed(id400.0);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_aug");  
                
give_item(id,"weapon_p90");  
                
give_item(id,"weapon_m3");  
                
give_item(id,"weapon_elite");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gDemoledor !y. Eres una Bestia Diabolica." )  
            }   
        }  
    }  
    
    public 
eDeath()   
    {  
        new 
attacker read_data);
        new 
iVictim read_data);
        new 
clipammoweapon get_user_weapon(attackerclipammo);
        
        if(
attacker == iVictim || !is_user_connected(attacker) || get_user_team(attacker) == get_user_team(iVictim)) return;
        
        new 
weapon[7]
        
read_data4weaponcharsmaxweapon ) )  
        
        
PlayerXP[attacker] += get_pcvar_num(gCvar_Kill);
        
        while(
PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])  
        {
            
ChatColor(attacker"!g[ AMXX ] !y¡Felicidades! Eres Nivel !g%i !yClase !g%s !y!"PlayerLevel[attacker], CLASSES[PlayerClass[attacker]]);
            
PlayerLevel[attacker] += 1;
        }
        
        
ShowHud(attacker);
        
SaveData(attacker);
    }    
    
    public 
event_round_start()
    {
        
g_roundstarttime get_gametime()
    }
    
    public 
ShowHud(id)  
    {  
        
set_hudmessage(255000.750.0106.015.0);
        
show_hudmessage(id"Nivel: %i^nXP: %i^nClase: %s"PlayerLevel[id], PlayerXP[id],CLASSES[PlayerClass[id]]);
    }  
    
    public 
cmd_give_xpidlevel,cid )  
    {  
        if( ! 
cmd_access idlevelcid) )  
            return 
PLUGIN_HANDLED;  
        
        new 
target[32], amount[21], reason[21];  
        
        
read_argv1target31 );  
        
read_argv(2amount20 );  
        
read_argv3reason20 );  
        
        new 
player cmd_targetidtarget);  
        
        if( ! 
player )   
            return 
PLUGIN_HANDLED;  
        
        new 
admin_name[32], player_name[32];  
        
get_user_nameidadmin_name31 );  
        
get_user_nameplayerplayer_name31 );  
        
        new 
expnum str_to_numamount );  
        
        
PlayerXP[player] += expnum;  
        
        switch( 
get_cvar_num "amx_show_activity" ) )  
        {  
            case 
1client_print0print_chat"ADMIN: dio %i XP a %s."expnumplayer_name );  
                case 
2client_print0print_chat"ADMIN %s: dio %i XP a %s."admin_nameexpnumplayer_name );  
            }  
        
        
ChatColor(id"!g[ AMXX ] !yTu recibiste %i XP. (Total: %d)"expnumPlayerXP[player] );  
        
        
SaveDataid ); 
        
        return 
PLUGIN_CONTINUE;  
    }  
    
    public 
cmd_take_xpidlevel,cid )  
    {  
        if( ! 
cmd_access idlevelcid) )  
            return 
PLUGIN_HANDLED;  
        
        new 
target[32], amount[21], reason[21];  
        
        
read_argv1target31 );  
        
read_argv2amount20 );  
        
read_argv3reason20 );  
        
        new 
player cmd_targetidtarget);  
        
        if( ! 
player )   
            return 
PLUGIN_HANDLED;  
        
        new 
admin_name[32], player_name[32];  
        
get_user_nameidadmin_name31 );  
        
get_user_nameplayerplayer_name31 );  
        
        new 
expnum str_to_numamount );  
        
        
PlayerXP[player] -= expnum;  
        
        switch(
get_cvar_num("amx_show_activity"))  
        {  
            case 
1client_print0print_chat"ADMIN: quito %i XP a %s."expnumplayer_name );  
                case 
2client_print0print_chat"ADMIN %s: quito %i XP a %s."admin_nameexpnumplayer_name );  
            }  
        
        
ChatColor(id"!g[ AMXX ] !yTe quitron %i XP. (Total: %d)"expnumPlayerXP[player] );  
        
        
SaveDataid );
        
        return 
PLUGIN_CONTINUE;  
    }  
    
    public 
ChangeClass(id)  
    {  
        new 
menu menu_create("Menu de Clases" "Class_Handle");  
        
menu_additem(menu ,"Ciudadano""1" 0);  
        
menu_additem(menu ,"Recluta""2" 0);  
        
menu_additem(menu ,"Cadete""3" 0);  
        
menu_additem(menu ,"Soldado""4" 0);  
        
menu_additem(menu ,"Cabo""5" 0);  
        
menu_additem(menu ,"Sargento""6" 0);  
        
menu_additem(menu ,"Brigada""7" 0);  
        
menu_additem(menu ,"SubTeniente""8" 0);  
        
menu_additem(menu ,"Teniente""9" 0);  
        
menu_additem(menu ,"SubOficial""10" 0);  
        
menu_additem(menu ,"Oficial""11" 0);  
        
menu_additem(menu ,"Stars""12" 0);  
        
menu_additem(menu ,"Mercenario""13" 0);  
        
menu_additem(menu ,"Biosoldier""14" 0);  
        
menu_additem(menu ,"Hibrido""15" 0);  
        
menu_additem(menu ,"SuperSoldado""16" 0);  
        
menu_additem(menu ,"Destructor""17" 0);  
        
menu_additem(menu ,"Demoledor""18" 0);  
        
        
menu_setpropmenuMPROP_BACKNAME"Anterior" )  
        
menu_setpropmenuMPROP_NEXTNAME"Siguiente" )  
        
menu_setpropmenuMPROP_EXITNAME"Salir" )  
        
menu_setprop(menu MPROP_EXIT MEXIT_ALL);   
        
        
menu_display(id menu 0);   
        
        return 
PLUGIN_CONTINUE
    }  
    
    public 
Class_Handle(id menu item)   
    {  
        if(
item == MENU_EXIT)   
        {  
            
            
menu_destroy(menu);  
            
        }  
        
        new 
szCommand[6] , szName[64];  
        new 
access callback;  
        
        
menu_item_getinfo(menu item access szCommand szName 63 callback);  
        
        new 
str_to_num(szCommand);
        if(
PlayerClass[id] != i)  
        {  
            
PlayerClass[id] = i;
            
ChatColor(id"!g[ AMXX ] !ySeras un !g%s !yen la proxima ronda.",CLASSES[i]); 
        }  
        else  
        {  
            
ChatColor(id"!g[ AMXX ] !yAhora eres un !g%s !y.",CLASSES[i]);
        }  
        
        
menu_destroy(menu);  
        return 
PLUGIN_CONTINUE;
    }  
    
    public 
client_connect(id)  
    {  
        if(
get_pcvar_num(gCvar_Save) == 1)  
        {  
            
            
LoadData(id);
        }  
    }  
    
    public 
client_disconnect(id)  
    {  
        if(
get_pcvar_num(gCvar_Save) == 1)  
        {  
            
            
SaveData(id);
        }  
        
PlayerXP[id] =   0
        
PlayerLevel[id] =   0;
        
PlayerClass[id] =   0;
    }  
    
    public 
SaveData(id)  
    {  
        new 
AuthID[35];
        
get_user_authid(id,AuthID,34);
        
        new 
vaultkey[64],vaultdata[256];
        
format(vaultkey,63,"%s-Mod"AuthID);
        
format(vaultdata,255,"%i#%i#"PlayerXP[id], PlayerLevel[id]);
        
nvault_set(g_Vault,vaultkey,vaultdata);
        return 
PLUGIN_CONTINUE;
    }  
    
    public 
LoadData(id)  
    {  
        new 
AuthID[35]; 
        
get_user_authid(id,AuthID,34);
        
        new 
vaultkey[64],vaultdata[256];
        
format(vaultkey,63,"%s-Mod"AuthID);
        
format(vaultdata,255,"%i#%i#"PlayerXP[id], PlayerLevel[id]);
        
nvault_get(g_Vault,vaultkey,vaultdata,255);
        
        
replace_all(vaultdata255"#"" ");
        
        new 
playerxp[32], playerlevel[32];
        
        
parse(vaultdataplayerxp31playerlevel31);
        
        
PlayerXP[id] = str_to_num(playerxp);
        
PlayerLevel[id] = str_to_num(playerlevel);
        
        return 
PLUGIN_CONTINUE;
    }  
    
    
stock ChatColor(const id, const input[], any:...)  
    {  
        new 
count 1players[32]  
        static 
msg[191]  
        
vformat(msg190input3)  
        
        
replace_all(msg190"!g""^4"// Green Color  
        
replace_all(msg190"!y""^1"// Default Color  
        
replace_all(msg190"!team""^3"// Team Color  
        
replace_all(msg190"!team2""^0"// Team2 Color  
        
if (idplayers[0] = id; else get_players(playerscount"ch")  
    {  
        for (new 
0counti++)  
        {  
            if (
is_user_connected(players[i]))  
            {  
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])  
                
write_byte(players[i]);  
                
write_string(msg);  
                
message_end();  
            }  
        }  
    }
    
    public 
fm_user_model_updatetaskid )
    {
        static 
Float:current_time
        current_time 
get_gametime()
        
        if ( 
current_time g_models_targettime >= MODELCHANGE_DELAY )
        {
            
fm_set_user_modeltaskid )
            
g_models_targettime current_time
        
}
        else
        {
            
set_task( (g_models_targettime MODELCHANGE_DELAY) - current_time"fm_set_user_model"taskid )
            
g_models_targettime g_models_targettime MODELCHANGE_DELAY
        
}
    }
    
    public 
fm_set_user_modelplayer )
    {
        
player -= MODELSET_TASK
        
        engfunc
EngFunc_SetClientKeyValueplayerengfuncEngFunc_GetInfoKeyBufferplayer ), "model"g_player_model[player] )
        
        
g_has_custom_model[player] = true
    
}
    
    
stock fm_get_user_modelplayermodel[], len )
    {
        
engfuncEngFunc_InfoKeyValueengfuncEngFunc_GetInfoKeyBufferplayer ), "model"modellen )
    }
    
    
stock fm_reset_user_modelplayer )
    {
        
g_has_custom_model[player] = false
        
        dllfunc
DLLFunc_ClientUserInfoChangedplayerengfuncEngFunc_GetInfoKeyBufferplayer ) )
    } 
hace todo adentro del ZP.. y te dije que esto lo arregles! es un asco!
PHP Code:
if (is_user_alive (id))  
        {  
            if (
PlayerClass[id] == CLASS_CIUDADANO || PlayerLevel[id] == 1// Checks Class and Level.  
            
{  
                
set_user_health(id100);
                
set_user_gravity(id1.0);
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_hegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gCiudadano !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_RECLUTA || PlayerLevel[id] == 2)
            {  
                
set_user_health(id115);
                
set_user_armor(id10);  
                
set_user_gravity(id1.0);
                
give_item(id,"weapon_tmp");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gRecluta !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_CADETE || PlayerLevel[id] == 3)
            {  
                
set_user_health(id130);
                
set_user_armor(id30); 
                
set_user_gravity(id1.0);
                
give_item(id,"weapon_mp5");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gCadete !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_SOLDADO || PlayerLevel[id] == 4)
            {  
                
set_user_health(id150);
                
set_user_armor(id35); 
                
set_user_gravity(id1.0);
                
give_item(id,"weapon_m4a1");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSoldado !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_CABO || PlayerLevel[id] == 5)
            {  
                
set_user_health(id175);
                
set_user_armor(id50); 
                
set_user_gravity(id0.9);
                
give_item(id,"weapon_mp5");  
                
give_item(id,"weapon_tmp");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gCabo !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_SARGENTO || PlayerLevel[id] == 6)
            {  
                
set_user_health(id250);
                
set_user_armor(id55);  
                
set_user_gravity(id0.9);
                
give_item(id,"weapon_m4a1");  
                
give_item(id,"weapon_mp5");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSargento !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_BRIGADA || PlayerLevel[id] == 7)
            {  
                
set_user_health(id350);
                
set_user_armor(id70);  
                
set_user_gravity(id0.9);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_m4a1");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gBrigada !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_SUBTENIENTE || PlayerLevel[id] == 8)
            {  
                
set_user_health(id400);
                
set_user_armor(id80);  
                
set_user_gravity(id0.8);
                
give_item(id,"weapon_m249");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSubTeniente !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_TENIENTE || PlayerLevel[id] == 9)
            {  
                
set_user_health(id450);
                
set_user_armor(id90);  
                
set_user_gravity(id0.8);
                
give_item(id,"weapon_famas");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gTeniente !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_SUBOFICIAL || PlayerLevel[id] == 10)
            {  
                
set_user_health(id510);
                
set_user_armor(id100); 
                
set_user_gravity(id0.8);
                
give_item(id,"weapon_galil");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSubOficial !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_OFICIAL || PlayerLevel[id] == 11)
            {  
                
set_user_health(id560); // gives him 560 health if he's a Cow on level 11  
                
set_user_armor(id150);  
                
set_user_gravity(id0.7);
                
give_item(id,"weapon_famas");  
                
give_item(id,"weapon_galil");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gOficial !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_STARS || PlayerLevel[id] == 12)
            {  
                
set_user_health(id600);
                
set_user_armor(id200);  
                
set_user_gravity(id0.7);
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gStars !y. Eres la aniquilacion a distancia." )  
            }    
            
            if (
PlayerClass[id] == CLASS_MERCENARIO || PlayerLevel[id] == 13)
            {  
                
set_user_health(id650);
                
set_user_armor(id270);  
                
set_user_gravity(id0.6);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_m249");  
                
give_item(id,"weapon_sg552");  
                
give_item(id,"weapon_m3");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gMercenario !y. Eres una Bestia Humana" )  
            }    
            
            if (
PlayerClass[id] == CLASS_BIOSOLDIER || PlayerLevel[id] == 14)
            {  
                
set_user_health(id675);
                
set_user_armor(id300);  
                
set_user_gravity(id0.6);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_aug");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !g BioSoldier !y. Tu ADN esta mezclado con el Virus." )  
            }    
            
            if (
PlayerClass[id] == CLASS_HIBRIDO || PlayerLevel[id] == 15)
            {  
                
set_user_health(id725);
                
set_user_armor(id350);  
                
set_user_gravity(id0.4);
                
give_item(id,"weapon_knife");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gHibrido !y. Eres la combinacion perfecta entre Humano y Zombie." )  
            }    
            
            if (
PlayerClass[id] == CLASS_SUPERSOLDADO || PlayerLevel[id] == 16)
            {  
                
set_user_health(id750);
                
set_user_armor(id400);  
                
set_user_gravity(id0.5);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_aug");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSuperSoldado !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_DESTRUCTOR || PlayerLevel[id] == 17)
            {  
                
set_user_health(id775);
                
set_user_armor(id450);
                
set_user_gravity(id0.5);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_aug");  
                
give_item(id,"weapon_m3");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gDestructor !y." )  
            }    
            
            if (
PlayerClass[id] == CLASS_DEMOLEDOR || PlayerLevel[id] == 18)
            {  
                
set_user_health(id800);
                
set_user_armor(id500);  
                
set_user_gravity(id0.4);  
                
set_user_maxspeed(id400.0);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_aug");  
                
give_item(id,"weapon_p90");  
                
give_item(id,"weapon_m3");  
                
give_item(id,"weapon_elite");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gDemoledor !y. Eres una Bestia Diabolica." )  
            }   
        } 
como minimo dejalo asi -.-!
PHP Code:
if (is_user_alive (id))  
        {  
            if (
PlayerClass[id] == CLASS_CIUDADANO || PlayerLevel[id] == 1// Checks Class and Level.  
            
{  
                
set_user_health(id100);
                
set_user_gravity(id1.0);
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_hegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gCiudadano !y." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_RECLUTA || PlayerLevel[id] == 2)
            {  
                
set_user_health(id115);
                
set_user_armor(id10);  
                
set_user_gravity(id1.0);
                
give_item(id,"weapon_tmp");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gRecluta !y." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_CADETE || PlayerLevel[id] == 3)
            {  
                
set_user_health(id130);
                
set_user_armor(id30); 
                
set_user_gravity(id1.0);
                
give_item(id,"weapon_mp5");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gCadete !y." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_SOLDADO || PlayerLevel[id] == 4)
            {  
                
set_user_health(id150);
                
set_user_armor(id35); 
                
set_user_gravity(id1.0);
                
give_item(id,"weapon_m4a1");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSoldado !y." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_CABO || PlayerLevel[id] == 5)
            {  
                
set_user_health(id175);
                
set_user_armor(id50); 
                
set_user_gravity(id0.9);
                
give_item(id,"weapon_mp5");  
                
give_item(id,"weapon_tmp");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gCabo !y." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_SARGENTO || PlayerLevel[id] == 6)
            {  
                
set_user_health(id250);
                
set_user_armor(id55);  
                
set_user_gravity(id0.9);
                
give_item(id,"weapon_m4a1");  
                
give_item(id,"weapon_mp5");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSargento !y." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_BRIGADA || PlayerLevel[id] == 7)
            {  
                
set_user_health(id350);
                
set_user_armor(id70);  
                
set_user_gravity(id0.9);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_m4a1");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gBrigada !y." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_SUBTENIENTE || PlayerLevel[id] == 8)
            {  
                
set_user_health(id400);
                
set_user_armor(id80);  
                
set_user_gravity(id0.8);
                
give_item(id,"weapon_m249");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSubTeniente !y." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_TENIENTE || PlayerLevel[id] == 9)
            {  
                
set_user_health(id450);
                
set_user_armor(id90);  
                
set_user_gravity(id0.8);
                
give_item(id,"weapon_famas");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gTeniente !y." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_SUBOFICIAL || PlayerLevel[id] == 10)
            {  
                
set_user_health(id510);
                
set_user_armor(id100); 
                
set_user_gravity(id0.8);
                
give_item(id,"weapon_galil");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSubOficial !y." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_OFICIAL || PlayerLevel[id] == 11)
            {  
                
set_user_health(id560); // gives him 560 health if he's a Cow on level 11  
                
set_user_armor(id150);  
                
set_user_gravity(id0.7);
                
give_item(id,"weapon_famas");  
                
give_item(id,"weapon_galil");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gOficial !y." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_STARS || PlayerLevel[id] == 12)
            {  
                
set_user_health(id600);
                
set_user_armor(id200);  
                
set_user_gravity(id0.7);
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gStars !y. Eres la aniquilacion a distancia." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_MERCENARIO || PlayerLevel[id] == 13)
            {  
                
set_user_health(id650);
                
set_user_armor(id270);  
                
set_user_gravity(id0.6);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_m249");  
                
give_item(id,"weapon_sg552");  
                
give_item(id,"weapon_m3");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gMercenario !y. Eres una Bestia Humana" )  
            }    
            
            else if (
PlayerClass[id] == CLASS_BIOSOLDIER || PlayerLevel[id] == 14)
            {  
                
set_user_health(id675);
                
set_user_armor(id300);  
                
set_user_gravity(id0.6);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_aug");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !g BioSoldier !y. Tu ADN esta mezclado con el Virus." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_HIBRIDO || PlayerLevel[id] == 15)
            {  
                
set_user_health(id725);
                
set_user_armor(id350);  
                
set_user_gravity(id0.4);
                
give_item(id,"weapon_knife");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gHibrido !y. Eres la combinacion perfecta entre Humano y Zombie." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_SUPERSOLDADO || PlayerLevel[id] == 16)
            {  
                
set_user_health(id750);
                
set_user_armor(id400);  
                
set_user_gravity(id0.5);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_aug");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gSuperSoldado !y." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_DESTRUCTOR || PlayerLevel[id] == 17)
            {  
                
set_user_health(id775);
                
set_user_armor(id450);
                
set_user_gravity(id0.5);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_aug");  
                
give_item(id,"weapon_m3");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_usp");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gDestructor !y." )  
            }    
            
            else if (
PlayerClass[id] == CLASS_DEMOLEDOR || PlayerLevel[id] == 18)
            {  
                
set_user_health(id800);
                
set_user_armor(id500);  
                
set_user_gravity(id0.4);  
                
set_user_maxspeed(id400.0);
                
give_item(id,"weapon_ak47");  
                
give_item(id,"weapon_g3sg1");  
                
give_item(id,"weapon_sg550");  
                
give_item(id,"weapon_aug");  
                
give_item(id,"weapon_p90");  
                
give_item(id,"weapon_m3");  
                
give_item(id,"weapon_elite");  
                
give_item(id,"weapon_deagle");  
                
give_item(id,"weapon_hegrenade");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_flashbang");  
                
give_item(id,"weapon_smokegrenade");  
                
ChatColor(id"!g[ AMXX ] !yEres un !gDemoledor !y. Eres una Bestia Diabolica." )  
            }   
        } 
si pones el macro de la exp en el ZP tambien tenes que hacer una native para poderlo usar desde este plugin
__________________

www.amxmodx-es.com

Steam: Luchokoldo
rak is offline
Send a message via MSN to rak Send a message via Skype™ to rak
shinoda
Spanish Moderator
Join Date: Nov 2009
Location: ag_crossfire
Old 12-13-2011 , 21:28   Re: [TUT] Crear niveles por MACRO.
#9

1. Usa macro MAX_PLAYERS 32 para hacer más entendible el código.
2. No necesitas comprobar otra vez si la víctima esta conectado en update_xp y creo que tampoco en Ham_Killed.
__________________
Oh hell no this shit is awesome !!!
shinoda is offline
Send a message via MSN to shinoda Send a message via Skype™ to shinoda
fearAR
Veteran Member
Join Date: Oct 2010
Old 12-13-2011 , 23:29   Re: [TUT] Crear niveles por MACRO.
#10

Yo compruebo si esta conectado dentro de la funcion update_xp, debido a extremos casos en los cuales por el lapso que tarda el while en cumplir el loop nuevamente, me ha pasado con menus, que termina tardando un tiempo y no devuelve valores como qiero, es asi que verifico siempre si el usuario sigue conectado, para no aumentar una variable sobre un ID q no existe en el servidor.
__________________
~~~~ NPC AI ~~~~

[ Pathfinding - OK ]
[ Citizen AI - OK ]
[ Handle Weapons - --- ]
fearAR is offline
Send a message via MSN to fearAR
 



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 16:48.


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