求助,武器判断小代码这样写是否对?(已解决)
本帖最后由 cityhonghu 于 2009-10-4 11:53 编辑要做到的是,如果玩家使用雷类就切换至刀。如果使用其他武器则丢掉该武器。
疑问:
1。engclient_cmd和client_cmd用哪个比较好呢?
2。wpn的值是否也可以表现为数值呢?比如 if(wpn == 6)
3。CSW_HEGRENADE不需要""符号吗?
代码如下。谢谢new wpn = get_user_weapon(id)
switch (N) {
case 1:
case 2:
//如果为手雷,闪光,烟幕弹,则强制换刀。
if (wpn == CSW_HEGRENADE || wpn == CSW_SMOKEGRENADE || wpn == CSW_FLASHBANG)
engclient_cmd(id, "weapon_knife")
//如果持有其他武器则丢掉该武器
else{
if (wpn != CSW_KNIFE) { //当不是刀的时候丢掉
engclient_cmd(id, "wpn") //为防止快速切换至其他武器,先切换至该武器
engclient_cmd(id, "drop") //丢掉
}
}
} get_user_weapon(id) 返回的本来就是一个整数,像 CSW_HEGRENADE 这些是一个预定义常量,在 amxconst.inc 中定义。CSW_HEGRENADE 其实就是整数4。
像你说的,可以改成这样:new wpn = get_user_weapon(id)
switch (wpn) {
case CSW_HEGRENADE, CSW_SMOKEGRENADE, CSW_FLASHBANG:
engclient_cmd(id, "weapon_knife");//换成刀
case CSW_KNIFE:
; //不做任何事
default:
client_cmd(id, "drop"); //丢掉该武器
} 谢谢rulzy版大,还是你写的一目了然。借用一下了。 借用了一下,但是编译出现错误。出现错误的行为[; //不做任何事]
// E:\HLDS27016\cstrike\addons\amxmodx\scripting\sxei_required2.sma(353) : error
036: empty statement 改成new wpn = get_user_weapon(id)
switch (wpn) {
case CSW_HEGRENADE, CSW_SMOKEGRENADE, CSW_FLASHBANG:
engclient_cmd(id, "weapon_knife");//换成刀
case CSW_KNIFE:
{} //不做任何事
default:
client_cmd(id, "drop"); //丢掉该武器
}忘了,sma是允许用空语句的。 这回可以了,谢谢版大。 http://forums.alliedmods.net/forumdisplay.php?f=3
页:
[1]