- да се премахна съобщението което излиза при прераждане
- И другото което е да се заменят ранк със това:Pozdravleniq! Vie ste na nivo^x03 %i^x04 |^x01 Vashite tochki sa^x03 %i^x04 |^x01 Vashiqt Rank e^x03 %s", PlayerLevel[iPlayer], PlayerPoints[iPlayer], RANKS[PlayerLevel[iPlayer]])
[NewBie] 100
[Killer] 300
[Pro Kiler] 500
[Super Kiler] 700
[Mega Kiler] 900
[Ultra Kiler] 1100
[Monster] 130
[Master] 1500
[GLADIATOR] 2000
[TERMINATOR] 2300
[INVINCIBLE] 2500
[GOD] 3000
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <hamsandwich>
#include <nvault>
#include <cromchat>
new PlayerPoints[33], PlayerLevel[33]
new g_vault, MaxPlayers
new points_kill, points_hs, points_he, points_knife
#define MAXLEVELS 12
new const LEVELS[MAXLEVELS] =
{
30, //1
100, //2
200, //3
350, //4
500, //5
650, //6
750, //7
900, //8
1000, //9
2000, //10
3000, //11
4000 //12
}
new const RANKS[][] =
{
"Newbie", //1
"Killer", //2
"Pro Killer", //3
"Super Killer", //4
"Mega Killer", //5
"Ultra Kiler", //6
"Monster", //7
"Master", //8
"VIP", //9
"GLADIATOR", //10
"THE BIG BOSS", //11
"LEGEND" //12
}
new const rank_cmds[][] =
{
"/info",
"/xp",
"/exp",
"/credit",
"/credits",
"/pts",
"/pt",
"/point",
"/points"
}
public plugin_init()
{
register_plugin("Rank System", "0.4", "Nikolow")
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
register_event("DeathMsg", "DeathMessage", "a")
register_clcmd("say", "cmd_say")
register_clcmd("say_team", "cmd_say")
points_kill = register_cvar( "xp_points_kill" ,"1" ); // xp normal kill
points_hs = register_cvar( "xp_points_hs" ,"2" ); // xp hs
points_he = register_cvar( "xp_points_he" ,"3" ); // xp he kill
points_knife = register_cvar( "xp_points_knife","5" ); // xp knife kill
g_vault = nvault_open("4VRankSys")
MaxPlayers = get_maxplayers()
CC_SetPrefix("&x04[&x03 Rank System&x04 ]&x01")
}
public plugin_end() nvault_close(g_vault)
public plugin_natives()
{
register_native("get_user_points", "_fun_get_user_points", 1)
register_native("get_user_points_2", "_func_get_user_points_2", 1) // kolko tochki sa next [Primer: tekushti-tochki(10) / next-level-tochki(100)] -> 100 sa next level tochkite
register_native("get_user_level", "_func_get_user_level", 1)
register_native("get_max_levels", "_func_get_max_levels", 1)
register_native("set_user_points", "_func_set_user_points", 1)
register_native("remove_user_points", "_func_remove_user_points", 1)
register_native("get_rank_prefix", "_get_rank_prefix") // tekush RANK na igrach
register_native("get_rank_prefix_2", "_get_rank_prefix_2") // sledvasht RANK na igrach
register_native("get_rank_prefix_3", "_get_rank_prefix_3") // izkarva imeto na RANKA na zadadena poziciq
register_native("check_user_level", "_check") // proverqva za level up na igrach
register_native("save_user_data", "_save") // zapazva dannite na igrach
}
public _fun_get_user_points(index) return PlayerPoints[index]
public _func_get_user_points_2(index) return LEVELS[PlayerLevel[index]]
public _func_get_user_level(index) return PlayerLevel[index]
public _func_get_max_levels() return MAXLEVELS;
public _func_set_user_points(index, amount) PlayerPoints[index] += amount
public _func_remove_user_points(index, amount) PlayerPoints[index] -= amount
public _get_rank_prefix(iPlugin, iParams) set_string(2, RANKS[PlayerLevel[get_param(1)]], get_param(3))
public _get_rank_prefix_2(iPlugin, iParams) set_string(2, RANKS[PlayerLevel[get_param(1)]+1], get_param(3))
public _get_rank_prefix_3(iPlugin, iParams) set_string(2, RANKS[get_param(1)], get_param(3))
public _check(index) CheckLevel(index)
public _save(index) SaveData(index)
public cmd_say(id)
{
new Args[64]
read_args(Args, charsmax(Args))
remove_quotes(Args)
for(new i; i < sizeof rank_cmds; i++)
{
if(equali(Args, rank_cmds[i]))
{
ShowInfo(id);
}
}
}
public fwHamPlayerSpawnPost(iPlayer)
{
if (is_user_alive(iPlayer))
{
CheckLevel(iPlayer)
ShowInfo(iPlayer)
SaveData(iPlayer)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE;
}
public CheckLevel(iPlayer)
{
while(PlayerPoints[iPlayer] >= LEVELS[PlayerLevel[iPlayer]])
{
PlayerLevel[iPlayer]++
ColorChat(iPlayer, "Pozdravleniq! Vie ste na nivo^x03 %i^x04 |^x01 Vashite tochki sa^x03 %i^x04 |^x01 Vashiqt Rank e^x03 %s", PlayerLevel[iPlayer], PlayerPoints[iPlayer], RANKS[PlayerLevel[iPlayer]])
}
}
public DeathMessage()
{
new killer = read_data(1);
new victim = read_data(2);
new headshot = read_data(3);
new Weapon[ 32 ];
read_data( 4, Weapon, charsmax( Weapon ) );
format( Weapon, charsmax( Weapon ), "weapon_%s", Weapon );
if( contain( Weapon, "nade" ) >= 0 )
Weapon = "weapon_hegrenade"
new iWeapon = get_weaponid( Weapon );
if(killer == victim)
return PLUGIN_CONTINUE;
if(!killer || killer > MaxPlayers)
return PLUGIN_CONTINUE;
if(iWeapon == CSW_HEGRENADE) PlayerPoints[killer] += get_pcvar_num(points_he)
if(iWeapon == CSW_KNIFE) PlayerPoints[killer] += get_pcvar_num(points_knife)
if(headshot) PlayerPoints[killer] += get_pcvar_num(points_hs)
else PlayerPoints[killer] += get_pcvar_num(points_kill)
CheckLevel(killer)
SaveData(killer)
return PLUGIN_CONTINUE
}
public SaveData(id)
{
new szName[35]
get_user_name(id,szName,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",szName)
format(vaultdata,255,"%i#%i#",PlayerPoints[id],PlayerLevel[id])
nvault_set(g_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public LoadData(id)
{
new szName[35]
get_user_name(id,szName,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-Mod",szName)
format(vaultdata,255,"%i#%i#",PlayerPoints[id],PlayerLevel[id])
nvault_get(g_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new playerxp[32], playerlevel[32]
parse(vaultdata, playerxp, 31, playerlevel, 31)
PlayerPoints[id] = str_to_num(playerxp)
PlayerLevel[id] = str_to_num(playerlevel)
return PLUGIN_CONTINUE
}