Raised This Month: $ Target: $400
 0% 

Need Help with Errors and XP-Mod


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
X-Script
BANNED
Join Date: Jul 2007
Location: (#504434)
Old 10-01-2007 , 11:12   Re: Need Help with Errors and XP-Mod
Reply With Quote #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:
return 
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(idprint_chat"[TFC] Loaded")
        
client_print(idprint_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
(menu191"TFC: Choose Class^n^n1. Scout^n2. Soldier^n3. Hwguy^n4. Medic^n^n0. Exit"
    
show_menu(idkeysmenu, -1"menu_ChooseClass"
    return 
PLUGIN_CONTINUE
}

public 
DoChooseClass(idkey)
{
    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
(attackerprint_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(HUD50"[%s]Level: %i XP: %i"CLASSES[PlayerClass[id]], PlayerLevel[id], PlayerXP[id]) 
    
message_begin(MSG_ONEmsgtext, {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) == 
instead of

PHP Code:
if(get_cvar_num("sv_tfcmod") == 0

Last edited by X-Script; 10-01-2007 at 11:21.
X-Script is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 16:06.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode