Raised This Month: $ Target: $400
 0% 

need help with plugin.


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
*<3*
Senior Member
Join Date: May 2006
Location: Denmark..
Old 06-10-2006 , 16:33   need help with plugin.
Reply With Quote #1

readed the http://forums.alliedmods.net/showthread.php?t=12518 and tried to make my own, its very similar to that but.

Code:
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <cstrike> #include <fun> #include <vault> #define PLUGIN "my xp" #define VERSION "1.0" #define AUTHOR "*<3*" #define CLASS_NORACE 0   #define CLASS_GOD 1   #define CLASS_THE_DEVIL 2   #define MAXCLASSES 3 new PlayerClass[33]   new PlayerXP[33]   new PlayerLevel[33]   new const CLASSES[MAXCLASSES][] = {       "None",       "GOD",       "THE DEVIL",   } 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_cvar("sv_myxp", "1")                   register_event("DeathMsg", "DeathMsg", "a")                 register_cvar("xp_per_kill", "20")             register_cvar("SaveXP", "1")               register_menucmd(register_menuid("menu_ChooseClass"),1023,"DoChooseClass");                 register_event("ResetHUD", "ResetHud", "b")                   msgtext = get_user_msgid("StatusText")             register_clcmd("say /changeClass", "ChangeClass")       register_clcmd("say_team /changeClass", "ChangeClass")   }   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. Exit")                   show_menu(id, keys, menu, -1, "menu_ChooseClass")             return PLUGIN_CONTINUE   }   public DoChooseClass(id, key)   {       if(key == 0) {                              if(PlayerClass[id] == CLASS_GOD) {                                                           ChooseClass(id)                                 return PLUGIN_HANDLED            }                              PlayerClass[id] = CLASS_GOD                                client_print(id, print_chat, "[My Xp] You are now GOD, have fun !")       }                                 if(key == 1) {                        if(PlayerClass[id] == CLASS_THE_DEVIL) {                                 ChooseClass(id)                 return PLUGIN_HANDLED            }                                  PlayerClass[id] = CLASS_THE_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_NORACE) {                            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_NORACE) {            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", Class[PlayerClass[id]], PlayerLevel[id], PlayerXP[id])       message_begin(MSG_ONE, msgtext, {0,0,0}, id)       write_byte(0)       write_string(HUD)       message_end()       return   }  }

but there's error :
Code:
Welcome to the AMX Mod X 1.70-300 Compiler. Copyright (c) 1997-2005 ITB CompuPhase, AMX Mod X Team Error: Invalid expression, assumed zero on line 226 Error: Invalid expression, assumed zero on line 229 Warning: Unreachable code on line 234 Error: Undefined symbol "Class" on line 269 Warning: Expression has no effect on line 269 Error: Expected token: ";", but found "]" on line 269 Error: Invalid expression, assumed zero on line 269 Error: Too many error messages on one line on line 269 Compilation aborted. 6 Errors. Could not locate output file C:\Documents and Settings\Liam\Skrivebord\my xp.amx (compile failed).
how do i fix that ?
*<3* is offline
Kensai
Veteran Member
Join Date: Aug 2005
Location: San Diego, California
Old 06-10-2006 , 17:18  
Reply With Quote #2

Here's part of the problem.

Code:
#define CLASS_NORACE 0   #define CLASS_GOD 1   #define CLASS_THE_DEVIL 2   #define MAXCLASSES 3 new PlayerClass[33]   new PlayerXP[33]   new PlayerLevel[33]   new const CLASSES[MAXCLASSES][] = {       "None",       "GOD",       "THE DEVIL",   }

Change everything with Class in it to Race. Or change everything in your code that has race to class.

For example, you have PlayerClass and yet you use PlayerRace
Kensai is offline
Send a message via AIM to Kensai Send a message via MSN to Kensai
*<3*
Senior Member
Join Date: May 2006
Location: Denmark..
Old 06-10-2006 , 17:55  
Reply With Quote #3

i get errors when i juse Race.
*<3* is offline
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
*<3*
Senior Member
Join Date: May 2006
Location: Denmark..
Old 06-10-2006 , 19:01  
Reply With Quote #5

thanks alot.
+karma.
*<3* is offline
*<3*
Senior Member
Join Date: May 2006
Location: Denmark..
Old 06-12-2006 , 10:18  
Reply With Quote #6

i get a bad load from it . ?
*<3* is offline
Reply


Thread Tools
Display Modes

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