CWDG论坛-专业魔兽插件's Archiver

warbaby 发表于 2007-11-30 09:32

手把手教你改插件-Grid团队面板增加点击施法

Grid真是好东西, buff提示, 距离检测, 整体布局, 小队团队都支持。美中不足就是不支持点击施法,必须要配合Clique等插件使用。
不过没关系,只要按照下面三个步骤,就可以给Grid的按钮增加点击施法的功能啦。

[size=4][color=darkorchid][b]第一步,增加一个文件,叫做ClickSets.lua[/b][/color][/size][code]DefaultClickSets = {
        PRIEST = {
                ["1"] = {
                        ["shift-"] = "恢复",
                        ["ctrl-"] = "驱散魔法",
                        ["alt-"] = "治疗术(等级 2)",
                        ["ctrl-alt-"] = "复活术",
                },
                ["2"] = {
                        [""]  = "真言术:盾",
                        ["shift-"] = "愈合祷言",
                        ["ctrl-"] = "驱除疾病", -- 祛病术
                        ["alt-"] = "强效治疗术(等级 1)",
                        ["ctrl-alt-"] = "防护恐惧结界",
                },
                ["3"] = {
                        [""]  = "快速治疗",
                },
        },
        
        DRUID = {
                ["1"] = {
                        ["shift-"] = "回春术",
                        ["ctrl-"] = "驱毒术",
                        ["alt-"] = "愈合",
                },
                ["2"] = {
                        --[""]  = "野性印记",
                        ["shift-"] = "生命绽放",
                        ["ctrl-"] = "解除诅咒",
                        ["alt-"] = "治疗之触",
                },
        },
        SHAMAN = {
                ["1"] = {
                        ["shift-"] = "大地之盾",
                        --["ctrl-"] = "消毒术",
                        ["alt-"] = "次级治疗波",
                        ["ctrl-alt-"] = "先祖之魂",
                },
                ["2"] = {
                        [""]  = "消毒术",
                        ["shift-"] = "治疗链",
                        --["ctrl-"] = "消毒术",
                        ["alt-"] = "治疗波",
                },
        },
        PALADIN = {
                ["1"] = {
                        ["shift-"] = "圣光闪现",
                        ["ctrl-"] = "王者祝福",
                        ["alt-"] = "圣光闪现(等级 5)",
                        ["ctrl-alt-"] = "救赎",
                },
                ["2"] = {
                        [""]  = "清洁术",
                        ["shift-"] = "圣光术",
                        ["ctrl-"] = "拯救祝福",
                        ["alt-"] = "圣光术(等级 8)",
                },
        },
        WARRIOR = {
                ["2"] = {
                        [""]  = "援护",
                },
        },
        MAGE = {
                ["1"] = {
                        ["shift-"] = "魔法增效",
                        ["alt-"] = "奥术智慧",
                },
                ["2"] = {
                        [""]  = "解除次级诅咒",
                        ["shift-"] = "魔法抑制",
                },
        },
        WARLOCK = {
                ["1"] = {
                        ["alt-"] = "侦测隐形",
                        ["ctrl-"] = "魔息术",
                },
                ["2"] = {
                        [""]  = "召唤仪式",
                },
        },
        HUNTER = {
                ["2"] = {
                        [""]  = "误导",
                },
        },
};
function SetUnitButtonAttributes(frame, class)
        local button, sets;
        if(DefaultClickSets and DefaultClickSets[class]) then
                for button, sets in pairs(DefaultClickSets[class]) do
                        for modifier, spell in pairs(sets) do
                                frame:SetAttribute(modifier.."type"..button, "spell");
                                frame:SetAttribute(modifier.."spell"..button, spell);
                        end
                end
        end
end[/code]文件挺长,其实都是各职业的点击设置,最后一个函数SetUnitButtonAttributes是要通过Grid调用的。
点击设置的语法,["1"] = ... 表示 鼠标左键,2表示右键,3表示中键
[""] = ... 表示直接点击鼠标施放的法术,注意不要设置鼠标左键的直接法术,默认的是选择目标。
["ctrl-"] = ... 表示按住ctrl点击鼠标的法术,注意后面有一个"-"号
["ctrl-alt-"] = ... 则表示同时按住alt和ctrl点击鼠标的法术。

[size=4][color=darkorchid][b]第二步,修改GridFrame.lua[/b][/color][/size]
找到GridFrameClass.prototype:CreateFrames()方法中的
    [color=blue]f:SetAttribute("*type1", "target");[/color]
将其改为
    [color=red]SetUnitButtonAttributes(f, ({UnitClass("player")})[2]);[/color]

[b][size=4][color=darkorchid]第三步,记得在Grid.toc中增加对新文件的引用[/color][/size][/b]
即文件末尾加上
    [color=red]ClickSets.lua[/color]

好了,大功告成,这是一个很简单的改法,没有配置界面,只要修改ClickSets.lua前面各个职业的数据就可以按照自己的习惯配置啦,仅支持施法,不支持“打绷带”这种使用物品的技能。

附件是改好的带库版本,请自用,勿传播。。。。。。

grant0004 发表于 2007-11-30 15:50

*** 作者被禁止或删除 内容自动屏蔽 ***

heerokid 发表于 2007-12-12 10:37

先回复 再学习...

heshirley 发表于 2008-1-22 06:41

请问下楼主,我现在在用Grid的,只要下载你那个附件就可以了吗?

冰冰绿豆 发表于 2008-4-2 19:58

2.4不能用了,请问可有新方法?

izual 发表于 2008-4-3 03:53

仍然能用啊..
下载新版本的GRID再按照楼主的方法修改.

毒男 发表于 2008-4-4 17:18

没找到那个:GridFrameClass.prototype:CreateFrames()

只找到这个
function GridFrameClass.prototype:ClearIndicator(indicator)

累死了要怎么改啊

毒男 发表于 2008-4-4 17:19

看了2个小时 一行一行的找了2次
头都晕了
谁能帮帮我

izual 发表于 2008-4-7 17:23

第128行,
改成
SetUnitButtonAttributes(f, ({UnitClass("player")})[2])

第127行是
f:SetAttribute("type1", "target")
第126行是
        -- set our left-click action

自己找一下..

taiyang 发表于 2008-4-14 17:27

收藏  学习 谢谢  希望楼主针对各职业编写个完整包发上来 HOHO

heszm 发表于 2008-4-20 15:09

我一直很想问 为什么grid中shaman没有驱病术的设置 作者忽略了么

lmd89890 发表于 2008-4-22 17:45

学习到好东西

偷一下才行

宝贝吉祥 发表于 2008-5-14 15:44

我最喜欢距离检测, 整体布局,加BUFF时,距离设置为30码,一个都逃不了,哈哈

萌萌恋 发表于 2008-5-17 16:19

貌似不行呀。。。。修改了之后FUBAR上的设置还在 但是界面上不显示面板了

建环之色父 发表于 2008-5-20 18:06

学习学习,已经使用了;,等服务器开了上去看看效果。

毒男 发表于 2008-5-25 10:22

[quote]原帖由 [i]izual[/i] 于 2008-4-7 17:23 发表 [url=http://bbs.cwowaddon.com/redirect.php?goto=findpost&pid=38795&ptid=2752][img]http://bbs.cwowaddon.com/images/common/back.gif[/img][/url]
第128行,
改成
SetUnitButtonAttributes(f, ({UnitClass("player")})[2])

第127行是
f:SetAttribute("type1", "target")
第126行是
        -- set our left-click action

自己找一下.. [/quote]

谢谢你成功了哈哈

hoboyo 发表于 2008-6-3 01:22

我可以这么说,这是非常好的创意!!!
非常精致的效果!!
用起来很顺手

谢谢!

冷如砜 发表于 2008-6-10 09:42

头都看晕了

melmoth 发表于 2008-6-10 10:10

感觉好高深,摸不到头脑。一直都是用的现成的插件。

小玄米茶 发表于 2008-6-10 12:59

想问下,繁体客户端支持吗?是否需要将技能改成繁的

chenmi1218 发表于 2008-6-10 15:58

2.4前 grid的奠基施法功能让我彻底抛弃了一键驱散 让我用的很爽
2.4后我找这个找的好辛苦啊
我又可以抛弃一键驱散了

asorry 发表于 2008-6-10 22:06

不错。一旦有了这功能。就能和healbot想媲美了。

llss2008 发表于 2008-6-12 07:57

很好很强大,谢谢哈

风魂 发表于 2008-6-13 10:46

谢谢楼主,辛苦了,改好鼠标点击,可以彻底用grid代替healbat了。

风魂 发表于 2008-6-13 11:51

呃……有个问题
在Grid中加载的ClickSets默认的鼠标左键动作是是选定目标
我把["1"]的[""]设置成= "圣光闪现(等级 7)"
然后加个["3"]的[""]  = "target"
不知道这样改有没有效啊,会不会和默认的设置冲突呢?
改成这样,是不是就可以把左键点击设成:施放 圣光闪现(等级 7);而点击鼠标中键就成选定目标了呢?

deepseer 发表于 2008-6-25 16:01

我只是有个不明白的问题……为什么不用Clique?
从功能上面来说,Clique绝对胜出的啊,可以随时更改设置,还可以运行宏甚至执行一些“相当于鼠标右键点击头像打开菜单”之类的功能

howren 发表于 2008-6-29 10:12

我是法师 我在你的文件中增加了
                ["3"] = {
                        [""]                = "变形术",
                },
他就不工作了 不知道什么原因,有人可以解惑吗

wxlaicjb 发表于 2008-6-30 22:49

值得学习哦   收藏了

风魂 发表于 2008-7-10 12:00

[quote]原帖由 [i]deepseer[/i] 于 2008-6-25 16:01 发表 [url=http://bbs.cwowaddon.com/redirect.php?goto=findpost&pid=44447&ptid=2752][img]http://bbs.cwowaddon.com/images/common/back.gif[/img][/url]
我只是有个不明白的问题……为什么不用Clique?
从功能上面来说,Clique绝对胜出的啊,可以随时更改设置,还可以运行宏甚至执行一些“相当于鼠标右键点击头像打开菜单”之类的功能 ... [/quote]
不会用啊,用的不好,没办法实现执行一些“相当于鼠标右键点击头像打开菜单”之类的功能 ...
用Clique之后,系统自带窗口啊什么的点击也都跟着变了,很不习惯,还是单改团队框体的好使。例如就像Healbat那样的好

yleaf 发表于 2008-7-10 17:11

[quote]原帖由 [i]风魂[/i] 于 2008-7-10 12:00 发表 [url=http://bbs.cwowaddon.com/redirect.php?goto=findpost&pid=45173&ptid=2752][img]http://bbs.cwowaddon.com/images/common/back.gif[/img][/url]

不会用啊,用的不好,没办法实现执行一些“相当于鼠标右键点击头像打开菜单”之类的功能 ...
用Clique之后,系统自带窗口啊什么的点击也都跟着变了,很不习惯,还是单改团队框体的好使。例如就像Healbat那样的好 ... [/quote]
可以自己设置受影响的框架.

风魂 发表于 2008-7-17 10:14

呃……谢谢,原来可以自己设定受影响框体的啊,谢谢了……

hhxqj 发表于 2008-8-15 19:42

想知道楼主是怎么把Grid与其他辅助模块整合到一起的,能不能发个经验贴子学习学习啊......

yleaf 发表于 2008-8-16 15:56

回复 32# hhxqj 的帖子

去看下怎样写插件的toc文件格式部分.

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.