突发创意,cs1.6卖出手上武器
本帖最后由 wan482 于 2009-5-15 14:47 编辑游戏中是否经常发现地上的武器丢那里太可惜
想要这把又想要那把,最终只能选择一把
所以
能把武器卖掉换成$ :D
很不错的注意吧
会编写插件的兄弟姐妹都来看下怎么写这个插件
我看了两天写插件的资料还是一头雾水
EN文不行没办法了,请大家一起来...
--------------------------------------------------------
感谢 点通会员 "jakyotwins" 编写的卖出武器插件
插件测试已经可以正常使用,在进一步测试中.
需要插件的请到19楼下载 {:3_47:}
[原创作品] 突发创意,cs1.6卖出手上武器
我以为已经有了呢? 想怎么个方式卖?
打命令按出菜单? 肯定是命令了
比如say /maiwq
然后就出一个确认选单 哦...稍等,我现在给你写 #include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <Unlimited_money>
const KEYSMENU = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9)
const MENU_KEY_EXIT = 9
#define STUNT_COUNT 16
#define STUNT_STARTID (g_menu_data)
#define STUNT_SELECTION (g_menu_data+key)
new const WEAPONNAMES[][] = { "", "P228 Compact", "", "Schmidt Scout", "", "XM1014 M4", "", "Ingram MAC-10", "Steyr AUG A1",
"", "Dual Elite Berettas", "FiveseveN", "UMP 45", "SG-550 Auto-Sniper", "IMI Galil", "Famas",
"USP .45 ACP Tactical", "Glock 18C", "AWP Magnum Sniper", "MP5 Navy", "M249 Para Machinegun",
"M3 Super 90", "M4A1 Carbine", "Schmidt TMP", "G3SG1 Auto-Sniper", "", "Desert Eagle .50 AE",
"SG-552 Commando", "AK-47 Kalashnikov", "", "ES P90" }
new const WEAPONMONEYS[] = {0,450,0,2750,0,3000,0,1250,3500,0,800,750,1700,4200,2000,2250,500,600,4750,1500,5750,1700,3100,1250,4750,0,650,3500,2750,0,2350}
new sl_price
public plugin_init()
{
register_plugin("Sale Weapon", "1.0", "Jakyo")
register_menu("Stunt weapon Menu", KEYSMENU, "menu_weaponselect")
register_clcmd("saleweapon", "show_menu_weapon")
register_clcmd("say /maiwq", "show_menu_weapon")
register_clcmd("say /saleweapon", "show_menu_weapon")
sl_price= register_cvar("sl_price", "50") // 出售的武器打折数,默认半折
}
// 技能选择面版
public show_menu_weapon(id)
{
if (!is_user_alive(id))
{
return PLUGIN_HANDLED
}
static menu, len
new stu_key=1
len = 0
// 标题
len += formatex(menu, sizeof menu - 1 - len, "\y出售武器^n^n")
new weapStr, iNum
get_user_weapons(id, weapStr, iNum)
for(new i = 0; i < iNum; i++)
{
if (iNum>9)
{
break;
}
switch(weapStr)
{
case CSW_HEGRENADE,CSW_C4,CSW_ELITE,CSW_VEST,CSW_VESTHELM,CSW_KNIFE,CSW_SMOKEGRENADE,CSW_FLASHBANG:
{
}
default:
{
len += formatex(menu, sizeof menu - 1 - len, "\r%d.\w%s \y $%d^n", stu_key,WEAPONNAMES],(WEAPONMONEYS] / 100 * get_pcvar_num(sl_price)))
stu_key++
}
}
}
len += formatex(menu, sizeof menu - 1 - len, "^n^n\r0.\w 退出")
show_menu(id, KEYSMENU, menu, -1, "Stunt weapon Menu")
return PLUGIN_HANDLED;
}
public menu_weaponselect(id,key)
{
if (!is_user_alive(id))
return PLUGIN_HANDLED
new weapStr, iNum,stu_key=0,weaponName
get_user_weapons(id, weapStr, iNum)
for(new i = 0; i < iNum; i++)
{
if (iNum>9)
{
break;
}
switch(weapStr)
{
case CSW_HEGRENADE,CSW_C4,CSW_ELITE,CSW_VEST,CSW_VESTHELM,CSW_KNIFE,CSW_SMOKEGRENADE,CSW_FLASHBANG:
{
}
default:
{
if (stu_key==key)
{
add_money_um(id,(WEAPONMONEYS] / 100 * get_pcvar_num(sl_price)))
client_print(id, print_chat, "你卖出了%s,获得了$%d",WEAPONNAMES],(WEAPONMONEYS] / 100 * get_pcvar_num(sl_price)))
get_weaponname(weapStr, weaponName, sizeof(weaponName)-1)
new ent_weap = fm_find_ent_by_owner(-1, weaponName, id)
engclient_cmd(id, "drop", weaponName)
new ent_box = pev(ent_weap, pev_owner)
if (!ent_box || ent_box == id)
{
return PLUGIN_HANDLED
}
engfunc(EngFunc_RemoveEntity, ent_box)
return PLUGIN_HANDLED;
}
stu_key++
}
}
}
return PLUGIN_HANDLED;
}
stock fm_find_ent_by_owner(index, const classname[], owner, jghgtype = 0)
{
new strtype = "classname", ent = index
switch (jghgtype)
{
case 1: strtype = "target"
case 2: strtype = "targetname"
}
while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner)
{
}
return ent
} 测试通过,需调用无限金钱插件 使用
say /maiwq
say /saleweapon
打开菜单 ......为什么我的点通币是负的呢.. :D
测试下先
先谢谢楼上朋友的参与