Hello, I get these runtime errors when I'm trying to run this plugin on my server.
Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <vault>
#include <fun>
new PlayerLevel[33];
new PlayerXP[33];
new messagetext;
//PCvars
new pcvar_xpperkill, pcvar_tkloss, pcvar_savexp, pcvar_buyxp, pcvar_hsincrease, pcvar_buyxpprice1,
pcvar_buyxpprice2, pcvar_buyxpprice3, pcvar_buyxpamount1,pcvar_buyxpamount2, pcvar_buyxpamount3;
new const LEVELS[10] = {
2000,
5000,
10000,
17000,
26000,
38000,
53000,
71000,
92000,
116000
}
public plugin_init() {
register_plugin("MaTTe's Expirience Mod", "1.0", "MaTTe");
register_dictionary("mattexpmod.txt");
pcvar_xpperkill = register_cvar("mxpm_xpperkill", "250");
pcvar_tkloss = register_cvar("mxpm_tkloss", "150");
pcvar_savexp = register_cvar("mxpm_savexp", "1");
pcvar_buyxp = register_cvar("mxpm_buyxp", "1");
pcvar_hsincrease = register_cvar("mxpm_hsincrease", "50");
pcvar_buyxpprice1 = register_cvar("mxpm_buyxpprice1", "5000");
pcvar_buyxpprice2 = register_cvar("mxpm_buyxpprice2", "10000");
pcvar_buyxpprice3 = register_cvar("mxpm_buyxpprice3", "15000");
pcvar_buyxpamount1 = register_cvar("mxpm_buyxpamount1", "250");
pcvar_buyxpamount2 = register_cvar("mxpm_buyxpamount2", "500");
pcvar_buyxpamount3 = register_cvar("mxpm_buyxpamount3", "750");
register_concmd("mxpm_setxp", "action_setxp", ADMIN_LEVEL_A, "<name> <amount> ");
register_concmd("mxpm_setlevel", "action_setlevel", ADMIN_LEVEL_A, "<name> <amount> ");
register_clcmd("say !buyxp", "action_buyxp");
register_clcmd("say !transferxp", "action_transferxp");
register_clcmd("say !upgrades", "upgradesmenu");
register_menucmd(register_menuid("choose_upgrades"), 1023, "action_upgradesmenu");
register_event("DeathMsg", "event_deathmsg", "a");
register_logevent("logevent_round_start", 2, "1=Round_Start");
messagetext = get_user_msgid("StatusText");
}
public logevent_round_start() {
new players[32], num;
get_players(players, num);
new player;
for(new i=0;i<num;i++) {
player = players[i];
upgradesmenu(player);
ShowHUD(player);
}
}
public event_deathmsg() {
new killer = read_data(1);
new victim = read_data(2);
new headshot = read_data(3);
new killername[32];
get_user_name(killer, killername, 31);
new victimname[32];
get_user_name(victim, victimname, 31);
new killer_team = get_user_team(killer);
new victim_team = get_user_team(victim);
new hskill = get_pcvar_num(pcvar_xpperkill) + get_pcvar_num(pcvar_hsincrease);
new kill = get_pcvar_num(pcvar_xpperkill);
if(killer_team == victim_team) {
PlayerXP[killer] -= get_pcvar_num(pcvar_tkloss);
client_print(killer, print_chat, "%L", "KILL_TK");
}
if(headshot && killer_team != victim_team) {
PlayerXP[killer] += hskill;
client_print(killer, print_chat, "%L", "KILL_HS", hskill, victimname);
} else if(killer_team != victim_team) {
PlayerXP[killer] += kill;
client_print(killer, print_chat, "%L", "KILL", kill, victimname)
}
if(PlayerXP[killer] < LEVELS[PlayerLevel[killer]]) {
PlayerLevel[killer] -= 1;
client_print(killer, print_chat, "%L", "LEVEL_LOST");
if(get_pcvar_num(pcvar_savexp))
action_savexp(killer);
ShowHUD(killer);
}
if(PlayerXP[killer] >= LEVELS[PlayerLevel[killer]]) {
PlayerLevel[killer] += 1;
client_print(killer, print_chat, "%L", "LEVEL_UP");
if(get_pcvar_num(pcvar_savexp))
action_savexp(killer);
ShowHUD(killer);
}
ShowHUD(killer);
}
public client_connect(id) {
new authid[32];
get_user_authid(id, authid, 31);
if(get_pcvar_num(pcvar_savexp)) {
action_loadxp(id);
client_print(id, print_chat, "%L", "XP_LOADED", authid);
}
}
public client_disconnect(id) {
new authid[32];
get_user_authid(id, authid, 31);
if(get_pcvar_num(pcvar_savexp)) {
action_savexp(id);
}
}
public action_setxp(id) {
new arg[32], arg2[12];
read_argv(1, arg, 31);
read_argv(2, arg2, 11);
new target = cmd_target(id, arg);
new amount = str_to_num(arg2);
new target_name[32];
get_user_name(target, target_name, 31);
PlayerXP[target] += amount;
client_print(target, print_chat, "%L", "XP_GOTFROMADMIN", amount);
if(PlayerXP[target] >= LEVELS[PlayerLevel[target]]) {
PlayerLevel[target] += 1;
client_print(target, print_chat, "%L", "LEVEL_UP");
if(get_pcvar_num(pcvar_savexp))
action_savexp(target);
ShowHUD(target);
}
ShowHUD(target);
console_print(id, "%L", "SETXP_SUCCEDED");
}
public action_setlevel(id) {
new arg[32], arg2[12];
read_argv(1, arg, 31);
read_argv(2, arg2, 11);
new target = cmd_target(id, arg);
new amount = str_to_num(arg2);
new target_name[32];
get_user_name(target, target_name, 31);
PlayerLevel[target] = amount;
client_print(target, print_chat, "%L", "LEVEL_GOTFROMADMIN", amount);
ShowHUD(target);
}
public action_buyxp(id) {
if(!get_pcvar_num(pcvar_buyxp))
return PLUGIN_HANDLED;
new buyxpprice1 = get_pcvar_num(pcvar_buyxpprice1);
new buyxpprice2 = get_pcvar_num(pcvar_buyxpprice2);
new buyxpprice3 = get_pcvar_num(pcvar_buyxpprice3);
new buyxpamount1 = get_pcvar_num(pcvar_buyxpamount1);
new buyxpamount2 = get_pcvar_num(pcvar_buyxpamount2);
new buyxpamount3 = get_pcvar_num(pcvar_buyxpamount3);
new money = cs_get_user_money(id);
if(money < buyxpprice1)
{
client_print(id, print_chat, "%L", "BUYXP_NOMONEY");
return PLUGIN_HANDLED;
}
else if(money >= buyxpprice1)
{
cs_set_user_money(id, money - buyxpprice1);
PlayerXP[id] += buyxpamount1;
client_print(id, print_chat, "%L", "BUYXP", buyxpamount1, buyxpprice1);
}
else if(money >= buyxpprice2)
{
cs_set_user_money(id, money - buyxpprice2);
PlayerXP[id] += buyxpamount2;
client_print(id, print_chat, "%L", "BUYXP", buyxpamount2, buyxpprice2);
}
else if(money >= buyxpprice3)
{
cs_set_user_money(id, money - buyxpprice3);
PlayerXP[id] += buyxpamount3;
client_print(id, print_chat, "%L", "BUYXP", buyxpamount3, buyxpprice3);
}
if(PlayerXP[id] >= LEVELS[PlayerLevel[id]]) {
PlayerLevel[id] += 1;
client_print(id, print_chat, "%L", "LEVEL_UP");
if(get_pcvar_num(pcvar_savexp))
action_savexp(id);
ShowHUD(id);
}
ShowHUD(id);
return PLUGIN_HANDLED;
}
public action_transferxp(id) {
new arg[32], arg2[6];
read_argv(1, arg, 31);
read_argv(2, arg2, 5);
new receiver = cmd_target(id, arg, 3);
new amount = str_to_num(arg2);
new givername[32];
get_user_name(id, givername, 31);
new receivername[32];
get_user_name(receiver, receivername, 31);
PlayerXP[receiver] += amount;
PlayerXP[id] -= amount;
client_print(id, print_chat, "%L", "TRANSFERXP_GAVEXP", amount, receivername);
client_print(receiver, print_chat, "%L", "TRANSFERXP_GOTXP", amount, givername);
if(PlayerXP[receiver] >= LEVELS[PlayerLevel[receiver]]) {
PlayerLevel[receiver] += 1;
client_print(receiver, print_chat, "%L", "LEVEL_UP");
if(get_pcvar_num(pcvar_savexp))
action_savexp(receiver);
ShowHUD(receiver);
}
if(PlayerXP[id] < LEVELS[PlayerLevel[id]]) {
PlayerLevel[id] -= 1;
client_print(id, print_chat, "%L", "LEVEL_LOST");
if(get_pcvar_num(pcvar_savexp))
action_savexp(id);
ShowHUD(id);
}
ShowHUD(receiver);
ShowHUD(id);
}
public action_savexp(id) {
new authid[32];
get_user_authid(id, authid, 31);
new vaultdata[64], vaultkey[64];
format(vaultkey, 63, "PLAYER-%s-xp", authid);
format(vaultdata, 63, "%d", PlayerXP[id]);
set_vaultdata(vaultkey, vaultdata);
format(vaultkey, 63, "PLAYER-%s-level", authid);
format(vaultdata, 63, "%d", PlayerLevel[id]);
set_vaultdata(vaultkey, vaultdata);
}
public action_loadxp(id) {
new authid[32];
get_user_authid(id, authid, 31);
new vaultdata[64], vaultkey[64];
format(vaultkey, 63, "PLAYER-%s-xp", authid);
get_vaultdata(vaultkey, vaultdata, 63);
PlayerXP[id] = str_to_num(vaultdata);
format(vaultkey, 63, "PLAYER-%s-level", authid);
get_vaultdata(vaultkey, vaultdata, 63);
PlayerLevel[id] = str_to_num(vaultdata);
}
public upgradesmenu(id) {
new menu[192];
new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MENU_KEY_8|MENU_KEY_9;
format(menu, 191, "%L", "UPGRADES_MENU");
show_menu(id, keys, menu, -1, "choose_upgrades");
return PLUGIN_HANDLED;
}
public action_upgradesmenu(id, key) {
switch(key) {
case 0:
{
if(PlayerLevel[id] < 1)
return PLUGIN_HANDLED;
set_user_health(id, 125);
client_print(id, print_chat, "%L", "HEALTH");
}
case 1:
{
if(PlayerLevel[id] < 3)
return PLUGIN_HANDLED;
regeneration(id);
client_print(id, print_chat, "%L", "REGENERATION");
}
case 2:
{
if(PlayerLevel[id] < 4)
return PLUGIN_HANDLED;
resupply(id);
client_print(id, print_chat, "%L", "RESUPPLY");
}
case 3:
{
if(PlayerLevel[id] < 2)
return PLUGIN_HANDLED;
set_user_armor(id, 150);
client_print(id, print_chat, "%L", "ARMOR");
}
case 4:
{
if(PlayerLevel[id] < 5)
return PLUGIN_HANDLED;
set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderNormal, 50);
client_print(id, print_chat, "%L", "STEALTH");
}
}
return PLUGIN_HANDLED;
}
public regeneration(id) {
set_user_health(id, get_user_health(id) + 4);
set_task(1.0, "regeneration", id);
}
public resupply(id) {
new wpnid, ammo, clip = get_user_weapon(id, clip, ammo);
cs_set_user_bpammo(id, wpnid, cs_get_user_bpammo(id, wpnid) + 1);
set_task(5.0, "resupply", id);
}
public ShowHUD(id) {
new HUD[51];
format(HUD, 50, "[MXPM] Level; %i XP; %i", PlayerLevel[id], PlayerXP[id]);
message_begin(MSG_ONE, messagetext, {0,0,0}, id)
write_byte(0);
write_string(HUD);
message_end();
return;
}