纪念一下以前写的几个魔兽插件
刚给博客换了格式,就收到了 WORD TRADE CHANNEL 下架的通知,这货上一次更新我已经不记得是什么时候了,貌似是我把 22 个号都到 90 的时候。 按键精灵 + 自己的插件,真实太好用了,配合一些游戏自己的机制,就可以无人值守自己升级。
WORD TRADE CHANNEL
目的
那会儿想着也许可以做个插件然后出名什么的,就做了一个公共插件,美服没有大脚,也没有事件频道,最常用的频道是“交易”。就算是求组队,大家也通常用交易频道说话、聊天和交易。 因此我想做一个插件,目的就是让人在野外也能看到交易频道的内容(当然不能说话),那就是 WORD TRADE CHANNEL。
原理
原理很简单,就是一个在交易频道的人,如果看到消息,就编码并且转发到一个私有 CHANNEL,凡是有插件的人,都会解码这个消息,并且显示。
local frame = CreateFrame(“frame”)
frame:RegisterEvent(“CHAT_MSG_CHANNEL”)
frame:SetScript(“OnEvent”,MessageOnEvent)
详细可以参考:[url]http://www.wowwiki.com/Events/Communication[/url],反正这样就取得了所有 channel 的消息。转发也很简单 SendChatMessage
就可以。
但是这些消息并没有准确的全局 ID,所以我创建了一个本地缓存,最近 30 个消息,如果有文字重复,就会被无视。但依然存在可能的消息风暴,因此我另外放了一个缓存,如果接收消息的人随机等待几秒钟,如果 CHANNEL 频道里没有人转发该消息,再去转发它。
推广
直到目前为止一切都运转很好了,代码量也很精简,只有不到 200 行,也没有其他依赖。我把它放到 Curse 上,第一天也有几十个人下载,但是大家的反应是:忒么没效果。 当然也有人意识到我这个是转发原理,在 Curse 的回复里帮我解围,但是我还是想了想,还是得做点啥。于是我在 Azure 上挂了几个 Windows 服务器,上面用最最最小的屏幕,站几个角色在几个大服的城里。。。转发。大概一个月,不少服务器里这个插件能够良性正常运转了,但是后来离开美服,也就再也没有去管它。
源码
源码已经丢失了,但是网站有人拿我的历史代码 mod 成自己的插件,我看了下,大概样子还在。
MASS GUILD BUILDER
这玩意儿因为是私用的,完全没有公开,也没有留下源码。 在某个版本升级之后,小号任务成长经验大大提高,公会就可以使用加小号的方式迅速升级。开始我使用 SuperGuildInvite,但是 SuperGuildInvite 不支持自动。。。用键盘触发都不行。所以干脆照着 SuperGuildInvite 的写法抄了一大半。然后根据我特殊的需求,对 55 级 DK,12 级之前的狼人什么的做特殊优化(因为他们必须把小号任务做完才能出门混哇)。然后添加了 Slash 接口,这样就可以利用键盘消息触发了,窗口就可以最小化了。
MASS GUILD GRATZ
美服有个特殊的习惯,就是谁拿到了成就,就会有人恭喜。就算是多么简单从成就,一次荣誉击杀,或者5条鱼,都会有人恭喜。 作为公务会长,挂机也得恭喜呀! 所以弄了这个插件,当有人获得成就时,会等待 5-20 秒,然后发出恭喜消息。如果有多人连着获得成就,就会发出 Grats All 什么的。每次换一种说法,还蛮逼真的。这个写法后来在 Gamon [url]https://github.com/yangyuan/wowaddon-gamon[/url] 里也用了。 后来还添加了新人进公会欢迎。。。。
LUCKY YI
还记得大明湖畔的“小艺”么。 当时在美服,我强迫症地把 22 个号都升到了 90 级,3 个是自己练的,剩下的,“小艺”占了很大的功劳。美服是月卡嘛,挂着不心疼,于是我就写了几个自动刷“小艺”的策略。相比一般的无脑刷,这个策略更灵活,如果第一轮失败,会根据剩余血量,决定是先换宠物呢,还是放完招再换宠物。 一样还是绑定到 Slash,然后一不小心,全部都 90 了。