下面是引用 烈Gama英仙座 于 2013-02-18 20:34 发表的 :
我收到了
给楼主~~
这个还有一个小小小小的问题
没有丢枪指令
要是本来就有主武器(例如MP5等等)用了会发现
变成双主武
自己加上去了
顺便请大大在教学内容加上去
这个是外国人写的stock 楼主或其他有需要的人可以参考看看
判别是否持有武器:
复制程式
stock bool:has_weapon(id, haswhat)
{
static weapons[32], num, i, weaponid
num = 0
if (!id)
return false;
get_user_weapons(id, weapons, num)
for (i = 0;i < num;i++)
{
weaponid = weapons[i]
if ((haswhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (haswhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
return true;
}
return false;
}
武器丢弃:
复制程式
stock drop_weapons(id, dropwhat)
{
static weapons[32], num, i, weaponid
num = 0
if (!id)
return;
get_user_weapons(id, weapons, num)
for (i = 0; i < num; i++)
{
weaponid = weapons[i]
if ((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
{
static wname[32]
get_weaponname(weaponid, wname, charsmax(wname))
engclient_cmd(id, "drop", wname)
}
}
}
使用方法:
复制程式
if(has_weapon(id, 1) //持有主武器时
drop_weapons(id, 1) //丢弃主武器
如果是单纯的直接give_item 可以这样写
复制程式
drop_weapons(id, 1) // 1=主枪 2=手枪
give_item(id, "weaopn_")
贴上来之后排版好像会怪怪的 还麻烦自行排版
以上 有误请通知
***2013/2/21*** (感谢ChaosX与上帝 指正 详细请观看回覆)
请在最前面增加常数 再进行stock 否则编译会Error
ZP定义的东西忘记贴上了7.7
复制程式
const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)