取消地图任务插件
本帖最后由 savasun 于 2009-8-11 12:57 编辑我服不常开,但是有固定的保证人品的玩家来玩,现在我就遇到一问题,就是服务器刚开的时候,其他玩家还没来,几个人游戏,每当它们打不赢了就拖时间跑出大半个地图装C4。浪费我们游戏时间。
我知道有个僵尸服的noobjectives.amxx 插件可以达到效果,但是它不能灵活控制,希望高手改进改进?? 取消地图任务?什么意思,不给放包? 就是T或CT一方只剩一人时开始记时.....12秒内不放C4就结束本局
或是放C4后12秒没有CT到达放包区就结束本局........... 本帖最后由 savasun 于 2009-8-11 12:56 编辑
是二楼说的那个意思,取消地图本来有的任务。比如原来救人质的,就把人质给没了,原来是安C4的 就把C4给没了。就像noobjectives.amxx 插件一样,有个开关就好了。 人质不知道怎么办,C4可以参照死亡竞技,在换武器事件中检测玩家手里拿的武器,是C4就自动丢掉 人之不知道怎么办,C4可以参照死亡竞技,在换武器事件中检测玩家手里拿的武器,是C4就自动丢掉 楼上又给出另外一思路,不过按照你这种思路,是不是玩家靠近人质,就检测出来,自动把人质杀死? 本帖最后由 zwfgdlc 于 2009-8-12 16:57 编辑
你自己试下吧,理论上应该没问题。
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <cstrike>
#include <hamsandwich>
#define PLUGIN_NAME "New Plug-In"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "zwfgdlc"
new pcvar_playersnum;
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
pcvar_playersnum=register_cvar("amx_OnOff_playersum","6"); //服务器小于6人时开启
if(engfunc(EngFunc_FindEntityByString,-1,"classname","func_bomb_target")) //如果是de类放包拆包地图
RegisterHam(Ham_AddPlayerItem,"player","fwd_AddPlayerItem");
if(engfunc(EngFunc_FindEntityByString,-1,"classname","hostage_entity")) //如果是cs类解救人质地图
register_logevent("Round_Start",2,"1=Round_Start");
return PLUGIN_CONTINUE;
}
public fwd_AddPlayerItem(id,ent)
{
if(get_pdata_int(ent,43,4) != CSW_C4) return HAM_IGNORED;
if(get_playersnum(1) > get_pcvar_num(pcvar_playersnum)) return HAM_IGNORED;
cs_set_user_plant(id,0,0);
set_pev(id,pev_body,0);
message_begin(MSG_BROADCAST,get_user_msgid("ScoreAttrib"),{0,0,0},id);
write_byte(id);
write_byte(0);
message_end();
set_pev(ent,pev_flags,FL_KILLME);
dllfunc(DLLFunc_Think, ent);
SetHamReturnInteger(0);
return HAM_SUPERCEDE;
}
public Round_Start()
{
new ent=-1;
while((ent=engfunc(EngFunc_FindEntityByString,ent,"classname","hostage_entity")))
{
set_pev(ent,pev_flags,FL_KILLME);
dllfunc(DLLFunc_Think, ent);
}
}
先谢过你,要是OP可以任意开关就好了? rcon amx_OnOff_playersum 0
就可以关掉了.