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

看板mud_jy (金庸修真錄)作者 (rsliang)時間9年前 (2015/09/29 17:26), 9年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
說明: 一、弱弱的新手常常死,所以把頻道訊息抓下來存檔,只抓頻道格式的訊息,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> -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 112.104.181.23 ※ 文章網址: https://www.ptt.cc/bbs/mud_jy/M.1443518767.A.69C.html ※ 編輯: rsliang (112.104.181.23), 09/29/2015 17:31:07
文章代碼(AID): #1M2balQS (mud_jy)
文章代碼(AID): #1M2balQS (mud_jy)