thank you guys all but not work code i need 2 things 1 remove the code for give ct and t exp when they win and add yours i need give exp for who not dead when the round end give all who not dead exp 2 when some one spec me show him info my exp and level set message ShowSyncHudMsg to be updated every 30 sec please help me
PHP Code:
#include <amxmodx>
#include <fakemeta>
#include <colorchat>
#include <fun>
#include <nvault>
#include <hamsandwich>
#define PREFIX "[...]"
#define HUD_TASK 2454527
new gExp[33], gLvl[33], gSpecs[33];
new gCvarKill, gCvarHs, gCvarSui, gCvarWin, gCvarLoose;
new gVault , sync
new const Specs[][] =
{
"Newbie",
"Regular",
"ModeRate",
"Semi-Pro",
"OptiMax"
}
new const Levels[] =
{
25,
50,
75,
100,
125,
150,
175,
200,
235,
270,
310,
350,
375,
400,
425,
450,
485,
520,
555,
600
}
new const CTWin[][] =
{
"2=%!MRAD_ctwin",
"2=%!MRAD_BOMBDEF",
"2=%!MRAD_rescued"
}
public plugin_init()
{
register_plugin("Exp-Mod", "1.0", "Rtk.Esc")
register_event( "DeathMsg", "DeathEvent", "a" )
register_event( "SendAudio", "TwinEvent", "a", "2=%!MRAD_terwin" )
for(new i; i < sizeof(CTWin); i++)
register_event( "SendAudio", "CwinEvent", "a", CTWin[i] )
RegisterHam( Ham_Spawn, "player", "HamSpawnEvent", 1 )
gCvarKill = register_cvar("exp_kill", "20")
gCvarHs = register_cvar("exp_headshot","10")
gCvarSui = register_cvar("exp_suicide", "10")
gCvarWin = register_cvar("exp_win", "10")
gCvarLoose = register_cvar("exp_loose", "5")
register_clcmd("say /xp", "showExp")
register_clcmd("say /info", "showInfo")
register_logevent("CTwin", 6, "3=CTs_Win", "3=All_Hostages_Rescued")
register_logevent("Twin" , 6, "3=Terrorists_Win", "3=Target_Bombed")
gVault = nvault_open("exp")
sync = CreateHudSyncObj()
}
public SaveExp(id)
{
new SteamID[35]
get_user_authid(id, SteamID, 34)
new vaultkey[64],vaultdata[256]
format(vaultkey, 63, "%s-Mod", SteamID)
format(vaultdata, 255, "%i %i %i ", gExp[id], gLvl[id], gSpecs[id])//you don't need # as a separtor,use just a simple space
nvault_set(gVault, vaultkey, vaultdata)
return PLUGIN_CONTINUE
}
public LoadExp( id )
{
new SteamID[35]
get_user_authid(id, SteamID, 34)
new vaultkey[64],vaultdata[256]
format(vaultkey, 63, "%s-Mod", SteamID)
format(vaultdata, 255, "%i %i %i ", gExp[id], gLvl[id], gSpecs[id])//same here
nvault_get(gVault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new exp[32], lvl[32], specs[32]
parse(vaultdata, exp, 31, lvl, 31, specs, 31)
gExp[id] = str_to_num(exp)
gLvl[id] = str_to_num(lvl)
gSpecs[id] = str_to_num(specs)
return PLUGIN_CONTINUE;
}
public client_authorized(id)
{
LoadExp(id)
}
public client_disconnect(id)
{
SaveExp(id)
gExp[id] = 0;
gLvl[id] = 0;
gSpecs[id] = 0;
remove_task(id+HUD_TASK)
}
public DeathEvent()
{
new iAtkr = read_data(1)
new iVict = read_data(2)
new iSuic = read_data(0)
new AtkrTeam = get_user_team(iAtkr)
new VictTeam = get_user_team(iVict)
if(is_user_bot(iAtkr) || AtkrTeam == VictTeam)
{
return PLUGIN_HANDLED;
}
if(iSuic)
{
gExp[iSuic] -= get_pcvar_num(gCvarSui)
SaveExp(iSuic)
return PLUGIN_HANDLED;
}
if(AtkrTeam != VictTeam)
{
//wrong
gExp[iAtkr] += get_pcvar_num(gCvarKill)
if(read_data(3))
{
gExp[iAtkr] += get_pcvar_num(gCvarHs)
}
/* Use it like this
if ( read_data ( 3 ) )
do sth
else
do sth
*/
}
while(gExp[iAtkr] >= Levels[gLvl[iAtkr]])
{
gLvl[iAtkr] += 1;
ColorChat(iAtkr, GREEN, "%sCongratulations! You grew to level %i!", PREFIX, gLvl[iAtkr]);
if(gLvl[iAtkr] == 5 || 10 || 15 || 20)
{
rankUp(iAtkr);
}
}
SaveExp(iAtkr)
return PLUGIN_CONTINUE;
}
public TwinEvent( )
{
for ( new id = 1; id <= 32; ++id )
{
if(get_user_team(id) == 2 )
{
gExp[id] -= get_pcvar_num(gCvarLoose)
SaveExp(id)
return PLUGIN_HANDLED;
}
if( get_user_team ( id ) == 1 )
{
gExp[id] += get_pcvar_num( gCvarWin )
while( gExp[id] >= Levels[gLvl[id]] )
{
gLvl[id] += 1;
ColorChat(id, GREEN, "%sCongratulations! You grew to level %i!", PREFIX, gLvl[id]);
if(gLvl[id] == 5 || 10 || 15 || 20)
{
rankUp(id);
}
SaveExp( id );
}
}
}
return PLUGIN_HANDLED;
}
public CwinEvent( )
{
for ( new id = 1; id <= 32; ++id )
{
if(get_user_team(id) == 1 )
{
gExp[id] -= get_pcvar_num(gCvarLoose)
SaveExp(id)
return PLUGIN_HANDLED;
}
if( get_user_team ( id ) == 2 )
{
gExp[id] += get_pcvar_num( gCvarWin )
while( gExp[id] >= Levels[gLvl[id]] )
{
gLvl[id] += 1;
ColorChat(id, GREEN, "%sCongratulations! You grew to level %i!", PREFIX, gLvl[id]);
if(gLvl[id] == 5 || 10 || 15 || 20)
{
rankUp(id);
}
SaveExp( id );
}
}
}
return PLUGIN_HANDLED;
}
public HamSpawnEvent(id)
{
if(gLvl[id] >= 5)
set_user_health(id, 105)
if(gLvl[id] >= 8)
set_user_health(id, 110)
if(gLvl[id] >= 12)
set_user_health(id, 120)
if(gLvl[id] >= 15)
set_user_health(id, 130)
if(gLvl[id] >= 18)
{
set_user_health(id, 135)
give_item(id, "weapon_hegrenade")
}
if(gLvl[id] >= 21)
{
set_user_health(id, 140);
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_awp");
}
}
public showExp(id)
{
set_hudmessage(255, 0, 0, 0.01, 0.17, 0, 6.0, 12.0)
show_hudmessage(id, "[%s]Exp: %i Lvl: %i", Specs[gSpecs[id]], gExp[id], gLvl[id])
}
public showInfo(id)
{
set_hudmessage(255, 0, 0, 0.01, 0.17, 0, 6.0, 12.0)
show_hudmessage(id, "[%s]Exp:%i/%i Lvl: %i", Specs[gSpecs[id]], gExp[id], Levels[gLvl[id] + 1], gLvl[id])
}
public rankUp(id)
{
if(gLvl[id] == 5)
{
gSpecs[id] = 1;
ColorChat(id, GREEN, "%sYou grew to %s", PREFIX, Specs[gSpecs[id]])
}
if(gLvl[id] == 10)
{
gSpecs[id] = 2;
ColorChat(id, GREEN, "%sYou grew to %s", PREFIX, Specs[gSpecs[id]])
}
if(gLvl[id] == 15)
{
gSpecs[id] = 3;
ColorChat(id, GREEN, "%sYou grew to %s", PREFIX, Specs[gSpecs[id]])
}
if(gLvl[id] == 20)
{
gSpecs[id] = 4;
ColorChat(id, GREEN, "%sYou grew to %s", PREFIX, Specs[gSpecs[id]])
}
}
public CTwin()
{
new players[32], num
get_players(players, num, "eh", "CT")
for(new i; i < num; i++)
{
gExp[i] += 1 //This is the EXP you give for winning CT team!
}
}
public Twin()
{
new players[32], num
get_players(players, num, "eh", "TERRORIST")
for(new i; i < num; i++)
{
gExp[i] += 1 //This is the EXP you give for winning CT team!
}
}
public client_putinserver(id)
{
if(!is_user_bot(id))
set_task(1.0,"show_exp",id+HUD_TASK,_,_,"b")
}
public show_exp(index)
{
new player = index - HUD_TASK
static data[128]
if(!is_user_alive(player))
{
player = pev(player,pev_iuser2)
if(!is_user_alive(player))
formatex(data,charsmax(data),"Please spectate someone")
else
{
static name[32]
get_user_name(player,name,charsmax(name))
formatex(data,charsmax(data),"[NAME]:- %s | Exp - %d | Level - %d",name,gExp[player],gLvl[player])
}
}
else
formatex(data,charsmax(data),"Your stats :- Exp - %d | Level - %d",gExp[player],gLvl[player])
set_hudmessage(0, 255, 255, 0.02, 0.89, 0, 6.0, 1.1, 0.0, 0.0, -1)
ShowSyncHudMsg(index-HUD_TASK,sync,data)
}