| AnimalMonster |
10-21-2020 05:01 |
Re: Help Scripting
PHP Code:
#include <amxmodx> #include <amxmisc> #include <zev2_core>
#define PLUGIN "Zombie Escape V2: Shop" #define VERSION "1.0.0" #define AUTHOR "Kia"
// =============================================================================== // Variables // ===============================================================================
/* Enums */
enum _:ItemData { ItemName[32], ItemTeam, ItemCost, ItemPlugin, ItemFuncID }
/* Arrays */
new Array:g_aItems
/* Integer */
new g_iTotalItems new g_iCredits[33]
// =============================================================================== // plugin_natives // ===============================================================================
public plugin_natives() { register_library("zev2_shop") register_native("ZEV2_AddItem", "Native_ZEV2_AddItem") register_native("ZEV2_GetUserCredits", "Native_ZEV2_GetUserCreidts") register_native("ZEV2_SetUserCredits", "Native_ZEV2_SetUserCreidts") }
// =============================================================================== // Native_ZEV2_AddItem // ===============================================================================
public Native_ZEV2_AddItem(iPlugin, iParams) { new eItemData[ItemData] get_string(1, eItemData[ItemName], charsmax(eItemData[ItemName])) eItemData[ItemTeam] = get_param(2) eItemData[ItemCost] = get_param(3) eItemData[ItemPlugin] = iPlugin new szHandler[ 32 ]; get_string(4, szHandler, charsmax( szHandler ) ); eItemData[ ItemFuncID ] = get_func_id( szHandler, iPlugin ); ArrayPushArray(g_aItems, eItemData) g_iTotalItems++ return (g_iTotalItems - 1) }
// =============================================================================== // Native_ZEV2_GetUserCreidts // ===============================================================================
public Native_ZEV2_GetUserCreidts(iPlayer) return g_iCredits[get_param(1)]
// =============================================================================== // Native_ZEV2_SetUserCreidts // ===============================================================================
public Native_ZEV2_SetUserCreidts(iPlayer, iAmount) { new iPlayer = get_param(1); g_iCredits[iPlayer] = max(0, get_param(2)); return g_iCredits[iPlayer]; }
// =============================================================================== // plugin_init // ===============================================================================
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) /* Arrays */ g_aItems = ArrayCreate(ItemData) /* ClCMDs */ register_clcmd("say /shop", "CreditShop") }
// =============================================================================== // WeaponShop // ===============================================================================
public CreditShop(id, iPage) { if(!g_iTotalItems || !is_user_alive(id)) return; iPage = clamp(iPage, 0, (g_iTotalItems - 1) / 7 ) new szMenuString[64] formatex(szMenuString, charsmax(szMenuString), "Zombie Escape V2 - Item Shop^nYour Credits : \y%i", g_iCredits[id]) new menu = menu_create(szMenuString, "CreditShop_handler") new eItemData[ItemData] new szItem[64] new szNum[3] new bool:bZombieReq for(new i = 0; i < g_iTotalItems; i++) { ArrayGetArray(g_aItems, i, eItemData) formatex(szItem, charsmax(szItem), "%s - \y%i Credits", eItemData[ItemName], eItemData[ItemCost]) num_to_str(i, szNum, charsmax(szNum)) bZombieReq = eItemData[ItemTeam] == 2 ? true : false if(bZombieReq && ZEV2_IsUserZombie(id)) if(g_iCredits[id] >= eItemData[ItemCost]) menu_additem(menu, szItem, szNum, 0) else menu_additem(menu, szItem, szNum, 1<<31) else if(!bZombieReq && !ZEV2_IsUserZombie(id)) if(g_iCredits[id] >= eItemData[ItemCost]) menu_additem(menu, szItem, szNum, 0) else menu_additem(menu, szItem, szNum, 1<<31) } menu_display(id, menu, iPage) }
public CreditShop_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_HANDLED } new iAccess, szNum[3], hCallback; menu_item_getinfo(menu, item, iAccess, szNum, charsmax(szNum), _, _, hCallback) menu_destroy(menu) // get item index from menu new iItemIndex = str_to_num(szNum) new eItemData[ItemData] ArrayGetArray(g_aItems, iItemIndex, eItemData) g_iCredits[id] -= eItemData[ItemCost] callfunc_begin_i(eItemData[ItemFuncID], eItemData[ItemPlugin]) callfunc_push_int(id) callfunc_end() return PLUGIN_HANDLED }
public Native_GetItemId(const text[]) { new eItemData[ItemData] for(new i = 0; i < g_iTotalItems; i++) { if(equali(text, eItemData[ItemName[i]]) return -1 } }
Would this do??
PHP Code:
public Native_GetItemId(const text[]) { new eItemData[ItemData] for(new i = 0; i < g_iTotalItems; i++) { if(equali(text, eItemData[ItemName[i]]) return -1 } }
I will register native after i know that the function should work good.
|