|
些插件是Grief.QQ搞的吧,
但有个地方就是选择发给多少钱时按8不显示选择的要发多少币,后我加上一句,但选择第二个时要按6次第8项才行。帮忙看下是哪里不对?
#include <amxmodx>
#include <amxmisc>
#include <zombieplague>
#define PLUGIN "[ZP] 给予弹药包"
#define VERSION "0.5"
#define AUTHOR "[Grief.QQ]"
#define MENU_SIZE 256
#define MENU_PLAYERS 7
new g_iMenuPosition
new g_iMenuPlayers[32]
new g_iMenuOption[32]
new g_iMenuSettings[32]
const PACKS_1 = 200 //给予十个僵尸币(可修改)
const PACKS_2 = 500 //给予五十个僵尸币(可修改)
public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
register_menucmd(register_menuid("\r在线玩家列表:"),1023,"actionMenu")
register_clcmd("zp_money","ZP_GIVE_MONEY",ADMIN_IMMUNITY,"- displays Players")
AddMenuItem("给予玩家弹药包","zp_money",ADMIN_IMMUNITY,PLUGIN)
}
public ZP_GIVE_MONEY( id, lvl, cid )
{
if( cmd_access( id, lvl, cid, 0 ) )
{
g_iMenuOption[id] = 0
g_iMenuSettings[id] = 0
showMenu( id, g_iMenuPosition = 0 )
}
return PLUGIN_HANDLED
}
public showMenu( id, pos )
{
if( pos < 0 ) return
new i, j
new szMenuBody[MENU_SIZE]
new iCurrKey = 0
new szUserName[32]
new iStart = pos * MENU_PLAYERS
new iNum
get_players( g_iMenuPlayers, iNum )
if( iStart >= iNum )
iStart = pos = g_iMenuPosition = 0
new iLen = format( szMenuBody, MENU_SIZE-1, "\r在线玩家列表:\R%d/%d^n\w^n", pos+1, (iNum / MENU_PLAYERS + ((iNum % MENU_PLAYERS) ? 1 : 0 )) )
new iEnd = iStart + MENU_PLAYERS
new iKeys = (1<<9|1<<7)
if( iEnd > iNum )
iEnd = iNum
for( i = iStart; i < iEnd; i++ )
{
j = g_iMenuPlayers[i]
get_user_name( j, szUserName, 31 )
iKeys |= (1<<iCurrKey++)
iLen += format( szMenuBody[iLen], (MENU_SIZE-1-iLen), "%d. %s^n", iCurrKey, szUserName )
}
if ( g_iMenuSettings[id] )
iLen += format( szMenuBody[iLen], (MENU_SIZE-1-iLen), "^n8. 给予%d个僵尸币^n" ,PACKS_2)
else
iLen += format( szMenuBody[iLen], (MENU_SIZE-1-iLen), "^n8. 给予%d个僵尸币^n" ,PACKS_1)
if( iEnd != iNum )
{
format( szMenuBody[iLen], (MENU_SIZE-1-iLen), "^n9. 更多玩家^n0. %s", pos ? "返回" : "退出" )
iKeys |= (1<<8)
}
else
format( szMenuBody[iLen], (MENU_SIZE-1-iLen), "^n0. %s", pos ? "返回" : "退出" )
show_menu( id, iKeys, szMenuBody, -1 )
return
}
public actionMenu( id, key )
{
switch( key )
{
case 7: {
++g_iMenuOption[id]
g_iMenuOption[id] %= 7
switch(g_iMenuOption[id])
{
case 0: g_iMenuSettings[id] = 0
case 1: g_iMenuSettings[id] = 1
}
showMenu( id, g_iMenuPosition )
}
case 8: showMenu( id, ++g_iMenuPosition ) // 翻页
case 9: showMenu( id, --g_iMenuPosition ) // 返回
default:
{
new player = g_iMenuPlayers[g_iMenuPosition * MENU_PLAYERS + key]
switch(g_iMenuSettings[id])
{
case 0: zp_set_user_ammo_packs(player, zp_get_user_ammo_packs(player) + PACKS_1);
case 1: zp_set_user_ammo_packs(player, zp_get_user_ammo_packs(player) + PACKS_2);
}
}
}
return PLUGIN_HANDLED
} |
|