Mensajes: 98
Temas: 35
Registro en: Mar 2017
Reputación:
0
05/03/2018, 05:03 PM
(Última modificación: 05/03/2018, 05:30 PM por Renatomon.)
Hola tengo un pedido y ayuda a la vez.
Como haria un Menu que funcione con una variable
ejemplo
Menu
1. Comprar
2. Salir
Al elegir comprar se despliegan varias opciones:
1. Comprar 1 esto (x$ de la variable)
2. Comprar 2 esto (x$ de la variable)
En caso de que no tenga suficiente de la variable, no deja comprar y en caso de que si, nadie mas podra comprar el objeto elegido por 60 minutos
Mensajes: 255
Temas: 7
Registro en: Sep 2017
Reputación:
3
06/03/2018, 10:45 PM
(Última modificación: 06/03/2018, 10:47 PM por Juansi Loow.)
Algo asi? :p
Código PHP: #include <amxmodx>
new g_Variable1 new g_Variable2
public plugin_init() { register_clcmd("say /menu", "Cmd_BuyMenu") }
public Cmd_BuyMenu(id) { static OPCText[50] new menu = menu_create("Menu", "Cmd_BuyMenu_Handler"); if(g_Variable1 >= 10) // Si la variable es mayor o igual a 10 { formatex(OPCText, charsmax(OPCText), "Comprar 1 esto \r(%d)", g_Variable1) menu_additem(menu, OPCText, "0") } else // Y si no... { formatex(OPCText, charsmax(OPCText), "\dComprar 1 esto \r(%d)", g_Variable1) menu_additem(menu, OPCText, "0") } if(g_Variable2 >= 20) // Si la variable es mayor o igual a 20 { formatex(OPCText, charsmax(OPCText), "Comprar 2 esto \r(%d)", g_Variable2) menu_additem(menu, OPCText, "1") } else // Y si no... { formatex(OPCText, charsmax(OPCText), "\dComprar 2 esto \r(%d)", g_Variable2) menu_additem(menu, OPCText, "1") } menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0) }
public Cmd_BuyMenu_Handler(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id)) { menu_destroy(menu) return PLUGIN_HANDLED } switch(item) { case 0: { if(g_Variable1 >= 10) // Si la variable es mayor o igual a 10 { client_print(id, print_chat, "Compraste esto1") } else // Y si no... { client_print(id, print_chat, "No tenes suficientes ....") } } case 1: { if(g_Variable2 >= 20) // Si la variable es mayor o igual a 20 { client_print(id, print_chat, "Compraste esto2") } else // Y si no... { client_print(id, print_chat, "No tenes suficientes ....") } } } return PLUGIN_HANDLED }
Plata o Plomo Usted decide
- Pablo Emilio Escobar Gaviria -
Mensajes: 98
Temas: 35
Registro en: Mar 2017
Reputación:
0
(06/03/2018, 10:45 PM)Juansi Loow escribió: Algo asi? :p
Código PHP: #include <amxmodx>
new g_Variable1 new g_Variable2
public plugin_init() { register_clcmd("say /menu", "Cmd_BuyMenu") }
public Cmd_BuyMenu(id) { static OPCText[50] new menu = menu_create("Menu", "Cmd_BuyMenu_Handler"); if(g_Variable1 >= 10) // Si la variable es mayor o igual a 10 { formatex(OPCText, charsmax(OPCText), "Comprar 1 esto \r(%d)", g_Variable1) menu_additem(menu, OPCText, "0") } else // Y si no... { formatex(OPCText, charsmax(OPCText), "\dComprar 1 esto \r(%d)", g_Variable1) menu_additem(menu, OPCText, "0") } if(g_Variable2 >= 20) // Si la variable es mayor o igual a 20 { formatex(OPCText, charsmax(OPCText), "Comprar 2 esto \r(%d)", g_Variable2) menu_additem(menu, OPCText, "1") } else // Y si no... { formatex(OPCText, charsmax(OPCText), "\dComprar 2 esto \r(%d)", g_Variable2) menu_additem(menu, OPCText, "1") } menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0) }
public Cmd_BuyMenu_Handler(id, menu, item) { if(item == MENU_EXIT || !is_user_alive(id)) { menu_destroy(menu) return PLUGIN_HANDLED } switch(item) { case 0: { if(g_Variable1 >= 10) // Si la variable es mayor o igual a 10 { client_print(id, print_chat, "Compraste esto1") } else // Y si no... { client_print(id, print_chat, "No tenes suficientes ....") } } case 1: { if(g_Variable2 >= 20) // Si la variable es mayor o igual a 20 { client_print(id, print_chat, "Compraste esto2") } else // Y si no... { client_print(id, print_chat, "No tenes suficientes ....") } } } return PLUGIN_HANDLED }
Holaa, muchas gracias pero funciona parcialmente...
Al comprar una opcion, no quita nada de la variable, por ejemplo probe que quitase 5 de la variable, (Tengo 5 puntos, gaste 5 en la opcion 1, la opcion 1 se ejecuta pero no quita los puntos) otra cosa, las opciones no se "bloquean", te salta el mensaje de "Compraste esto1" y no ejecuta nada ni quita nada de la variable, eso seria mas que nada, lo otro es que falto que cuando un usuario compra cualquiera de las opciones, no se pueda elegir NINGUNA de las opciones por 60 minutos. si es posible y gracias
Mensajes: 255
Temas: 7
Registro en: Sep 2017
Reputación:
3
(06/03/2018, 11:25 PM)Renatomon escribió: Holaa, muchas gracias pero funciona parcialmente...
Al comprar una opcion, no quita nada de la variable, por ejemplo probe que quitase 5 de la variable, (Tengo 5 puntos, gaste 5 en la opcion 1, la opcion 1 se ejecuta pero no quita los puntos) otra cosa, las opciones no se "bloquean", te salta el mensaje de "Compraste esto1" y no ejecuta nada ni quita nada de la variable, eso seria mas que nada, lo otro es que falto que cuando un usuario compra cualquiera de las opciones, no se pueda elegir NINGUNA de las opciones por 60 minutos. si es posible y gracias
Hice lo que pediste en el post.
De todas formas
Lo que quieras que de al elegir una opcion eso debes ponerlo vos, yo no se que querras.
Código PHP: #include <amxmodx>
new g_Variable1 new g_Variable2 new g_MaxPlayers
new bool:g_BloquearMenu[33]
public plugin_init() { register_clcmd("say /menu", "Cmd_BuyMenu") register_logevent("Round_Start", 2, "0=World triggered", "1=Round_Start") g_MaxPlayers = get_maxplayers() }
public Round_Start() { for(new id = 1; id <= g_MaxPlayers; id++) { g_BloquearMenu[id] = false } }
public Cmd_BuyMenu(id) { static OPCText[50] new menu = menu_create("Menu", "Cmd_BuyMenu_Handler"); if(g_Variable1 >= 10) // Si la variable es mayor o igual a 10 { formatex(OPCText, charsmax(OPCText), "Comprar 1 esto \r(%d)", g_Variable1) menu_additem(menu, OPCText, "0") } else // Y si no... { formatex(OPCText, charsmax(OPCText), "\dComprar 1 esto \r(%d)", g_Variable1) menu_additem(menu, OPCText, "0") } if(g_Variable2 >= 20) // Si la variable es mayor o igual a 20 { formatex(OPCText, charsmax(OPCText), "Comprar 2 esto \r(%d)", g_Variable2) menu_additem(menu, OPCText, "1") } else // Y si no... { formatex(OPCText, charsmax(OPCText), "\dComprar 2 esto \r(%d)", g_Variable2) menu_additem(menu, OPCText, "1") } menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0) }
public Cmd_BuyMenu_Handler(id, menu, item) { if(item == MENU_EXIT || g_BloquearMenu[id]) { menu_destroy(menu) return PLUGIN_HANDLED } switch(item) { case 0: { if(g_Variable1 >= 10) // Si la variable es mayor o igual a 10 { client_print(id, print_chat, "Compraste esto1") g_Variable1 -= 10 // Usa tu variable g_BloquearMenu[id] = true } else // Y si no... { client_print(id, print_chat, "No tenes suficientes ....") } } case 1: { if(g_Variable2 >= 20) // Si la variable es mayor o igual a 20 { client_print(id, print_chat, "Compraste esto2") g_Variable1 -= 20 // Usa tu variable g_BloquearMenu[id] = true } else // Y si no... { client_print(id, print_chat, "No tenes suficientes ....") } } } return PLUGIN_HANDLED }
Plata o Plomo Usted decide
- Pablo Emilio Escobar Gaviria -
Mensajes: 98
Temas: 35
Registro en: Mar 2017
Reputación:
0
07/03/2018, 01:53 PM
(Última modificación: 07/03/2018, 02:39 PM por Renatomon.)
(07/03/2018, 01:07 AM)Juansi Loow escribió: (06/03/2018, 11:25 PM)Renatomon escribió: Holaa, muchas gracias pero funciona parcialmente...
Al comprar una opcion, no quita nada de la variable, por ejemplo probe que quitase 5 de la variable, (Tengo 5 puntos, gaste 5 en la opcion 1, la opcion 1 se ejecuta pero no quita los puntos) otra cosa, las opciones no se "bloquean", te salta el mensaje de "Compraste esto1" y no ejecuta nada ni quita nada de la variable, eso seria mas que nada, lo otro es que falto que cuando un usuario compra cualquiera de las opciones, no se pueda elegir NINGUNA de las opciones por 60 minutos. si es posible y gracias
Hice lo que pediste en el post.
De todas formas
Lo que quieras que de al elegir una opcion eso debes ponerlo vos, yo no se que querras.
Código PHP: #include <amxmodx>
new g_Variable1 new g_Variable2 new g_MaxPlayers
new bool:g_BloquearMenu[33]
public plugin_init() { register_clcmd("say /menu", "Cmd_BuyMenu") register_logevent("Round_Start", 2, "0=World triggered", "1=Round_Start") g_MaxPlayers = get_maxplayers() }
public Round_Start() { for(new id = 1; id <= g_MaxPlayers; id++) { g_BloquearMenu[id] = false } }
public Cmd_BuyMenu(id) { static OPCText[50] new menu = menu_create("Menu", "Cmd_BuyMenu_Handler"); if(g_Variable1 >= 10) // Si la variable es mayor o igual a 10 { formatex(OPCText, charsmax(OPCText), "Comprar 1 esto \r(%d)", g_Variable1) menu_additem(menu, OPCText, "0") } else // Y si no... { formatex(OPCText, charsmax(OPCText), "\dComprar 1 esto \r(%d)", g_Variable1) menu_additem(menu, OPCText, "0") } if(g_Variable2 >= 20) // Si la variable es mayor o igual a 20 { formatex(OPCText, charsmax(OPCText), "Comprar 2 esto \r(%d)", g_Variable2) menu_additem(menu, OPCText, "1") } else // Y si no... { formatex(OPCText, charsmax(OPCText), "\dComprar 2 esto \r(%d)", g_Variable2) menu_additem(menu, OPCText, "1") } menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0) }
public Cmd_BuyMenu_Handler(id, menu, item) { if(item == MENU_EXIT || g_BloquearMenu[id]) { menu_destroy(menu) return PLUGIN_HANDLED } switch(item) { case 0: { if(g_Variable1 >= 10) // Si la variable es mayor o igual a 10 { client_print(id, print_chat, "Compraste esto1") g_Variable1 -= 10 // Usa tu variable g_BloquearMenu[id] = true } else // Y si no... { client_print(id, print_chat, "No tenes suficientes ....") } } case 1: { if(g_Variable2 >= 20) // Si la variable es mayor o igual a 20 { client_print(id, print_chat, "Compraste esto2") g_Variable1 -= 20 // Usa tu variable g_BloquearMenu[id] = true } else // Y si no... { client_print(id, print_chat, "No tenes suficientes ....") } } } return PLUGIN_HANDLED }
Gracias probare cuando llegue a mi casa, como dije si me habia funcionado el menu con la variable, solo que tenia esos errores que comente
Lo probe, si hago retry me deja comprar normalmente otra vez y queria que si un usuario compra cualquiera de las opciones el menu si se muestre pero las opciones no estaran disponibles hasta pasado los 60 minutos pero la opcion si se ejecuta y si descuenta.
Mensajes: 98
Temas: 35
Registro en: Mar 2017
Reputación:
0
ayuda porfavor
|