14/08/2019, 03:04 AM
me pueden ayudar a agregar un submenu que diga que si quieren comprar el arma especial o no el submenu se tiene que abrir después de seleccionar el arma
Código PHP:
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <jctf>
//#include <TiendaNatives>
#define SetPlayerBit(%1,%2) (%1 |= (1 << (%2 & 31)))
#define ClearPlayerBit(%1,%2) (%1 &= ~(1 << (%2 &31)))
#define GetPlayerBit(%1,%2) (%1 & (1 << (%2 & 31)))
#define IsValidConnected(%1) (1 <= %1 <= g_iMaxPlayers && is_user_connected(%1))
new g_szPluginName[] = "Shop with Natives"
new g_szPluginAuthor[] = "Chema"
new g_szSayPrefix[] = "^4[SG]^1"
new const g_szSelectItemSound[] = "Ui/buttonclickrelease.wav"
enum _:eItems
{
ITEM_BALROGII,
ITEM_CARTBLUE,
ITEM_PLASMAGUN,
ITEM_THANATHOS7,
ITEM_BALROGIII,
ITEM_GATLING,
ITEM_GOLDENAK,
ITEM_ROCKGUITAR,
ITEM_THUNDERBOLT,
ITEM_COILGUN,
ITEM_SQUEAKGRENADE
}
enum _:eShop_Items
{
Item_Name[19],
Item_Money,
Item_Adrenaline,
Item_AdminFlag
}
new const g_szShopItems[][_:eShop_Items] =
{
{"Balrog II", 2500, 15, ADMIN_LEVEL_B},
{"Cartblue", 3000, 10, -1},
{"Plasma Gun", 4500, 20, -1},
{"Thanathos 7", 5000, 25, ADMIN_LEVEL_B},
{"Balrog III", 2500, 40, -1},
{"Gatling", 5000, 70, -1},
{"Golden-AK", 1500, 30, ADMIN_LEVEL_B},
{"Rock Guitar", 3500, 60, -1},
{"Thunderbolt", 5000, 45, -1},
{"Coil Gun", 3000, 100, -1},
{"Squeak Grenade", 1500, 15, -1}
}
new g_iConnected
new g_iAlive
new g_iMaxPlayers
new g_iShopCallBack
public plugin_init()
{
register_plugin(g_szPluginName, AMXX_VERSION_STR, g_szPluginAuthor)
register_cvar("swn_author", g_szPluginAuthor, FCVAR_SPONLY)
register_clcmd("radio1", "m_ShopMenu")
register_concmd("get_adrenaline", "ClientCommand_GetAdrenaline")
RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post", true)
RegisterHam(Ham_Killed, "player", "ham_PlayerKilled_Post", true)
g_iMaxPlayers = get_maxplayers()
g_iShopCallBack = menu_makecallback("c_ShopMenu")
}
public plugin_precache()
{
precache_sound(g_szSelectItemSound)
}
public client_putinserver(iID)
{
ClearPlayerBit(g_iAlive, iID);
SetPlayerBit(g_iConnected, iID);
}
public client_disconnected(iID)
{
ClearPlayerBit(g_iConnected, iID);
ClearPlayerBit(g_iAlive, iID);
}
public ClientCommand_GetAdrenaline(const iID)
{
if(get_user_flags(iID) & ADMIN_RCON)
{
jctf_add_adrenaline(iID, 100)
}
return PLUGIN_HANDLED
}
public ham_PlayerSpawn_Post(const iID)
{
if( !is_user_alive(iID))
{
return HAM_IGNORED
}
SetPlayerBit(g_iAlive, iID)
return HAM_IGNORED
}
public ham_PlayerKilled_Post(const iVictim, const iAttacker, const iShouldGib)
{
new iCheck; iCheck = (iVictim == iAttacker || !IsValidConnected(iAttacker)) ? 1 : 0;
if(iCheck)
{
return HAM_IGNORED
}
ClearPlayerBit(g_iAlive, iVictim)
return HAM_IGNORED
}
public m_ShopMenu(const iID)
{
if(!GetPlayerBit(g_iAlive, iID) || is_user_bot(iID))
{
client_print_color(iID, iID, "%s Tienes que estar vivo para utilizar la tienda", g_szSayPrefix)
return PLUGIN_HANDLED
}
new szBuffer[151], iGetMoney, iMenu
iGetMoney = cs_get_user_money(iID)
formatex(szBuffer, charsmax(szBuffer), "\y[\rTEST\y] \wTienda de Armas Especiales \dA: \r%d\d", jctf_get_adrenaline(iID))
iMenu = menu_create(szBuffer, "h_ShopMenu")
for(new i = 0; i < sizeof(g_szShopItems); i++)
{
if(!( get_user_flags(iID) & g_szShopItems[i][Item_AdminFlag]))
{
formatex(szBuffer, charsmax(szBuffer), "\d%s $%i + (A: %i) \y[\rSolo ADMIN\y]", g_szShopItems[i][Item_Name], g_szShopItems[i][Item_Money], g_szShopItems[i][Item_Adrenaline])
}
else if(iGetMoney < g_szShopItems[i][Item_Money] || jctf_get_adrenaline(iID) < g_szShopItems[i][Item_Adrenaline])
{
formatex(szBuffer, charsmax(szBuffer), "\d%s \d$\r%i \d+ \y(\dA: \r%i\y)", g_szShopItems[i][Item_Name], g_szShopItems[i][Item_Money], g_szShopItems[i][Item_Adrenaline])
}
else
{
formatex(szBuffer, charsmax(szBuffer), "\w%s \y$%i \w+ \r(\wA: \y%i\r)", g_szShopItems[i][Item_Name], g_szShopItems[i][Item_Money], g_szShopItems[i][Item_Adrenaline])
}
menu_additem(iMenu, szBuffer, _, _, g_iShopCallBack)
}
menu_setprop(iMenu, MPROP_NEXTNAME, "Siguiente")
menu_setprop(iMenu, MPROP_BACKNAME, "Atras")
menu_setprop(iMenu, MPROP_EXITNAME, "Cerrar")
menu_display(iID, iMenu, 0)
return PLUGIN_HANDLED
}
public c_ShopMenu(const iID, const iMenu, const iItem)
{
new iGetMoney
iGetMoney = cs_get_user_money(iID)
if(iGetMoney < g_szShopItems[iItem][Item_Money]
|| jctf_get_adrenaline(iID) < g_szShopItems[iItem][Item_Adrenaline]
|| !( get_user_flags(iID) & g_szShopItems[iItem][Item_AdminFlag]))
return ITEM_DISABLED
return ITEM_ENABLED
}
public h_ShopMenu(const iID, const iMenu, const iItem)
{
if(iItem == MENU_EXIT)
{
menu_destroy(iMenu)
return PLUGIN_HANDLED
}
static iGetMoney
iGetMoney = cs_get_user_money(iID)
menu_destroy(iMenu)
if(!GetPlayerBit(g_iAlive, iID))
{
return PLUGIN_HANDLED
}
if(jctf_get_adrenaline(iID) < g_szShopItems[iItem][Item_Adrenaline])
{
return PLUGIN_HANDLED
}
switch(iItem)
{
//case ITEM_BALROGII: Tienda_Balrog11( iID );
//case ITEM_CARTBLUE: Tienda_cart_blue( iID );
//case ITEM_PLASMAGUN: Tienda_plasma( iID );
//case ITEM_THANATHOS7: Tienda_thanatos( iID );
//case ITEM_BALROGIII: Tienda_balrog3( iID );
//case ITEM_GATLING: Tienda_gatling( iID );
//case ITEM_GOLDENAK: Tienda_golden( iID );
//case ITEM_ROCKGUITAR: Tienda_Guitar( iID );
//case ITEM_THUNDERBOLT: Tienda_thunderbolt( iID );
//case ITEM_COILGUN: Tienda_CoilGun( iID );
//case ITEM_SQUEAKGRENADE: Tienda_CSqueak( iID );
}
cs_set_user_money(iID, iGetMoney - g_szShopItems[iItem][Item_Money], true)
jctf_add_adrenaline(iID, -g_szShopItems[iItem][Item_Adrenaline])
client_print_color(iID, iID, "%s Compraste el item^3 %s", g_szSayPrefix, g_szShopItems[iItem][Item_Name])
client_cmd(iID, "spk ^"%s^"", g_szSelectItemSound)
return PLUGIN_HANDLED
}
Aprendiendo scripting || Tratare ayudar en lo que pueda || PD: Soy pobre