字符串选择器就是tdBattlePetScript用来查找或保存字符串的工具在加载一个字符串前,会先使用这个工具搜索字符串的存储位置有没有合适的字符串不同的字符串选择器就是不同的检索工具每个字符串选择器都按照自己的格式保存或检索字符串你可以理解为字符串存储在这些字符串选择器里,我来为大家科普一下关于魔兽8.3宠物对线?以下内容希望对你有帮助!

魔兽8.3宠物对线(8.1魔兽宠物对战)

魔兽8.3宠物对线

字符串选择器就是tdBattlePetScript用来查找或保存字符串的工具。在加载一个字符串前,会先使用这个工具搜索字符串的存储位置有没有合适的字符串。不同的字符串选择器就是不同的检索工具。每个字符串选择器都按照自己的格式保存或检索字符串。你可以理解为字符串存储在这些字符串选择器里。

原版字符串选择器的主要功能如下

1.支持用户调节字符串选择器的优先级,默认优先级从高到低是: Rematch , Base,Firstenemy, AllInOne。如果找到了多个字符串,优先级高的将被调用。如果使用我之前的修改版Base选择器,则更新后字符串会自动出现在firstenemy选择器中。

2.Rematch字符串选择器变化不大。字符串和rematch队伍信息一起存储。

2.Base字符串选择器以对战中敌我双方所有宠物为索引存储字符串,任何宠物位置变化都会导致索引不同。可以存储多个字符串。

3.Firstenemy 字符串选择器,以对战中敌方第一只宠物为索引存储字符串,功能和我之前修改版的Base相同。可以存储多个字符串。

3.AllInOne 字符串选择器只能存储一个字符串,无论什么队伍,什么敌人,这个字符串都可以读取出来。

4.无论使用那个字符串选择器,字符串在计算机上实际保存在wtf\Account\你的账号名或者编号\SavedVariables\tdBattlePetScript.lua这个文件中,Rematch队伍配置存放在wtf\Account\你的账号名或者编号\SavedVariables\Rematch.lua文件中。每个魔兽世界账号之间的字符串和队伍都是独立保存的。如果要迁移字符串和队伍,自行复制上述文件到其它账号下。

修改版主要是修改了以下功能点

1.为Rematch添加了3个函数:

1.1加载随机队伍函数

1.2检查队伍血量函数,支持对战不同的目标时,使用不同的血量检查函数。附件只添加了小艺和海难俘虏的特殊检查逻辑,需要支持其它NPC的要自行修改。

1.3刷新队伍函数。如果选中了加载最高血量宠物,并且满足以下2个条件之一:1选中了加载任意属性的宠物,2宠物属性完全相同,则插件会自动替换成当前血量最高的宠出战。如果没有选中加载最高血量宠物,则队伍中的成员不会被单独替换。如果队伍无效,插件会整队整队的替换。

2.支持调用不在队伍里的宠物功能,原来需要编3队的,现在只需要编一队了。检查队伍血量之前,刷新队伍函数会自动加载最高血量的宠物,然后才执行检查血量的动作。需要选择Rematch加载最高血量功能。比如:3只迷你恨光,3只黑索小炸弹,3只节点稚龙组成的末日队,以前要编成3队,现在只需要编一个队伍既可。对战时恨光或黑索死光才会换下一队。如果你的宠物属性不同,且战斗中属性不同的宠物有机会翻车的话,慎用此功能。

3.选中目标和退出对战都会重新加载队伍。

4.添加了备用队伍按照队伍尾部的数字排序功能,数字小的先上场。

血量检查函数逻辑

当目标是小艺时,只检查第一只宠物的血量,低于691判定队伍无效。

当目标是海难俘虏时,检查3只宠物,任何一只血量低于75%则队伍无效。

其他目标时,检查3只宠,血量不满就判定队伍无效。

名词解释

种子队:队伍目标和当前对战NPC ID相同的队伍称为种子队。种子队的标题去掉数字部分剩下的字符称为 队伍关键字。如果种子队的标题不含有数字,则队伍关键字提取失败,插件自动跳过换备用队和保底队的部分,强制加载种子队。如果想实现自动换队,种子队必须有且仅有一队。

备用对:队伍目标不是当前NPC ID或没有目标,但是队伍标题去掉数字后,等于 队伍关键字的队伍,称为备用队。备用队可以有0到多队。

保底队:队伍目标不是当前NPC ID或没有目标,但是队伍标题去掉数字后,不等于 队伍关键字,但是包含 队伍关键字的队伍,称为保底队。保底队可以有0或1队。

Rematch设置对自动换队流程的影响

1、Rematch - 自动加载队伍。 如果没有选中这个选项,则Rematch不会帮你加载队伍,也不会自动换队。

2、Rematch - 加载血量最高的宠物,以及 Allow Any Version(允许任意成长)选项。有3种情况:

2.1、同时选中 “加载血量最高的宠物 ” 和 “Allow Any Version(允许任意成长)”。 对每一只宠物,rematch会查找玩家拥有的同类宠物,将当前血量最高的宠物加载到队伍里。都是满血的话,通常是HH成长属性的宠物血最多。这样可能会打乱玩家的队伍,导致不同属性的宠物被换上场。如果不同属性会导致翻车的话,就会翻车。

2.2、只选中 “加载血量最高的宠物” ,不选中 “Allow Any Version(允许任意成长)” ,则Rematch会尝试只加载属性成长相同的备用宠。不同属性成长的宠物,不会纳入备选目标,无论血量多少。队伍不合格可以自动换队。

2.3、两个都不选。Rematch不会单独更换队伍中的宠物,如果队伍不合格,则整队整队的换。

3、如果属性不同会导致翻车,可以将不需要的宠放生、装笼。如果你想让不同属性的宠物上场的话,需要严格指定队伍成员,建议有2种方案:

3.1、为每只宠物分别编队,取消选中 “加载血量最高的宠物”。让Rematch整队的换。坏处是你不能偷懒,每只宠都要编队,还要注意不能重复。

3.2、将宠物换成3只属性一样的。

修改后自动换队的流程为

1.首先查询当前NPC的ID,检查Rematch保存的所有队伍,是否有种子队。如果有继续第2步。如果没有就彻底放弃加载流程。

2.刷新种子队,加载最高血量宠物。

3.检查种子队血量。如果检查通过就加载种子队并查找结束,不通过则执行第4步。

4.从种子队标题提取队伍关键字。如果提取成功,则执行第5步,不成功则执行第7步。

5.循环查找所有保存的Rematch队伍,对每个队伍执行以下动作:

5.1检查队伍是不是备用队。如果是备用队,则记录队伍信息,继续查找下一队。如果不是备用队,则检查这个队伍是不是保底队。如果是保底队,则记录队伍ID并继续检查下一队;如果不是保底队,则不记录并继续检查下一队。

5.2将备用队依据队尾的数字排序,从小到大。

5.3按顺序一个个刷新备用队,检查血量,找到合格的就加载并结束,找不到继续第6步。

6.如果第5.1步中查找到了保底队,就不检查血量,加载保底队。如果没有找到保底队,则执行第7步。

7.无视血量,加载种子队。

8.简单来说顺序就是:种子队,小数字的备用队,大数字的备用队,保底队,种子队(强制上场)。

新手务必读懂这个加载队伍的流程。对于解决队伍加载问题很有帮助。

Rematch队伍命名规则如下

1.种子队:AAA(XXX) -- AAA可以是任意字母,长度不要太长,但不能是数字。 表示括号内的内容必须有,最少有一个,括号本身不要出现在队伍名字中。 XXX是数字,位数可以不限,不同队伍位数可以不同,但不同队伍最好不要使用同一编号以便于监控。以下同样。

2.备用队:AAA(XXX) -- 备用队命名规则和种子队相同,备用队也可以有队伍目标,但不能和种子队的目标相同。

3.保底队:AAA(BBB) -- AAA必须和种子队完全相同, BBB可以是任意字母,但不能是数字。保底队也不能设定队伍目标。

命名示例:(不要输入冒号前面的字符,那是说明用的,不是队伍名字的一部分.)

种子队:霜火岭末日决战001

备用队:霜火岭末日决战002

备用队:霜火岭末日决战009

保底队:霜火岭末日决战保底

队伍关键字就是 霜火岭末日决战,这个关键字在备用队和种子队里,必须相同。

4.小技巧:种子队和备用队设置不同的队伍目标,就可以灵活切换队伍的角色,对甲目标是备用队,对乙目标是种子队。比如横扫地图虐小动物队,小动物种类繁多,每一种设置一个种子队即可。

5.备用队伍名字尾部的数字会决定上场顺序,数字小的先上场。同一个目标的队伍里,队伍名字的数字部分,去掉前面的无意义的0后,剩下的数字不能重复.

1.退出游戏,下载附件,解压,将解压后interface\addons\里的所有目录,复制到 D:\GM\World of Warcraft\_retail_\Interface\AddOns\下。这里假设你的wow安装在D:\GM\下,需要更换为你的wow的安装目录。如果没有AddOns这个目录,可以自己建立,但是名字不能错。

2.进游戏建立你自己的战队并编写字符串。

3.如图,进入对战,屏幕上方的 “VS” 字符处可以点击,字符串就是在这里录入的。

3.1、在VS上鼠标左键可以打开当前有效的字符串选择器清单,如果从字符串选择器中成功读取到了字符串,这个字符串选择器就是亮色的,否则不显示。

3.2、在VS上鼠标右键可以打开所有的字符串选择器清单,然后鼠标左键点击字符串选择器的名字,就打开了字符串输入栏,如图2.

3.3、图中Rematch字符串是我为了截图时临时添加的,实际当前运行的字符串选择器后面有个 勾勾 。

字符串选择器清单
字符串输入框
建议的字符串选择器用法

插件提供了4种字符串选择器,并且都可以保存字符串,那我到底保存在哪里合适呢?

1、Rematch 字符串选择器,适用于保存每个队伍的字符串,如果你的每个队伍的字符串都不相同的情况下,或者一个队伍和字符串打遍天下的时候。

2、Firstenemy 字符串选择器,适用于敌方第一只宠物是固定不变的时候,比如训练师,橙色宠物,打固定一个目标(如冰脊幼崽)等。设置一次字符串后,无论什么队伍和这个NPC对战,都会用同一个字符串。

3、AllInOne 字符串选择器,只能保存一个字符串,无论敌我队伍如何变化都是固定这个字符串。一般在这个选择器里,写入一个只有一行 quit 指令的字符串,用于特殊情况下自动退出对战。

4、原版Base字符串选择器,基本不用。

通常建议将字符串保存在Firstenemy里,大部分对战,敌方的第一只宠都是固定,且不同的NPC第一只宠互不相同。Rematch需要为每个队伍都设置字符串,比较繁琐,但是默认优先级高。AllInOne 又过于通用,失去了使用价值。

自定义插件的方法

以任意文本编辑器打开 Interface\Addons\Rematch\Process\PetLoading.lua 文件,找到function rematch:checkTeamHealth(team) 这个函数。

1、可以自行设置宠物低于多少血量会导致队伍失败。

if petHP < petMaxHP*1 then --修改这个1就可以了,最大只能是1,0.8意思就是剩余80%以下血量就是不合格。

2、可以设置不同的NPC不同的血量检查逻辑。

if mytarget == 9999999 then --你可以仿照这个IF自行写其它NPC的处理情况。

for i=1,1 do -- i=1,1 就是只检查第一只宠血量的意思,数字可以是1-3之间,后一个数字必须大于或等于前一个数字。每个数字代表队伍中的坑号。最多3个坑。

如果添加了其它条件,则函数架构如下,注意排版,确保end要正确配对。

if mytarget == xxxxx then -- 目标 xxxxx 的检查逻辑

.....

elseif mytarget == yyyyy then -- 目标 yyyyy 的检查逻辑

.....

else -- 没有特别写出的目标,执行的默认检查逻辑。

.....

end

方法一

1. 选中可以对战的目标NPC,随意以NPC为队伍目标创建并保存一个队伍,如果已存在这样的队伍,则不需再创建直接记下队伍名。执行 /reload 或者小退,大退让游戏保存插件数据。

2. 去WTF下打开Rematch的存档,搜索刚刚创建的队伍名,队伍前面的数字就是 NPCID

方法二

修改interface\addons\rematch\process\petloading.lua,在 mytarget = key 这一行的下一行加一句 rematch:print(mytarget)既可。这样每次对战任何NPC都会打印NPC的ID.

获得宠物ID与技能ID的宏

/run local i,j,k,l,m;for i=1,3 do j,k,l,m=C_PetJournal.GetPetLoadOutInfo(i);print(C_PetJournal.GetPetInfoByPetID(j),C_PetJournal.GetBattlePetLink(j),k,GetBattlePetAbilityHyperlink(k),l,GetBattlePetAbilityHyperlink(l),m,GetBattlePetAbilityHyperlink(m));end

注意此宏刚好255个字符,复制后是一行的,一个字都不能改.

使用此宏会在聊天栏依次打印当前加载的队伍中,1-3号坑的宠物ID,宠物链接(含名字),当前技能1-3的ID和链接(含名字).

如果你有聊天栏复制插件,则可以直接复制出来.

使用技能ID和宠物ID编写的字符串,可以独立与客户端语言而正确工作.为了便于阅读,可以在字符串里,用2个连续的"--"字符添加注释。

简单的故障诊断流程

1、备份后清空Interface目录和WTF目录,重新复制附件中的插件。

2、编队,写字符串。测试运行。

3、如果还不能换队,就可以来论坛问了。