搜索
查看: 6800|回复: 20

R版主能否帮忙写个小插件

[复制链接]
发表于 2008-6-25 15:50:59 | 显示全部楼层 |阅读模式 来自 中国–重庆–重庆–永川区
插件功能很简单
进入服务器的玩家禁止选择队伍。由服务器自动分配到少人的队

OP有免疫功能(可在AMXX。CFG里设置开关和免疫的权限)

以前在DT找的那些插件都会和死亡重生插件冲突
导致进入服务器不能自动在改局重生
谢谢
发表于 2008-6-25 19:24:06 | 显示全部楼层 来自 中国–福建–漳州

回复: R版主能否帮忙写个小插件

#include <amxmodx>
#include <amxmisc>

public plugin_init()
{
register_plugin("Can't Change Team", "1.0", "Rulzy");

register_menucmd(-2,(1<<0)|(1<<1)|(1<<4)|(1<<5),"team_select")
register_menucmd(register_menuid("Team_Select", 1),(1<<0)|(1<<1)|(1<<4)|(1<<5),"team_select")
}
public team_select(id, key)
{
//这里的key对应选择队伍时的菜单项,但key值小1。
//即key为0指选择菜单项1(选择T),key为1指选择菜单项2(选择CT),key为2指选择菜单项3(选择VIP),
//即key为4指选择菜单项5(自动选择),key为5指选择菜单项6(选择观察员)
//如果阻止,return PLUGIN_HANDLED;否则 return PLUGIN_CONTINUE

//如果有免疫权限,或是选择”VIP“、“自动选择”、“观察员”、“退出”则允许此菜单项执行
if(get_user_flags(id)&ADMIN_IMMUNITY || key==2 || key==4 || key==5 || key==9)
  return PLUGIN_CONTINUE;

client_print(id, print_center, "本服务器禁止手动选择队伍");
client_cmd(id, "chooseteam");
return PLUGIN_HANDLED;
}
public client_command(id)
{
new command[32]
read_argv(0, command, 31)
//如果玩家使用 jointeam 命令来换队伍
//使用 jointeam 换队伍,后面的参数为数字,跟菜单项上的数字一样
if(equali(command, "jointeam"))
{
  new snum[3]
  read_argv(1, snum, 2)
  return team_select(id, str_to_num(snum)-1) //注意要减1
}
return PLUGIN_CONTINUE
}

用这个,只能选择“5. 自动选择”,从而达到禁止选择队伍的功能。
回复

使用道具 举报

 楼主| 发表于 2008-6-26 09:32:11 | 显示全部楼层 来自 中国–重庆–重庆–永川区

回复: R版主能否帮忙写个小插件

多谢R版主的全面细致的指点。。。。
回复

使用道具 举报

发表于 2008-6-26 15:25:43 | 显示全部楼层 来自 中国–重庆–重庆–垫江县

回复: R版主能否帮忙写个小插件

哎  R斑竹就是凶啊。。。。  支持
回复

使用道具 举报

发表于 2008-6-26 15:56:45 | 显示全部楼层 来自 中国–广西–百色–右江区

回复: R版主能否帮忙写个小插件

最好再加入自动传他到人少的队伍的功能................那更好....
回复

使用道具 举报

 楼主| 发表于 2008-6-26 16:23:05 | 显示全部楼层 来自 中国–重庆–重庆–永川区

回复: R版主能否帮忙写个小插件

我也是这么想的。这样就更方便了
回复

使用道具 举报

发表于 2008-6-26 17:28:37 | 显示全部楼层 来自 中国–广东–深圳

回复: R版主能否帮忙写个小插件

5. 自动选择 功能是就可以自动转送玩家到人数较少的那边...
或者可以自己来定义都行

[php]
new Players[32]
new CTplayerCount, TplayerCount
get_players(Players, CTplayerCount, "e","CT")
get_players(Players, TplayerCount, "e","T")
if(TplayerCount < CTplayerCount)
{
cs_set_user_team(id,CS_TEAM_T)
}
else if(TplayerCount > CTplayerCount)
{
cs_set_user_team(id,CS_TEAM_CT)
}
else
{
cs_set_user_team(id, random_num(1, 2));
}[/php]
回复

使用道具 举报

发表于 2008-6-26 20:32:14 | 显示全部楼层 来自 中国–福建–漳州

回复: R版主能否帮忙写个小插件

Post by 心静如水
最好再加入自动传他到人少的队伍的功能................那更好....
没必要吧?那还给不给别人M6啦?
回复

使用道具 举报

发表于 2008-6-26 20:36:36 | 显示全部楼层 来自 中国–福建–漳州

回复: R版主能否帮忙写个小插件

如果确实需要,在玩家进入游戏后,执行命令“jointeam 5”就行了。
  1. public client_putinserver(id)
  2. {
  3.     set_task(0.1, "delay_jointeam", id);
  4. }
  5. public delay_jointeam(id)
  6. {
  7.     if(is_user_connected(id))
  8.         engclient_cmd(id, "jointeam", "5");
  9. }
复制代码
回复

使用道具 举报

发表于 2008-6-26 20:42:28 | 显示全部楼层 来自 中国–福建–漳州

回复: R版主能否帮忙写个小插件

以上代码还未经测试,大家测试一下看行不行。
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表