下面是引用 烈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)