PHP Code:
public Round_Start()
{
for(new id=1;id<=g_Players;id++)
{
if( is_valid_player(id) && !is_user_bot(id) )
{
g_levels[id] = g_levels[id] = get_pcvar_num(g_level_num);
set_task(3.0, "Level", id)
}
}
}
public Level(id)
{
g_trime[id] = false;
new n = 1;
while( n < g_level[id] )
{
n = n + 1
}
if( g_level[id] < get_pcvar_num(g_level_num) )
g_levels[id] = get_pcvar_num(g_level_num);
else
{
if(g_level[id] != g_levels[id])
{
new x = 1;
while( g_level[id] > ( x * get_pcvar_num(g_level_num)) )
{
x = x + 1;
g_levels[id] = x * get_pcvar_num(g_level_num);
}
}
}
}
public expa_give(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
{
return PLUGIN_HANDLED
}
new target[32]
new count[32]
read_argv(1,target,31)
read_argv(2,count,31)
new target_id, name[32], nameid[32]
target_id = find_player("bl", target)
get_user_name(target_id, name, sizeof name - 1)
get_user_name(id, nameid, sizeof nameid - 1)
if(!target_id)
{
console_print(id, "Can't find that player")
return PLUGIN_HANDLED
}
if(read_argc() != 3)
return PLUGIN_HANDLED
if(str_to_num(count) < (g_level_exp[target_id] - level_exp[target_id]) )
{
if(str_to_num(count) == 0)
console_print(id, "Exp Player %s in %i / %i", name, level_exp[target_id], g_level_exp[target_id])
else
{
console_print(id, "Player %s gives for %i exp, Her Maximum %i", name, str_to_num(count), g_level_exp[target_id])
level_exp[target_id] = level_exp[target_id] + str_to_num(count);
}
}
else
{
console_print(id, "Maximum Exp in player %i", g_level_exp[target_id])
}
return PLUGIN_HANDLED
}
public level_give(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
{
console_print(id, "? ??? ??? ??????? ? ???????")
return PLUGIN_HANDLED
}
new target[32]
new count[32]
read_argv(1,target,31)
read_argv(2,count,31)
new target_id, name[32], level_id
level_id = str_to_num(count);
target_id = find_player("bl", target)
get_user_name(target_id, name, sizeof name - 1)
if(!target_id)
{
console_print(id, "Can't find that player")
return PLUGIN_HANDLED
}
if(read_argc() != 3)
return PLUGIN_HANDLED
if( ((g_level[target_id] + level_id) <=get_pcvar_num(g_level_max)) && (level_id != 0) && ((g_level[target_id] + level_id) > 0 ) )
{
if(level_id > 0)
{
g_level[target_id] = g_level[target_id] + level_id;
level_exp[target_id] = 0;
message_begin(MSG_ONE_UNRELIABLE, g_ScreenFade, _, target_id)
write_short(1<<12) // duration
write_short(1) // hold time
write_short(0x0000) // fade type
write_byte(1) // red
write_byte(200) // green
write_byte(0) // blue
write_byte(205) // alpha
message_end()
emit_sound(target_id, CHAN_STREAM, sound_level_up, 1.0, ATTN_NORM, 0, PITCH_HIGH )
}
else
{
g_level[target_id] = g_level[target_id] + level_id;
level_exp[target_id] = 0;
message_begin(MSG_ONE_UNRELIABLE, g_ScreenFade, _, target_id)
write_short(1<<12) // duration
write_short(1) // hold time
write_short(0x0000) // fade type
write_byte(200) // red
write_byte(40) // green
write_byte(0) // blue
write_byte(205) // alpha
message_end()
}
console_print(id, "Player %s gives add %i level", name, level_id)
}
else
console_print(id, "Operation Invalid")
return PLUGIN_HANDLED
}
public client_putinserver(id)
{
if( !is_user_bot(id) && is_valid_player(id) )
{
Level_Load(id)
g_level_exp[id] = get_pcvar_num(g_frags_level);
new name[32]
g_trime[id] = false;
nameid[id] = get_user_name(id, name, sizeof name - 1)
g_trime[id] = false;
new n = 1;
while( n != g_level[id] )
{
n = n + 1;
}
if( g_level[id] == 0) g_level[id] = 1;
if( level_exp[id] == g_level[id] ) level_exp[id] = 0;
if(g_level[id] < get_pcvar_num(g_level_num))
g_levels[id] = get_pcvar_num(g_level_num);
else
{
if(g_level[id] != g_levels[id])
{
new x = 1;
while( g_level[id] > ( x * get_pcvar_num(g_level_num)) )
{
x = x + 1;
g_levels[id] = x * get_pcvar_num(g_level_num);
}
}
}
new y = 0;
while( g_level[id] > y )
{
y = y + 1;
g_level_exp[id] = y * get_pcvar_num(g_frags_level);
}
}
}
public client_disconnect(id)
{
if(get_pcvar_num(g_level_type) == 0 )
{
new name[32], player_nick[32]
player_nick[id] = get_user_name(id, name, sizeof name - 1)
if(player_nick[id] == nameid[id])
Level_Save(id)
}
else
Level_Save(id)
g_trime[id] = false;
}
public hide_status(id)
{
set_hudmessage(0,0,0,0.0,0.0,0, 0.0, 0.01, 0.0, 0.0, 4)
show_hudmessage(id,"")
}
public show_status(id)
{
new name[32],pid = read_data(2)
get_user_name(pid,name,31)
if (cs_get_user_team(pid) == CS_TEAM_CT && (get_pcvar_num(g_player_name) == 1) )
{
set_hudmessage(255, 100, 0, -1.0, 0.60, 0, 1.0, 1.1, _, _, 4)
show_hudmessage(id,"%s^n[ Level : %i | Exp : %i/%i ]", name, g_level[pid], level_exp[pid], g_level_exp[pid])
}
if(cs_get_user_team(id) == CS_TEAM_T && (get_pcvar_num(g_player_name) == 1) )
{
set_hudmessage(255, 100, 0, -1.0, 0.60, 1, 1.0, 1.1, _, _, 4)
show_hudmessage(id,"%s^n[ Level : %i | Exp : %i/%i ]", name, g_level[id], level_exp[id], g_level_exp[id])
}
}
public say_info(id)
{
new text[70], arg1[32], target[32], count[32]
read_args(text, sizeof(text)-1);
remove_quotes(text);
arg1[0] = '^0';
target[0] = '^0';
count[0] = '^0';
parse(text, arg1, sizeof(arg1)-1, target, sizeof(target)-1, count, sizeof(count)-1);
if ( equali(arg1, "info", 4) )
{
info_player(id, target);
}
if ( equali(arg1, "bonusme", 7) && (get_pcvar_num(g_level_info) == 1))
{
}
if ( equali(arg1, "levelexp", 7) && (get_pcvar_num(g_level_info) == 1))
{
expa_player(id);
}
return PLUGIN_CONTINUE;
}
public user_infected_pre(id, infector)
{
if( is_user_alive(infector) && (level_exp[infector] < (g_level_exp[infector] - 1)) && cs_get_user_team(infector))
{
level_exp[infector] = level_exp[infector] + 1;
}
else
{
new y, aname[32];
get_user_name(infector, aname, sizeof aname - 1)
if( ( level_exp[infector] >= (g_level_exp[infector] - 1) ) && (g_level[infector] <= get_pcvar_num(g_level_max)) && is_user_alive(infector) && cs_get_user_team(infector) && is_valid_player(infector) && get_pcvar_num(g_level_men))
{
g_level[infector] = g_level[infector] + 1;
level_exp[infector] = 0;
while( g_level[infector] != y )
{
y = y + 1;
g_level_exp[infector] = y * get_pcvar_num(g_frags_level);
}
message_begin(MSG_ONE_UNRELIABLE, g_ScreenFade, _, infector)
write_short(1<<12) // duration
write_short(1) // hold time
write_short(0x0000) // fade type
write_byte(1) // red
write_byte(200) // green
write_byte(0) // blue
write_byte(205) // alpha
message_end()
emit_sound(infector, CHAN_STREAM, sound_level_up, 1.0, ATTN_NORM, 0, PITCH_HIGH )
set_hudmessage(0, 200, 0, 0.65, 0.5, 0, 0.0, 3.0, 2.0, 1.0, -1)
show_hudmessage(0, "%L", LANG_PLAYER, "LEVEL_UP", aname, g_level[infector])
Level_Save(infector);
}
}
}
public info_player(id, target[])
{
new target_2;
target_2 = find_player("bl", target)
static name[32], nameid[32];
get_user_name(target_2, name, sizeof name - 1)
get_user_name(id, nameid, sizeof nameid - 1)
if(!target_2)
{
}
return PLUGIN_HANDLED
}
public expa_player(id)
{
return PLUGIN_HANDLED
}
public level_status(id)
{
new Spec
Spec = pev(id, PEV_SPEC_TARGET)
new PlayerName[32]
get_user_name(Spec, PlayerName, 31)
if( is_user_alive(id))
{
set_hudmessage(0, 200, 0, -1.0, 0.9, 0, 1.0, 1.0, 0.0, 0.0, 1)
ShowSyncHudMsg(id,syncObj, "[ Level : %i | Exp : %i/%i ]",g_level[id], level_exp[id], g_level_exp[id])
}
else
if( is_user_alive(Spec))
{
set_hudmessage(200, 0, 200, -1.0, 0.8, 0, 1.0, 1.0, 0.0, 0.0, 1)
ShowSyncHudMsg(id,syncObj, "Spectating: %s ^n[ Level : %i | Exp : %i/%i ]", PlayerName, g_level[Spec], level_exp[Spec], g_level_exp[Spec])
}
}
public Level_Save(id)
{
new key[64], data[256], data_exp[256], key_exp[64]
switch( get_pcvar_num(g_level_type) )
{
case 0:
{
new name[33]
get_user_name(id,name,32)
format(key, 63, "%s-/", name)
format(key_exp, 63, "%s-/", name)
}
case 1:
{
new player_ip[33]
get_user_ip(id,player_ip,32)
format(key, 63, "%s-/", player_ip)
format(key_exp, 63, "%s-/", player_ip)
}
case 2:
{
new steam_ID[33]
get_user_authid(id,steam_ID,32)
format(key, 63, "%s-/", steam_ID)
format(key_exp, 63, "%s-/", steam_ID)
}
}
//format(key, 63, "%s-/", name)
format(data, 255, "%i#", g_level[id])
//format(key_exp, 63, "%s-/", name)
format(data_exp, 255, "%i#", level_exp[id])
nvault_set(g_level_data, key, data)
nvault_set(g_exp_data, key_exp, data_exp)
return PLUGIN_CONTINUE;
}
public Level_Load(id)
{
new key[64], data[256], data_exp[256], key_exp[64]
switch( get_pcvar_num(g_level_type) )
{
case 0:
{
new name[33]
get_user_name(id,name,32)
format(key, 63, "%s-/", name)
format(key_exp, 63, "%s-/", name)
}
case 1:
{
new player_ip[33]
get_user_ip(id,player_ip,32)
format(key, 63, "%s-/", player_ip)
format(key_exp, 63, "%s-/", player_ip)
}
case 2:
{
new steam_ID[33]
get_user_authid(id,steam_ID,32)
format(key, 63, "%s-/", steam_ID)
format(key_exp, 63, "%s-/", steam_ID)
}
}
//format(key, 63, "%s-/", name)
format(data, 255, "%i#", g_level[id])
//format(key_exp, 63, "%s-/", name)
format(data_exp, 255, "%i#", level_exp[id])
nvault_get(g_level_data, key, data, 255)
nvault_get(g_exp_data, key_exp, data_exp, 255)
replace_all(data, 255, "#", " ")
replace_all(data_exp, 255, "#", " ")
new givelevel[32], give_exp[32]
parse(data, givelevel, 31)
parse(data_exp, give_exp, 31)
g_level[id] = str_to_num(givelevel)
level_exp[id] = str_to_num(give_exp)
set_task(1.0, "level_status", id, _, _, "b")
return PLUGIN_CONTINUE;
}
public Frags_Manager()
{
new aname[32], attacker; attacker = read_data(1)
new y; y = 1;
get_user_name(attacker, aname, sizeof aname - 1)
if( ( level_exp[attacker] >= (g_level_exp[attacker] - 1) ) && (g_level[attacker] <= get_pcvar_num(g_level_max)) && is_user_alive(attacker) && !is_user_bot(attacker) )
{
g_level[attacker] = g_level[attacker] + 1;
level_exp[attacker] = 0;
while( g_level[attacker] != y )
{
y = y + 1;
g_level_exp[attacker] = y * get_pcvar_num(g_frags_level);
}
message_begin(MSG_ONE_UNRELIABLE, g_ScreenFade, _, attacker)
write_short(1<<12) // duration
write_short(1) // hold time
write_short(0x0000) // fade type
write_byte(1) // red
write_byte(200) // green
write_byte(0) // blue
write_byte(205) // alpha
message_end()
emit_sound(attacker, CHAN_STREAM, sound_level_up, 1.0, ATTN_NORM, 0, PITCH_HIGH )
set_hudmessage(0, 200, 0, 0.65, 0.5, 0, 0.0, 3.0, 2.0, 1.0, -1)
show_hudmessage(0, "%L", LANG_PLAYER, "LEVEL_UP", aname, g_level[attacker])
Level_Save(attacker);
}
else
{
if(is_user_alive(attacker))
{
if(g_level[attacker] == get_pcvar_num(g_level_max))
level_exp[attacker] = level_exp[attacker] + 1;
Level_Save(attacker);
}
}
}
public round_ended(winteam)
{
for(new id=1;id<=g_Players;id++)
g_trime[id] = true;
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!t", "^3") // Team Color
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
please if you have solution to fix this problem.. please help me and thanks