i guess you cant do it..
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#define MAXCLASSES 6
#define MAXLEVELS 10
#define MAX_HEALTH 570
#define MAX_ARMOR 450
#define PLUGIN "BetaMod"
#define VERSION "0.0.1"
#define AUTHOR "The_Thing"
new VIEW_MODEL[] = "models/test/v_m4a1.mdl"
new WORLD_MODEL[] = "models/test/w_m4a1.mdl"
new OLDWORLD_MODEL[] = "models/w_m4a1.mdl"
enum
{
PLAYERLEVEL_1,
PLAYERLEVEL_2,
PLAYERLEVEL_3,
PLAYERLEVEL_4,
PLAYERLEVEL_5,
PLAYERLEVEL_6,
PLAYERLEVEL_7,
PLAYERLEVEL_8,
PLAYERLEVEL_9,
PLAYERLEVEL_10
}
enum
{
CLASS_NONE = 0,
CLASS_SOLDIER,
CLASS_WIZARD,
CLASS_AMAZON,
CLASS_GHOST,
CLASS_DRAGON
}
new const CLASSES[MAXCLASSES][] =
{
"None",
"Soldier",
"Wizard",
"Amazon",
"GHOST",
"Dragon"
}
new const LEVELS[MAXLEVELS] =
{
0,
100,
200,
350,
500,
650,
800,
1000,
1200,
1450,
}
new PlayerXP[33], PlayerLevel[33], PlayerClass[33]
new g_vault, id, attacker, XP_Kill,XP_Knife,XP_Hs,SaveXP
public plugin_precache()
{
precache_model(VIEW_MODEL)
precache_model(WORLD_MODEL)
}
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("DeathMsg", "eDeath", "a")
SaveXP = register_cvar("SaveXP","1")
XP_Kill = register_cvar("XP_per_kill", "15")
XP_Hs = register_cvar("XP_hs_bonus", "25")
XP_Knife = register_cvar("XP_knife_bonus", "30")
g_vault = nvault_open("BetaMod")
register_event("CurWeapon", "Event_CurWeapon", "be","1=1")
register_forward(FM_SetModel, "fw_SetModel")
register_clcmd("say","check_say")
register_clcmd("say_team", "check_say")
RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost")
//register_logevent("logevent_round_end", 2, "1=Round_End")
register_clcmd("fullupdate", "clcmd_fullupdate")
}
public check_say(id)
{
new arg[32]
read_args( arg, 31 )
remove_quotes(arg)
if(equali(arg,"!heroes"))
ChangeClass(id)
if(equali(arg, "!info"))
ShowHud(id)
}
public fwHamPlayerSpawnPost(id)
{
if (PlayerClass[id] == CLASS_NONE)
ChangeClass(id)
}
public clcmd_fullupdate()
{
return PLUGIN_HANDLED_MAIN
}
public eDeath( )
{
new headshot,attacker = read_data( 1 )
new clip, ammo, weapon = get_user_weapon(id,clip,ammo)
headshot = read_data( 3 )
if(PlayerClass[attacker] == 0)
return PLUGIN_CONTINUE
PlayerXP[attacker] += get_pcvar_num(XP_Kill)
if(headshot)
PlayerXP[attacker] += get_pcvar_num(XP_Hs)
if(weapon == CSW_KNIFE)
PlayerXP[attacker] += get_pcvar_num(XP_Knife)
while(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])
{
client_print(attacker, print_chat, "[Beta Mod] Cheers ! You are a level %i %s!", PlayerLevel[attacker],CLASSES[PlayerClass[attacker]])
PlayerLevel[attacker] += 1
}
ShowHud(attacker)
SaveData(attacker)
return PLUGIN_CONTINUE
}
public ShowHud(id)
{
set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 3.0, 3.0, 0.1, 0.1, 1)
show_hudmessage(id, "Level: %i^nXP: %i^nClass: %s",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]])
}
public ChangeClass(id)
{
new menu = menu_create("Class Menu", "Class_Handle");
menu_additem(menu ,"Soldier", "1" , 0);
menu_additem(menu ,"Wizard", "2" , 0);
menu_additem(menu ,"Amazon", "3" , 0);
menu_additem(menu ,"GHOST", "4" , 0);
menu_additem(menu ,"Dragon", "5" , 0);
menu_setprop(menu , MPROP_EXIT , MEXIT_ALL);
menu_display(id , menu , 0);
return PLUGIN_CONTINUE
}
public Class_Handle(id, menu , item)
{
new szCommand[6] , szName[64];
new access , callback;
menu_item_getinfo(menu , item , access , szCommand , 5 , szName , 63 , callback);
new ChosenClass = str_to_num(szCommand)
if(PlayerClass[id] != ChosenClass)
{
PlayerClass[id] = ChosenClass
client_print(id, print_chat,"You are now a %s",CLASSES[ChosenClass])
}
else
{
if (PlayerClass[ChosenClass] == CLASS_NONE)
client_print(id, print_chat, "You didnt choose any Class!")
else
{
client_print(id,print_chat,"You are already a %s",CLASSES[ChosenClass]);
}
}
return PLUGIN_HANDLED
}
public client_connect(id)
{
if(get_pcvar_num(SaveXP) == 1)
{
LoadData(id)
ChangeClass(id)
}
}
public client_disconnect(id)
{
if(get_pcvar_num(SaveXP) == 1)
{
SaveData(id)
}
}
public SaveData(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s Mod",AuthID)
format(vaultdata,255,"%i %i ",PlayerXP[id],PlayerLevel[id])
nvault_set(g_vault,vaultkey,vaultdata)
return PLUGIN_CONTINUE
}
public LoadData(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s Mod",AuthID)
nvault_get(g_vault,vaultkey,vaultdata,255)
new playerxp[32], playerlevel[32]
parse(vaultdata, playerxp, 31, playerlevel, 31)
PlayerXP[id] = str_to_num(playerxp)
PlayerLevel[id] = str_to_num(playerlevel)
return PLUGIN_CONTINUE
}
public PlayerClass2(id)
{
if (PlayerClass[id] == CLASS_SOLDIER)
{
switch(PlayerLevel[id])
{
case 1:
{
set_user_health(id, 102);
give_item(id,"weapon_m249");
}
case 2:
{
set_user_health(id, 104);
set_user_armor(id, 105);
}
case 3:
{
set_user_health(id, 106);
set_user_armor(id, 110);
}
case 4:
{
set_user_health(id, 108);
set_user_armor(id, 115);
}
case 5:
{
set_user_health(id, 110);
set_user_armor(id, 120);
}
case 6:
{
set_user_health(id, 112);
set_user_armor(id, 125);
}
case 7:
{
set_user_health(id, 114);
set_user_armor(id, 130);
}
case 8:
{
set_user_health(id, 116);
set_user_armor(id, 135);
}
case 9:
{
set_user_health(id, 118);
set_user_armor(id, 140)
}
case 10:
{
set_user_health(id, 120);
set_user_armor(id, 145);
}
}
}
if (PlayerClass[id] == CLASS_WIZARD)
{
switch (PlayerLevel[id])
{
case 1:
{
set_user_health(id, 101);
set_user_armor(id, 105);
}
case 2:
{
set_user_health(id, 102);
set_user_armor(id, 110);
}
case 3:
{
set_user_health(id, 103);
set_user_armor(id, 115);
}
case 4:
{
set_user_health(id, 104);
set_user_armor(id, 120);
}
case 5:
{
set_user_health(id, 105);
set_user_armor(id, 125);
}
case 6:
{
set_user_health(id, 106);
set_user_armor(id, 130);
}
case 7:
{
set_user_health(id, 107);
set_user_armor(id, 140);
}
case 8:
{
set_user_health(id, 108);
set_user_armor(id, 145);
}
case 9:
{
set_user_health(id, 109);
set_user_armor(id, 150);
}
case 10:
{
set_user_health(id, 110);
set_user_armor(id, 155);
}
}
}
}
public Event_CurWeapon(id)
{
if (PlayerClass[id] == CLASS_SOLDIER)
{
new weaponID = read_data(2)
if(weaponID != CSW_M4A1)
return PLUGIN_CONTINUE
entity_set_string(id, EV_SZ_viewmodel, VIEW_MODEL)
}
return PLUGIN_CONTINUE
}
public fw_SetModel(entity, model[])
{
if(!is_valid_ent(entity))
return FMRES_IGNORED
if(!equali(model, OLDWORLD_MODEL))
return FMRES_IGNORED
new className[33]
entity_get_string(entity, EV_SZ_classname, className, 32)
if(equal(className, "weaponbox") || equal(className, "armoury_entity") || equal(className, "grenade"))
{
entity_set_model(entity, WORLD_MODEL)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}