exactly. i know mapcycle isn't shutting down server. problem is in this code
PHP Code:
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <nvault>
enum _:Ranks
{
player_level_1,
player_level_2,
player_level_3,
player_level_4,
player_level_5,
player_level_6,
player_level_7,
player_level_8,
player_level_9,
player_level_10,
}
new const ranknames[Ranks][] =
{
"Newbie",
"Rookie",
"Thief",
"Gangster",
"ArmsDealer",
"Mobster",
"Gangleader",
"Assasin",
"Terrorist",
"Godfather"
};
new const CTranknames[Ranks][] =
{
"Trainee",
"Greenhorn",
"Agent",
"Undercover Agent",
"Soldier",
"Special Agent",
"Lieutenant",
"Captain",
"General",
"Admiral"
};
new const LEVELS[Ranks][2] =
{
{0, 99},
{100, 199},
{200, 499},
{500, 799},
{800, 1199},
{1200, 1799},
{1800, 2699},
{2700, 3999},
{4000, 5999},
{6000, 8000}
};
new const LEVELSCT[Ranks][2] =
{
{0, 99},
{100, 199},
{200, 499},
{500, 799},
{800, 1199},
{1200, 1799},
{1800, 2699},
{2700, 3999},
{4000, 5999},
{6000, 8000}
};
enum _:XPDATA
{
XPTotal, XP[CsTeams], Rank
}
//Add your cvars here
enum _:TEAMCVARS
{
CVAR_HEALTH,
CVAR_ARMOR
}
//Offsets
const m_LastHitGroup = 75;
//Max Players
const MAX_PLAYERS = 32;
//XP Holders
new g_XP[MAX_PLAYERS+1][XPDATA];//Holds your XP data
//Team Specific Cvars
new g_Cvar[TEAMCVARS][CsTeams][Ranks];
//HudSync
new gHudSync;
//Cvars
new g_iXpKill, g_iXPHSKill, g_iXpKillct, g_iXPHSKillct;
//Nvault
new g_szAuthID[MAX_PLAYERS+1][35];
new g_iVault;
public plugin_init()
{
register_plugin("Xp Mod Teams", "0.0.1", "SavSin");
//Sync the hud messages
gHudSync = CreateHudSyncObj();
//Player Events
RegisterHam(Ham_Spawn, "player", "fwdHamPlayerSpawn", 1);
RegisterHam(Ham_Killed, "player", "fwdHamPlayerKilled", 1);
//Cvars
g_iXpKill = register_cvar("xmt_kill_xp", "8");
g_iXPHSKill = register_cvar("xmt_hs_kill_xp", "4");
g_iXpKillct = register_cvar("xmt_killct_xp", "2");
g_iXPHSKillct = register_cvar("xmt_hs_killct_xp", "1");
RegisterCvars();
//Nvault
g_iVault = nvault_open("player_xp_data");
}
public cz_bot_ham_registerable(id)
{
RegisterHamFromEntity(Ham_Killed, id, "fwdHamPlayerKilled", 1);
}
public client_authorized(id)
{
if(!is_user_bot(id))
{
get_user_authid(id , g_szAuthID[id] , charsmax(g_szAuthID[]));
LoadData(id);
}
}
public client_disconnect(id)
{
SaveData(id);
g_XP[id] = g_XP[0];
}
public fwdHamPlayerSpawn(id)
{
if(is_user_alive(id))
{
set_user_health(id, get_pcvar_num(g_Cvar[CVAR_HEALTH][cs_get_user_team(id)][g_XP[id][Rank]]));
cs_set_user_armor (id, get_pcvar_num(g_Cvar[CVAR_ARMOR][cs_get_user_team(id)][g_XP[id][Rank]]), CS_ARMOR_VESTHELM)
if(!task_exists(id))
{
set_task(1.0, "ShowHud", id, _, _, "b");
}
}
}
public fwdHamPlayerKilled(iVictim, iKiller, iShouldGib)
{
new HitGroup = get_pdata_int(iVictim, m_LastHitGroup, 5);
new iTempXP[MAX_PLAYERS+1];
//new attacker = cs_get_user_team(iKiller)
if(cs_get_user_team(iKiller) == CS_TEAM_CT)
{
iTempXP[iKiller] += get_pcvar_num(g_iXpKillct);
remove_task(iVictim);
}
else if(cs_get_user_team(iKiller) == CS_TEAM_T)
{
iTempXP[iKiller] += get_pcvar_num(g_iXpKill);
remove_task(iVictim);
}
//if(get_user_weapon(iVictim) == CSW_KNIFE)
//{
// iTempXP[iKiller] += get_pcvar_num(g_iXPKnifeKill);
//}
if(HitGroup == HIT_HEAD && cs_get_user_team(iKiller) == CS_TEAM_CT)
{
iTempXP[iKiller] += get_pcvar_num(g_iXPHSKillct);
}
else if(HitGroup == HIT_HEAD && cs_get_user_team(iKiller) == CS_TEAM_T)
{
iTempXP[iKiller] += get_pcvar_num(g_iXPHSKill);
}
g_XP[iKiller][XP][cs_get_user_team(iKiller)] += iTempXP[iKiller];
g_XP[iKiller][XPTotal] += iTempXP[iKiller];
iTempXP[iKiller] = 0;
SaveData(iKiller);
CheckLevel(iKiller);
}
public CheckLevel(id)
{
if(cs_get_user_team(id) == CS_TEAM_CT)
{
for (new i = 0 ; i < sizeof(LEVELSCT) ; i++ )
{
if (LEVELSCT[i][0] <= g_XP[id][XP][cs_get_user_team(id)] <= LEVELSCT[i][1] )
{
if(g_XP[id][Rank] != i)
{
if(g_XP[id][Rank] < i)
{
client_print(id, print_chat,"^4[JailBreak] ^1Congratulations! You are now a^4 %i ^1!", CTranknames[g_XP[id][Rank]])
}
else
{
client_print(id, print_chat,"^4[JailBreak] ^1You have been demoted to a^4 %i ^1!", CTranknames[g_XP[id][Rank]])
}
g_XP[id][Rank] = i; // Sets Player New Level
break;
}
break;
}
}
}
if(cs_get_user_team(id) == CS_TEAM_T)
{
for (new i = 0 ; i < sizeof(LEVELS) ; i++ )
{
if (LEVELS[i][0] <= g_XP[id][XP][cs_get_user_team(id)] <= LEVELS[i][1] )
{
if(g_XP[id][Rank] != i)
{
if(g_XP[id][Rank] < i)
{
client_print(id, print_chat,"^4[JailBreak] ^1Congratulations! You are now a^4 %i ^1!", ranknames[g_XP[id][Rank]])
}
else
{
client_print(id, print_chat,"^4[JailBreak] ^1You have been demoted to a^4 %i ^1!", ranknames[g_XP[id][Rank]])
}
g_XP[id][Rank] = i; // Sets Player New Level
break;
}
break;
}
}
}
}
public ShowHud(id)
{
if(is_user_connected(id))
{
if(cs_get_user_team(id) == CS_TEAM_T)
{
set_hudmessage(255, 0, 0, 0.02, 0.26, 0, 0.0, 1.0,_ ,_, -1);
ShowSyncHudMsg(id, gHudSync, "[Level: %s] ^n[XP: %d / %d]", ranknames[g_XP[id][Rank]], g_XP[id][XP][cs_get_user_team(id)], (g_XP[id][Rank] + 1)== Ranks ? LEVELS[g_XP[id][Rank]][1] : LEVELS[g_XP[id][Rank] + 1][0] );
}
else if(cs_get_user_team(id) == CS_TEAM_CT)
{
set_hudmessage(255, 0, 0, 0.02, 0.26, 0, 0.0, 1.0,_ ,_, -1);
ShowSyncHudMsg(id, gHudSync, "[Level: %s] ^n[XP: %d / %d]", CTranknames[g_XP[id][Rank]], g_XP[id][XP][cs_get_user_team(id)], (g_XP[id][Rank] + 1)== Ranks ? LEVELSCT[g_XP[id][Rank]][1] : LEVELSCT[g_XP[id][Rank] + 1][0] );
}
}
}
public SaveData(id)
{
new iPos, szSave[(XPDATA*10)+1];
for(new i=0; i<XPDATA; i++)
iPos += formatex(szSave[iPos], charsmax(szSave), "%10d", g_XP[id][i]);
nvault_set(g_iVault, g_szAuthID[id], szSave);
}
public LoadData(id)
{
new iPos , szNum[11] , szLoad[(XPDATA * 10) + 1];
nvault_get(g_iVault, g_szAuthID[id], szLoad, charsmax(szLoad));
for(new i=0; i < XPDATA; i++)
{
iPos += copy(szNum, 10, szLoad[iPos]);
g_XP[id][i] = str_to_num(szNum);
}
}
public RegisterCvars()
{
//CT Team Cvars
g_Cvar[CVAR_HEALTH][CS_TEAM_CT][player_level_1] = register_cvar("xmt_lvlone_ct_health", "80");
g_Cvar[CVAR_ARMOR][CS_TEAM_CT][player_level_1] = register_cvar("xmt_lvlone_t_armor", "80");
g_Cvar[CVAR_HEALTH][CS_TEAM_CT][player_level_2] = register_cvar("xmt_lvltwo_t_health", "85");
g_Cvar[CVAR_ARMOR][CS_TEAM_CT][player_level_2] = register_cvar("xmt_lvltwo_t_armor", "85");
g_Cvar[CVAR_HEALTH][CS_TEAM_CT][player_level_3] = register_cvar("xmt_lvlthree_ct_health", "90");
g_Cvar[CVAR_ARMOR][CS_TEAM_CT][player_level_3] = register_cvar("xmt_lvlthree_ct_armor", "90");
g_Cvar[CVAR_HEALTH][CS_TEAM_CT][player_level_4] = register_cvar("xmt_lvlfour_ct_health", "95");
g_Cvar[CVAR_ARMOR][CS_TEAM_CT][player_level_4] = register_cvar("xmt_lvlfour_ct_armor", "95");
g_Cvar[CVAR_HEALTH][CS_TEAM_CT][player_level_5] = register_cvar("xmt_lvlfive_ct_health", "100");
g_Cvar[CVAR_ARMOR][CS_TEAM_CT][player_level_5] = register_cvar("xmt_lvlfive_ct_armor", "100");
g_Cvar[CVAR_HEALTH][CS_TEAM_CT][player_level_6] = register_cvar("xmt_lvlsix_ct_health", "105");
g_Cvar[CVAR_ARMOR][CS_TEAM_CT][player_level_6] = register_cvar("xmt_lvlsix_ct_armor", "105");
g_Cvar[CVAR_HEALTH][CS_TEAM_CT][player_level_7] = register_cvar("xmt_lvlseven_ct_health", "110");
g_Cvar[CVAR_ARMOR][CS_TEAM_CT][player_level_7] = register_cvar("xmt_lvlseven_ct_armor", "110");
g_Cvar[CVAR_HEALTH][CS_TEAM_CT][player_level_8] = register_cvar("xmt_lvleight_ct_health", "115");
g_Cvar[CVAR_ARMOR][CS_TEAM_CT][player_level_8] = register_cvar("xmt_lvleight_ct_armor", "115");
g_Cvar[CVAR_HEALTH][CS_TEAM_CT][player_level_9] = register_cvar("xmt_lvlnine_ct_health", "120");
g_Cvar[CVAR_ARMOR][CS_TEAM_CT][player_level_9] = register_cvar("xmt_lvlnine_ct_armor", "120");
g_Cvar[CVAR_HEALTH][CS_TEAM_CT][player_level_10] = register_cvar("xmt_lvlten_ct_health", "125");
g_Cvar[CVAR_ARMOR][CS_TEAM_CT][player_level_10] = register_cvar("xmt_lvlten_ct_armor", "125");
//T Team Cvars
g_Cvar[CVAR_HEALTH][CS_TEAM_T][player_level_1] = register_cvar("xmt_lvlone_t_health", "80");
g_Cvar[CVAR_ARMOR][CS_TEAM_T][player_level_1] = register_cvar("xmt_lvlone_t_armor", "80");
g_Cvar[CVAR_HEALTH][CS_TEAM_T][player_level_2] = register_cvar("xmt_lvltwo_t_health", "85");
g_Cvar[CVAR_ARMOR][CS_TEAM_T][player_level_2] = register_cvar("xmt_lvltwo_t_armor", "85");
g_Cvar[CVAR_HEALTH][CS_TEAM_T][player_level_3] = register_cvar("xmt_lvlthree_t_health", "90");
g_Cvar[CVAR_ARMOR][CS_TEAM_T][player_level_3] = register_cvar("xmt_lvlthree_t_armor", "90");
g_Cvar[CVAR_HEALTH][CS_TEAM_T][player_level_4] = register_cvar("xmt_lvlfour_t_health", "95");
g_Cvar[CVAR_ARMOR][CS_TEAM_T][player_level_4] = register_cvar("xmt_lvlfour_t_armor", "95");
g_Cvar[CVAR_HEALTH][CS_TEAM_T][player_level_5] = register_cvar("xmt_lvlfive_t_health", "100");
g_Cvar[CVAR_ARMOR][CS_TEAM_T][player_level_5] = register_cvar("xmt_lvlfive_t_armor", "100");
g_Cvar[CVAR_HEALTH][CS_TEAM_T][player_level_6] = register_cvar("xmt_lvlsix_t_health", "105");
g_Cvar[CVAR_ARMOR][CS_TEAM_T][player_level_6] = register_cvar("xmt_lvlsix_t_armor", "105");
g_Cvar[CVAR_HEALTH][CS_TEAM_T][player_level_7] = register_cvar("xmt_lvlseven_t_health", "110");
g_Cvar[CVAR_ARMOR][CS_TEAM_T][player_level_7] = register_cvar("xmt_lvlseven_t_armor", "110");
g_Cvar[CVAR_HEALTH][CS_TEAM_T][player_level_8] = register_cvar("xmt_lvleight_t_health", "115");
g_Cvar[CVAR_ARMOR][CS_TEAM_T][player_level_8] = register_cvar("xmt_lvleight_t_armor", "115");
g_Cvar[CVAR_HEALTH][CS_TEAM_T][player_level_9] = register_cvar("xmt_lvlnine_t_health", "120");
g_Cvar[CVAR_ARMOR][CS_TEAM_T][player_level_9] = register_cvar("xmt_lvlnine_t_armor", "120");
g_Cvar[CVAR_HEALTH][CS_TEAM_T][player_level_10] = register_cvar("xmt_lvlten_t_health", "125");
g_Cvar[CVAR_ARMOR][CS_TEAM_T][player_level_10] = register_cvar("xmt_lvlten_t_armor", "125");
}