ty, but can you see wat is wrong with this code? when you type -skillsmenu it wont show it. how can i fix this?
Code:
#include <amxmodx>
#include <amxmisc>
#include <nvault>
#include <fun>
#include <fakemeta>
#define MAXCLASSES 3
new const CLASSES[MAXCLASSES][] = {
"None",
"Naruto",
"Sasuke"
}
new const LEVELS[6] = {
100,
200,
400,
800,
1600,
3200
}
new Kunai[] = "models/narutomod/v_kunai.mdl"
new PlayerXP[33],PlayerLevel[33],PlayerClass[33], PlayerCredits[33]
new XP_Kill,XP_Knife,XP_Hs,SaveXP,g_vault
public plugin_init()
{
register_plugin("Naruto mod", "1.0", "Liinuus")
register_event("DeathMsg", "eDeath", "a")
SaveXP = register_cvar("SaveXP","1")
XP_Kill=register_cvar("XP_per_kill", "20")
XP_Hs=register_cvar("XP_hs_bonus","20")
XP_Knife=register_cvar("XP_knife_bonus","20")
g_vault = nvault_open("narutomod")
register_clcmd("say /class", "ChangeClass")
register_clcmd("say_team /class", "ChangeClass")
register_clcmd("say /xp", "ShowHud")
register_clcmd("say_team /xp", "ShowHud")
register_clcmd("say /skillsmenu", "Skills")
}
public plugin_precache()
{
precache_model(Kunai)
}
public eDeath(id, attacker)
{
new iVictim = read_data( 2 )
new headshot = read_data( 3 )
new clip, ammo, weapon = get_user_weapon(id,clip,ammo);
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, "[Naruto Mod] Congratulations! You are a level %i %s!")
PlayerLevel[attacker] += 1
PlayerCredits[attacker] += 10
}
ShowHud(attacker)
SaveData(attacker)
}
public ShowHud(id)
{
set_hudmessage(255, 0, 0, 0.75, 0.01, 0, 6.0, 15.0)
show_hudmessage(id, "Level: %i^nXP: %i^nClass: %s^nCredits: %i",PlayerLevel[id],PlayerXP[id],CLASSES[PlayerClass[id]],PlayerCredits[id])
}
public ChangeClass(id)
{
new menu = menu_create("Class Menu" , "Class_Handle");
menu_additem(menu ,"Naruto", "1" , 0);
menu_additem(menu ,"Sasuke", "2" , 0);
menu_setprop(menu , MPROP_EXIT , MEXIT_ALL);
menu_display(id , menu , 0);
return PLUGIN_CONTINUE;
}
public Class_Handle(id , menu , item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
}
new szCommand[6] , szName[64];
new access , callback;
menu_item_getinfo(menu , item , access , szCommand , 5 , szName , 63 , callback);
new key = str_to_num(szCommand)
if(PlayerClass[id] != key)
{
PlayerClass[id] = key
client_print(id,print_chat,"You are now a %s",CLASSES[key])
set_task(0.5, "Skills")
}
else
{
client_print(id,print_chat,"You are alredy a %s",CLASSES[key])
}
menu_destroy(menu);
return PLUGIN_CONTINUE
}
public client_connect(id)
{
if(get_pcvar_num(SaveXP) == 1)
{
LoadData(id)
}
}
public client_disconnect(id)
{
if(get_pcvar_num(SaveXP) == 1)
{
SaveData(id)
}
PlayerXP[id] = 0
PlayerLevel[id] = 0
PlayerClass[id] = 0
PlayerCredits[id] = 0
}
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],PlayerCredits[id],PlayerClass[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)
format(vaultdata,255,"%i#%i#",PlayerXP[id],PlayerLevel[id], PlayerCredits[id],PlayerClass[id])
nvault_get(g_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new playerxp[32], playerlevel[32], playercredits[32], playerclass[32]
parse(vaultdata, playerxp, 31, playerlevel, 31, playercredits, 31, playerclass, 31)
PlayerXP[id] = str_to_num(playerxp)
PlayerLevel[id] = str_to_num(playerlevel)
PlayerCredits[id] = str_to_num(playercredits)
PlayerClass[id] = str_to_num(playerclass)
return PLUGIN_CONTINUE
}
public Skills(id)
{
if( PlayerClass[id] == 1 )
{
set_task(1.0, "Naruto_Skills")
}
else
set_task(1.0, "Sauske_Skills")
}
public Naruto_Skills(id)
{
new menu = menu_create("Class Menu" , "Naruto_Handle");
menu_additem(menu ,"Health", "1" , 0);
menu_additem(menu ,"Kunai", "1" ,0);
menu_setprop(menu , MPROP_EXIT , MEXIT_ALL);
menu_display(id , menu , 0);
return PLUGIN_CONTINUE;
}
public Naruto_Handle(id , menu , item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
}
new szCommand[6] , szName[64];
new access , callback;
menu_item_getinfo(menu , item , access , szCommand , 5 , szName , 63 , callback);
new key = str_to_num(szCommand)
switch(key)
{
case 1:
{
set_task(1.0, "Naruto_HealthSkill")
}
case 2:
{
set_task(1.0, "Naruto_KunaiSkill")
}
}
menu_destroy(menu);
return PLUGIN_CONTINUE
}
public Sasuke_Skills(id)
{
new menu = menu_create("Class Menu" , "Sasuke_Handle");
menu_additem(menu ,"Speed", "1" , 0);
menu_setprop(menu , MPROP_EXIT , MEXIT_ALL);
menu_display(id , menu , 0);
return PLUGIN_CONTINUE;
}
public Sasuke_Handle(id , menu , item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu);
}
new szCommand[6] , szName[64];
new access , callback;
menu_item_getinfo(menu , item , access , szCommand , 5 , szName , 63 , callback);
new key = str_to_num(szCommand)
switch(key)
{
case 1:
{
set_task(0.5, "Sasuke_speedskill")
}
}
menu_destroy(menu);
return PLUGIN_CONTINUE
}