Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <nvault>
#define IsPlayer(%1) (1 <= %1 <= g_iMaxPlayers)
#define m_LastHitGroup 75
#define DMG_GRENADE ( 1 << 24 )
#define MaxLevel 55
#define MaxLevel_Health 10
#define MaxLevel_Armor 10
#define MaxLevel_Speed 10
#define MaxLevel_Regeneration 10
#define MaxLevel_Gravity 10
#define Health_PerLevel 25
#define Armor_PerLevel 25
#define Speed_PerLevel 8
#define Regeneration_PerLevel 1
#define Gravity_PerLevel 0.06
#define TeamInfo_PlayerID 1
#define XO_PLAYER 5
#define m_iTeam 114
#define m_iDeaths 444
#define Keysmenu_sell (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<9)
#define Keysmenu_buy (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<9)
#define Keysmenu_main (1<<0)|(1<<1)|(1<<2)|(1<<9)
#define Keysmenu_reset (1<<0)|(1<<9)
new g_vault;
new gmsgScoreInfo;
new attacker_he;
new const LEVELS[55] = {865,1835,3500,4235,5040,5915,6860,7875,8960,10115,11340,12635,14000,15435,16940
,19515,20160,21875,23660,25515,27440,29435,31500,33635,35840,38115,40460,42875,4
7
360,53915,59540,66235,76000,86835,97740,129715,135855,149515,157525,168715,17671
5
,186715,199815,218815,230815,242815,254985,266455,278985,290125,302715,314285,32
6
565,338825,350857}
new bool:isalive[33];
new bool:BombPlanted;
new bool:g_PlayerReseted[33];
new bool:g_PlayerReg[33];
new g_HealthLevel[33];
new g_ArmorLevel[33];
new g_SpeedLevel[33];
new g_RegenerationLevel[33];
new g_GravityLevel[33];
new PlayerPoints[33];
new PlayerXP[33],PlayerLevel[33];
new Killstreaks[33];
new kills[33];
new HS[33];
new KILL_XP;
new HS_XP;
new KNF_XP;
new SET_C4_XP;
new LVLUP_PTS;
new DEFUSE_XP;
new EXPLOSION_XP;
new CT_XP;
new HE_XP;
new KILLSTREAK;
new HSSTREAK;
new KILLSTREAKBONUS;
new HSSTREAKBONUS;
new SAVE_XP;
new CONNECT_MSG;
new LVLUP_MSG;
new MOD_SOUNDS;
new UPGRADE_SHOP;
new gHudSync;
new gHudSyncXp;
new g_iMaxPlayers;
public plugin_init()
{
register_plugin("EXP Mod", "1.0", "1st")
register_dictionary("expmod.txt")
g_iMaxPlayers = get_maxplayers();
g_vault = nvault_open("xpmod")
gmsgScoreInfo = get_user_msgid("ScoreInfo")
gHudSync = CreateHudSyncObj();
gHudSyncXp = CreateHudSyncObj();
static iEnt;
iEnt = engfunc(EngFunc_CreateNamedEntity,engfunc(EngFunc_AllocString,"info_target"));
set_pev(iEnt, pev_classname, "HudSyncEnt");
set_pev(iEnt, pev_nextthink, get_gametime());
RegisterHamFromEntity(Ham_Think, iEnt, "HudShow");
RegisterHam(Ham_Killed, "player", "eDeath", 1);
RegisterHam(Ham_TakeDamage, "player", "eDamage");
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
register_logevent("Planted", 3, "2=Planted_The_Bomb");
register_logevent("Defused", 3, "2=Defused_The_Bomb");
register_logevent("Bombed", 6, "3=Target_Bombed");
register_logevent("TargetSaved", 6, "3=Target_Saved");
register_event("TeamInfo", "Event_TeamInfo_All", "a")
SAVE_XP = register_cvar("exp_save", "1")
CONNECT_MSG = register_cvar("exp_conn_msg", "1")
LVLUP_MSG = register_cvar("exp_up_msg", "1")
MOD_SOUNDS = register_cvar("exp_mod_sounds", "1")
UPGRADE_SHOP = register_cvar("exp_ushop", "1")
LVLUP_PTS = register_cvar("exp_lvlup_pts", "0")
KILL_XP = register_cvar("exp_kill_xp", "100")
HE_XP = register_cvar("exp_he_xp", "50")
HS_XP = register_cvar("exp_hs_xp", "50")
KNF_XP = register_cvar("exp_knf_xp", "50")
SET_C4_XP = register_cvar("exp_c4_xp", "50")
DEFUSE_XP = register_cvar("exp_defuse_xp", "50")
EXPLOSION_XP = register_cvar("exp_c4exploded_xp", "50")
CT_XP = register_cvar("exp_ctsaved_xp", "50")
KILLSTREAK = register_cvar("exp_killstreak", "4")
HSSTREAK = register_cvar("exp_hsstreak", "4")
KILLSTREAKBONUS = register_cvar("exp_killstreak_xp", "200")
HSSTREAKBONUS = register_cvar("exp_hsstreak_xp", "250")
register_clcmd("say /reset", "open_Reset")
register_clcmd("say /menu", "open_MainMenu")
register_clcmd("say /shop", "open_PassiveUpgrades")
register_clcmd("say /sell", "display_sellmenu")
register_clcmd("say /help", "display_help")
register_concmd("menu", "open_MainMenu")
register_concmd("shop", "open_PassiveUpgrades")
register_concmd("sell", "display_sellmenu")
register_concmd("help", "display_help")
register_concmd("exp_setlvl","setlevel",ADMIN_BAN,"- usage: <target> <level>")
register_concmd("exp_setpoints","setpoints",ADMIN_BAN,"- usage: <target> <points>")
register_menucmd(register_menuid("Главное меню улучшений"), Keysmenu_main, "Action_MainMenu")
register_menucmd(register_menuid("Покупка улучшений"), Keysmenu_buy, "Action_BuyUpgrades")
register_menucmd(register_menuid("Продажа улучшений"), Keysmenu_sell, "Action_sellMenu")
register_menucmd(register_menuid("Сброс"), Keysmenu_reset, "Action_reset")
}
public plugin_precache()
{
precache_sound("xpmod/xp_levelup.wav")
precache_sound("xpmod/xp_resetstats.wav")
precache_sound("xpmod/xp_upgradepurchase.wav")
precache_sound("xpmod/xp_upgradesell.wav")
return PLUGIN_CONTINUE
}
public client_connect(id)
{
g_HealthLevel[id] = 0
g_ArmorLevel[id] = 0
g_SpeedLevel[id] = 0
g_RegenerationLevel[id] = 0
g_GravityLevel[id] = 0
PlayerPoints[id] = 0
PlayerLevel[id] = 0
PlayerXP[id] = 0
if(get_pcvar_num(SAVE_XP) == 1 && !is_user_bot(id))
{
LoadData(id)
}
if(get_pcvar_num(CONNECT_MSG) == 1) {
new name[32]
get_user_info(id, "name", name, 31)
client_print(0, print_chat, "[EXP] %L", 0, "WELCOME",name , PlayerLevel[id])
}
}
public client_disconnect(id)
{
if(get_pcvar_num(SAVE_XP) == 1 && !is_user_bot(id))
{
SaveData(id)
}
g_HealthLevel[id] = 0
g_ArmorLevel[id] = 0
g_SpeedLevel[id] = 0
g_RegenerationLevel[id] = 0
g_GravityLevel[id] = 0
PlayerPoints[id] = 0
PlayerLevel[id] = 0
PlayerXP[id] = 0
}
LoadData(id)
{
new AuthID[35];
get_user_authid(id,AuthID,34);
new vaultkey[64],vaultdata[256]
formatex(vaultkey,63,"%s-Mod",AuthID)
formatex(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i#",PlayerLevel[id],PlayerXP[id],PlayerPoints[id],g_HealthLevel[id],g_ArmorLev
el[id],g_SpeedLevel[id],g_RegenerationLevel[id],g_GravityLevel[id])
nvault_get(g_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new playerlevel[32], playerxp[32], playerpoints[32], playerhealth[32], playerarmor[32], playerspeed[32], playerregeneration[32], playergravity[32]
parse(vaultdata, playerlevel, 31, playerxp, 31, playerpoints, 31, playerhealth, 31, playerarmor, 31, playerspeed, 31, playerregeneration, 31, playergravity, 31)
PlayerLevel[id] = str_to_num(playerlevel)
PlayerXP[id] = str_to_num(playerxp)
PlayerPoints[id] = str_to_num(playerpoints)
g_HealthLevel[id] = str_to_num(playerhealth)
g_ArmorLevel[id] = str_to_num(playerarmor)
g_SpeedLevel[id] = str_to_num(playerspeed)
g_RegenerationLevel[id] = str_to_num(playerregeneration)
g_GravityLevel[id] = str_to_num(playergravity)
}
SaveData(id)
{
new AuthID[35];
get_user_authid(id,AuthID,34);
new vaultkey[64],vaultdata[256]
formatex(vaultkey,63,"%s-Mod",AuthID)
formatex(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i#",PlayerLevel[id],PlayerXP[id],PlayerPoints[id],g_HealthLevel[id],g_ArmorLev
el[id],g_SpeedLevel[id],g_RegenerationLevel[id],g_GravityLevel[id])
nvault_set(g_vault,vaultkey,vaultdata)
}
public setlevel( id, level,cid )
{
if( ! cmd_access ( id, level, cid, 3 ) )
return PLUGIN_HANDLED;
new target[32], amount[21], reason[21];
read_argv( 1, target, 31 );
read_argv(2, amount, 20 );
read_argv( 3, reason, 20 );
new player = cmd_target( id, target, 8 );
if( ! player )
return PLUGIN_HANDLED;
new admin_name[32], player_name[32];
get_user_name( id, admin_name, 31 );
get_user_name( player, player_name, 31 );
new levelnum = str_to_num( amount );
if(levelnum > MaxLevel) {
client_print(id, print_console, "[EXP] %L", id, "MAX", MaxLevel)
return PLUGIN_HANDLED;
}
if(levelnum == 0) {
PlayerLevel[player] = levelnum;
PlayerXP[player] = 0;
} else {
PlayerLevel[player] = levelnum;
PlayerXP[player] = LEVELS[levelnum-1];
}
switch( get_cvar_num ( "amx_show_activity" ) )
{
case 1: client_print(0, print_chat, "[EXP] %L", LANG_PLAYER, "GAVE" , levelnum, player_name);
case 2: client_print(0, print_chat, "[EXP] %L", LANG_PLAYER, "GAVE2" , admin_name, levelnum, player_name);
}
client_print(player, print_chat, "[EXP] %L", player, "RECEIVED", levelnum, PlayerLevel[player] );
if(get_pcvar_num(SAVE_XP) == 1 && !is_user_bot(player)) {
SaveData(player);
}
return PLUGIN_CONTINUE;
}
public setpoints( id, level,cid )
{
if( ! cmd_access ( id, level, cid, 3 ) )
return PLUGIN_HANDLED;
new target[32], amount[21], reason[21];
read_argv( 1, target, 31 );
read_argv(2, amount, 20 );
read_argv( 3, reason, 20 );
new player = cmd_target( id, target, 8 );
if( ! player )
return PLUGIN_HANDLED;
new admin_name[32], player_name[32];
get_user_name( id, admin_name, 31 );
get_user_name( player, player_name, 31 );
new points = str_to_num( amount );
PlayerPoints[player] = points;
switch( get_cvar_num ( "amx_show_activity" ) )
{
case 1: client_print(0, print_chat, "[EXP] %L", LANG_PLAYER, "GAVE3", points, player_name );
case 2: client_print(0, print_chat, "[EXP] %L", LANG_PLAYER, "GAVE4", admin_name, points, player_name );
}
client_print(player, print_chat, "[EXP] %L", player, "RECEIVED2", points);
if(get_pcvar_num(SAVE_XP) == 1 && !is_user_bot(player)) {
SaveData(player);
}
return PLUGIN_CONTINUE;
}
public open_MainMenu(id)
{
new szMenuBody[512]
new len = formatex(szMenuBody,511, "%L" , id , "MAIN")
len += formatex(szMenuBody[len],511-len, "%L" , id , "BUY")
len += formatex(szMenuBody[len],511-len, "%L" , id , "SELL")
len += formatex(szMenuBody[len],511-len, "%L" , id , "HELP")
len += formatex(szMenuBody[len],511-len, "%L" , id , "CANCEL")
show_menu(id, Keysmenu_main, szMenuBody, -1, "Main Upgrades Menu")
}
public Action_MainMenu(id, key)
{
switch(key)
{
case 0: {
open_PassiveUpgrades(id)
}
case 1: {
display_sellmenu(id)
}
case 2: {
display_help(id)
}
case 9: {
}
}
return PLUGIN_HANDLED
}
public display_help(id)
{
new szMotd[2048], szTitle[64], iPos = 0
formatex(szTitle,63, "%L" , id , "TITLE")
iPos += formatex(szMotd[iPos], 2047-iPos, "<html><head><style type=^"text/css^">pre{color:#FFB000;}body{background:#000000;margin-left:8px;margin-top:0px;}</style></head><pre><body>")
iPos += formatex(szMotd[iPos], 2047-iPos, "^n^n<b>%s</b>^n^n", szTitle)
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "DESC")
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP1")
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP2")
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP3")
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP4")
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP5")
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP6")
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP7")
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP8")
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP9")
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP10")
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP11", Health_PerLevel)
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP12", Armor_PerLevel)
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP13", Speed_PerLevel)
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP14", Regeneration_PerLevel)
iPos += formatex(szMotd[iPos], 2047-iPos, "%L" , id , "HELP15", floatround((Gravity_PerLevel * 100)))
show_motd(id, szMotd, szTitle)
return PLUGIN_HANDLED
}
public open_Reset(id)
{
new szMenuBody[512]
new len = formatex(szMenuBody, 511, "%L" , id , "RESET")
len += formatex(szMenuBody[len], 511-len, "%L" , id , "RESET2")
len += formatex(szMenuBody[len], 511-len, "%L" , id , "RESET3")
show_menu(id, Keysmenu_reset, szMenuBody, -1, "Reset")
}
public Action_reset(id, key) {
switch(key) {
case 0: {
g_PlayerReseted[id] = true;
client_print(id, print_chat, "[EXP] %L", id, "RESETED");
}
case 9: {
}
}
return PLUGIN_HANDLED
}
public reset(id)
{
g_PlayerReseted[id] = false;
set_user_health(id, 100);
set_user_armor(id, 100);
set_user_maxspeed(id, 320.0);
g_HealthLevel[id] = 0
g_RegenerationLevel[id] = 0
g_ArmorLevel[id] = 0
g_SpeedLevel[id] = 0
g_GravityLevel[id] = 0
PlayerPoints[id] = 0
PlayerLevel[id] = 0
PlayerXP[id] = 0
client_print(id, print_chat, "[EXP] %L", id, "RESETED2");
ShowHud(id);
if(get_pcvar_num(MOD_SOUNDS) == 1) {
client_cmd(id,"spk xpmod/xp_resetstats")
}
if(get_pcvar_num(SAVE_XP) == 1 && !is_user_bot(id)) {
SaveData(id);
}
return PLUGIN_HANDLED
}
public open_PassiveUpgrades(id)
{
if(get_pcvar_num(UPGRADE_SHOP) == 1) {
display_PassiveUpgrades(id)
}
return PLUGIN_HANDLED
}
display_PassiveUpgrades(id)
{
new szMenuBody[512]
new len = formatex(szMenuBody, 511, "%L" , id , "BUY2")
len += formatex(szMenuBody[len], 511-len, "%L" , id , "BUY3", g_HealthLevel[id], MaxLevel_Health)
len += formatex(szMenuBody[len], 511-len, "%L" , id , "BUY4", g_ArmorLevel[id], MaxLevel_Armor)
len += formatex(szMenuBody[len], 511-len, "%L" , id , "BUY5", g_SpeedLevel[id], MaxLevel_Speed)
len += formatex(szMenuBody[len], 511-len, "%L" , id , "BUY6", g_RegenerationLevel[id], MaxLevel_Regeneration)
len += formatex(szMenuBody[len], 511-len, "%L" , id , "BUY8", g_GravityLevel[id], MaxLevel_Gravity)
len += formatex(szMenuBody[len], 511-len, "%L" , id , "BUY7")
show_menu(id, Keysmenu_sell, szMenuBody, -1, "Покупка улучшений")
}
public Action_BuyUpgrades(id, key)
{
switch(key)
{
case 0:
{
if(g_HealthLevel[id] >= MaxLevel_Health) {
client_print(id, print_chat, "[EXP] %L", id, "MAXLEVEL", g_HealthLevel[id]);
return PLUGIN_HANDLED
} else if(!is_user_alive(id)) {
client_print(id, print_chat, "[EXP] %L", id, "ALIVE");
return PLUGIN_HANDLED
} else {
Set_Upgrade(id, 0)
}
}
case 1:
{
if(g_ArmorLevel[id] >= MaxLevel_Armor) {
client_print(id, print_chat, "[EXP] %L", id, "MAXLEVEL", g_ArmorLevel[id]);
return PLUGIN_HANDLED
} else if(!is_user_alive(id)) {
client_print(id, print_chat, "[EXP] %L", id, "ALIVE");
return PLUGIN_HANDLED
} else {
Set_Upgrade(id, 1)
}
}
case 2:
{
if(g_SpeedLevel[id] >= MaxLevel_Speed) {
client_print(id, print_chat, "[EXP] %L", id, "MAXLEVEL", g_SpeedLevel[id]);
return PLUGIN_HANDLED
} else if(!is_user_alive(id)) {
client_print(id, print_chat, "[EXP] %L", id, "ALIVE");
return PLUGIN_HANDLED
} else {
Set_Upgrade(id, 2)
}
}
case 3:
{
if(g_RegenerationLevel[id] >= MaxLevel_Regeneration) {
client_print(id, print_chat, "[EXP] %L", id, "MAXLEVEL", g_RegenerationLevel[id]);
return PLUGIN_HANDLED
} else if(!is_user_alive(id)) {
client_print(id, print_chat, "[EXP] %L", id, "ALIVE");
return PLUGIN_HANDLED
} else {
Set_Upgrade(id, 3)
}
}
case 4:
{
if(g_GravityLevel[id] >= MaxLevel_Gravity) {
client_print(id, print_chat, "[EXP] %L", id, "MAXLEVEL", g_GravityLevel[id]);
return PLUGIN_HANDLED
} else if(!is_user_alive(id)) {
client_print(id, print_chat, "[EXP] %L", id, "ALIVE");
return PLUGIN_HANDLED
} else {
Set_Upgrade(id, 4)
}
}
case 9:
{
}
}
return PLUGIN_HANDLED
}
public Set_Upgrade(id, value)
{
switch(value)
{
case 0:
{
if(PlayerPoints[id] > 1 * g_HealthLevel[id]) {
g_HealthLevel[id] += 1
PlayerPoints[id] -= 1 * g_HealthLevel[id]
add_health(id, Health_PerLevel)
client_print(id, print_chat, "[EXP] %L", id, "HEALTH", g_HealthLevel[id] * Health_PerLevel)
if(get_pcvar_num(MOD_SOUNDS) == 1) {
client_cmd(id,"spk xpmod/xp_upgradepurchase")
}
}
}
case 1:
{
if(PlayerPoints[id] > 1 * g_ArmorLevel[id]) {
g_ArmorLevel[id] += 1
PlayerPoints[id] -= 1 * g_ArmorLevel[id]
add_armor(id, Armor_PerLevel)
client_print(id, print_chat, "[EXP] %L", id, "ARMOR", g_ArmorLevel[id] * Armor_PerLevel)
if(get_pcvar_num(MOD_SOUNDS) == 1) {
client_cmd(id,"spk xpmod/xp_upgradepurchase")
}
}
}
case 2:
{
if(PlayerPoints[id] > 1 * g_SpeedLevel[id]) {
g_SpeedLevel[id] += 1
PlayerPoints[id] -= 1 * g_SpeedLevel[id]
new Float:fSpeed = 320.0 + (g_SpeedLevel[id] * Speed_PerLevel)
set_user_maxspeed(id, fSpeed)
client_print(id, print_chat, "[EXP] %L", id, "SPEED", g_SpeedLevel[id] * Speed_PerLevel)
if(get_pcvar_num(MOD_SOUNDS) == 1) {
client_cmd(id,"spk xpmod/xp_upgradepurchase")
}
}
}
case 3:
{
if(PlayerPoints[id] > 1 * g_RegenerationLevel[id]) {
g_RegenerationLevel[id] += 1
PlayerPoints[id] -= 1 * g_RegenerationLevel[id]
client_print(id, print_chat, "[EXP] %L", id, "REGENERATION", g_RegenerationLevel[id] * Regeneration_PerLevel)
if(get_pcvar_num(MOD_SOUNDS) == 1) {
client_cmd(id,"spk xpmod/xp_upgradepurchase")
}
}
}
case 4:
{
if(PlayerPoints[id] > 1 * g_GravityLevel[id]) {
g_GravityLevel[id] += 1
PlayerPoints[id] -= 1 * g_GravityLevel[id]
new Float: fGravity = g_GravityLevel[id] * Gravity_PerLevel
set_gravity(id, fGravity)
client_print(id, print_chat, "[EXP] %L", id, "GRAVITY", g_GravityLevel[id] * floatround((Gravity_PerLevel * 100)))
if(get_pcvar_num(MOD_SOUNDS) == 1) {
client_cmd(id,"spk xpmod/xp_upgradepurchase")
}
}
}
}
if(get_pcvar_num(SAVE_XP) == 1 && !is_user_bot(id)) {
SaveData(id);
}
if(PlayerPoints[id] > 0) {
display_PassiveUpgrades(id)
}
}
public display_sellmenu(id)
{
new szMenuBody[512]
new len = formatex(szMenuBody, 511, "%L" , id , "SELL1")
len += formatex(szMenuBody[len], 511-len, "%L" , id , "BUY3", g_HealthLevel[id], MaxLevel_Health)
len += formatex(szMenuBody[len], 511-len, "%L" , id , "BUY4", g_ArmorLevel[id], MaxLevel_Armor)
len += formatex(szMenuBody[len], 511-len, "%L" , id , "BUY5", g_SpeedLevel[id], MaxLevel_Speed)
len += formatex(szMenuBody[len], 511-len, "%L" , id , "BUY6", g_RegenerationLevel[id], MaxLevel_Regeneration)
len += formatex(szMenuBody[len], 511-len, "%L" , id , "BUY8", g_GravityLevel[id], MaxLevel_Gravity)
len += formatex(szMenuBody[len], 511-len, "%L" , id , "BUY7")
show_menu(id, Keysmenu_sell, szMenuBody, -1, "Продажа улучшений")
}
public Action_sellMenu(id, key)
{
switch(key)
{
case 0:
{
if(g_HealthLevel[id] == 0) {
client_print(id, print_chat, "[EXP] %L", id, "NEEDED")
return PLUGIN_HANDLED
} else if(!is_user_alive(id)) {
client_print(id, print_chat, "[EXP] %L", id, "ALIVE2")
return PLUGIN_HANDLED
} else {
client_print(id, print_chat, "[EXP] %L", id, "SOLD")
PlayerPoints[id] += 1 * g_HealthLevel[id]
g_HealthLevel[id] -= 1
set_user_health(id, 100)
add_health(id, g_HealthLevel[id] * Health_PerLevel)
ShowHud(id);
display_sellmenu(id);
if(get_pcvar_num(MOD_SOUNDS) == 1) {
client_cmd(id,"spk xpmod/xp_upgradesell")
}
}
}
case 1:
{
if(g_ArmorLevel[id] == 0) {
client_print(id, print_chat, "[EXP] %L", id, "NEEDED")
return PLUGIN_HANDLED
} else if(!is_user_alive(id)) {
client_print(id, print_chat, "[EXP] %L", id, "ALIVE2")
return PLUGIN_HANDLED
} else {
client_print(id, print_chat, "[EXP] %L", id, "SOLD")
PlayerPoints[id] += 1 * g_ArmorLevel[id]
g_ArmorLevel[id] -= 1
cs_set_user_armor(id, 100, CS_ARMOR_KEVLAR)
add_armor(id, g_ArmorLevel[id] * Armor_PerLevel)
ShowHud(id);
display_sellmenu(id);
if(get_pcvar_num(MOD_SOUNDS) == 1) {
client_cmd(id,"spk xpmod/xp_upgradesell")
}
}
}
case 2:
{
if(g_SpeedLevel[id] == 0) {
client_print(id, print_chat, "[EXP] %L", id, "NEEDED")
return PLUGIN_HANDLED
} else if(!is_user_alive(id)) {
client_print(id, print_chat, "[EXP] %L", id, "ALIVE2")
return PLUGIN_HANDLED
} else {
client_print(id, print_chat, "[EXP] %L", id, "SOLD")
PlayerPoints[id] += 1 * g_SpeedLevel[id]
g_SpeedLevel[id] -= 1
set_user_maxspeed(id, 320.0)
new Float:fSpeed = 320.0 + (g_SpeedLevel[id] * Speed_PerLevel)
set_user_maxspeed(id, fSpeed)
ShowHud(id);
display_sellmenu(id);
if(get_pcvar_num(MOD_SOUNDS) == 1) {
client_cmd(id,"spk xpmod/xp_upgradesell")
}
}
}
case 3:
{
if(g_RegenerationLevel[id] == 0) {
client_print(id, print_chat, "[EXP] %L", id, "NEEDED")
return PLUGIN_HANDLED
} else if(!is_user_alive(id)) {
client_print(id, print_chat, "[EXP] %L", id, "ALIVE2")
return PLUGIN_HANDLED
} else {
client_print(id, print_chat, "[EXP] %L", id, "SOLD")
PlayerPoints[id] += 1 * g_RegenerationLevel[id]
g_RegenerationLevel[id] -= 1
ShowHud(id);
display_sellmenu(id);
if(get_pcvar_num(MOD_SOUNDS) == 1) {
client_cmd(id,"spk xpmod/xp_upgradesell")
}
}
}
case 4:
{
if(g_GravityLevel[id] == 0) {
client_print(id, print_chat, "[EXP] %L", id, "NEEDED")
return PLUGIN_HANDLED
} else if(!is_user_alive(id)) {
client_print(id, print_chat, "[EXP] %L", id, "ALIVE2")
return PLUGIN_HANDLED
} else {
client_print(id, print_chat, "[EXP] %L", id, "SOLD")
PlayerPoints[id] += 1 * g_GravityLevel[id]
g_GravityLevel[id] -= 1
new Float: fGravity = g_GravityLevel[id] * Gravity_PerLevel
set_gravity(id, fGravity)
ShowHud(id);
display_sellmenu(id);
if(get_pcvar_num(MOD_SOUNDS) == 1) {
client_cmd(id,"spk xpmod/xp_upgradesell")
}
}
}
case 9:
{
}
}
if(get_pcvar_num(SAVE_XP) == 1 && !is_user_bot(id)) {
SaveData(id);
}
ShowHud(id);
return PLUGIN_HANDLED
}
add_armor(id, value)
{
new CsArmorType:ArmorType
new iArmor = cs_get_user_armor(id, ArmorType)
cs_set_user_armor(id, iArmor + value, ArmorType)
}
add_health(id, value)
{
new iHealth = get_user_health(id)
set_user_health(id, iHealth + value)
}
set_gravity(id, Float:value) {
set_user_gravity(id, 1.00 - value)
}
public event_curweapon(id) {
if(!is_user_connected(id))
{
return PLUGIN_HANDLED;
}
if(g_SpeedLevel[id] > 0)
{
new Float:fSpeed = 320.0 + (g_SpeedLevel[id] * Speed_PerLevel)
set_user_maxspeed(id, fSpeed)
}
if(g_GravityLevel[id] > 0)
{
new Float: fGravity = g_GravityLevel[id] * Gravity_PerLevel
if(get_user_gravity(id) != fGravity) {
set_gravity(id, fGravity)
}
}
return PLUGIN_CONTINUE;
}
public eDamage(iVictim, ent, iAttacker, Float:damage, bits)
{
if(!is_user_connected(iVictim) || !is_user_connected(iAttacker) || iVictim == iAttacker)
{
return HAM_IGNORED;
}
if(bits & DMG_GRENADE)
{
iAttacker = attacker_he;
set_task(0.1, "eCheck", iVictim);
}
return HAM_IGNORED;
}
public eCheck(id)
{
++Killstreaks[attacker_he];
if(kills[attacker_he] != get_pcvar_num(KILLSTREAK) && HS[attacker_he] != get_pcvar_num(HSSTREAK))
{
if(!is_user_alive(id))
{
PlayerXP[attacker_he] += (get_pcvar_num(KILL_XP) + get_pcvar_num(HE_XP));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(attacker_he, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(HE_XP));
++kills[attacker_he];
}
}
if(kills[attacker_he] == get_pcvar_num(KILLSTREAK) && HS[attacker_he] == get_pcvar_num(HSSTREAK))
{
if(!is_user_alive(id))
{
PlayerXP[attacker_he] += (get_pcvar_num(KILL_XP) + get_pcvar_num(HE_XP) + get_pcvar_num(KILLSTREAKBONUS) + get_pcvar_num(HSSTREAKBONUS));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(attacker_he, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(HE_XP) + get_pcvar_num(KILLSTREAKBONUS) + get_pcvar_num(HSSTREAKBONUS));
kills[attacker_he] = 0;
HS[attacker_he] = 0;
}
}
if(kills[attacker_he] == get_pcvar_num(KILLSTREAK) && HS[attacker_he] != get_pcvar_num(HSSTREAK))
{
if(!is_user_alive(id))
{
PlayerXP[attacker_he] += (get_pcvar_num(KILL_XP) + get_pcvar_num(HE_XP) + get_pcvar_num(KILLSTREAKBONUS));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(attacker_he, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(HE_XP) + get_pcvar_num(KILLSTREAKBONUS));
}
}
if(HS[attacker_he] == get_pcvar_num(HSSTREAK) && kills[attacker_he] != get_pcvar_num(KILLSTREAK))
{
if(!is_user_alive(id))
{
PlayerXP[attacker_he] += (get_pcvar_num(KILL_XP) + get_pcvar_num(HE_XP) + get_pcvar_num(HSSTREAKBONUS));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(attacker_he, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(HE_XP) + get_pcvar_num(HSSTREAKBONUS));
HS[attacker_he] = 0;
}
}
if(get_pcvar_num(SAVE_XP) == 1 && !is_user_bot(attacker_he)) {
SaveData(attacker_he);
}
ShowHud(attacker_he);
CheckLevel(attacker_he);
}
public eDeath(iVictim, iAttacker) {
new HitGroup = get_pdata_int(iVictim, m_LastHitGroup);
Killstreaks[iVictim] = 0;
kills[iVictim] = 0;
HS[iVictim] = 0;
if(!IsPlayer(iAttacker)){
return HAM_IGNORED;
}
new weapon = get_user_weapon(iAttacker);
if(get_user_team(iAttacker) != get_user_team(iVictim)) {
++Killstreaks[iAttacker];
if(kills[iAttacker] != get_pcvar_num(KILLSTREAK) && HS[iAttacker] != get_pcvar_num(HSSTREAK))
{
if(weapon == CSW_KNIFE)
{
if(HitGroup != HIT_HEAD)
{
PlayerXP[iAttacker] += (get_pcvar_num(KILL_XP) + get_pcvar_num(KNF_XP));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(KNF_XP));
++kills[iAttacker];
}
else
{
PlayerXP[iAttacker] += (get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP) + get_pcvar_num(KNF_XP));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP) + get_pcvar_num(KNF_XP));
++kills[iAttacker];
++HS[iAttacker];
}
}
else
{
if(HitGroup != HIT_HEAD)
{
PlayerXP[iAttacker] += get_pcvar_num(KILL_XP);
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP));
++kills[iAttacker];
}
else
{
PlayerXP[iAttacker] += (get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP));
++kills[iAttacker];
++HS[iAttacker];
}
}
}
if(kills[iAttacker] == get_pcvar_num(KILLSTREAK) && HS[iAttacker] == get_pcvar_num(HSSTREAK))
{
if(weapon == CSW_KNIFE)
{
if(HitGroup != HIT_HEAD)
{
PlayerXP[iAttacker] += (get_pcvar_num(KILL_XP) + get_pcvar_num(KNF_XP) + get_pcvar_num(KILLSTREAKBONUS) + get_pcvar_num(HSSTREAKBONUS));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(KNF_XP) + get_pcvar_num(KILLSTREAKBONUS) + get_pcvar_num(HSSTREAKBONUS));
kills[iAttacker] = 0;
HS[iAttacker] = 0;
}
else
{
PlayerXP[iAttacker] += (get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP) + get_pcvar_num(KNF_XP) + get_pcvar_num(KILLSTREAKBONUS) + get_pcvar_num(HSSTREAKBONUS));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP) + get_pcvar_num(KNF_XP) + get_pcvar_num(KILLSTREAKBONUS) + get_pcvar_num(HSSTREAKBONUS));
kills[iAttacker] = 0;
HS[iAttacker] = 0;
}
}
else
{
if(HitGroup != HIT_HEAD)
{
PlayerXP[iAttacker] += get_pcvar_num(KILL_XP) + get_pcvar_num(KILLSTREAKBONUS) + get_pcvar_num(HSSTREAKBONUS);
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(KILLSTREAKBONUS) + get_pcvar_num(HSSTREAKBONUS));
kills[iAttacker] = 0;
HS[iAttacker] = 0;
}
else
{
PlayerXP[iAttacker] += (get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP) + get_pcvar_num(KILLSTREAKBONUS) + get_pcvar_num(HSSTREAKBONUS));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP) + get_pcvar_num(KILLSTREAKBONUS) + get_pcvar_num(HSSTREAKBONUS));
kills[iAttacker] = 0;
HS[iAttacker] = 0;
}
}
}
if(kills[iAttacker] == get_pcvar_num(KILLSTREAK) && HS[iAttacker] != get_pcvar_num(HSSTREAK))
{
if(weapon == CSW_KNIFE)
{
if(HitGroup != HIT_HEAD)
{
PlayerXP[iAttacker] += (get_pcvar_num(KILL_XP) + get_pcvar_num(KNF_XP) + get_pcvar_num(KILLSTREAKBONUS));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(KNF_XP) + get_pcvar_num(KILLSTREAKBONUS));
}
else
{
PlayerXP[iAttacker] += (get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP) + get_pcvar_num(KNF_XP) + get_pcvar_num(KILLSTREAKBONUS));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP) + get_pcvar_num(KNF_XP) + get_pcvar_num(KILLSTREAKBONUS));
++HS[iAttacker];
}
}
else
{
if(HitGroup != HIT_HEAD)
{
PlayerXP[iAttacker] += get_pcvar_num(KILL_XP) + get_pcvar_num(KILLSTREAKBONUS);
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(KILLSTREAKBONUS));
}
else
{
PlayerXP[iAttacker] += (get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP) + get_pcvar_num(KILLSTREAKBONUS));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP) + get_pcvar_num(KILLSTREAKBONUS));
++HS[iAttacker];
}
}
kills[iAttacker] = 0;
}
if(HS[iAttacker] == get_pcvar_num(HSSTREAK) && kills[iAttacker] != get_pcvar_num(KILLSTREAK))
{
if(weapon == CSW_KNIFE)
{
if(HitGroup != HIT_HEAD)
{
PlayerXP[iAttacker] += (get_pcvar_num(KILL_XP) + get_pcvar_num(KNF_XP) + get_pcvar_num(HSSTREAKBONUS));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(KNF_XP) + get_pcvar_num(HSSTREAKBONUS));
HS[iAttacker] = 0;
}
else
{
PlayerXP[iAttacker] += (get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP) + get_pcvar_num(KNF_XP) + get_pcvar_num(HSSTREAKBONUS));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP) + get_pcvar_num(KNF_XP) + get_pcvar_num(HSSTREAKBONUS));
HS[iAttacker] = 0;
}
}
else
{
if(HitGroup != HIT_HEAD)
{
PlayerXP[iAttacker] += get_pcvar_num(KILL_XP) + get_pcvar_num(HSSTREAKBONUS);
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(HSSTREAKBONUS));
HS[iAttacker] = 0;
}
else
{
PlayerXP[iAttacker] += (get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP) + get_pcvar_num(HSSTREAKBONUS));
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(iAttacker, gHudSyncXp, "+ %d", get_pcvar_num(KILL_XP) + get_pcvar_num(HS_XP) + get_pcvar_num(HSSTREAKBONUS));
HS[iAttacker] = 0;
}
}
}
}
if(get_pcvar_num(SAVE_XP) == 1 && !is_user_bot(iAttacker)) {
SaveData(iAttacker);
}
ShowHud(iAttacker);
CheckLevel(iAttacker);
return HAM_IGNORED;
}
public CheckLevel(id) {
if(PlayerLevel[id] == MaxLevel){
return PLUGIN_HANDLED;
}
else {
if(PlayerXP[id] >= LEVELS[PlayerLevel[id]]){
PlayerLevel[id] += 1;
PlayerPoints[id] += get_pcvar_num(LVLUP_PTS);
client_print(id, print_chat, "[EXP] %L", id, "GRATZ", PlayerLevel[id],PlayerPoints[id]);
if(get_pcvar_num(LVLUP_MSG) == 1) {
new name[32]
get_user_info(id, "name", name, 31)
client_print(0, print_chat, "[EXP] %L", 0, "GRATZ2",name , PlayerLevel[id]);
}
display_PassiveUpgrades(id)
if(get_pcvar_num(MOD_SOUNDS) == 1) {
client_cmd(id,"spk xpmod/xp_levelup")
}
}
}
return PLUGIN_HANDLED
}
public HudShow(iEnt)
{
for(new id = 1; id <= g_iMaxPlayers; id++)
{
ShowHud(id);
}
set_pev(iEnt, pev_nextthink, get_gametime() + 1.0);
}
public ShowHud(id)
{
new amount = PlayerLevel[id];
if(IsPlayer(id) && is_user_connected(id) && PlayerLevel[id] != MaxLevel) {
set_hudmessage(255, 0, 0, 0.02, 0.26, 0, 0.0, 1.0,_ ,_, -1);
ShowSyncHudMsg(id, gHudSync, "%L", id , "LEVEL1", PlayerLevel[id],PlayerXP[id],LEVELS[amount],PlayerPoints[id],Killstreaks[id]);
}
if(IsPlayer(id) && is_user_connected(id) && PlayerLevel[id] == MaxLevel) {
set_hudmessage(255, 0, 0, 0.02, 0.26, 0, 0.0, 1.0,_ ,_, -1);
ShowSyncHudMsg(id, gHudSync, "%L", id , "LEVEL2", PlayerXP[id],PlayerPoints[id],Killstreaks[id]);
}
}
public Planted()
{
for(new i = 1; i <= g_iMaxPlayers; ++i)
{
if(!IsPlayer(i))
return PLUGIN_HANDLED;
if(is_user_alive(i) && get_user_team(i) == 1)
{
isalive[i] = true;
PlayerXP[i] += get_pcvar_num(SET_C4_XP)
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(i, gHudSyncXp, "+ %d", get_pcvar_num(SET_C4_XP));
}
BombPlanted = true;
CheckLevel(i)
}
return PLUGIN_CONTINUE;
}
public Defused()
{
for(new i = 1; i <= g_iMaxPlayers; ++i)
{
if(!IsPlayer(i))
return PLUGIN_HANDLED;
if(is_user_alive(i) && get_user_team(i) == 2)
{
isalive[i] = false;
PlayerXP[i] += get_pcvar_num(DEFUSE_XP)
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(i, gHudSyncXp, "+ %d", get_pcvar_num(DEFUSE_XP));
}
if(BombPlanted) {
BombPlanted = false;
}
CheckLevel(i);
}
return PLUGIN_CONTINUE;
}
public Bombed()
{
for(new i = 1; i <= g_iMaxPlayers; ++i)
{
if(!IsPlayer(i))
return PLUGIN_HANDLED;
if(isalive[i] && get_user_team(i) == 1)
{
isalive[i] = false;
PlayerXP[i] += get_pcvar_num(EXPLOSION_XP)
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(i, gHudSyncXp, "+ %d", get_pcvar_num(EXPLOSION_XP));
}
if(BombPlanted) {
BombPlanted = false;
}
CheckLevel(i);
}
return PLUGIN_CONTINUE;
}
public TargetSaved()
{
for(new i = 1; i <= g_iMaxPlayers; ++i)
{
if(!IsPlayer(i))
return PLUGIN_HANDLED;
if(is_user_alive(i) && get_user_team(i) == 2)
{
PlayerXP[i] += get_pcvar_num(CT_XP)
set_hudmessage(0, 255, 50, 0.50, 0.33, 1, 0.5, 0.5);
ShowSyncHudMsg(i, gHudSyncXp, "+ %d", get_pcvar_num(CT_XP));
}
if(BombPlanted) {
BombPlanted = false;
}
CheckLevel(i);
}
return PLUGIN_CONTINUE;
}
public fwHamPlayerSpawnPost(id) {
if (is_user_alive(id))
{
if(g_PlayerReseted[id]) {
reset(id);
}
if(g_HealthLevel[id] == 0) {
set_user_health(id, 100)
}
if(g_ArmorLevel[id] == 0) {
cs_set_user_armor(id, 100, CS_ARMOR_KEVLAR)
}
if(g_SpeedLevel[id] == 0) {
set_user_maxspeed(id, 320.0)
}
if(g_GravityLevel[id] == 0) {
set_user_gravity(id, 1.00)
}
if(g_GravityLevel[id] > 0)
{
new Float: fGravity = g_GravityLevel[id] * Gravity_PerLevel
if(get_user_gravity(id) != fGravity) {
set_gravity(id, fGravity)
}
}
if(g_HealthLevel[id] > 0) {
set_user_health(id, 100)
add_health(id, g_HealthLevel[id] * Health_PerLevel)
}
if(g_ArmorLevel[id] > 0) {
cs_set_user_armor(id, 100, CS_ARMOR_KEVLAR)
add_armor(id, g_ArmorLevel[id] * Armor_PerLevel)
}
if(g_SpeedLevel[id] > 0) {
new Float:fSpeed = 320.0 + (g_SpeedLevel[id] * Speed_PerLevel)
set_user_maxspeed(id, fSpeed)
}
if(g_PlayerReg[id]) {
}
else {
set_task(1.0, "regen", id);
}
}
}
public Event_TeamInfo_All()
{
new id = read_data( TeamInfo_PlayerID )
if( !is_user_alive(id) && is_user_connected(id) )
{
new iTeam = get_pdata_int(id, m_iTeam, XO_PLAYER)
if( iTeam != get_user_team(id) )
{
emessage_begin(MSG_BROADCAST, gmsgScoreInfo)
ewrite_byte( id )
ewrite_short( get_user_frags(id) )
ewrite_short( get_pdata_int(id, m_iDeaths, XO_PLAYER) )
ewrite_short( 0 )
ewrite_short( iTeam )
emessage_end()
}
}
}
public regen(id){
new maxhp = 100 + g_HealthLevel[id] * Health_PerLevel
new regamount = g_RegenerationLevel[id] * Regeneration_PerLevel
new health = get_user_health(id)
if(is_user_alive(id) && !is_user_bot(id)) {
if(get_user_health(id) < maxhp) {
set_user_health(id, health+regamount)
}
if(get_user_health(id) > maxhp) {
set_user_health(id, maxhp)
}
}
g_PlayerReg[id] = true;
set_task(1.0, "regen", id);
}
public plugin_end()
{
nvault_close(g_vault);
}