|
Junior Member
|

11-14-2013
, 20:08
Need help with this plugin
|
#1
|
Hello AM
I need help with my plugin.
Bug:
Everytime I enter a menu, it gives me lvl 10 in Health. (I've only added HP for T's so far. Just for testing that out.
Can you see where the mistake is? I get no compile errors.
Hope u help thx
EDIT: Found the error myself,
infact the mistake was a missing
PHP Code:
return HAM_HANDLED
and a fail calculation in menu.
PHP Code:
/************************************* * Point Mod for Hide And Seek * by Xoxolala * * Version: 1.0 */ //************************************ #include < amxmodx > #include < amxmisc > #include < cstrike > #include < fun > #include < hamsandwich > #include < engine > #include < fakemeta > #include < nvault >
#define PLUGIN "Point Mod" #define PREFIX "Point Mod" #define PREFIXSHORT "[PM]" #define PLUGINVALUE "Point" #define AUTHOR "Xoxolala" #define VERSION "1.0" #define VAULTNAME "pointmod"
//All items with prices & stuff enum _:gItemListT { HEALTH }
new const gItemNameT [ gItemListT ] [ ] = { "Extra Health" }
new const gItemCostT [ gItemListT ] = { 20 }
new const gItemLevelT [ gItemListT ] = { 10 }
new const gItemAmountT [ gItemListT ] = { 10 }
new const gItemShortT [ gItemListT ] [ ] = { " HP" }
enum _:gItemListCT { HEALTH }
new const gItemNameCT [ gItemListCT ] [ ] = { "Extra Health" }
new const gItemCostCT [ gItemListCT ] = { 20 }
new const gItemLevelCT [ gItemListCT ] = { 6 }
new const gItemAmountCT [ gItemListCT ] = { 10 }
new const gItemShortCT [ gItemListCT ] [ ] = { " HP" }
const MAX_CLIENTS = 32
//Vault new gVault
new gUserLevelT [ MAX_CLIENTS + 1 ] [ gItemListT ] new gUserLevelCT [ MAX_CLIENTS + 1 ] [ gItemListCT ] new gValue [ MAX_CLIENTS + 1 ]
new gSteamID [ MAX_CLIENTS + 1 ] [ 36 ] new gIsUser [ MAX_CLIENTS + 1 ]
public plugin_init ( ) { register_clcmd ( "say /pm", "MainMenuStart" ) register_clcmd ( "say /resetlvl", "cmdtestreset" ) gVault = nvault_open ( VAULTNAME )
if ( gVault == INVALID_HANDLE ) set_fail_state ( "Error opening gVault for Point Mod" ) }
public cmdtestreset ( id ) { for ( new iItemT = 0; iItemT < gItemListT; iItemT++ ) { gUserLevelT [ id ] [ iItemT ] = 0 } }
public plugin_end ( ) { nvault_close ( gVault ) }
public client_authorized ( id ) { get_user_authid ( id, gSteamID [ id ], charsmax ( gSteamID [ ] ) ) LoadUser ( id )
if ( access ( id, ADMIN_LEVEL_A ) ) gIsUser [ id ] = true }
public client_disconnect ( id ) { SaveUser ( id ) }
public LoadUser ( id ) { static data [ 256 ], timestamp if ( nvault_lookup ( gVault, gSteamID [ id ], data, sizeof ( data ) - 1, timestamp ) ) { LoadUserData ( id, data ) } else { NewPlayer ( id ) } }
public NewPlayer ( id ) { gValue [ id ] = 0
for ( new iItemT = 0; iItemT < gItemListT; iItemT++ ) { gUserLevelT [ id ] [ iItemT ] = 0 }
for ( new iItemCT = 0; iItemCT < gItemListCT; iItemCT++ ) { gUserLevelCT [ id ] [ iItemCT ] = 0 } }
LoadUserData ( id, data [ 256 ] ) { static num [ 6 ] strbreak ( data, num, sizeof ( num ) - 1, data, sizeof ( data ) - 1 )
gValue [ id ] = str_to_num ( num )
for ( new iItemT = 0; iItemT < gItemListT; iItemT++ ) { strbreak ( data, num, sizeof ( num ) - 1, data, sizeof ( data ) - 1 ) gUserLevelT [ id ] [ iItemT ] = clamp ( str_to_num ( num ), 0, gItemLevelT [ iItemT ] ) }
for ( new iItemCT = 0; iItemCT < gItemListCT; iItemCT++ ) { strbreak ( data, num, sizeof ( num ) - 1, data, sizeof ( data ) - 1 ) gUserLevelCT [ id ] [ iItemCT ] = clamp ( str_to_num ( num ), 0, gItemLevelCT [ iItemCT ] ) } }
public SaveUser ( id ) { static data [ 256 ] new len = formatex ( data, sizeof ( data ) - 1, "%i", gValue [ id ] )
for ( new iItemT = 0; iItemT < gItemListT; iItemT++ ) { len += formatex ( data [ len ], sizeof ( data ) - len - 1, " %i", gUserLevelT [ id ] [ iItemT ] ) }
for ( new iItemCT = 0; iItemCT < gItemListCT; iItemCT++ ) { len += formatex ( data [ len ], sizeof ( data ) - len - 1, " %i", gUserLevelCT [ id ] [ iItemCT ] ) }
nvault_set ( gVault, gSteamID [ id ], data ) }
public MainMenuStart ( id ) { new title [ 512 ] formatex ( title, 511, "\r%s\w Main Menu^nCurrent %s:\y %i^n^n", PREFIXSHORT, PLUGINVALUE, gValue [ id ] ) new menu = menu_create ( title, "MainMenuHandle" )
menu_additem ( menu, "\wTerrorists", "1", 0 ) menu_additem ( menu, "\wCounter-Terrorists", "2", 0 ) menu_addblank ( menu, 0 ) menu_addblank ( menu, 0 ) menu_additem ( menu, "\yPlayer Info", "3", 0 ) menu_addblank ( menu, 1 ) menu_addblank ( menu, 1 ) menu_addblank ( menu, 1 ) menu_addblank ( menu, 1 )
menu_display ( id, menu, 0 ) }
public MainMenuHandle ( id, menu, item ) { if ( item == MENU_EXIT ) { menu_destroy ( menu ) return PLUGIN_HANDLED }
new data [ 6 ], gName [ 64 ] new access, callback
menu_item_getinfo ( menu, item, access, data, sizeof ( data ) - 1, gName, sizeof ( gName ) - 1, callback )
new key = str_to_num ( data ) switch ( key ) { case 1: { ItemMenuTStart ( id ) } case 2: { client_print ( id, print_chat, "You clicked CT Upgrades. This is still under construction!" ) } case 3: { client_print ( id, print_chat, "You clicked Player Info. This is still under construction!" ) } } return PLUGIN_HANDLED }
public ItemMenuTStart ( id ) { new title [ 512 ]; formatex ( title, sizeof ( title ) - 1, "\r%s\w Main Menu^nYour %s:\y %i^n^n", PREFIX, PLUGINVALUE, gValue [ id ] )
new menu = menu_create ( title, "ItemMenuTHandle" ) new inumb [ 5 ], icost, gOption [ 80 ], iamount, ilvl, ilvl2
for ( new iItemT = 0; iItemT < gItemListT; iItemT++ ) { num_to_str ( iItemT, inumb, sizeof ( inumb ) - 1 ) ilvl = gUserLevelT [ id ] [ iItemT ] ilvl2 = gUserLevelT [ id ] [ iItemT ] + 1 icost = gItemCostT [ iItemT ] * ( 1 << (ilvl2 - 1 ) ) iamount = gUserLevelT [ id ] [ iItemT ] * gItemAmountT [ iItemT ]
if ( gUserLevelT [ id ] [ iItemT ] == gItemLevelT [ iItemT ] ) { formatex ( gOption, sizeof ( gOption ) - 1, "\y%s:\d Level %i\r (%i%s)", gItemNameT [ iItemT ], ilvl, iamount, gItemShortT [ iItemT ] ) } else if ( gValue [ id ] < icost ) { formatex ( gOption, sizeof ( gOption ) - 1, "\d%s: Level %i\r (%i%s)\w %i %s", gItemNameT [ iItemT ], ilvl, iamount, gItemShortT [ iItemT ], icost, PLUGINVALUE ) } else if ( gUserLevelT [ id ] [ iItemT ] < gItemLevelT [ iItemT ] ) { formatex ( gOption, sizeof ( gOption ) - 1, "\w%s Level %i\r (%i%s)\w %i %s", gItemNameT [ iItemT ], ilvl, iamount, gItemShortT [ iItemT ], icost, PLUGINVALUE ) } menu_additem ( menu, gOption, inumb ) } menu_display ( id, menu, 0 ) }
public ItemMenuTHandle ( id, menu, item ) { if ( item == MENU_EXIT ) { menu_destroy ( menu ) MainMenuStart ( id ) return PLUGIN_HANDLED }
new data [ 6 ], gName [ 64 ] new access, callback menu_item_getinfo ( menu, item, access, data, sizeof ( data ) - 1, gName, sizeof ( gName ) - 1, callback )
new iItemT = str_to_num ( data ), icost, ilvl ilvl = gUserLevelT [ id ] [ iItemT ] + 1 icost = gItemCostT [ iItemT ] * ( 1 << ( ilvl - 1 ) )
if ( gUserLevelT [ id ] [ iItemT ] == gItemLevelT [ iItemT ] ) { client_print ( id, print_chat, "You have the max level already!" ) } else if ( gValue [ id ] < icost ) { client_print ( id, print_chat, "You cant afford that!" ) } else { gValue [ id ] -= icost gUserLevelT [ id ] [ iItemT ] += 1 client_print ( id, print_chat, "You upgraded %s to level %i! Nice!", gItemNameT [ iItemT ], gUserLevelT [ id ] [ iItemT ] ) } MainMenuStart ( id ) return PLUGIN_HANDLED }
Last edited by xoxolala; 11-15-2013 at 10:31.
|
|