Help with my PLUGIN
Hi, I need help with my plugin.
Errors in console:
PHP Code:
L 02/02/2013 - 07:52:22: String formatted incorrectly - parameter 6 (total 6)
L 02/02/2013 - 07:52:22: [AMXX] Displaying debug trace (plugin "zm_xpupgrade.amxx")
L 02/02/2013 - 07:52:22: [AMXX] Run time error 25: parameter error
L 02/02/2013 - 07:52:22: [AMXX] [0] zm_xpmod v1.0.sma::show_game_menu (line 152)
L 02/02/2013 - 07:52:22: [AMXX] [1] zm_xpmod v1.0.sma::Checklvl (line 141)
L 02/02/2013 - 07:52:22: [AMXX] [2] zm_xpmod v1.0.sma::zp_user_infected_pre (line 124)
Script:
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <nvault>
#include <ColorChat>
#include <cstrike>
#include <fakemeta>
#include <fakemeta_util>
#include <engine>
#include <fun>
#include <csx>
#include <zombieplague>
#define PLUGIN_VERSION "1.0"
new lvl[33];
new iskustvo[33];
new g_point[32];
new g_zm_dmg[33], g_human_dmg[33], g_human_hp[33], g_armor[33], g_zombie_hp[33], g_zombie_max_dmg[33], g_zombie_max_hp[33], g_human_max_dmg[33], g_human_max_hp[33], g_max_armor[33];
new g_vault;
new SyncHudObj;
new cvar_give_point, cvar_xp_za_ubistvo, cvar_max_lvl, cvar_lvlup_ammopacks, cvar_lvl_zmdmg, cvar_lvl_humandmg, cvar_lvl_humanhp, cvar_lvl_armor, cvar_lvl_zombiehp, cvar_max_human_dmg, cvar_max_human_hp, cvar_max_zm_dmg, cvar_max_zm_hp, cvar_max_armor;
public plugin_init()
{
register_plugin("Level System", PLUGIN_VERSION, "EnZiCz")
register_cvar("csflvlsystem","1",(FCVAR_SERVER|FCVAR_SPONLY))
register_concmd("zp_set_lvl", "SetLvL", ADMIN_BAN, "<name> <level>");
register_clcmd("say /mujlevel","fCheckAbility")
register_event("DeathMsg", "eDeath", "ade");
register_event("HLTV", "eRoundStart", "a", "1=0", "2=0")
RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamage")
register_dictionary("xp.txt")
g_vault = nvault_open("csf_lvlsystem")
SyncHudObj = CreateHudSyncObj()
cvar_give_point = register_cvar("g_point","1")
cvar_max_human_dmg = register_cvar("zp_max_human_dmg","40")
cvar_max_human_hp = register_cvar("zp_max_human_hp","50")
cvar_max_zm_dmg = register_cvar("zp_max_zm_dmg","40")
cvar_max_zm_hp = register_cvar("zp_max_zm_hp","50")
cvar_max_armor = register_cvar("zp_max_armor","30")
cvar_xp_za_ubistvo = register_cvar("zp_lvl_kill_xp","100")
cvar_lvlup_ammopacks = register_cvar("zp_lvl_ammopacks","30")
cvar_lvl_zmdmg = register_cvar("zp_lvl_zombiedmg","3")
cvar_lvl_humandmg = register_cvar("zp_lvl_humandmg","1")
cvar_max_lvl = register_cvar("zp_maxlvl","100")
cvar_lvl_humanhp = register_cvar("zp_lvl_humanhp","10")
cvar_lvl_zombiehp = register_cvar("zp_lvl_zombiehp","80")
cvar_lvl_armor = register_cvar("zp_bonus_armor","1")
}
public eRoundStart() {
new players[32] , inum
get_players(players, inum)
for(new a = 0; a < inum; ++a)
set_task(3.0, "dajAbility", players[a])
}
public dajAbility(id) {
if(!is_user_alive(id)) return;
fm_set_user_health(id, get_user_health(id) + g_human_hp[id])
set_user_armor(id, get_user_armor(id) + g_armor[id])
}
public client_connect(id)
{
UcitajInfo(id)
set_task(3.0, "Showinfo", id+672)
set_task(5.0, "PodigniNivo",id)
}
public PodigniNivo(id)
{
if(lvl[id] == 0)
{
lvl[id]++
}
return PLUGIN_HANDLED
}
public client_disconnect(id)
{
SacuvajInfo(id)
remove_task(id+672)
}
public eDeath()
{
new id = read_data(2);
new attacker = read_data(1);
if(lvl[attacker] == get_pcvar_num(cvar_max_lvl))
return PLUGIN_HANDLED
if(attacker != id && is_user_connected(attacker))
{
set_hudmessage(0, 255, 0, -1.0, 0.76, 0, 6.0, 5.0)
show_hudmessage(attacker, "+ %d XP",get_pcvar_num(cvar_xp_za_ubistvo))
iskustvo[attacker] += get_pcvar_num(cvar_xp_za_ubistvo);
Checklvl(attacker);
}
return PLUGIN_HANDLED
}
public zp_user_infected_pre(id, infector)
{
if(lvl[infector] == get_pcvar_num(cvar_max_lvl))
return PLUGIN_HANDLED
set_hudmessage(0, 255, 0, -1.0, 0.76, 0, 6.0, 5.0)
show_hudmessage(infector, "+ %d XP",get_pcvar_num(cvar_xp_za_ubistvo))
iskustvo[infector] += get_pcvar_num(cvar_xp_za_ubistvo);
Checklvl(infector);
return PLUGIN_HANDLED
}
public Checklvl(id)
{
if(lvl[id] == get_pcvar_num(cvar_max_lvl))
return PLUGIN_HANDLED
g_point[id] = get_pcvar_num(cvar_give_point);
zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + get_pcvar_num(cvar_lvlup_ammopacks))
while(iskustvo[id] >= lvl[id]*lvl[id]*60)
{
lvl[id]++;
iskustvo[id]=0;
show_game_menu(id);
}
return PLUGIN_HANDLED
}
show_game_menu(id)
{
static menu[250], len, menuid
len = 0
len += formatex(menu[len], charsmax(menu) - len, "\yUpgrade Menu (Body %s)^n^n", g_point[id])
len += formatex(menu[len], charsmax(menu) - len, "\r1.\wZombie HP [\r%L/%L]^n", id, g_zm_dmg[id], g_zombie_max_dmg[id])
len += formatex(menu[len], charsmax(menu) - len, "\r2.\wZombie DMG [\r%L/%L]^n", id, g_zombie_hp[id], g_zombie_max_hp[id])
len += formatex(menu[len], charsmax(menu) - len, "\r3.\wHuman DMG [\r%L/%L]^n", id, g_human_dmg[id], g_human_max_dmg[id])
len += formatex(menu[len], charsmax(menu) - len, "\r4.\wHuman HP [\r%L/%L]^n", id, g_human_hp[id], g_human_max_hp[id])
len += formatex(menu[len], charsmax(menu) - len, "\r5.\wHuman Armor [\r%L/%L]^n", id, g_armor[id], g_max_armor[id])
formatex(menu, charsmax(menu), "%L", id, "MENU_EXIT")
menu_setprop(menuid, MPROP_EXITNAME, menu)
}
public cmd_upgrade_h(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 0:
{ // 5
menu_destroy(id)
}
case 1:
{
if(g_point[id] >= 1) {
g_zm_dmg[id] += get_pcvar_num(cvar_lvl_zmdmg);
g_zombie_max_dmg[id] = get_pcvar_num(cvar_max_zm_dmg);
g_point[id] = g_point[id] - 1;
} else {
client_print(id,print_chat,"Nemas dostatek pointu.")
}
}
case 2:
{
if(g_point[id] >= 1) {
g_zombie_hp[id] += get_pcvar_num(cvar_lvl_zombiehp);
g_zombie_max_hp[id] = get_pcvar_num(cvar_max_zm_hp);
g_point[id] = g_point[id] - 1;
} else {
client_print(id,print_chat,"Nemas dostatek pointu.")
}
}
case 3:
{
if(g_point[id] >= 1) {
g_human_dmg[id] += get_pcvar_num(cvar_lvl_humandmg);
g_human_max_dmg[id] = get_pcvar_num(cvar_max_human_dmg);
g_point[id] = g_point[id] - 1;
} else {
client_print(id,print_chat,"Nemas dostatek pointu.")
}
}
case 4:
{
if(g_point[id] >= 1) {
g_human_hp[id] += get_pcvar_num(cvar_lvl_humanhp);
g_human_max_hp[id] = get_pcvar_num(cvar_max_human_hp);
g_point[id] = g_point[id] - 1;
} else {
client_print(id,print_chat,"Nemas dostatek pointu.")
}
}
case 5:
{
if(g_point[id] >= 1) {
g_armor[id] += get_pcvar_num(cvar_lvl_armor);
g_max_armor[id] = get_pcvar_num(cvar_max_armor);
g_point[id] = g_point[id] - 1;
} else {
client_print(id,print_chat,"Nemas dostatek pointu.")
}
}
}
return PLUGIN_HANDLED;
}
public zp_user_infected_post(id, infector)
{
if(!is_user_alive(id)) return;
fm_set_user_health(id, get_user_health(id) + g_zombie_hp[id])
}
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_bits)
{
if (!zp_get_user_zombie(attacker) && is_user_alive(attacker))
{
SetHamParamFloat(4, damage + g_human_dmg[attacker])
}
else
{
SetHamParamFloat(4, damage + g_zm_dmg[attacker])
}
}
public Showinfo(id)
{
id -= 672;
set_task(0.1, "Showinfo", id+672);
if(!is_user_alive(id))
{
new target = pev(id, pev_iuser2);
if(target == 0)
{
return;
}
set_hudmessage(255, 212, 42, 0.55, 0.44, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[XP: %i / %i]^n[Level: %i]", iskustvo[target],lvl[target]*lvl[target]*60, lvl[target]);
}
else
{
set_hudmessage(0, 255, 0, 0.02, 0.65, 0, 0.0, 0.3, 0.0, 0.0);
ShowSyncHudMsg(id, SyncHudObj, "[XP: %i / %i]^n[Level: %i]", iskustvo[id],lvl[id]*lvl[id]*60, lvl[id]);
}
}
public SetLvL(id, level, cid)
{
if(!cmd_access(id,level,cid,3))
{
client_print(id, print_console,"[ZP] Zadny pristup")
return PLUGIN_HANDLED;
}
new arg1[33];
new arg2[6];
read_argv(1, arg1, 32);
read_argv(2, arg2, 5);
new player = cmd_target(id, arg1, CMDTARGET_NO_BOTS);
new value = str_to_num(arg2)-1;
if(!is_user_connected(player))
{
client_print(id, print_console,"[ZP] Hrac neni pripojen")
return PLUGIN_HANDLED;
}
if(value > get_pcvar_num(cvar_max_lvl))
{
client_print(id, print_console,"[ZP] Max level co muzes dat hraci je %d lvl",get_pcvar_num(cvar_max_lvl)-lvl[player])
return PLUGIN_HANDLED
}
new name[32]
get_user_name(player, name, 31) //ime igraca kome dajemo lvl
client_print(id, print_console,"[ZP] Nastavil %d lvl %s",value,name)
lvl[player]+=value;
return PLUGIN_HANDLED
}
public UcitajInfo(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-info",AuthID)
format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#",lvl[id],iskustvo[id],g_human_dmg[id],g_zm_dmg[id],g_human_hp[id],g_armor[id],g_zombie_hp[id])
nvault_get(g_vault,vaultkey,vaultdata,255)
replace_all(vaultdata, 255, "#", " ")
new s1[6], s2[6], s3[6], s4[6], s5[6], s6[6], s7[6]
parse(vaultdata, s1,6, s2,6, s3,6, s4,6, s5,6, s6,6, s7,6)
lvl[id] = str_to_num(s1)
iskustvo[id] = str_to_num(s2)
g_human_dmg[id] = str_to_num(s3)
g_zm_dmg[id] = str_to_num(s4)
g_human_hp[id] = str_to_num(s5)
g_armor[id] = str_to_num(s6)
g_zombie_hp[id] = str_to_num(s7)
return PLUGIN_CONTINUE
}
public SacuvajInfo(id)
{
new AuthID[35]
get_user_authid(id,AuthID,34)
new vaultkey[64],vaultdata[256]
format(vaultkey,63,"%s-info",AuthID)
format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#",lvl[id],iskustvo[id],g_human_dmg[id],g_zm_dmg[id],g_human_hp[id],g_armor[id],g_zombie_hp[id])
nvault_set(g_vault,vaultkey,vaultdata)
lvl[id] = 0
iskustvo[id] = 0
g_human_dmg[id] = 0
g_zm_dmg[id] = 0
g_human_hp[id] = 0
g_armor[id] = 0
g_zombie_hp[id] = 0
return PLUGIN_CONTINUE
}
public fCheckAbility(id)
{
ColorChat(id, TEAM_COLOR,"^4[ZP] ^1+Human HP: %d , +Zombie HP: %d , +Human DMG: %d , +Zombie DMG: %d , +Armor: %d",g_human_hp[id],g_zombie_hp[id],g_human_dmg[id],g_zm_dmg[id],g_armor[id])
}
I need to fix this plugin so that when someone does LVL menu so it starts with upgrades.
Sorry for my BAD English :D
|