《王权2幻想王国》mod技术初探

2025-01-27 10:12:58作者:饭克斯

一、准备工作 在开始之前,请确保先将游戏目录下的\resource\resource.pak文件中的所有文件解压缩到当前目录,并将文件resource.pak重命名。以下内容未经本人测试,具体效果请自行测试。

二、数据与定义解析 \resource\entity\目录中的数据和定义主要存储在*.def文件中。以下以\resource\entity\buildings\castle\castle.def为例进行说明:

  • 包含文件:#line 18: (include "extenders/upgrades.inc") 表示该文件包含了升级部分的定义。
  • 升级部分:#line 18: /entity/buildings/castle/extenders/upgrades.inc BEGIN { "Upgrades" ; 升级部分 { available { ; 1级升级 { money 75 } { health 1000 } ; 升级增加的生命 { building_value 1 } { cost "money" 2000 } } ; 2级升级 { money 150 } { health 1500 } ; 升级增加的生命 { building_value 1 } { cost "money" 5000 } } }
  • 守卫活动范围:#line 22: (include "extenders/guard_point.inc") 表示该文件包含了守卫活动范围的定义。
  • 财宝生成器:#line 23: (include "extenders/treasures_generator.inc") 表示该文件包含了财宝生成器的定义。
  • 自动产生的建筑和单位:#line 26: (include "extenders/spawner_extender.inc") 表示该文件包含了自动产生的建筑和单位的定义。
  • 建筑视野:#line 26: { "FogVisor" { radius 50 } }

三、游戏数据解析 1. \resource\gameData\inventions\inventions.graphml定义了各个建筑内可升级的项目。以市场上的血瓶为例,Building=market; 表示该建筑可以升级,Time=15表示升级时间,Building Level=1表示升级级别。 2. \resource\gameData\magic\spells.xml定义了国家法术的基本属性。以治疗法术为例, 表示该法术名称为magic_heal,花费250金币,图标为magic_heal,视觉效果为heal。 3. \resource\gameData\spawn\global_spawn_settings.set定义了建筑或单位自动的产生。以老鼠与下水道为例,{ "rat" ; 老鼠 { "spawn type" units } ; 产生的类型 { raw beast_rat } { Nationality Same } { level 0 } ; 等级 { "AI task" { task none } ; 生成后默认分派的任务 } { postspawn } { postspawn_i 1 } { gold 0 } ; 产出需消耗的金币 { count "1 2" } ; 每次的产量(12) { "spawn time" 60 } 生成的间隔 { "max count" 2 } ; 每次生成的上限 } 4. \resource\gameData\units\ask.xml定义了各单位行动时触发语音的概率。以猎人为例 ... 表示猎人的各种行为及其触发语音的概率。 5. \resource\gameData\units\perks.xml定义了单位技能的属性。以盗贼的涂毒为例, ... 表示该技能的名称、持续时间、效果和视觉效果。 6. \resource\gameData\units\rpg_params.xml定义了英雄的基本属性。以战士为例 ... 表示该英雄的力量、敏捷、智力、耐力、生命、攻击力、防御力、射程和角度等信息。 7. \resource\gameData\units\unit_actions.xml定义了基本攻击方式和技能施放。以牧师的治疗为例, ... 表示该技能的用途、类型、基本攻击方式、倍数、远程投射物的速度、消耗的魔法和目标等。 8. \resource\gameData\units\unit_decour.xml定义了英雄的基本装备。以战士用剑第二级为例, ... 表示该装备的名称、消费、声音类型、GUI名称、杀伤附加值等信息。

四、资源设置解析 1. \resource\set\inventory\bottles.set定义了药瓶的基本属性。以血瓶为例{ bottle_wrap { bottle_type "HealthPotion" } ; 血瓶 { concrete_bottle { bottle_base { inventory_base { active 0 } { effectorparams { dps "" "" "" } { defence "" "" "" } } { editorname "healthpotion_0" } } { cost "money" 5 ; 售价 "wood"

展开全文

热门推荐

相关攻略

猜你喜欢