12/10/2020, 07:27 PM (Última modificación: 13/10/2020, 12:21 AM por Alejandro. Edited 4 times in total.)
Tienda por natives v3.1
Información:
A diferencia de las otras tiendas, Una simple tienda por menú que trabaja con una native
para agregar los items al menú, también trabaja con forward para ejecutar la función que se use al ítem.
Changelog:
Código:
[AMXX] Tienda Por Natives v3.1:
Versión de lanzamiento.
(12/10/2020, 08:10 PM)rojedafeik escribió: Muy bonito y todo pero arregla la tabulaciooononon para poder leer bien jsjs
xD La tabulacion es cuestión del foro, ya me ah pasado varias veces pasa cuando tu editas un post.
Pero si descargas el codigo te saldra un codigo bien tabulado xD
(17/10/2020, 11:53 AM)alexiways escribió: Esta buenardo, el sistema la verdad me inspira para posibles proyectos, una pregunta ya que veo que te llevas bien con los natives.
Como obtengo un string con un native, ejemplo:
Plugin 1: Sistema hook chat, en el cual quiero poner CC(0,[%s], get_user_rango(id))
Plugin 2: Sistema de obtencion del rango, usando la native get_user_rango(id), exportar la string.
Hola, gracias por comentar mi posteo, podrias explicarme como funcionaria estos dos codigos?
Dame un ejemplo..
Por lo que entendí las natives deberia poner mis items, pero como seria que el primer código llama al 2do ? o el segundo es un include, de ser asi como funciona realmente los includes..
Luego dentro del extra item que quieras agregar al meno, osea en el plugin del extra item agregas la native que usaras para agregarlo al menu de extra items
new g_iItems = 0; new g_szDataArray[MAX_ITEMS_SHOP+1][DATA_ARRAY]; new g_szTag[] = "^4[Alliedmodders-ES]^1";
public plugin_init() { register_plugin("[AMXX] Native Shop", "v1.0", "Alejandro-."); register_clcmd("say /test", "DisplayShopItems"); } public DisplayShopItems(index) { if (!g_iItems) { client_print(index, print_chat, "%s No hay items agregados al menu", g_szTag); return PLUGIN_HANDLED; } new Menu = menu_create("\y[AMXX]\w Tienda Por Natives \r3.0\y\R", "HandlerShopItems"); new szItem[50]; for(new i = 0; i <MAX_ITEMS_SHOP; i++) { if (!g_szDataArray[i][ARRAY_ITEM][0]) continue; formatex(szItem, charsmax(szItem), "%s\R%s$%d", g_szDataArray[i][ARRAY_ITEM], cs_get_user_money(index) < g_szDataArray[i][ARRAY_MONEY] ? "\d" : "\y", g_szDataArray[i][ARRAY_MONEY]); menu_additem(Menu, szItem); } menu_setprop(Menu, MPROP_NEXTNAME, "Siguiente"); menu_setprop(Menu, MPROP_BACKNAME, "Anterior"); menu_setprop(Menu, MPROP_EXITNAME, "Salir"); menu_display(index, Menu); return PLUGIN_HANDLED; } public HandlerShopItems(index, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; }
if (cs_get_user_money(index) < g_szDataArray[item][ARRAY_MONEY]) { client_print_color(index, print_team_default, "%s Te hace falta ^4$%d^1 de dinero!", g_szTag, g_szDataArray[item][ARRAY_MONEY] - cs_get_user_money(index)); DisplayShopItems(index); return PLUGIN_HANDLED; } cs_set_user_money(index, cs_get_user_money(index) - g_szDataArray[item][ARRAY_MONEY]); client_print_color(index, print_team_default, "%s Compraste el item:^3 %s", g_szTag, g_szDataArray[item][ARRAY_ITEM]); ExecuteForward(g_szDataArray[item][ARRAY_FORWARD], _, index); menu_destroy(menu); return PLUGIN_HANDLED; } public plugin_natives() { register_native("shop_add_item_menu", "add_item_menu"); } public add_item_menu(pl, pr) { new szTitle[40]; get_string(1, szTitle, charsmax(szTitle)); trim(szTitle);
new szForward[40]; get_string(2, szForward, charsmax(szForward)); trim(szForward);
if (!szTitle[0]) { log_amx("[AMXX-Native Shops v1.0] Item no agregado por falta de nombre"); return; }
if (!szForward[0]) { log_amx("[AMXX-Native Shops v1.0] Item no agregado por falta de funcion"); return; }
if (g_iItems == MAX_ITEMS_SHOP) { log_amx("[AMXX-Native Shops v1.0] Item no agregado, por que el menu llego al maximo de items"); return; } formatex(g_szDataArray[g_iItems][ARRAY_ITEM], charsmax(g_szDataArray[][ARRAY_ITEM]), szTitle); g_szDataArray[g_iItems][ARRAY_FORWARD] = CreateMultiForward(szForward, ET_IGNORE, FP_CELL); g_szDataArray[g_iItems][ARRAY_MONEY] = get_param(3); g_iItems++; }
Luego dentro del extra item que quieras agregar al meno, osea en el plugin del extra item agregas la native que usaras para agregarlo al menu de extra items
Luego usas esta native en plugin init de esta forma:
Código PHP:
//titulo del extra item | forward que se ejecuta donde obtiene el extra item | precio del item shop_add_item_menu("+100 de hp", "fwSetHealh", 1500);
ya con eso agregarias items al menu de extra items
gracias por tomarte el tiempo en responder.. si era como suponia.. son 2 plugins entonces ?
Te consulto me sale este error por lo visto es por la version, debo suponer que en amxmodx deberían estar los archivos para actualizar
Edit: me dice error en las linea 16 y 17
register_plugin("[AMXX] Native Shop", "v1.0", "Alejandro-.");
register_clcmd("say /test", "DisplayShopItems");