|
发表于 2011-4-21 05:51:27
|
显示全部楼层
本帖最后由 L0op8ack 于 2011-4-21 15:53 编辑
触发器里没办法,可以用服务器端脚本来做
联网服务器中,如果只考虑踢出击落友方玩家或者友方AI单位的玩家,可以按照下面这个办法做
如果需要ban这个玩家,把被踢出玩家的信息放到ban表中就可以,可以是名字、IP、UCID
(未经测试,只是按照说明书写的,哈哈哈哈)
修改安装目录下的 \Scripts\net\events.lua 中的on_kill函数
on_kill函数中添加下面标注红色部分的代码:
function on_kill(id, weapon, victim)
if weapon ~= "" then
report(_("%s killed %s with %s."),player_info(id), bot_info(victim), weapon_info(weapon))
else
report(_("%s killed %s."), player_info(id), bot_info(victim))
end
if net.is_server() then
-- 本机为服务器,只有服务器才可以踢人,net.kick是server only的
local off = players[id]
local def = players[victim]
if off then
-- 攻击者为玩家
if def then
-- 杀友方玩家
if off.side == def.size then
report(_("%s(%s) TEAM KILL!"), player_info(id), id)
net.kick(id, _("NO TEAM KILL !"))
end
else
-- 杀友方AI单位
local offside = select_by_side(players[id].side,"red","blue","spec")
local defside = unit_property(victim,11)
if offside == defside then
report(_("%s(%s) TEAM KILL!"), player_info(id), id)
net.kick(id, _("NO TEAM KILL !"))
end
end
end
end
end |
评分
-
1
查看全部评分
-
|