mud_sanc 板


LINE

  这是自制的简易制作 MiniWindow 模组,弄这个是为了省却一些参数设定上的 麻烦,如:标题列的宽高估算,关闭钮的制做等等重复却常常必须微调的东西,好 专心去弄要显示的内容,及功能。虽然参数还是有点多,但比重头做起方便多了。 当然还是很粗糙就是了... 它用三个函数分出三个部份: CreateMiniWin:建立 MiniWindow 的基本框架。基本上只会用到一次。 CreateBU:简易制作按钮的外型和文字。如果按钮很多,就会常常用到,       文字是置中的,左右基本上会等宽,上下就比较没把握。要用       图片的话,请自行大编修(其实也不是很大...),但我认为       文字还是比较直观,图有时候还是无法意会。 Button_Operation:按钮的功能。里面有关闭钮的功能先写在里面,但它是          隐藏而非移除,因为视窗不能移除自己,即使用timer 也不能。这个函数是用MUSHclient的作者定义的函数:          WindowAddHotspot 中,滑鼠行为对应参数的"鼠键压下"          参数。如果要让按钮更生动,更像一般按钮,请自行修          改 CreateBU 里的 WindowAddHotspot,把没设的对应参          数全加上名字,一个个额外新增动作函数吧!设法跟本 项一样。我只要实用就好了...好吧!我承认我不会弄...   写的格式就像这样: <script> <![CDATA[ --资料档,如果必需有的话,请写在最上 local tablename = {...} --下面就是函数,基本上没顺序问题,整齐好找最重要! --建立视窗的函数 function CreateMiniWin (...) end --建立按钮的函数 function CreateBU (...) end --按钮功能的函数,模组里的关闭按钮功能己先写在这里。 function Button_Operation(flags,hotspot_id) end --按钮功能的函数2,若想区别各个按钮的程式码,就分别去写。 function Button_Operation2(flags,hotspot_id) end --按钮功能的函数3,依此类推... function Button_Operation3(flags,hotspot_id) end --触发、别名或计时器的功能函数 function Universal_Alias (name, line, wildcards) --三个固定的参数名 CreateMiniWin(...) CreateBU (...) 主要内容,如果有资料表,建议写在同一个<script>标签里,这样可以 用 local 来将用完的资料从记忆体卸载,也能让别的函数去载入表。但 必须写在函数的前头,不然它会找不到表。 name 是 timer trigger 及 alias 的 label,没设定的话,MUSHclient 会自己生成。 wildcards是一个table表,只有别名和触发才有(应该啦!),它就是 %1、%2、%3...这些参数的内容,要取出这些内容,使用wildcards[1]、 wildcards[2]、wildcards[3]...顺序一模一样,叫法不一样而己。 WindowShow (WinID,true) --显示 Mini 视窗!!这个要最後执行,才能显示完整内容。 end ]]></script> <aliases> <alias match="^(spn)(t|co|ch|n|r|hh|h)(\S*)$" enabled="y" echo_alias="y" script="Universal_Alias" regexp="y" send_to="12" sequence="100" > <send></send> </alias> </aliases> .类推下去 . .   里 15 > 3 > 1 > 1 有 MiniWindow 的函数介绍,因为这个资源只有 官方的英文版,必须自行翻译(多亏有Google),出发点是让"本人"方便查阅用 的,所以是"不负责任"编撰,自然也不会发文(绝对不是避免洗版和被嘘~)。   内容如下,直接复制到 plugin 档案里的<script><![CDATA[ ]]></script> 标签,注意!角色档的触发、别名、计时器无法使用 MiniWindow 函数,一定要 写在 plugin 里面。 --==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== --如果不需要标题列,将"标题文字"参数设为""即可。 --加外框为选项,需要时设为1,不需要时设为0,不需""。 --立刻显示也是选项,但依流程,这时显示也只有空白视窗,其实也不太实用。方法同上。 --预设关闭按钮也是选项,基本上普遍都会设,所以也把它列入,不过 --它必须有 CreateBU Button_Operation 两个函数在才能够发挥作用。方法同上。 --显示位置是采九宫格,设了这个左,上两参数就没什麽用。参数对应位置如下: -- 说明 Lua标记 --0 延展显示 miniwin.pos_stretch_to_view --1 延展显示 miniwin.pos_stretch_to_view_with_aspect --2 延展显示 miniwin.pos_stretch_to_owner --3 延展显示 miniwin.pos_stretch_to_owner_with_aspect --4 左上 miniwin.pos_top_left --5 中上 miniwin.pos_top_center --6 右上 miniwin.pos_top_right --7 右中 miniwin.pos_center_right --8 右下 miniwin.pos_bottom_right --9 中下 miniwin.pos_bottom_center --10左下 miniwin.pos_bottom_left --11左中 miniwin.pos_center_left --12正中 miniwin.pos_center_all --13瓷砖式排列 miniwin.pos_tile --└─┴───────┴─────────────────────┘ --其它设定内容如下: -- 说明 Lua标记 --1 置底 miniwin.create_underneath --2 绝对位置 miniwin.create_absolute_location --4 透明 miniwin.create_transparent --8 忽略鼠标 miniwin.create_ignore_mouse --16保持现有的热点miniwin.create_keep_hotspots --└─┴───────┴─────────────────────┘ --需要多种特性时,使用它们加法的合即可。参数2会导致显示位置参数无效,并采用 --左、上两个参数的设定。 --[[function CreateMiniWin ( 视窗ID , 左 ,上 ,宽 ,高 , 显示位置 , 其它设定 , 底色 , 字型,字型大小,字型ID, 标题文字? , 标题列底色 , 标题文字颜色, 加外框? , 立刻显示? , 预设关闭按钮?)]] function CreateMiniWin ( WinID , WinL , WinU , WinW , WinH , Location , OtherSet , BackColour, Font , FontSize , FontID , TitleText , TitleBarColour , TitleTextColour , RectOpSet , ShowNow,CrOFF ) --建立视窗 WindowCreate (WinID,WinL, WinU, WinW, WinH, Location, OtherSet, ColourNameToRGB(BackColour)) --载入字型 WindowFont (WinID, FontID, Font, FontSize, false, false, false, false, 1,4) --字型高度 FontH = WindowFontInfo(WinID,FontID,1) --是否要外框 if RectOpSet == 1 then WindowRectOp (WinID, 5, 0, 0, 0, 0, 10, 15) end --是否要标题列 if TitleText ~= "" then WindowRectOp (WinID, 2, 3, 3, WinW-3, FontH+8, ColourNameToRGB(TitleBarColour)) WindowText (WinID,FontID,TitleText, 35,5,0,0, ColourNameToRGB(TitleTextColour), false) end --建立关闭视窗的按钮 if CrOFF == 1 then CreateBU (WinID,"Button_Operation",'Hideit_'..WinID, WinW-(WindowTextWidth (WinID, FontID,"关 闭")*1.5),3,WinW-3,4, FontID,TitleBarColour,"关 闭", "",TitleTextColour) end --是否是立刻显示 if ShowNow == 1 then WindowShow (WinID,true) end end --function CreateMiniWin --==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== --[[建立按钮CreateBU ( 视窗ID , 滑鼠行为函数ID , 热点ID , 左 , 上 , 右 ,上下间距「不含字高」 , 字型ID , 字型颜色 , 按钮名称 , 气泡提示 , 按钮颜色 )]] function CreateBU ( winID , funcName , keyID , buL , buU , buR , buD , FONT , FONT_COLOUR , BuName , BuNote , Bu_Colour ) --热点 WindowAddHotspot(winID,keyID , buL,buU,buR,buU+WindowFontInfo(winID,FONT,1)+buD/2, "", "", funcName, "", "", BuNote, 1, 0) --按钮颜色 if Bu_Colour ~= nil then WindowRectOp (winID, 2 , buL,buU,buR,buU+WindowFontInfo(winID,FONT,1)+buD/2, ColourNameToRGB(Bu_Colour)) end --Bu_Colour 判断 --按钮外框 WindowRectOp (winID, 5 , buL-1,buU,buR,buU+WindowFontInfo(winID,FONT,1)+(buD), 5, 15) --按钮文字 WindowText (winID, FONT,BuName , buL+(buR-buL-WindowTextWidth (winID, FONT,BuName))/2, buU+buD/2, 0 ,0 , ColourNameToRGB(FONT_COLOUR), false) end --end function CreateBU --==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== --flags为滑鼠点击行为的辨认值,方便的有四种: --flags : 16 单击滑鼠左键 --flags : 32 单击滑鼠右键 --flags : 18 Ctrl + 滑鼠左键 --flags : 34 Ctrl + 滑鼠右键 --完整的请去看 --hotstpot_id : 按钮的ID。如果要简单设定,直接用别名的名称当ID。 -- 用按钮来执行别名是比较容易的设定方式。 function Button_Operation (flags , hotspot_id) if string.match(hotspot_id , 'Hideit_') then hotspot_id = string.match(hotspot_id , 'Hideit_(.+)') WindowShow (hotspot_id , true) end end -- function Button_Operation --==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--== --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.196.45
1F:推 justinj :推 11/23 08:09
2F:推 elvrael :推,这东西好用 11/23 16:03
3F:推 Hamano :推~ 11/30 23:19







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP