Raised This Month: $183 Target: $400
 45% 

Help Gunxpmod_shop unlock problems


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
XxScripteRxX
Member
Join Date: Aug 2019
Old 01-06-2021 , 12:11   Help Gunxpmod_shop unlock problems
Reply With Quote #1

hey all i have this gunxpmod_shop plugin this plugin works fine but wehen i register any item or rifle not showing in /ul i dont know wehere is the problem

Code:
Quote:
#include <amxmodx> #include <gunxpmod> #define PLUGIN "Gun Xp Mod Shop" #define AUTHOR "badboy" #define VERSION "1.4" #define MAX_UNLOCKS 500 #define MAX_UNLOCKS_NAME_SIZE 64 #define MAX_UNLOCKS_DESC_SIZE 128 new g_menuPosition[33], gSelected[33]; enum _:iUnlocks { UL_Knife, UL_Pistol, UL_Rifle, UL_Grenade, UL_Item }; //all new g_numberofitems[iUnlocks]; new g_itemname[iUnlocks][MAX_UNLOCKS+1][MAX_UNLOCKS_NAME_SIZE+1]; new g_itemdesc[iUnlocks][MAX_UNLOCKS+1][MAX_UNLOCKS_DESC_SIZE+1]; new g_itemlevel[iUnlocks][MAX_UNLOCKS+1]; new g_itemcost[iUnlocks][MAX_UNLOCKS+1]; new g_itemindex[iUnlocks][MAX_UNLOCKS+1]; new g_itemaccess[iUnlocks][MAX_UNLOCKS+1]; new g_itemwpn[iUnlocks][MAX_UNLOCKS+1]; new bool:g_PlayerItem[33][iUnlocks][MAX_UNLOCKS+1]; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_dictionary("gunxpmod.txt"); register_clcmd("say /unlocks", "menus") register_clcmd("say unlocks", "menus") register_clcmd("say /ul", "menus") register_clcmd("say ul", "menus") register_clcmd("say /items", "display_items") register_clcmd("say items", "display_items") } public client_connect(id) { static i, j for(i = 0; i < iUnlocks; ++i) for(j = 0; j <= MAX_UNLOCKS; ++j) g_PlayerItem[id][i][j] = false; } public menus(id) { new menu = menu_create("\r[GunXP] \yUnlocks", "upgrades_menu"); new call = menu_makecallback("Call_Back"); gSelected[id] = 0; new szMsg[256]; format(szMsg, 255, "Knifes", (GetItemCount(g_PlayerItem[id][UL_Knife], g_numberofitems[UL_Knife]) == g_numberofitems[UL_Knife]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Knife], g_numberofitems[UL_Knife]), g_numberofitems[UL_Knife]); menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Knife] ? -1 : call); format(szMsg, 255, "Pistols", (GetItemCount(g_PlayerItem[id][UL_Pistol], g_numberofitems[UL_Pistol]) == g_numberofitems[UL_Pistol]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Pistol], g_numberofitems[UL_Pistol]), g_numberofitems[UL_Pistol]); menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Pistol] ? -1 : call); format(szMsg, 255, "Rifles ", (GetItemCount(g_PlayerItem[id][UL_Rifle], g_numberofitems[UL_Rifle]) == g_numberofitems[UL_Rifle]) ? "\r" : "\r", GetItemCount(g_PlayerItem[id][UL_Rifle], g_numberofitems[UL_Rifle]), g_numberofitems[UL_Rifle]); menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Rifle] ? -1 : call); format(szMsg, 255, "Granades", (GetItemCount(g_PlayerItem[id][UL_Grenade], g_numberofitems[UL_Grenade]) == g_numberofitems[UL_Grenade]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Grenade], g_numberofitems[UL_Grenade]), g_numberofitems[UL_Grenade]); menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Grenade] ? -1 : call); format(szMsg, 255, "Items", (GetItemCount(g_PlayerItem[id][UL_Item], g_numberofitems[UL_Item]) == g_numberofitems[UL_Item]) ? "\r" : "\y", GetItemCount(g_PlayerItem[id][UL_Item], g_numberofitems[UL_Item]), g_numberofitems[UL_Item]); menu_additem(menu, szMsg, _, _, g_numberofitems[UL_Item] ? -1 : call); menu_display(id, menu, 0); return PLUGIN_HANDLED; } public Call_Back(id, menu, item) return ITEM_DISABLED; public upgrades_menu(id, menu, item) { if(item == MENU_BACK) { } gSelected[id] = item; g_menuPosition[id] = 0; display_item_upgrades(id, 0, item); } public plugin_natives() { register_native("register_gxm_item", "register_unlock") register_native("register_item_gxm", "register_unlock") } public register_unlock(plugin, params) { static item_section item_section = get_param(5)-1 g_numberofitems[item_section]++; get_string(1, g_itemname[item_section][g_numberofitems[item_section]], MAX_UNLOCKS_NAME_SIZE) get_string(2, g_itemdesc[item_section][g_numberofitems[item_section]], MAX_UNLOCKS_DESC_SIZE) g_itemlevel[item_section][g_numberofitems[item_section]] = get_param(4); g_itemcost[item_section][g_numberofitems[item_section]] = get_param(3); g_itemindex[item_section][g_numberofitems[item_section]] = plugin; g_itemaccess[item_section][g_numberofitems[item_section]] = get_param(6) ? get_param(6) : 0; g_itemwpn[item_section][g_numberofitems[item_section]] = get_param(7); } //ALL public display_item_upgrades(id, pos, selection) { if(!is_user_alive(id)) return; static menuBody[510], len; len = 0; gSelected[id] = selection; if(pos < 0) return; new start = pos * 8 if(start >= g_numberofitems[selection]) start = pos = g_menuPosition[id]; len += formatex(menuBody[len], sizeof menuBody - 1 - len, "%L", LANG_SERVER, "TITLE_MENU_SHOP", get_user_xp(id), get_user_max_level(id)) new end = start + 8 new keys = MENU_KEY_0 if(end > g_numberofitems[selection]) end = g_numberofitems[selection]; new b = 0 for(new a = start; a < end; ++a) { new i = a + 1 new money, level money = get_user_xp(id) level = get_user_level(id) if( g_PlayerItem[id][selection][i] ) len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_BOUGHT", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i]) else if(g_itemaccess[selection][i] == GUN_FIRST_ACCESS_ID && !(get_user_flags(id) & GUN_FIRST_ACCESS)) len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS1", ++b, g_itemname[selection][i], GUN_FIRST_ACCESS_TEXT); else if(g_itemaccess[selection][i] == GUN_SECOND_ACCESS_ID && !(get_user_flags(id) & GUN_SECOND_ACCESS)) len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS2", ++b, g_itemname[selection][i], GUN_SECOND_ACCESS_TEXT); else if(g_itemaccess[selection][i] == GUN_THIRD_ACCESS_ID && !(get_user_flags(id) & GUN_THIRD_ACCESS)) len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_ACCESS3", ++b, g_itemname[selection][i], GUN_THIRD_ACCESS_TEXT); else if(level < g_itemlevel[selection][i]) len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP_LEVEL", ++b, g_itemname[selection][i], g_itemlevel[selection][i], g_itemcost[selection][i]) else if(PatrArTuri(id, g_itemwpn[selection][i])) len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_NO_MORE", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i]) else if( money < g_itemcost[selection][i] ) len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "INACTIVE_MENU_SHOP", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i]) else { keys |= (1<<b) switch(g_itemaccess[selection][i]) { case GUN_FIRST_ACCESS_ID: len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i], GUN_FIRST_ACCESS_TEXT) case GUN_SECOND_ACCESS_ID: len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i], GUN_SECOND_ACCESS_TEXT) case GUN_THIRD_ACCESS_ID: len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP2", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i], GUN_THIRD_ACCESS_TEXT) default: len += formatex(menuBody[len], sizeof menuBody - 1 - len,"%L", id, "ACTIVE_MENU_SHOP", ++b, g_itemname[selection][i], g_itemcost[selection][i], g_itemlevel[selection][i]) } } } if(end != g_numberofitems[selection]) { len += formatex(menuBody[len], sizeof menuBody - 1 - len, "^n\r9. \w%L\r^n0. \w%L", id, "NEXT_MENU", id, pos ? "BACK_MENU" : "EXIT_MENU") keys |= MENU_KEY_9 } else { len += formatex(menuBody[len], sizeof menuBody - 1 - len, "^n\r0. \w%L", id, pos ? "BACK_MENU" : "EXIT_MENU") } show_menu(id, keys, menuBody, -1, "Unlocks Shop") } public action_item_upgrades(id, key) { switch(key) { case 8: display_item_upgrades(id, ++g_menuPosition[id], gSelected[id]); case 9: display_item_upgrades(id, --g_menuPosition[id], gSelected[id]); default: { if(!is_user_alive(id)) return PLUGIN_HANDLED; ++key new money new plugin_id = g_itemindex[gSelected[id]][g_menuPosition[id] * 8 + key] new item_id = g_menuPosition[id] * 8 + key new func = get_func_id("gxm_item_enabled", plugin_id) money = get_user_xp(id) new cost = g_itemcost[gSelected[id]][item_id]; if(money >= cost) { callfunc_begin_i(func, plugin_id) callfunc_push_int(id) callfunc_end() g_PlayerItem[id][gSelected[id]][item_id] = true new overall = money - cost set_user_xp(id, overall) client_printcolor(1, "/yItem Bought, Item: /g%s.", g_itemname[gSelected[id]][item_id]) client_printcolor(1, "/yDescripcion: /g%s.", g_itemdesc[gSelected[id]][item_id]) display_item_upgrades(id, g_menuPosition[id], gSelected[id]); } } } return PLUGIN_HANDLED; } stock client_printcolors ( const id, const input[], any:... ) { new iCount = 1, iPlayers[32] new sNewMsg[191] vformat( sNewMsg, charsmax ( sNewMsg ), input, 3 ) //format ( sNewMsg, charsmax ( sNewMsg ), "^4[x^1 %s", sNewMsg ) replace_all ( sNewMsg, charsmax ( sNewMsg ), "/g", "^4") // green txt replace_all ( sNewMsg, charsmax ( sNewMsg ), "/y", "^1") // orange txt replace_all ( sNewMsg, charsmax ( sNewMsg ), "/t", "^3") // team txt if ( id ) iPlayers[0] = id else get_players ( iPlayers, iCount, "ch" ) for ( new i; i < iCount; i++ ) { if ( is_user_connected ( iPlayers[i] ) ) { message_begin ( MSG_ONE_UNRELIABLE, get_user_msgid ( "SayText" ), _, iPlayers[i] ) write_byte ( iPlayers[i]) write_string ( sNewMsg) message_end () } } } stock bool:PatrArTuri(id, wpn) { static i, j for(i = 0; i < iUnlocks; ++i) { for(j = 0; j <= MAX_UNLOCKS; ++j) { if(g_PlayerItem[id][i][j]) { if(g_itemwpn[i][j] == wpn) return true } } } return false } GetItemCount(array[], size) { new count = 0; for(new i = 1; i <= size; i++) if(array[i]) count++; return count; }
unlock >
Code:
Quote:
#include <amxmodx> #include <fakemeta> #include <engine> #include <gunxpmod> new PLUGIN_NAME[] = "Unlock : Parachute" new PLUGIN_AUTHOR[] = "xbatista" new PLUGIN_VERSION[] = "1.0" new const parachute_model[] = "models/parachute.mdl" new bool:has_parachute[33] new para_ent[33] new g_parachute_FallSpeed, g_parachute_Detach public plugin_init() { register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR) register_gxm_item("Parachute VIP", "Gives you parachute", 100, 1, GUN_SECTION_ITEMS, 1, 2) g_parachute_FallSpeed = register_cvar("gxm_parachute_fallspeed", "20") g_parachute_Detach = register_cvar("gxm_parachute_detach", "1") register_forward(FM_PlayerPreThink,"PlayerPree_Think"); } public plugin_precache() engfunc(EngFunc_PrecacheModel, parachute_model) public gxm_item_enabled(id) { has_parachute[id] = true } public client_connect(id) { parachute_reset(id) has_parachute[id] = false } parachute_reset(id) { if (para_ent[id] > 0) { if ( pev_valid(para_ent[id]) ) engfunc(EngFunc_RemoveEntity, para_ent[id]) } has_parachute[id] = false para_ent[id] = 0 } public PlayerPree_Think(id) { //parachute.mdl animation information //0 - deploy - 84 frames //1 - idle - 39 frames //2 - detach - 29 frames if (!is_user_alive(id) || !has_parachute[id] ) return new Float:fallspeed = get_pcvar_float(g_parachute_FallSpeed) * -1.0 new Float:frame new button = pev(id, pev_button) new oldbutton = pev(id, pev_oldbuttons) new flags = pev(id, pev_flags) if (para_ent[id] > 0 && (flags & FL_ONGROUND)) { set_view(id, CAMERA_NONE) if (get_pcvar_num(g_parachute_Detach)) { if ( pev(para_ent[id],pev_sequence) != 2 ) { set_pev(para_ent[id], pev_sequence, 2) set_pev(para_ent[id], pev_gaitsequence, 1) set_pev(para_ent[id], pev_frame, 0.0) set_pev(para_ent[id], pev_fuser1, 0.0) set_pev(para_ent[id], pev_animtime, 0.0) return } pev(para_ent[id],pev_fuser1, frame) frame += 2.0 set_pev(para_ent[id],pev_fuser1,frame) set_pev(para_ent[id],pev_frame,frame) if ( frame > 254.0 ) { engfunc(EngFunc_RemoveEntity, para_ent[id]) para_ent[id] = 0 } } else { engfunc(EngFunc_RemoveEntity, para_ent[id]) para_ent[id] = 0 } return } if (button & IN_USE && get_user_team(id) == 2) { new Float:velocity[3] pev(id, pev_velocity, velocity) if (velocity[2] < 0.0) { if(para_ent[id] <= 0) { para_ent[id] = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")) if(para_ent[id] > 0) { set_pev(para_ent[id],pev_classname,"parachute") set_pev(para_ent[id], pev_aiment, id) set_pev(para_ent[id], pev_owner, id) set_pev(para_ent[id], pev_movetype, MOVETYPE_FOLLOW) engfunc(EngFunc_SetModel, para_ent[id], parachute_model) set_pev(para_ent[id], pev_sequence, 0) set_pev(para_ent[id], pev_gaitsequence, 1) set_pev(para_ent[id], pev_frame, 0.0) set_pev(para_ent[id], pev_fuser1, 0.0) } } if (para_ent[id] > 0) { set_pev(id, pev_sequence, 3) set_pev(id, pev_gaitsequence, 1) set_pev(id, pev_frame, 1.0) set_pev(id, pev_framerate, 1.0) velocity[2] = (velocity[2] + 40.0 < fallspeed) ? velocity[2] + 40.0 : fallspeed set_pev(id, pev_velocity, velocity) if (pev(para_ent[id],pev_sequence) == 0) { pev(para_ent[id],pev_fuser1, frame) frame += 1.0 set_pev(para_ent[id],pev_fuser1,frame) set_pev(para_ent[id],pev_frame,frame) if (frame > 100.0) { set_pev(para_ent[id], pev_animtime, 0.0) set_pev(para_ent[id], pev_framerate, 0.4) set_pev(para_ent[id], pev_sequence, 1) set_pev(para_ent[id], pev_gaitsequence, 1) set_pev(para_ent[id], pev_frame, 0.0) set_pev(para_ent[id], pev_fuser1, 0.0) } } } } else if (para_ent[id] > 0) { engfunc(EngFunc_RemoveEntity, para_ent[id]) para_ent[id] = 0 } } else if ((oldbutton & IN_USE) && para_ent[id] > 0 ) { engfunc(EngFunc_RemoveEntity, para_ent[id]) para_ent[id] = 0 } }

Last edited by XxScripteRxX; 01-06-2021 at 12:14.
XxScripteRxX is offline
Cristian505
Junior Member
Join Date: Oct 2020
Old 01-13-2021 , 10:42   Re: Help Gunxpmod_shop unlock problems
Reply With Quote #2

[CODE]register_gxm_item("Parachute VIP", "Gives you parachute", 100, 1, GUN_SECTION_ITEMS, 1, 0)[CODE] // 0

Last edited by Cristian505; 01-13-2021 at 10:42.
Cristian505 is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 01-13-2021 , 10:59   Re: Help Gunxpmod_shop unlock problems
Reply With Quote #3

Did you add the extra item before or after the main plugin in plugins.ini?
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
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 07:33.


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