Код за потвърждение: Избери целия код
OwneR - L
Administrator - m
Moderator - n
Admin - o
DONATOR - p
MEGA VIP - q
VIP - b
Ранг система
Код за потвърждение: Избери целия код
NewbiE - 50
PlayeR - 150
Frozen - 350
Advanced - 750
KilleR - 1250
Semi-prO - 1750
PrO - 3000
Mega-prO - 4000
Hiper-prO - 5000
BooS - 7500
LEDEND - 9999
[Prefix][rank]Nickname ; Префикс зелен / ранг според отбора / ник според отбора / текст зелен.
XP при килл;
2xp - при обикновено убиване.
3xp - при убиване с глава.
4xp - при убиване с граната.
6xp - при убиване с нож
XP при килл за вип флаг "b"
3xp - при обикновено убиване.
5xp - при убиване с глава.
6xp - при убиване с граната.
8xp - при убиване с нож
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <hamsandwich>
#include <nvault>
#include <cromchat>
new PlayerPoints[33], PlayerLevel[33]
new g_vault, MaxPlayers
#define MAXLEVELS 12
new const LEVELS[MAXLEVELS] =
{
10, //1
20, //2
40, //3
60, //4
90, //5
130, //6
170, //7
230, //8
320, //9
500, //10
800, //11
9999 //12
}
new const RANKS[][] =
{
"Newbie", //1
"Player", //2
"Member", //3
"Semi-Pro", //4
"Pro", //5
"Runner", //6
"Redbull gives me wings", //7
"OptiMax", //8
"Like a Boss", //9
"Boss", //10
"THE BIG BOSS", //11
"LEGEND" //12
}
public plugin_init()
{
register_plugin("Rank System", "0.1", "Nicky")
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)
register_event("DeathMsg", "DeathMessage", "a")
register_concmd( "say /info", "ShowInfo")
register_concmd( "say /xp", "ShowInfo")
register_concmd( "say /exp", "ShowInfo")
register_concmd( "say /rank", "ShowInfo")
register_concmd( "say /points", "ShowInfo")
register_concmd( "say /pts", "ShowInfo")
register_concmd( "say /pt", "ShowInfo")
register_concmd( "say /point", "ShowInfo")
register_concmd( "say /credit", "ShowInfo")
register_concmd( "say /credits", "ShowInfo")
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)
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")
register_native("get_rank_prefix_2", "_get_rank_prefix_2")
}
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 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] += 3
if(iWeapon == CSW_KNIFE) PlayerPoints[killer] += 5
if(headshot) PlayerPoints[killer] += 2
else PlayerPoints[killer] += 1
CheckLevel(killer)
SaveData(killer)
return PLUGIN_CONTINUE
}
public ShowInfo(id)
ColorChat(id, "Vasheto nivo e:^x03 %i^x04 |^x01 Imate^x03 %i^x01 tochki^x04 |^x01 Rank:^x03 %s.", PlayerLevel[id],PlayerPoints[id], RANKS[PlayerLevel[id]])
public client_connect(id)
LoadData(id)
public client_disconnected(id)
SaveData(id)
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
}