[心得] Mushclient擷取頻道訊息的觸發

作者: rsliang (rsliang)   2015-09-29 17:26:04
說明:
一、弱弱的新手常常死,所以把頻道訊息抓下來存檔,只抓頻道格式的訊息,tell
和reply也可以抓,但是找不到太好的方法避免tell的誤抓,所以直接放棄,
以後有機會再來改XD
二、存檔的判斷句1073741824,是1GB左右的檔案大小,用vi開就很吃力了,可以
改成1048576(1MB左右)。
PS1. 底下「.. logtime .. ".txt", 0)」這一段的斷句是因為超出頁面,如果貼上後不
能用,請在mushclient中移到上一行的最後面。
===================================觸發======================================
<trigger
enabled="y"
group="Chatlog"
match="^(\&gt; )*【(\S+)】(.*)$"
name="tunnel01"
regexp="y"
send_to="12"
sequence="100"
>
<send>
world = GetWorldById(GetWorldID())
if world.GetNotepadList() then
for k,v in pairs(world.GetNotepadList()) do
if v == "Jins-ChatLog" then
acted = 1
break
end
acted = 0
end
if acted == "0" then
world.ActivateNotepad("Jins-ChatLog")
end
else
world.ActivateNotepad("Jins-ChatLog")
end
tunnel = "%2"
msg = "%3"
if tunnel == "論道江湖" or tunnel == "謠言四起" or tunnel == "神話傳說"
or tunnel == "天災人禍" then
logtime = os.date("%Y-%m-%d-%H-%M-%S")
logmsg = logtime .. " 【" .. tunnel .. "】 " .. msg
world.AppendToNotepad("Jins-ChatLog", "\\r\\n" .. logmsg)
loglength = world.GetNotepadLength("Jins-ChatLog")
if tonumber(loglength) &gt; 1073741824 then
world.SaveNotepad("Jins-ChatLog", "D:/MushClient/worlds/jins/Logs/"
.. logtime .. ".txt", 0)
world.CloseNotepad("Jins-ChatLog", 0)
end
end
</send>
</trigger>

Links booklink

Contact Us: admin [ a t ] ucptt.com