|
本帖最后由 Osker Lee 于 2011-8-31 22:29 编辑
以往那些禁止BOT开局前乱开枪插件,一般是游戏前20秒不开枪,一旦过了20秒,其实还是可能会出现误判的情况,BOT仍然存在乱开枪的情况。
因此,我的解决办法是,开局前禁止BOT开枪(真人玩家除外可以开枪,虽然BOT不能开枪但能用刀子砍人) + 统一玩家的队伍(默认全体玩家在新的一局开始时自动加入CT方),这样一来应该就可以解决问题了。源码如下,需要的朋友来拿吧。
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <zombieplague>
#define PLUGIN "Bot Unattack"
#define VERSION "1.0"
#define AUTHOR "Osker Lee"
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_forward(FM_CmdStart , "fm_CmdStart")
}
//public plugin_precache()
//{
//set_cvar_string("humans_join_team", "ct")
//set_cvar_string("bot_join_team", "ct")
//set_cvar_num("sv_restart", 1)
//}
public event_round_start()
for (new i = 1; i <= get_maxplayers(); i++)
{
if(is_user_connected(i))
cs_set_user_team(i, CS_TEAM_CT)
}
public fm_CmdStart(id,Handle)
{
new Buttons; Buttons = get_uc(Handle,UC_Buttons)
if(is_user_bot(id) && !zp_has_round_started())
{
Buttons &= ~IN_ATTACK
set_uc(Handle , UC_Buttons , Buttons)
return FMRES_SUPERCEDE
}
return FMRES_IGNORED
}
【备注】
游戏运行后,第一局可能会出现团队不统一的情况,这时只需要刷新一下游戏,第二局开始后就正常了。测试环境为:CS1.6 +Podbot+Yapb,Zbot未作测试,因为严格来说Zbot是CZ专用的。另外,若想玩家进入游戏后只显示CT方的选人菜单而不显示T方的选人菜单(即强制玩家只能当CT),请将源码里以下代码前的//符号去掉。
//public plugin_precache()
//{
//set_cvar_string("humans_join_team", "ct")
//set_cvar_string("bot_join_team", "ct")
//set_cvar_num("sv_restart", 1)
//} |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注个册吧
×
|