精華區beta mud_sanc 關於我們 聯絡資訊
  改成由 MUSHclient 自己去所設定的目錄(這裡是角色檔存放目錄)下尋找 符合命名條件的檔名(本篇格式為"角色小寫ID-三位數.bmp",如:hmml-001.bmp ),並存成一個表,遍歷表的內容以得到可用的檔案總數;接著用隨機數去選擇 檔案,再將選中的圖檔載入掛上。   使用者只要將圖檔丟到設定的目錄下,取個符合格式的檔名就可以了!   由於隨機亂數並非真正的亂數,使用的種子是系統時間,精度只到整數秒, 故刷新換圖的時候,頻率不要低於一秒,否則容易得到相同的結果。   shoimg 更新迷你視窗,shoimg0 隱藏迷你視窗。 --==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==-- <aliases> <alias match="^shoimg(0*)$" enabled="y" echo_alias="y" regexp="y" send_to="12" keep_evaluating="y" sequence="100" > <send> --設定迷你視窗ID到imgchar imgchar = 'img'..GetAlphaOption("name") --取得角色名稱,並變換小寫 Char_Name = string.lower(GetAlphaOption("player")) --取得圖檔目錄下符合條件的檔名列表。 bmpall = utils.readdir (GetInfo(67)..Char_Name.."-*.bmp") --圖檔數量先設為零 bmpall_n = 0 --如果有找到符合條件的檔案 if bmpall ~= nil then --計算這個表的檔名數量,這個表是字典型態,所以不能用table.getn() for k, v in pairs (bmpall) do bmpall_n = bmpall_n + 1 end --for end --if --觀測訊息用,減輕 debug 時洗畫面的情況。 InfoClear() Info ("圖片數量:"..bmpall_n) --製造隨機數,改用 MUSHclient 所附的梅森旋轉演算法函數,期望效果會較好。 --隨機種子。將系統時間數值顛倒後取前七位數。 MtSrand (tostring(os.time()):reverse():sub(1, 7)) --隨機得出不大於bmpall_n的三位元長度的數字。 img_choice = string.format("%%03d",math.floor (MtRand () * bmpall_n)+1) -- └───────────────────┐ --將路徑和檔名組合。 imgpatch = GetInfo(67)..Char_Name..'-'..bmp_choice..".bmp" --建立角色圖的迷你視窗 WindowCreate (imgchar, --迷你視窗ID 739, 23, 204, 303, --位置,左,上,寬,高。 6, --因下個參數的設定,無效。 3, --以座標值為位置設定,並置於最底。 ColourNameToRGB("black")) --視窗底色。 --載入圖檔,套上 Note 和 ErrorDesc,方便除錯。 --顯示 執行結果 載入圖檔 Note (ErrorDesc(WindowLoadImage (imgchar, --迷你視窗名稱 "im", --物件ID imgpatch))) --圖檔目錄 -嵌入圖片 --顯示 執行結果 載入圖檔 Note (ErrorDesc(WindowImageOp (imgchar, --迷你視窗名稱 miniwin.image_fill_rectangle, --矩形 4, 4, 200, 400, --位置,左,上,右,下。 ColourNameToRGB("lime"), --外框線條顏色 miniwin.pen_null, --外框線條常數:無框 1, --外框線條粗細 ColourNameToRGB("cyan"), --底色 "im", --圖檔ID 20, 20))) --圓角矩形才有用。 --用來顯示或隱藏圖片 if tonumber('%1') == 0 then WindowShow (imgchar, false) else WindowShow (imgchar, true) end --if </send> </alias> </aliases> --==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==--==-==-- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.196.45