World of Goo修改器使用帮助

  该修改器简介:使用此修改器可以为World of Goo提供作弊功能(甚至可以自己添加功能),也可以辅助做World of Goo新关。

使用帮助

这个程序设计的如此之完美以至于根本不需要帮助。:P
如果你真的不知道如何使用,你可以点击帮助 - 快速帮助。

扩展功能

  如何给修改器扩展功能?很简单,点击“工具 - 修改批量处理功能”并进行修改,保存,然后重启修改器即可。当然,你很可能里面什么东西也看不懂,这里就将介绍如何给修改器添加批量处理功能。
  Features.xml是一个标准的XML文件。根元素Features只有一个属性@Version,指示当前Features.xml的格式版本,避免版本误用而设计。这里将介绍第四版Features.xml的格式。在根元素下面有Strings, LevelEditor, GooBallEditor, GooBallTester, GooBallTestHelper, MaterialTester六个元素,每个元素有其各自的用途,下面将详细介绍。

Strings

  Strings元素存放了一个字符串表,用于本地化。
  Strings元素下有若干个String元素,@ID表示String元素的ID,@Text表示String元素的英文内容,@zh-CN则表示String元素的中文内容,以此类推。这些字符串表将被下两个元素使用。

LevelEditor与BallEditor

  LevelEditor与BallEditor元素分别存放了批量修改关卡、粘粘球的功能。每个元素下面均有若干个Feature元素,每一个Feature代表一个批量修改功能,它只有一个@ID属性,表示该批量修改功能的ID。
  在每个Feature元素中总有三个元素,分别为Process, Reverse和Restore,分别代表修改、恢复和恢复到原始状态(因为有些功能可以修改多次,恢复指撤销一次,而恢复到原始状态则可以撤销多次),合称子功能。要注意的是Restore比较特殊,假如它对应的属性、字符串没有找到的话会自动使用Reverse的对应内容,其内部没有任何操作。(一切都是自动完成的!)这三个元素各有四个属性,不过通常情况下不需要设置。这四个属性分别如下:
  Name(名称):在错误/警告页面显示的简称ID,对应上面的Strings字符串表中的ID,默认值为Feature的@ID(如VisualDebug)+元素名(如Process)+Name。
  Description(描述):在选择功能页面显示的全称ID,对应上面的Strings字符串表中的ID,默认值为Feature的@ID(如VisualDebug)+元素名(如Process)+Description。
  NothingChanged(未修改):如果修改后的结果与修改前没有变化时显示的警告消息,对应上面的Strings字符串表中的ID,默认值为Feature的@ID(如VisualDebug)+元素名(如Process)+NothingChanged。
  Tip(描述):在选择功能页面鼠标悬停时显示的描述ID,对应上面的Strings字符串表中的ID,默认值为Feature的@ID(如VisualDebug)+元素名(如Process)+Tip。

  在除了Restore元素以外,各个子功能元素下面有若干个操作,我们将其分为六大类,下面会详细介绍,在子功能下能放一个或多个A类或B类操作。

A. 结束处理类

  结束处理类可以使当前处理立即停止。可以将其放在任何位置,其内部不可放置任何元素。

<Warning Message="警告内容" />
  这个元素将使当前处理立即停止并输出警告信息,结束处理后对文件的任何修改不会被保存

B. 修改文件类

  修改文件类可以修改要修改的文件并保存修改。

<Modify File="文件名">
  放置各种各样的操作
</Modify>
  这个元素将打开对应的文件并修改其中的内容。如果是修改关卡,文件名可以填scene, level, resrc;如果是修改粘粘球,文件名可以填balls和resources。

C. 普通文本类

    普通文本类可以用于简单的文本修改操作。

<IfContains Value="要查找的值">
  <Then>
    如果文本中存在Value则要执行的操作
  </Then>
  <Else>
    如果文本中不存在Value则要执行的操作
  </Else>
</IfContains>
这个元素用来判断当前文件中是否存在Value的值,如果存在执行Then,不存在执行Else。注意无论放在哪里查找的范围都是整个文本的。

<RegexReplace Pattern="要匹配的正则表达式模式" Replacement="要替换的文本" />
  这个元素将使用正则表达式替换所有的匹配项。
关于正则表达式的使用请参考:http://msdn.microsoft.com/zh-cn/library/az24scfc.aspx
这个工具可以帮助你理解正则表达式:http://www.regexper.com/

<Replace Old="要查找的内容" New="要替换的文本" />
  这个元素将像记事本里一样替换所有找到的内容。

D. XML节点类

  XML节点类用于查询节点以修改其属性,或添加、删除节点。

<SelectNodes>
  <Nodes>
    <Node XPath="要寻找的XML节点的XPath" Contains="限制了只选择存在这个文本的节点" />
    可以重复放置多个Node元素,最后查询的结果将是其并集
  </Nodes>
  <Operations>
    这里可以放置对每个匹配的Node元素执行操作
  </Operations>
</SelectNodes>
查询节点并对每个查询到的节点执行相应操作。

<CreateElement XPath="要创建的XML节点的父节点XPath" ElementName="要创建的XML节点的名称">
  可以对新创建的节点的属性进行操作
</CreateElement>
查找所有满足条件的节点并在满足条件的节点下各创建一个子节点并添加属性。

<RemoveElement XPath="要移除的XML节点的XPath" WhichContains="限制只移除存在这个文本的节点" />
删除所有满足条件的节点。

E. XML属性类

  XML属性类用于查询、添加、删除属性,必须放在D类下。(直接或间接)

<IfAttribute Name="属性名" Value="要判定的属性值" IfNull="如果不存在该属性则是否执行Then">
  <Then>
    如果属性名对应的值和Value相等则要执行的操作
  </Then>
  <Else>
    如果属性名对应的值和Value不相等则要执行的操作
  </Else>
</IfAttribute>
如果属性与Value相同则执行Then,否则执行Else。如果IfNull设为True且属性不存在,则执行Then,如果IfNull设为False且属性不存在,则执行Else。

<SetAttribute Name="属性名" Value="属性值" />
设置属性,如果不存在将会被创建。

<MatrixMultiplyAttribute Name="属性名" Value="要给属性乘上的矩阵" Default="如果不存在该属性,则使用的默认值" />
这个元素将把目标属性的值转换成齐次坐标并对其执行对应的仿射变换,更多信息:http://zh.wikipedia.org/wiki/%E4%BB%BF%E5%B0%84%E5%8F%98%E6%8D%A2

假如属性值为标量(只有一个数),设其为x,则对于输入矩阵:

m1 m2
m3 m4

(输入格式为m1,m2;m3,m4)
使用该矩阵变换后得到的标量x'=(x*m1+m2)/(x*m3+m4)。

假如属性值为二维向量(例如由两个数组成的坐标,例如100,200等),设其为x1,x2,则对于输入矩阵:

m1 m2 m3
m4 m5 m6
m7 m8 m9

(输入格式为m1,m2,m3;m4,m5,m6;m7,m8,m9)
使用该矩阵变换后得到的二维向量x1',x2'=(x*m1+y*m2+m3)/(x*m7+y*m8+m9),(x*m4+y*m5+m6)/(x*m7+y*m8+m9)。

F. 脚本引擎类

  脚本引擎类使你可以自己编写脚本修改各个关卡文件。

<ExecuteXsl Path="要使用的XSL.xsl" />
<ExecuteIronPython Script="要运行的脚本.py" />
<ExecuteIronRuby Script="要运行的脚本.rb" />
  这些元素将使用游戏目录下 Resources\Scripts 文件夹中的对应文件。XSL 的使用很简单,你可以使用这个工具生成:http://www.davidc.net/miscellany/diff-xml-documents-xsl-stylesheet
  在程序开始运行时会自动执行Initialization.py和Initialization.rb分别初始化IronPython引擎和IronRuby引擎,你可以将一切只需运行一次的代码放到这里以加快运行速度。
  当指定的脚本开始运行时会有一个解码后的字符串变量input。在你的脚本执行完毕后应该至少有一个布尔型变量edited表示是否应用当前修改,如果为true,则还需要有一个output变量,其类型可以为字符串或XDocument。

GooBallTester 与 MaterialTester

这两个元素下面分别有三个元素Level, Scene, Resrc,在测试粘粘球/材料时程序会使用这些XML生成对应关卡并运行对应关卡。

GooBallTestHelper

这个元素下面分别有两个元素Balls和Resources,在测试粘粘球时程序会使用这些XML生成对应粘粘球。(在对应关卡中会用到)

卸载方式

删除修改器安装目录即可。

常见问题

使用GooTool增加新关时出错或使用WooGLE修改某关卡时出错:

  1. 使用V1.0.8.44或以上的版本对出错的关卡或所有关卡进行一次修改或恢复。
  2. 如果这样操作仍没有解决问题,请把问题报告给Mygod,Mygod将帮您解决。(可以通过QQ、贴吧或留言板)

修改后游戏/GooTool/本修改器无法读取存档:

  请联系本修改器的制作者以解决此问题。

运行程序时出现0xC0000135错误或提示中含有“.NET”字样:

  请安装.NET Framework 4.0

如何选择主题:

你也可以自己制作主题!然而这需要一些xaml & baml知识,具体方法不再赘述。

如果看了以上帮助仍没有解决问题、发现此软件的BUG、寻找最新版本或您想要的功能本修改器不支持,请联系本修改器的制作者Mygod。联系方式:

版权所有,盗版必究。转载请注明出处。

更新历史

V4.0.43.275 更新内容: