RB脚本文件说明
- 标签说明
- Demo实例
这里主要对RB脚本中50级以下的生产脚本标签进行总结,也是博主平时写脚本中的一些经验积累吧。主要包括 了普通采集和限时采集脚本,生产脚本的话因为RB自带了CE工具啦~所以请大家自行生成(:з」∠)。
下面我们来了解一下RB脚本是怎么构成的
作者:Yuki灬
链接:https://www.jianshu.com/p/16d6d872532f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
PHP代码:
<?xml version= "1.0" encoding = "UTF-8">
<Human>
<Man>
<name>阿尔菲诺</title>
<age>19</author>
<address>田园郡</address>
<date>23:54:11</date>
</Man>
<Woman>
<name>阿莉赛</title>
<age>19</author>
<address>龙堡内陆低地</address>
<date>23:54:11</date>
</Woman>
</Human>
这是一段儿非常简单的XML文件,包含了Human,Man,name...等标签。第一行指的是XML文 件的版本和字符集编码声明,其中我们需要为encoding指定其字符集编码为UTF-8,以保证浏览器或解析器可以正常读取XML文件的文件结构。从第二行开始我们不难看出整个标签是已树形结构 来展开的,这也正是XML文件的结构所在。在这里Human位于整个树形结构的顶部,同时也是树形结构的底 部。他以Human开始又以Human结尾,所以我们称之为根标签。
HTML代码:
<Man> <name>阿尔菲诺</title> <age>19</author> <address>田园郡</address> <date>23:54:11</date> </Man>
Man标签位于根标签的下一级,这里我们通常一般把他叫做子标签,子标签通常是一些属性的合集,比如在这里子标签是Man代表男人,下一个子标签是Woman代表女人,他 们是为了定义不同属性而产生的。在子标签之下我们还有属性标签,属性标签定义了子标签所拥有的属性name、age、address等等。如上就是构建整个XML文件的 主要组成部分。
标签说明
profile | 脚本根标签 | 根标签 |
name | 定义脚本名称 | 子标签 |
KillRadius | 定义扫描半径 | 子标签 默认50 |
Order | 采集序列 | 子标签 该标签有多个子标签 |
While | 循环 | 子标签 Condition="True"则重复执行 |
If | 逻辑判断 | 子标签 用来判断时间 Condition="IsTimeBetween(23,1)" 表示从23点到1点 |
CodeChunks | 定义职业相关 | 子标签 |
Gather | 采集次数 | 子标签 定义采集物品的相关信息 |
HotSpots | 矿点坐标集合 | 子标签 标记矿点坐标集合 |
GatheringSkill | 技能 | 子标签 |
LogMessage | 向控制台打印日志 | 属性标签 |
WaitWhile | 等待时间 | 属性标签 |
RunCode | 切换职业 | 属性标签 |
TeleportTo | 传送 | 属性标签 |
GatherObject | 矿点名称 | 属性标签 |
Hotspot | 矿点坐标 | 属性标签 |
Slot | 采集目标 | 属性标签 挖取第几个格子的物品 第一个位置为0 |
CodeChunk | 职业 | 属性标签 |
HTML代码:
<Profile> <Name>测试第二版,主要加入IsTimeBetween检测和相关代码注释</Name> <KillRadius>50</KillRadius> <Order> <While Condition="True"> <If Condition="IsTimeBetween(23,1)"> <LogMessage Message="艾欧泽亚又过去了一天" /> <WaitWhile Condition="IsTimeBetween(24,1)" /> </If> <!--金矿--> <If Condition="IsTimeBetween(9,11)"> <!-- 时间区间 --> <If Condition="Core.Me.CurrentJob != ClassJobType.Miner"> <!-- 判断当前是否为当前职业 --> <WaitTimer WaitTime="3" /> <!-- 等待 --> <RunCode Name="MIN" /> <!-- 切换职业 --> <WaitTimer WaitTime="3" /> <!-- 等待 --> </If> <If Condition="not IsOnMap(145)"> <!-- 判断是否在当前地图 不在则传送--> <TeleportTo Name="Camp Drybone" AetheryteId="18" /> <!-- 传送 --> </If> <Gather Loops="1"> <!-- 循环次数 --> <GatherObject>Unspoiled Mineral Deposit</GatherObject> <!-- 矿点名称为未知矿产 --> <HotSpots> <Hotspot Z="-11.36177" Y="10.22671" X="306.1508" Radius="500"/> <!-- 矿点坐标 --> </HotSpots> <Slot>5</Slot> <!-- 挖取第五个格子的物品 --> <GatheringSkillOrder> <GatheringSkill SpellName="King's Yield II" TimesToCast="1" /> <!-- 使用技能 莫非王土2--> </GatheringSkillOrder> </Gather> <TeleportTo Name="New Gridania" AetheryteId="2" /> <!-- 采集完成后传送回格里达尼亚新街 --> <WaitTimer WaitTime="3" /> <RunCode Name="BTN" /> <!-- 切换成园艺工--> <WaitTImer WaitTime="3" /> </If> </While> </Order> <!-- 职业设置相关 --> <CodeChunks> <CodeChunk Name="MIN"> <!-- Change This Number 挖矿 --> <![CDATA[ ff14bot.Managers.ChatManager.SendChat("/gs change 22"); ]]> </CodeChunk> <CodeChunk Name="BTN"> <!-- Change This Number 园艺 --> <![CDATA[ ff14bot.Managers.ChatManager.SendChat("/gs change 23"); ]]> </CodeChunk> <CodeChunk Name="UseStealth"> <![CDATA[ SpellData data; if (!Core.Me.HasAura("Stealth") && Actionmanager.CurrentActions.TryGetValue("Stealth", out data) && Actionmanager.CanCast(data, Core.Me)) Actionmanager.DoAction("Stealth", Core.Me); ]]> </CodeChunk> <CodeChunk Name="BreakStealth"> <![CDATA[ SpellData data; if (Core.Me.HasAura("Stealth") && Actionmanager.CurrentActions.TryGetValue("Stealth", out data) && Actionmanager.CanCast(data, Core.Me)) Actionmanager.DoAction("Stealth", Core.Me); ]]> </CodeChunk> <CodeChunk Name="DisableMount"> <![CDATA[ ff14bot.Settings.CharacterSettings.Instance.UseMount = false; ]]> </CodeChunk> <CodeChunk Name="EnableMount"> <![CDATA[ ff14bot.Settings.CharacterSettings.Instance.UseMount = true; ]]> </CodeChunk> <CodeChunk Name="Dismount"> <![CDATA[ ff14bot.Managers.Actionmanager.Dismount(); ]]> </CodeChunk> </CodeChunks> </Profile>