2006年09月12日

由于donews的空间我的smartphone登录不上,平时更新不便,因此决定转移到微软的 ms space http://phoenixray2000.spaces.live.com/blog/  欢迎大家过去捧场

9.11更新
1.  改进本地密码文件算法,增强其安全性。
2.  支持自定义本地密码文件名
3.  自动识别并载入上一版本的配置文件(升级也不用重新输入帐号了)
4.  “关于”窗口加入常见问题FAQ,并解决1.2版“关于”窗口出错问题

2006年08月09日

防盗专家,魔兽世界登录器(8.9更新至1.2版,增强代码安全性并提供无需.Net的折中方案)

本次更新主要增强了代码的安全性并提供一个无需.Net的折中方案(一个简单的屏幕软键盘)。

———-更——新——-历——-史————-
8.9更新
1.  增强了代码安全性。
2.  自动启动改为设置界面配置
3.  更友好的设置界面
4.  提供一个屏幕软键盘,该程序无需.NET支持,可以用于向登陆器输入帐号,或者在不安装.Net运行库的情况下,用于窗口模式的魔兽帐号输入,能起到初级的防盗作用(网吧上网的朋友可以在系统自带的登陆器中设置窗口模式,或者把压缩包里的Config.wtf解压到魔兽的wtf文件夹下即可设置为窗口)

下载标准版可以到http://bbs.game.mop.com/viewthread.php?tid=1185096&extra=&page=1 

需要带有热键bot的版本的朋友请给我留言或者发邮件

2006年07月29日
2006年07月17日

完整版支持热键bot的功能,正式版没有,其他功能都一样

现在mop的版本就是“完整版” ,大家直接下载就行了。

地址http://bbs.game.mop.com/viewthread.php?tid=1185096&fpage=1&highlight=

2006年07月16日

本次更新主要针对大家要求加入的 启动参数和支持更多帐号等集中进行了更新,同时优化了数据存储结构,增强了容错能力。

最新更新至1.11版,优化了代码,并加入几个新功能

7.16更新
1.  加入程序启动自动运行wow功能。
      请创建一个指向wowlogon.exe的快捷方式,并在“目标”后面加上参数 /auto
2.  最多支持至9个帐号,分为3组管理。保存帐号请确保勾上了“退出时保存密码”
3.  优化了数据存储结构,优化了程序代码
4.  呃….更换了我的截图

 

下载可以去mop http://bbs.game.mop.com/viewthread.php?tid=1185096&fpage=1&highlight=

2006年07月11日

近期都会相当的繁忙,软件以及blog等均暂停更新。
有些大家要求加入的 启动参数和支持更多帐号 等改动虽然已经做完,但由于优化代码,大面积重写了代码,所以没法单独发出来,等忙过这一阵吧。

2006年06月10日

最近小规模更新了一下插件,主要有:

1.   采用更多ACE类插件替代原有单体,节省内存占用

2.   增加了一些新功能,例如副本boss物品掉落等

3.    采用metamap替代原有的一系列地图插件,减少内存占用的同时解决 打开大地图导致战斗信息窗口消失的问题

上传需要等我找到合适的空间保存文件才行,要求稳定而且能够直接在外部链接下载,不好找啊。

哪位朋友知道的麻烦告诉我以下,谢谢了。

Part I.   基本概念
宏能帮助我们做什么?
1. 简化操作
2. 实现一些手动无法实现的功能
3. 最常规的应用:在施放法术的同时,喊相应的台词

宏不能做什么?
1. 不能控制角色移动(包括跳跃)
2. 通常不能一次顺序执行多个法术(例如冰箭完了接一个冰环)
Tips:也有例外的情况,例如可以一键实现“气定神闲+大火球”或者“自然迅捷+治疗波”,详见Part II.

如何制作和使用宏?
1. 在聊天窗口输入/m 或者在主菜单中选择 编辑宏
2. 新建一个宏,输入名字,选择图标,填写宏的内容
Tips:编写宏的时候,把光标移动到你要插入的位置,按P打开你的技能书,shift点击技能即可在宏内插入“/施放 闪现术”一样的内容
3. 将编好的宏的图标拖到动作条上即可正常使用

—————–我————是———–分————隔————-线———————–

Part II. 宏制作从入门到精通


标题套用了一个经典的名字,lol
制作宏,除了必须要掌握的基本知识外,最重要的还是你的创意。

Step 1.
让我们从最近本的开始,先来看一个最朴素的例子:

/y 冰环已放,下一个法师准备
/施放 冰霜新星(等级 1)

执行这个宏实际效果是:喊话的同时,施放nova。然而这个宏的缺陷也是显而易见的,如果你的nova还没cooldown,你点了这个宏之后,虽然不会施法,但仍然会说冰环已放。这未免让人觉得尴尬,并且,如果你习惯点技能都是一次连续点n下的话,这句话会重复说n遍,raid的时候就有刷屏的嫌疑了。

解决方法是结合一个AFTERCAST的小插件,他能够根据你的施法是否成功喊相应的话。
具体语法是
/aftercast +条件 你要执行的命令

tips:没有插件Aftercast的请去wowui.cn下载,我自己修改了一个取消屏幕提示信息的(就是每次施法后的timer 1或者事件提示)aftercast版本,晚些时候找到好的空间存放再提供给大家下载(知道哪儿有可以直接链接出来的存放文件空间的朋友麻烦告诉我一下,谢谢)。

Step 2.
看一下上面那个宏的改进版本:

/aftercast +done /大喊 冰环已放,下一个法师准备
/施放 冰霜新星(等级 1)

这样就只有当你成功施放nova的时候才会喊这句话。

进一步的,加入施法失败的例子:

/aftercast +done /大喊 已经对 => %t  <= 施放变羊,表打!
/aftercast +fail /大喊 %t 表抵抗我的羊啊,乖,我们重来!
/施放 变形术(等级 4)

这样就根据你是否施法成功,喊出不同的话来,免得怪抵抗了还有人以为你操作跟不上,忘记变羊。

Step 3.
下面,我们来看一个更复杂点的加入一些条件判断的例子:

/script SpellStopCasting();
/aftercast +done /script if UnitHealth("player")/UnitHealthMax("player") < .40 then SendChatMessage("好险,治疗有空给++!",’YELL’); end
/施放 寒冰屏障

执行的效果是:首先打断当前施法,然后施放冰箱,如果施法成功了,并且当前血量低于40%,就喊话让人给你++。

先看第一行
/script SpellStopCasting();
其作用是取消当前正在施放的法术。法师肯定遇到过正在施法的时候遇险,这时候如果直接施放冰箱会提示你“另一个动作正在进行中”。传统的做法是移动或者跳以下取消当前施法,然后冰箱。这0.2的时间内很可能你就挂掉了。有了这句话,你就不用先跳一下或者移动一步取消施法了。
第二句话的前半部分 /aftercast +done 表示施法成功以后执行后面的命令
后面的命令是一个script,主体是个条件判断语句  “if 条件 then 动作; end”
条件 UnitHealth("player")/UnitHealthMax("player") < .40 表示 自己的当前血量除以自己的最大血量 小于 0.4 也就是说当前血量少于40%
执行的命令是一个喊话的命令 “SendChatMessage("消息","方式",语言,频道)”
“消息”是你要说的话
“方式”包括
"SAY"  说
"WHISPER" 密
"EMOTE"  表情
"CHANNEL" 某个频道里说
"PARTY"  小队
"GUILD"  工会频道
"YELL"  大喊
"RAID"  团队
“语言”包括通用语,牛头人语等等。想让别人看乱码的时候可以试试一些非通用的语言 lol : )
除了“消息”是必选的之外,其余3个都是可选参数

因此上面的冰箱宏的最终效果就是:首先打断当前施法,然后施放冰箱,如果施法成功了,并且当前血量低于40%,就喊话让人给你++。

Step 4.

每次说的话都一成不变,是不是自己都感到厌倦了?那就试着来点不同的(这一部分是借鉴mop的某位仁兄的帖子)
/script SpellStopCasting();
/script z=random(3);
/aftercast +done /script if z==3 then  SendChatMessage("我闪!","EMOTE") else if z==2 then  SendChatMessage("我侧闪!","EMOTE");end end
/施放 闪现术

为了逃命,所以第一句当然还是/script SpellStopCasting();取消当前施法。
第二句/script z=random(3);,表示随机生成一个1到3的整数,并保存在变量z中。
第三句,/aftercast +done 如果施法成功则/script if z==3 then  SendChatMessage("我闪!","EMOTE") else if z==2 then  SendChatMessage("我侧闪!","EMOTE");end end
后面的条件判断为,如果刚才生成的随机数为3,就说“我闪”,否则如果为2,就说“我侧闪”,如果为1就什么也不说

大家可以根据需要把说话的内容改成自己需要的,注意加入if条件判断的时候,一定要注意最后要有对应的end结束标志
z=random(3)中,3表示生成1到3的随机数,可以根据需要改成较大的数,以便提供更多的选择,或者减少某一个条件达成的概率(也就是说设置为较大的数,可以做到偶尔才说话)

有时候我们可能需要根据自身的buff状态做一些相应的操作,这时我们可以利用一个循环查找buff的宏来实现:
/script P,B,i="player",true,1 while UnitBuff(P,i) do if string.find(UnitBuff(P,i),"LightningShield") then B=false end i=i+1 end if B then CastSpellByName("闪电之盾") end
这个宏的效果是,如果玩家的闪电盾没有了,就施放“闪电之盾”,否则什么也不做
如果了解一点编程语言,这个宏相对还是比较容易理解的:

前面的部分“/script P,B,i="player",true,1 ”首先定义3个变量
P="player" 这个主要是为了节省字数(每个宏正常只能有255个字符)
B=true  赋值B为真,用于作为判断是否找到相应buff的标志
i=1   循环用自变量

然后是一个“while 条件 do 命令 end”的用于查找buff的循环
条件UnitBuff(P,i)表示"player"(玩家自身)的第i个buff存在时为真,循环继续
命令if string.find(UnitBuff(P,i),"LightningShield") then B=false end
string.find表示在玩家的第i个buff里面查找闪电盾的字符串,如果找到了赋值B为假
i=i+1  循环自变量+1

最后一句 if B then CastSpellByName("闪电之盾") end
如果B为真,也就是上面的循环在所有buff里面都没找到闪电盾,则施放“闪电之盾”


Step 5.


最后,让我们回头看看一开始说的一键实现“自然迅捷+治疗波”。
/施放 自然迅捷
/script SpellStopCasting();
/施放 治疗波

这个宏,最关键的部分就是第二行的/script SpellStopCasting(); 前面我们已经知道他的作用是取消当前施法,用在这里,第一个法术是瞬发的,他自然取消不了,他的实际效果是取消我们施放第一个产生的硬直时间(玩过KOF的肯定很清楚),以便我们立刻施放后面的治疗波。
根据这个原理,我们可以把他拓展到很多别的场合,但是必须要满足一个条件:
第一个法术必须要影响到第二个法术的施放,比如 气定神闲,比如 自然迅捷, 再如 诅咒增幅 等。

—————–我————也———-是———–分————隔————-线——————

Part III. 一些实用宏
还是那句话制作宏,除了必须要掌握的基本知识外,最重要的还是你的创意。
以下这些宏都是本人玩过的号自己编写的宏,绝对原创

a. 通用宏
a.1 密人要食物和水的宏
/Script SendChatMessage("请问你可以帮我做点食物和7级水吗?谢谢",’WHISPER’, ‘通用语’, UnitName(’target’));
/敬礼

tips:选中目标点宏即可,FS不要BS我

a.2 自动选中MT目标的宏
/target MT的名字
/assist

tips:需要手动输入一下MT的名字

b. 法师宏
b.1 冰环
/aftercast +done /y 冰环已放,下一个法师准备
/施放 冰霜新星(等级 1)

tips:地球人都知道,nova要用Lv1的。
tips:没有插件Aftercast的请去wowui.cn下载,或者把前面部分/aftercast +done删掉

b.2 冰箱
/script SpellStopCasting();
/aftercast +done /script if UnitHealth("player")/UnitHealthMax("player") < .40 then SendChatMessage("好险,治疗有空给++!",’YELL’); end
/施放 寒冰屏障

tips:没有插件Aftercast的请去wowui.cn下载,或者把前面部分/aftercast +done删掉

b.3 变羊

/aftercast +done /大喊 已经对 => %t  <= 施放变羊,表打!
/aftercast +fail /大喊 %t 表抵抗我的羊啊,乖,我们重来!
/施放 变形术(等级 4)

b.4 标记
/aftercast +done /e => %t <=,我正在看着你
/施放 侦测魔法

/aftercast +done /大喊 已经对 => %t  <= 施放变羊,表打!
/aftercast +fail /大喊 %t 表抵抗我的羊啊,乖,我们重来!
/施放 变形术(等级 4)

b.4 标记
/aftercast +done /e => %t <=,我正在看着你
/施放 侦测魔法

b.5 闪现
/script SpellStopCasting();
/script z=random(3);
/aftercast +done /script if z==3 then  SendChatMessage("我闪!","EMOTE") else if z==2 then  SendChatMessage("我侧闪!","EMOTE");end end
/施放 闪现术

c. 战士宏
c.1 打击
/施放 压制(等级 3)
/施放 英勇打击(等级 8)

tips:可以压制的时候立刻使用压制,否则使用英勇打击

c.2 破甲
/施放 复仇(等级 5)
/施放 破甲攻击(等级 4)

tips:可以复仇的时候立刻使用复仇,否则使用破甲

d. 萨满宏
d.1 瞬疗
/script SpellStopCasting();
/施放 自然迅捷
/script SpellStopCasting();
/施放 治疗波(等级 9)

tips:不论你当前在做什么,立刻取消然后使用自然迅捷并且给目标施放治疗波

d.2 闪电盾
/script P,B,i="player",true,1 while UnitBuff(P,i) do if string.find(UnitBuff(P,i),"LightningShield") then B=false end i=i+1 end if B then CastSpellByName("闪电之盾") end

tips:没事就按一下,不用担心浪费魔