Mensajes: 1,450
Temas: 59
Registro en: Feb 2015
Reputación:
20
Código PHP: #include <amxmodx> #include <amxmisc> #include <expmod> #define PLUGIN "ExpMod Shop" #define VERSION "1.0" #define AUTHOR "tomcionek15 & grs4" #define MAX_ITEMS 50 new NombreItem[MAX_ITEMS+1][64]; new DescripcionItem[MAX_ITEMS+1][128]; new Precio[MAX_ITEMS+1]; new Equipo[MAX_ITEMS+1]; new UnaVezPorRonda[MAX_ITEMS+1]; new DesactivarMuerto[MAX_ITEMS+1] new Comprado[33][MAX_ITEMS+1]; new Numero_Item; new Prefijo[] = "[JailBreaK PaiN]" new item_selected; public plugin_natives() { register_native("exp_shop_register_item", "shop_register_item", 1); register_native("exp_shop_get_prefix", "get_prefix", 1); } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("HLTV", "Nueva_Ronda", "a", "1=0", "2=0") register_clcmd("say /tienda", "Mostrar_MTienda") register_clcmd("say /shop", "Mostrar_MTienda") register_clcmd("say /mteam", "Mostrar_Equipo") item_selected = CreateMultiForward("item_selected", ET_CONTINUE, FP_CELL, FP_CELL); } public Nueva_Ronda() { for(new i = 1; i < 33; i++) { if(!is_user_connected(i) || is_user_hltv(i)) continue; for(new j = 1; j <= Numero_Item; j++) { Comprado[i][j] = 0; } } } public Mostrar_MTienda(id) { new Texto[128], Texto2[128] formatex(Texto, charsmax(Texto), "Tienes \y%d\w monedas^n\yQue quieres comprar ?", exp_get_user_monets(id)) new menu = menu_create(Texto, "Funcion_MTienda") new menu_cb = menu_makecallback("MenuSklep_Cb") new Item_NEquipo[MAX_ITEMS+1][32] for(new i = 1; i <= Numero_Item; i++) { if(Equipo[i] == 1) Item_NEquipo[i] = "TT"; else if(Equipo[i] == 2) Item_NEquipo[i] = "CT"; else Item_NEquipo[i] = "TODOS"; formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%d\w]", NombreItem[i], Precio[i], Item_NEquipo[i]) menu_additem(menu, Texto2, _, _, menu_cb) } menu_display(id, menu) } public MenuSklep_Cb(id, menu, item) { new Equipo_Actual = get_user_team(id) for(new i = 1; i <= Numero_Item;i++) { if((item == i-1 && exp_get_user_monets(id) < Precio[i]) || (item == i-1 && Comprado[id][i] == 1)) return ITEM_DISABLED; if(item == i-1 && (DesactivarMuerto[i] == 1 && !is_user_alive(id))) return ITEM_DISABLED; if((item == i-1 && Equipo[i] == 1) || (item == i-1 && Equipo[i] == 2)) { if((item == i-1 && Equipo_Actual != Equipo[i])) return ITEM_DISABLED; } } return ITEM_ENABLED } new temp; public Funcion_MTienda(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_CONTINUE } item++; temp = item; new Texto[256] formatex(Texto, charsmax(Texto), "Nombre: \y%s^n\wDescripcion: \y%s^n\wPrecio: \y%d^n\wUno por ronda:\y %s^n\rComprar?", NombreItem[item], DescripcionItem[item], Precio[item], UnaVezPorRonda[item] ? "Si":"No") new menus = menu_create(Texto, "Funcion_MTienda2") menu_additem(menus, "Si") menu_additem(menus, "No") menu_display(id, menus) return PLUGIN_CONTINUE } public Funcion_MTienda2(id, menu, item) { if(item == MENU_EXIT || item == 1) { menu_destroy(menu) temp = 0 return PLUGIN_CONTINUE } if(item == 0) { Eligio_Comprar(id, temp) } return PLUGIN_CONTINUE } public Eligio_Comprar(id, itemid) { new iRet; ExecuteForward(item_selected, iRet, id, itemid); chatcolor(id, "^4%s^1 Compraste: ^4%s", Prefijo, NombreItem[itemid]) chatcolor(id, "^4%s^1 Descripcion: ^4%s", Prefijo, DescripcionItem[itemid]) chatcolor(id, "^4%s^1 Costo:^4 %d ^1monedas", Prefijo, Precio[itemid]) temp = 0; if(UnaVezPorRonda[itemid]) { Comprado[id][itemid] = 1; } exp_set_user_monets(id, exp_get_user_monets(id)-Precio[itemid]) } public shop_register_item(const name[], const desc[], price, one_round, if_dead, team) { if(Numero_Item+1 > MAX_ITEMS+1) return PLUGIN_CONTINUE Numero_Item++ param_convert(1) param_convert(2) copy(NombreItem[Numero_Item], 63, name) copy(DescripcionItem[Numero_Item], 127, desc) Precio[Numero_Item] = price UnaVezPorRonda[Numero_Item] = one_round DesactivarMuerto[Numero_Item] = if_dead Equipo[Numero_Item] = team return Numero_Item; } public get_prefix(dest[], len) { param_convert(1) copy(dest, len, Prefijo); } public Mostrar_Equipo(id) { new E_Act = get_user_team(id) chatcolor(id, "^4[%s] ^1Tu equipo actual es: ^3%d", Prefijo, E_Act); } stock chatcolor(id, const input[], any:...) { static szMsg[191], msgSayText; if(!msgSayText) msgSayText = get_user_msgid("SayText"); vformat(szMsg, 190, input, 3); message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, msgSayText, .player = id); write_byte(id ? id : 33); write_string(szMsg); message_end(); }
-->
Código PHP: public Mostrar_MTienda(id) { new Texto[128], Texto2[128] formatex(Texto, charsmax(Texto), "Tienes \y%d\w monedas^n\yQue quieres comprar ?", exp_get_user_monets(id)) new menu = menu_create(Texto, "Funcion_MTienda") new menu_cb = menu_makecallback("MenuSklep_Cb") new Item_NEquipo[MAX_ITEMS+1][32] for(new i = 1; i <= Numero_Item; i++) { if(Equipo[i] == 1) Item_NEquipo[i] = "TT"; else if(Equipo[i] == 2) Item_NEquipo[i] = "CT"; else Item_NEquipo[i] = "TODOS"; formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%d\w]", NombreItem[i], Precio[i], Item_NEquipo[i]) menu_additem(menu, Texto2, _, _, menu_cb) } menu_display(id, menu) }
Al abrir el Menu, no sale CT, TT ni TODOS, sale 84, 64, etc... y ademas desaparece la opcion 8 y 9, cambiar de pagina y volver atras o salir.
Supuse que era porque
Código PHP: new Texto[128], Texto2[128]
-->
Código PHP: new Texto[500], Texto2[500]
pero sigue igual, alguna forma de arreglarlo?
Mensajes: 1,902
Temas: 35
Registro en: Jan 2014
Reputación:
28
29/12/2016, 01:29 PM
(Última modificación: 29/12/2016, 01:29 PM por Chamo..)
Código PHP: formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%d\w]", NombreItem[i], Precio[i], Item_NEquipo[i]
>>>>>>>>>>
Código PHP: formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%s\w]", NombreItem[i], Precio[i], Item_NEquipo[i]
También esto:
Código PHP: if(Equipo[i] == 1) Item_NEquipo[i] = "TT"; else if(Equipo[i] == 2) Item_NEquipo[i] = "CT"; else Item_NEquipo[i] = "TODOS";
Seria mejor asi:
Código PHP: formatex(Item_NEquipo[i], charsmax(Item_NEquipo[]), "%s", Equipo[i] == 1 ? Equipo[i] == 2 ? "CT" : "TT" : "TODOS")
Mensajes: 1,450
Temas: 59
Registro en: Feb 2015
Reputación:
20
29/12/2016, 01:33 PM
(Última modificación: 29/12/2016, 01:35 PM por metita.)
(29/12/2016, 01:29 PM)Chamo. escribió: Código PHP: formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%d\w]", NombreItem[i], Precio[i], Item_NEquipo[i]
>>>>>>>>>>
Código PHP: formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%s\w]", NombreItem[i], Precio[i], Item_NEquipo[i]
También esto:
Código PHP: if(Equipo[i] == 1) Item_NEquipo[i] = "TT"; else if(Equipo[i] == 2) Item_NEquipo[i] = "CT"; else Item_NEquipo[i] = "TODOS";
Seria mejor asi:
Código PHP: formatex(Item_NEquipo[i], charsmax(Item_NEquipo[]), "%s", Equipo[i] == 1 ? Equipo[i] == 2 ? "CT" : "TT" : "TODOS")
Código PHP: public Mostrar_MTienda(id) { new Texto[128], Texto2[128] formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%d\w]", NombreItem[i], Precio[i], Item_NEquipo[i] new menu = menu_create(Texto, "Funcion_MTienda") new menu_cb = menu_makecallback("MenuSklep_Cb") new Item_NEquipo[MAX_ITEMS+1][32] for(new i = 1; i <= Numero_Item; i++) { formatex(Item_NEquipo[i], charsmax(Item_NEquipo[]), "%s", Equipo[i] == 1 ? Equipo[i] == 2 ? "CT" : "TT" : "TODOS") formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%d\w]", NombreItem[i], Precio[i], Item_NEquipo[i]) menu_additem(menu, Texto2, _, _, menu_cb) } menu_display(id, menu) }
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2013 ITB CompuPhase, AMX Mod X Team
Error: Undefined symbol "i" on line 61
Error: Undefined symbol "i" on line 61
Error: Number of arguments does not match definition on line 61
Error: Too many error messages on one line on line 61
Compilation aborted.
4 Errors.
Could not locate output file C:\Users\marce\Desktop\exp\scripting\expmod_shop.amx (compile failed).
PD: Numero de linea a modificar?
Código PHP: public Mostrar_MTienda(id) { new Texto[128], Texto2[128] formatex(Texto, charsmax(Texto), "Tienes \y%d\w monedas^n\yQue quieres comprar ?", exp_get_user_monets(id)) new menu = menu_create(Texto, "Funcion_MTienda") new menu_cb = menu_makecallback("MenuSklep_Cb") new Item_NEquipo[MAX_ITEMS+1][32] formatex(Item_NEquipo[i], charsmax(Item_NEquipo[]), "%s", Equipo[i] == 1 ? Equipo[i] == 2 ? "CT" : "TT" : "TODOS") formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%s\w]", NombreItem[i], Precio[i], Item_NEquipo[i] menu_additem(menu, Texto2, _, _, menu_cb) } menu_display(id, menu) }
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2013 ITB CompuPhase, AMX Mod X Team
Warning: Loose indentation on line 68
Error: Undefined symbol "i" on line 68
Error: Number of arguments does not match definition on line 68
Error: Undefined symbol "i" on line 70
Error: Symbol already defined: "menu_display" on line 74
4 Errors.
Could not locate output file C:\Users\marce\Desktop\exp\scripting\expmod_shop.amx (compile failed).
Mensajes: 1,902
Temas: 35
Registro en: Jan 2014
Reputación:
28
29/12/2016, 01:39 PM
(Última modificación: 29/12/2016, 01:40 PM por Chamo..)
Código PHP: public Mostrar_MTienda(id) { new Texto[128], Texto2[128] formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%d\w]", NombreItem[i], Precio[i], Item_NEquipo[i] new menu = menu_create(Texto, "Funcion_MTienda") new menu_cb = menu_makecallback("MenuSklep_Cb") new Item_NEquipo[MAX_ITEMS+1][32] for(new i = 1; i <= Numero_Item; i++) { formatex(Item_NEquipo[i], charsmax(Item_NEquipo[]), "%s", Equipo[i] == 1 ? Equipo[i] == 2 ? "CT" : "TT" : "TODOS") formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%d\w]", NombreItem[i], Precio[i], Item_NEquipo[i] menu_additem(menu, Texto2, _, _, menu_cb) } menu_display(id, menu) }
>>>>>>>>>>
Código PHP: public Mostrar_MTienda(id) { new Texto[128], Texto2[128] new menu = menu_create(Texto, "Funcion_MTienda") new menu_cb = menu_makecallback("MenuSklep_Cb") new Item_NEquipo[MAX_ITEMS+1][32] for(new i = 1; i <= Numero_Item; i++) { formatex(Item_NEquipo[i], charsmax(Item_NEquipo[]), "%s", Equipo[i] == 1 ? Equipo[i] == 2 ? "CT" : "TT" : "TODOS") formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%s\w]", NombreItem[i], Precio[i], Item_NEquipo[i] menu_additem(menu, Texto2, _, _, menu_cb) } menu_display(id, menu) }
Mensajes: 1,450
Temas: 59
Registro en: Feb 2015
Reputación:
20
(29/12/2016, 01:39 PM)Chamo. escribió: Código PHP: public Mostrar_MTienda(id) { new Texto[128], Texto2[128] formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%d\w]", NombreItem[i], Precio[i], Item_NEquipo[i] new menu = menu_create(Texto, "Funcion_MTienda") new menu_cb = menu_makecallback("MenuSklep_Cb") new Item_NEquipo[MAX_ITEMS+1][32] for(new i = 1; i <= Numero_Item; i++) { formatex(Item_NEquipo[i], charsmax(Item_NEquipo[]), "%s", Equipo[i] == 1 ? Equipo[i] == 2 ? "CT" : "TT" : "TODOS") formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%d\w]", NombreItem[i], Precio[i], Item_NEquipo[i] menu_additem(menu, Texto2, _, _, menu_cb) } menu_display(id, menu) }
>>>>>>>>>>
Código PHP: public Mostrar_MTienda(id) { new Texto[128], Texto2[128] new menu = menu_create(Texto, "Funcion_MTienda") new menu_cb = menu_makecallback("MenuSklep_Cb") new Item_NEquipo[MAX_ITEMS+1][32] for(new i = 1; i <= Numero_Item; i++) { formatex(Item_NEquipo[i], charsmax(Item_NEquipo[]), "%s", Equipo[i] == 1 ? Equipo[i] == 2 ? "CT" : "TT" : "TODOS") formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%s\w]", NombreItem[i], Precio[i], Item_NEquipo[i] menu_additem(menu, Texto2, _, _, menu_cb) } menu_display(id, menu) }
Error: Expected token: ",", but found "-identifier-" on line 72
Mensajes: 1,902
Temas: 35
Registro en: Jan 2014
Reputación:
28
Código PHP: formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%s\w]", NombreItem[i], Precio[i], Item_NEquipo[i]
>>>>>>>>>>
Código PHP: formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%s\w]", NombreItem[i], Precio[i], Item_NEquipo[i])
Mensajes: 1,450
Temas: 59
Registro en: Feb 2015
Reputación:
20
29/12/2016, 01:52 PM
(Última modificación: 29/12/2016, 02:02 PM por metita.)
(29/12/2016, 01:45 PM)Chamo. escribió: Código PHP: formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%s\w]", NombreItem[i], Precio[i], Item_NEquipo[i]
>>>>>>>>>>
Código PHP: formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%s\w]", NombreItem[i], Precio[i], Item_NEquipo[i])
Se arreglo, pero tengo 2 armas en concreto que son para el Equipo CT y las muestra para [TODOS]
En este caso, Golden AK y la Golden M4A1 deberia ser CT
Arreglado
Código PHP: public Mostrar_MTienda(id) { new Texto[128], Texto2[128] new menu = menu_create(Texto, "Funcion_MTienda") new menu_cb = menu_makecallback("MenuSklep_Cb") new Item_NEquipo[MAX_ITEMS+1][32] for(new i = 1; i <= Numero_Item; i++) { if(Equipo[i] == 1) Item_NEquipo[i] = "TT"; else if(Equipo[i] == 2) Item_NEquipo[i] = "CT"; else Item_NEquipo[i] = "TODOS"; formatex(Texto2, charsmax(Texto2), "%s \w[\r%d\y monedas\w] \w[\rEquipo: \y%s\w]", NombreItem[i], Precio[i], Item_NEquipo[i]) menu_additem(menu, Texto2, _, _, menu_cb) } menu_display(id, menu) }
Mensajes: 1,750
Temas: 9
Registro en: Mar 2014
Reputación:
17
(29/12/2016, 01:29 PM)Chamo. escribió: También esto:
Código PHP: if(Equipo[i] == 1) Item_NEquipo[i] = "TT"; else if(Equipo[i] == 2) Item_NEquipo[i] = "CT"; else Item_NEquipo[i] = "TODOS";
Seria mejor asi:
Código PHP: formatex(Item_NEquipo[i], charsmax(Item_NEquipo[]), "%s", Equipo[i] == 1 ? Equipo[i] == 2 ? "CT" : "TT" : "TODOS")
¿Por qué decís que sería mejor?
(25/07/2016, 11:34 PM)Neeeeeeeeeel.- escribió: (25/07/2016, 11:33 PM)Web Controller escribió: Este mensaje no se va a ver asi que russel te amo siempre me gustaste :$
Solamente voy a restaurar los datos del template de la db que rompi... no te ilusiones.
Mensajes: 1,902
Temas: 35
Registro en: Jan 2014
Reputación:
28
(29/12/2016, 02:22 PM)RusselNight escribió:
(29/12/2016, 01:29 PM)Chamo. escribió: También esto:
Código PHP: if(Equipo[i] == 1) Item_NEquipo[i] = "TT"; else if(Equipo[i] == 2) Item_NEquipo[i] = "CT"; else Item_NEquipo[i] = "TODOS";
Seria mejor asi:
Código PHP: formatex(Item_NEquipo[i], charsmax(Item_NEquipo[]), "%s", Equipo[i] == 1 ? Equipo[i] == 2 ? "CT" : "TT" : "TODOS")
¿Por qué decís que sería mejor?
Me refería a que seria un poco mas 'simple' ( si puede decirse) u ordenado, que hacerlo con múltiples 'ifs'.
|