Raised This Month: $ Target: $400
 0% 

need help with plugin.


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Peli
Veteran Member
Join Date: Mar 2004
Location: San Diego, CA
Old 06-10-2006 , 18:25  
Reply With Quote #4

Here is the plugin with no errors, and only 1 warning I still don't really get, but I'll try to fix.

NOTE: I tried my best to add as much comments to let you know what you did wrong, or what I tried to make more efficient, didn't add comments on some things that were not necessary and were just indentation errors.
Code:
#include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #include <vault> //#define PLUGIN "my xp" // Absolutely no reason for this, considering you don't use PLUGIN[], VERSION[] and AUTHOR[] in your register_plugin() //#define VERSION "1.0" //#define AUTHOR "*<3*" #define CLASS_NONE 0 // Changed CLASS_NORACE to CLASS_NONE for simplicity reasons #define CLASS_GOD 1 #define CLASS_DEVIL 2  // Changed CLASS_THE_DEVEIL to CLASS_DEVIL for simplicity reasons #define MAXCLASSES 3 new PlayerClass[33] new PlayerXP[33] new PlayerLevel[33] new const CLASSES[MAXCLASSES][] = {    "None",    "GOD",    "THE DEVIL" // Changed "THE DEVIL", to "THE DEVIL" because you don't need an extra comma after the last line } new msgtext new const LEVELS[8] = {     100,     200,     400,     800,     1600,     3200,     6400,     12800 } public plugin_init() {     register_plugin("My Xp", "1.0", "*<3*")     register_event("DeathMsg", "DeathMsg", "a")     register_event("ResetHUD", "ResetHud", "be") // Changed "b" flag to "be", needed to work properly on a new round     register_cvar("sv_myxp", "1")     register_cvar("xp_per_kill", "20")     register_cvar("SaveXP", "1")     register_clcmd("say /changeClass", "ChangeClass")     register_clcmd("say_team /changeClass", "ChangeClass")     register_menucmd(register_menuid("menu_ChooseClass"), 1023, "DoChooseClass")     msgtext = get_user_msgid("StatusText") } public SaveXP(id) {    new authid[32]    get_user_authid(id, authid, 31)    new vaultkey[64], vaultdata[64]    format(vaultkey, 63, "Class-%s", 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", 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, "[My Xp] XP Loaded!")       client_print(id, print_chat, "[My Xp] You are %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)    } } stock ChooseClass(id) {    new menu[192]    new keys = MENU_KEY_0|MENU_KEY_1|MENU_KEY_2    format(menu, 191, "My Xp: Choose Class^n^n1. God^n2. Devil^n3. Exit") // Added Devil option, new line maybe messed up    show_menu(id, keys, menu, -1, "menu_ChooseClass")    return PLUGIN_CONTINUE } public DoChooseClass(id, key) {    switch(key) // Changed if(key==0,1,2,etc) to switch_key & cases, works better    {       case 0:       {          if(PlayerClass[id] == CLASS_GOD)          {             ChooseClass(id)             // Removed return_PLUGIN_HANDLED, not needed in each case          }          PlayerClass[id] = CLASS_GOD          client_print(id, print_chat, "[My Xp] You are now GOD, have fun !")       }       case 1:       {          if(PlayerClass[id] == CLASS_DEVIL)          {             ChooseClass(id)          }          PlayerClass[id] = CLASS_DEVIL          client_print(id, print_chat, "[My Xp] You are now THE DEVIL, have fun !")       }    }    ShowHUD(id)    return PLUGIN_HANDLED } public ResetHUD(id) {    if(get_cvar_num("sv_myxp") == 0)    {       return PLUGIN_HANDLED    }    if(PlayerClass[id] == CLASS_NONE)    {       ChooseClass(id)       return PLUGIN_HANDLED    }    return PLUGIN_HANDLED } public DeathMsg() {    if(get_cvar_num("sv_myxp") == 0)    {       return PLUGIN_HANDLED    }    new attacker = read_data(0)    if(PlayerClass[attacker] == CLASS_NONE)    {       return PLUGIN_HANDLED    }    if(PlayerLevel[attacker] == 8)    {       return PLUGIN_HANDLED    }    PlayerXP[attacker] += get_cvar_num("XP_per_kill")    if(PlayerXP[attacker] >= LEVELS[PlayerLevel[attacker]])    {       PlayerLevel[attacker] += 1       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", PlayerClass[id], PlayerLevel[id], PlayerXP[id])     message_begin(MSG_ONE, msgtext, {0,0,0}, id)     write_byte(0)     write_string(HUD)     message_end()     return }
Peli is offline
Send a message via MSN to Peli
 



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 08:02.


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