防止发呆的插件
|
在zmud中,为了防止游戏人物因为处于发呆状态(AFK,away from keyboard)而被踢出服务器,通常的做法是设置一个定时器,定时的发送一些命令。但是这样做有一点不完美的地方就是当你正在操作人物时,定时器仍然会定时发送这些命令。虽然不影响正常的使用,但仍然感觉有点不爽。当然,你也可以把这个定时器关闭,不过感觉还是有点麻烦。
以上的一切在mc中将不复存在。把以下代码另存为一个扩展名为 xml 的文件,让后放到mc的插件目录下面(mushclient\worlds\plugins),然后在游戏中安装这个插件即可以使用。为了正常使用本插件,请确保插件目录下存在 state 目录,这个目录是用来保存插件状态的。此插件适用于任何 MUD。
此插件的原理也是利用一个定时器定时发送你指定的命令来防止人物处于发呆状态。但是有点不同的是当你输入命令的时候,这个定时器会自动重新计时。
name="AFK"
author="Blizzard"
id="4d167d47cac26fb36e161e48"
language="Lua"
save_state="y"
purpose="处于发呆状态时自动发送指定的命令"
date_written="2006-05-31 10:32:50"
requires="3.73"
version="1.0"
>
处于发呆状态(AFK)时自动发送指定的命令给 MUD 服务器。
使用 afk:help 命令显示更详细的信息
]]>
name="afk_timer"
second="0"
minute="5"
send_to="12"
enabled="y"
>
local minutes = tonumber(GetTimerOption("afk_timer", "minute"))
local seconds = GetTimerOption("afk_timer", "second")
local commands = utils.split(GetVariable("command"), ",")
local command = commands[math.random(table.getn(commands))]
ColourNote("salmon", "", "AFK 命令(" .. (minutes > 0 and minutes .. " 分 " or "") .. seconds .. " 秒" .. ")")
Send(command)
match="afk:help"
enabled="y"
send_to="12"
sequence="100"
>
ColourNote("salmon", "", "afk:set_command cmd - 设置 AFK 命令,cmd 为任何你想发送的 MUD 命令")
ColourNote("salmon", "", " 若有多个命令,需用逗号分开,插件会随机选择一个")
ColourNote("salmon", "", "afk:set_time seconds - 设置 AFK 的时间,seconds 为大于 0 小于 3600 的数字(秒)")
ColourNote("salmon", "", "afk:enable - 启用 AFK 插件")
ColourNote("salmon", "", "afk:disable - 禁用 AFK 插件")
ColourNote("salmon", "", "afk:show_state - 显示 AFK 当前的状态")
match="^afk:set_command +(.+)$"
enabled="y"
regexp="y"
send_to="12"
sequence="100"
>
local cmd = "%1"
SetVariable("command", cmd)
ColourNote("salmon", "", "当前 AFK 命令已经设置为 " .. cmd)
SaveState()
script="set_time"
match="^afk:set_time +(.+)$"
enabled="y"
regexp="y"
sequence="100"
>
match="afk:enable"
enabled="y"
send_to="12"
sequence="100"
>
EnableTimer("afk_timer", true)
SetVariable("enable", 1)
ResetTimer("afk_timer")
ColourNote("salmon", "", "AFK 功能已经启用")
SaveState()
match="afk:disable"
enabled="y"
send_to="12"
sequence="100"
>
EnableTimer("afk_timer", false)
SetVariable("enable", 0)
ColourNote("salmon", "", "AFK 功能已经禁用")
SaveState()
match="afk:show_state"
enabled="y"
send_to="12"
sequence="100"
>
local minutes = tonumber(GetVariable("minutes"))
local seconds = GetVariable("seconds")
ColourNote("salmon", "", "AFK 的时间为 " .. (minutes > 0 and minutes .. " 分 " or "") .. seconds .. " 秒")
ColourNote("salmon", "", "AFK 的命令为 " .. GetVariable("command"))
ColourNote("salmon", "", "AFK 功能已经 " .. (GetVariable("enable") == "1" and "启用" or "禁用"))
|
|