|
BANNED
Join Date: Jul 2007
Location: (#504434)
|

10-01-2007
, 11:12
Re: Need Help with Errors and XP-Mod
|
#4
|
I'm begging you to please indent and space things out correctly, that was a horrible mess. I've cleaned up the code.
One more thing:
PHP Code:
return PLUGIN_HANDLED
is greater than
PHP Code:
/* MEDIC - REGENERATION AND SPEED HWGUY - HP AND AP SOLDIER - GRAVITY AND ARMOR SCOUT - SPEED AND GRAVITY MADE BY FROZEN USP! */ #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #include <nvault> #include <engine> #include <fakemeta>
#define TASK_REGEN 999 #define CLASS_NOTHING 0 #define CLASS_SCOUT 1 #define CLASS_SOLDIER 2 #define CLASS_HWGUY 3 #define CLASS_MEDIC 4
#define MAXCLASSES 5
new PlayerClass[33] new PlayerXP[33] new PlayerLevel[33]
new const CLASSES[MAXCLASSES][] = { "None", "Scout", "Soldier", "Hwguy", "Medic" }
new msgtext
new const LEVELS[20] = { 100, 200, 400, 800, 1600, 3200, 4000, 4500, 5000, 5300, 5900, 6800, 7600, 8500, 9000, 10000, 12000, 15000, 16000, 20000 }
public plugin_init() { register_plugin("TFC Mod", "1.0", "Frozen Usp") register_cvar("sv_tfcmod", "1") register_cvar("XP_per_kill", "20") register_clcmd("say /changeclass", "ChooseClass") register_clcmd("say_team /changeclass", "ChooseClass") register_event("CurWeapon","Event_CurWeapon","be","1=1") register_event("DeathMsg", "DeathMsg", "b") register_event("ResetHUD","ResetHUD","be") register_event("ResetHUD","on_spawn","be") register_menucmd(register_menuid("menu_ChooseClass"),1023,"DoChooseClass") msgtext = get_user_msgid("StatusText") }
public on_spawn(id) { // give the user 50 extra health if(PlayerClass[id] ==CLASS_HWGUY) set_user_health(id,200) // and 100 points of armour + a helmet if(PlayerClass[id] == CLASS_HWGUY || PlayerClass[id] ==CLASS_SOLDIER) cs_set_user_armor(id,150,CS_ARMOR_VESTHELM) // and reduce their gravity to half if(PlayerClass[id] == CLASS_SCOUT || PlayerClass[id] ==CLASS_SOLDIER) set_user_gravity(id,0.3) // and in 5 seconds, call the on_regen function set_task(5.0,"on_regen",TASK_REGEN+id) }
public Event_CurWeapon(id) { if(PlayerClass[id] == CLASS_SCOUT || PlayerClass[id] ==CLASS_MEDIC) { set_user_maxspeed(id,430.0) } return }
public on_regen(id) { // here, we take away the constant part of the task's id ( 999 ) // and are left with just the player id // (the task id is 999 + player's id ) if ( id > TASK_REGEN ) if(PlayerClass[id] ==CLASS_MEDIC) id -= TASK_REGEN ; // don't regen dead people ! if ( !is_user_alive(id) ) return ; // if(PlayerClass[id] ==CLASS_MEDIC)give user 5 hp if(PlayerClass[id] ==CLASS_MEDIC) set_user_health(id,get_user_health(id)+5) // and do it again in 5 seconds if(PlayerClass[id] ==CLASS_MEDIC) set_task(5.0,"on_regen",TASK_REGEN+id) }
public SaveXP(id) { new authid[32]; get_user_authid(id,authid,31); new vaultkey[64], vaultdata[64]; format(vaultkey,63,"CLASS-%s-class",authid); format(vaultdata,63,"%d",PlayerClass[id]); set_vaultdata(vaultkey,vaultdata); format(vaultkey,63,"CLASS-%s-xp",authid); format(vaultdata,63,"%d",PlayerXP[id]); set_vaultdata(vaultkey,vaultdata); format(vaultkey,63,"CLASS-%s-level",authid); format(vaultdata,63,"%d",PlayerLevel[id]); set_vaultdata(vaultkey,vaultdata); }
public LoadXP(id) { new authid[32]; get_user_authid(id,authid,31); new vaultkey[64], vaultdata[64]; format(vaultkey,63,"CLASS-%s-class",authid); get_vaultdata(vaultkey,vaultdata,63); PlayerClass[id] = str_to_num(vaultdata); format(vaultkey,63,"CLASS-%s-xp",authid); get_vaultdata(vaultkey,vaultdata,63); PlayerXP[id] = str_to_num(vaultdata); format(vaultkey,63,"CLASS-%s-level",authid); get_vaultdata(vaultkey,vaultdata,63); PlayerLevel[id] = str_to_num(vaultdata); }
public client_connect(id) { if(get_cvar_num("SaveXP") == 1) { LoadXP(id) client_print(id, print_chat, "[TFC] Loaded") client_print(id, print_chat, "[TFC] You are a %s with level %s and %s XP", PlayerClass[id], PlayerLevel[id], PlayerXP[id]) } }
public client_disconnect(id) { if(get_cvar_num("SaveXP") == 1) { SaveXP(id) } }
public ChooseClass(id) { new menu[192] new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4 format(menu, 191, "TFC: Choose Class^n^n1. Scout^n2. Soldier^n3. Hwguy^n4. Medic^n^n0. Exit") show_menu(id, keys, menu, -1, "menu_ChooseClass") return PLUGIN_CONTINUE }
public DoChooseClass(id, key) { if(key == 0) { if(PlayerClass[id] == CLASS_SCOUT) { ChooseClass(id) return PLUGIN_HANDLED } PlayerClass[id] = CLASS_SCOUT } if(key == 1) { if(PlayerClass[id] == CLASS_SOLDIER) { ChooseClass(id) return PLUGIN_HANDLED } PlayerClass[id] = CLASS_SOLDIER } if(key == 2) { if(PlayerClass[id] == CLASS_HWGUY) { ChooseClass(id) return PLUGIN_HANDLED } PlayerClass[id] = CLASS_HWGUY } if(key == 3) { if(PlayerClass[id] == CLASS_MEDIC) { ChooseClass(id) return PLUGIN_HANDLED } PlayerClass[id] = CLASS_MEDIC } ShowHUD(id) return PLUGIN_HANDLED }
public ResetHUD(id) { if(PlayerClass[id] == CLASS_NOTHING) { ChooseClass(id) return PLUGIN_HANDLED } return PLUGIN_HANDLED }
public DeathMsg() { if(get_cvar_num("sv_tfcmod") == 0) { return PLUGIN_HANDLED } new attacker = read_data(1) if(PlayerClass[attacker] == CLASS_NOTHING) { return PLUGIN_HANDLED } if(PlayerLevel[attacker] == 6) { return PLUGIN_HANDLED } PlayerXP[attacker] += get_cvar_num("XP_per_kill") if(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]]) { PlayerLevel[attacker] += 1 client_print(attacker, print_chat, "[TFC] Congratulations! You are now level %i!", PlayerLevel[attacker]) if(get_cvar_num("SaveXP") == 1) { SaveXP(attacker) } ShowHUD(attacker) } ShowHUD(attacker) return PLUGIN_CONTINUE } public ShowHUD(id) { new HUD[51] format(HUD, 50, "[%s]Level: %i XP: %i", CLASSES[PlayerClass[id]], PlayerLevel[id], PlayerXP[id]) message_begin(MSG_ONE, msgtext, {0,0,0}, id) write_byte(0) write_string(HUD) message_end() return }
What in the hell is this, why do you have cstrike? you shouldn't use fakemeta and engine together.
PHP Code:
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #include <nvault> #include <engine> #include <fakemeta>
Next, after 900 seconds it'll regenerate? :/
PHP Code:
#define TASK_REGEN 999
Next, why is your CVAR a server command?
PHP Code:
register_cvar("sv_tfcmod", "1")
should be:
PHP Code:
register_cvar("amx_tfcmod", "1")
What's this?
PHP Code:
if(get_cvar_num("SaveXP") == 1) {
Change on all:
PHP Code:
if ( get_cvar_num(sv_tfcmod) == 0 )
instead of
PHP Code:
if(get_cvar_num("sv_tfcmod") == 0)
Last edited by X-Script; 10-01-2007 at 11:21.
|
|