Thread: [Arreglo]XP MoD
View Single Post
TheShootSpeed
Member
Join Date: Nov 2011
Old 01-04-2012 , 18:38   Re: [Arreglo]XP MoD
#19

Quote:
Originally Posted by Korxu View Post
Algo me dice que es un bracket...
Korxu aver sii me puedes arreglar esto por favor es urgente

PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <cstrike>
#include <colorchat>
#include <engine>
#include <hamsandwich>
#include <fun>
#include <fakemeta>



#define PLUGIN    "lalalla"
#define AUTHOR    "DarkGL"
#define VERSION    "0.1"
#define ADMIN_COLOR ADMIN_CHAT  

new player_xp[33];
new 
player_xp_all[33];
new 
level[33];

new 
rangi[][256]={
    
"Lv1 Nuevo En El Server",
    
"Lv2 Ya Llevo Rato Aqui"

new exp[]={
    
10,
    
21
}


new 
zapis;


new 
msgtext;

new 
pcvar_exp_round,pcvar_exp_kill_ct,pcvar_exp_kill_tt,pcvar_exp_level,pcvar_exp_hs,pcvar_hud;



public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_logevent("Koniec_Rundy"2"1=Round_End")
    
register_concmd("add_exp","addexp",ADMIN_BAN,"dodaje expa nick i ile")
    
register_event("DeathMsg""DeathMsg""a")
    
pcvar_exp_round register_cvar("bb_exp_round","0");
    
pcvar_exp_kill_ct register_cvar("bb_exp_kill_ct","1");
    
pcvar_exp_kill_tt register_cvar("bb_exp_kill_tt","0");
    
pcvar_exp_level register_cvar("bb_exp_level","0");
    
pcvar_exp_hs register_cvar("bb_exp_hs","0");
    
pcvar_hud register_cvar("bb_hud","0");
    
zapis nvault_open("xpd")
    
register_event("ResetHUD","ShowHUD""b");
    
msgtext get_user_msgid("StatusText");
    
register_clcmd("say","sayhandle");
    
register_clcmd "say""hook_say_messages" )    
}

public 
sayhandleiPlayer )
{
    new 
sz_MessageWrited 192 ]
    
    
// Guardamos lo que escribió el usuario.
    
read_args sz_MessageWritedcharsmax sz_MessageWrited ) )
    
    
// Si no escribió nada, no mostramos nada.
    
if ( equal sz_MessageWrited"" ) )
    {
        return 
PLUGIN_HANDLED_MAIN
    
}
    
    new 
sz_UserName 32 ]
    
    
// Obtenemos el nombre del usuario.
    
get_user_name iPlayersz_UserNamecharsmax sz_UserName ) )
    
    
// Si el nivel es menor que 0 o mayor que 14 no mostramos tag.
    // Puesto que solo hay 15 tags disponibles.
    
if ( level iPlayer ] < || level iPlayer ] > 100 )
    {
        switch( 
cs_get_user_teamiPlayer ) )
        {
            if( !(
get_user_flagsiPlayer ) & ADMIN_COLOR ) ) // Si no tiene ADMIN_COLOR 
            
{
                case 
CS_TEAM_SPECTATORColorChat0GREY"%s^1: %s"sz_UserNamesz_MessageWrited // Salen en AMARILLO los Msgs
                
case CS_TEAM_UNASSIGNEDColorChat0GREY"%s^1: %s"sz_UserNamesz_MessageWrited )
                case 
CS_TEAM_CTColorChat0BLUE"%s^1: %s"sz_UserNamesz_MessageWrited )
                case 
CS_TEAM_TColorChat0RED"%s^1: %s"sz_UserNamesz_MessageWrited )
            }
            else 
// De lo contrario, si tiene ADMIN_COLOR
            
{
                case 
CS_TEAM_SPECTATORColorChat0GREY"%s^1:^4 %s"sz_UserNamesz_MessageWrited // Salen en VERDE los Msgs
                
case CS_TEAM_UNASSIGNEDColorChat0GREY"%s^1:^4 %s"sz_UserNamesz_MessageWrited )
                case 
CS_TEAM_CTColorChat0BLUE"%s^1:^4 %s"sz_UserNamesz_MessageWrited )
                case 
CS_TEAM_TColorChat0RED"%s^1:^4 %s"sz_UserNamesz_MessageWrited )
            }
        }
    }
    
    else
    {
        switch( 
cs_get_user_teamiPlayer ) )
        {
            if( !(
get_user_flagsiPlayer ) & ADMIN_COLOR ) ) 
            {
                case 
CS_TEAM_SPECTATORColorChat0GREY"^4[%s]^3 %s^1: %s"rangi level iPlayer ] ], sz_UserNamesz_MessageWrited )
                case 
CS_TEAM_UNASSIGNEDColorChat0GREY"^4[%s]^3 %s^1: %s"rangi level iPlayer ] ], sz_UserNamesz_MessageWrited )
                case 
CS_TEAM_CTColorChat0BLUE"^4[%s]^3 %s^1: %s"rangi level iPlayer ] ], sz_UserNamesz_MessageWrited )
                case 
CS_TEAM_TColorChat0RED"^4[%s]^3 %s^1: %s"rangi level iPlayer ] ], sz_UserNamesz_MessageWrited )
            }
            else
            {
                case 
CS_TEAM_SPECTATORColorChat0GREY"^4[%s]^3 %s^1:^4 %s"rangi level iPlayer ] ], sz_UserNamesz_MessageWrited )
                case 
CS_TEAM_UNASSIGNEDColorChat0GREY"^4[%s]^3 %s^1:^4 %s"rangi level iPlayer ] ], sz_UserNamesz_MessageWrited )
                case 
CS_TEAM_CTColorChat0BLUE"^4[%s]^3 %s^1:^4 %s"rangi level iPlayer ] ], sz_UserNamesz_MessageWrited )
                case 
CS_TEAM_TColorChat0RED"^4[%s]^3 %s^1:^4 %s"rangi level iPlayer ] ], sz_UserNamesz_MessageWrited )
            }
        }
    }   
    return 
PLUGIN_HANDLED_MAIN
}   



public 
plugin_precache(){
    
precache_sound("darkgl/bb/gained_level.wav");
}

public 
plugin_end(){
    
nvault_close(zapis);
}

public 
Koniec_Rundy(){
    for(new 
1;i<33;i++){
        if(
is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT){
            
DajExp(i,get_pcvar_num(pcvar_exp_round));
            
ColorChat(i,GREEN,"^x03 Ganaste %d por sobrevivir la ronda",get_pcvar_num(pcvar_exp_round));
            
        }
    }
}

public 
addexp(idlevelcid){
    if(!
cmd_access(idlevelcid3)){
        return 
PLUGIN_HANDLED;
    }
    new 
arg1[33];
    new 
arg2[10];
    
read_argv(1,arg1,32);
    
read_argv(2,arg2,9);
    new 
player cmd_target(idarg10);
    
remove_quotes(arg2);
    new 
exp str_to_num(arg2);
    if(
exp != && exp ){
        
OdejmijExp(player,exp);
    }
    else if(
exp != && exp ){
        
DajExp(player,exp);
    }
    return 
PLUGIN_HANDLED;
}

public 
OdejmijExp(id,ile){
    
player_xp[id]-=ile;
    
player_xp_all[id]-=ile;
    
level[id]=0;
    while(
true){
        if(
player_xp_all[id] >= exp[level[id]]){
            
level[id]++;
            
//set_hudmessage(random_num(0,255), random_num(0,255),random_num(0,255), -1.0, -1.0, 0, 6.0, 5.0, 0.0, 0.0, -1)
            //show_hudmessage(id,"Awansowales na kolejny level (%s)",rangi[level[id]]);
            //ColorChat(0,GREEN,"^x03 Ascendido al rango de ^x01 %s jaja :D",rangi[level[id]]);
        
}
        else
        {
            break;
        }
    }
}

public 
DajExp(id,ile){
    
player_xp[id]+=ile;
    
player_xp_all[id]+=ile;
    new 
name[64];
    
get_user_name(id,name,63);
    while(
true){
        if(
player_xp_all[id] >= exp[level[id]] && sizeof(rangi) > level[id]){
            
level[id]++;
            
ColorChat(0,GREEN,"[JB] ^x03%s subio a ^x01 %s ^x03",name,rangi[level[id]]);
            
emit_sound(id,CHAN_VOICE,"darkgl/bb/gained_level.wav"VOL_NORMATTN_NORM0PITCH_NORM)
        }
        else
        {
            break;
        }
    }
}


public 
client_connect(id){
    
    
player_xp[id] = 0;
    
player_xp_all[id] = 0;
    
wczytaj_exp(id);
}

public 
client_disconnect(id){
    
zapisz_exp(id);
}

public 
wczytaj_exp(id){
    new 
vaultkey[64],vaultdata[512];
    
    new 
authid[64];
    
get_user_authid(id,authid,63);
    
format(vaultkey,63,"%s",authid);
    
nvault_get(zapis,vaultkey,vaultdata,511);
    
replace_all(vaultdata,256,"#"," ");
    new 
jeden[100],dwa[100]
    
parse(vaultdata,jeden,99,dwa,99)
    
player_xp[id] = str_to_num(jeden);
    
player_xp_all[id] = str_to_num(dwa);
    
    while(
true){
        if(
player_xp_all[id] >= exp[level[id]] && sizeof(rangi) > level[id]){
            
level[id]++;
        }
        else
        {
            break;
        }
    }
}

public 
zapisz_exp(id){
    new 
vaultkey[64],vaultdata[512];
    
    new 
authid[64];
    
get_user_authid(id,authid,63);
    
format(vaultkey,63,"%s",authid);
    
format(vaultdata,511,"%d#%d",player_xp[id],player_xp_all[id]);
    
nvault_set(zapis,vaultkey,vaultdata)
}

public 
ShowHUD(id)  { 
    if(
is_user_alive(id)){
        new 
HUD[128];
        
        
format(HUD127,"[%s] Exp actual: %d | Exp todal: %d",rangi[level[id]],player_xp[id],player_xp_all[id]);
        if(
get_pcvar_num(pcvar_hud) == ){
            
message_begin(MSG_ONEmsgtext, {0,0,0}, id);
            
write_byte(0);
            
write_string(HUD); 
            
message_end();
            return 
PLUGIN_CONTINUE;
        }
        else
        {
            
set_hudmessage(255000.020.6306.015.0)
            
show_hudmessage(id"%s",HUD)
        }
    }
    return 
PLUGIN_CONTINUE;
}



public 
DeathMsg()
{
    new 
kid read_data(1)    //zabojca
    
    
new vid read_data(2)    // ofiara
    
    
new hs read_data(3)    // ofiara
    
    
if(cs_get_user_team(kid)==CS_TEAM_CT && cs_get_user_team(vid)==CS_TEAM_T){
        
DajExp(kid,get_pcvar_num(pcvar_exp_kill_tt));
        
        new 
name[64];
        
get_user_name(vid,name,charsmax(name));
        if(
hs == 1){
            
DajExp(kid,get_pcvar_num(pcvar_exp_hs));
        }
        
    }    
    else if(
cs_get_user_team(kid)==CS_TEAM_T && cs_get_user_team(vid)==CS_TEAM_CT){
        
DajExp(kid,get_pcvar_num(pcvar_exp_kill_ct));
        new 
name[64];
        
get_user_name(vid,name,charsmax(name));
        
ColorChat(kid,TEAM_COLOR,"Ganastes %d por matar a %s",get_pcvar_num(pcvar_exp_kill_ct),name)
        if(
hs == 1){
            
DajExp(kid,get_pcvar_num(pcvar_exp_hs));
        }
    }    


Last edited by TheShootSpeed; 01-04-2012 at 18:39.
TheShootSpeed is offline