《半神(Demigod)》的物品修改与技能修改DIY初级教程
2014-07-01 15:13:39 作者:webadmin
作者:suwei0206 来源:3dmgame
前提: 把游戏根目录下的dgdata.zip里面的所有文件解压至根目录⁄bindata目录下覆盖,然后把dgdata.zip重命名为dgdata1.zip即可
注意: 不要删除掉了dgdata.zip,局域网或互联网联机需要保证数据的原始同步,即无修改,所以dgdata.zip是联机检测的关键文件,自己修改游戏的时候按以上方法,解压完毕后,重命名dgdata.zip为dgdata1.zip, 如果要连网对战了, 就把dgdata1.zip的名字改回来即可, 其它的不用动,操作很方便
================关于物品的数据================
所在目录
游戏根目录⁄bindata⁄lua⁄common⁄Items⁄下
文件名单
Achievement_Items.lua #成就项目
Artifact_Items.lua #工艺物品
Boot_Items.lua #鞋子装备
Chest_Items.lua #装甲
Consumable_Items.lua #消耗品 药水等
Generals_Items.lua #Idol类
Glove_Items.lua #手套类
Helm_Items.lua #头盔类
Ring_Items.lua #戒指类
修改举例
以Boot_Items.lua为例
用记事本打开它,
每一个物品前面都有三行注释,很好辩认,
格式如下
########################################################################
# 物品名称
########################################################################
这一个文件当中,总共写入了7件鞋类物品
以第一件为例
代码与相应的注释为下
#############################################################################################
####################
# Footman's Sabatons
#############################################################################################
####################
@以上是物品注释,不用管
ItemBlueprint { '物品属性
Name = 'Item_Boot_010', '唯一代号,不能改
DisplayName = '
@显示物品的名字,其中的<>内的标签与文件strings_db(即汉化补丁的核心字符文件)里面的标签一一对应;而在这个标签后字符的作用是当前面标签加载不正确时,就显示后面的默认英文,也就是为什么一些朋友把语言包全删了,还是会显示英文的缘故,注,lua文件里面的字符在游戏中不支持双字节加载,所以别在LUA文件里面写汉字
GetHealthBonus = function(self) return Buffs['Item_Boot_010'].Affects.MaxHealth.Add end,
GetManaBonus = function(self) return Buffs['Item_Boot_010'].Affects.MaxEnergy.Add end,
@以上两行为新建两个变量,分别获取该物品的两项属性(加血和加蓝)的值,以便在物品说明中调用
Tooltip = {
Bonuses = {
'
'
},
},
@以上是物品标签,即在是游戏中鼠标移上面时显示的字符,其中<>标签是对应汉化文本里面的字符,而[]标签内就是上面设定的两个变量,在游戏中就会显示"+ XX 生命, +XX 魔法"
Mesh = '/meshes/items/chest/chest_mesh',
@模型结构的调用路径,不管
Animation = '/meshes/items/chest/Animations/chest_Idle_anim.gr2',
@描绘的GR文件调用路径,还是不管
MeshScale = 0.10,
@物品在游戏中的尺寸
Icon = 'NewIcons/Boots/Boot1',
@在商店中显示的物品图标
Abilities = { @物品属性的母标签,好了,下面是修改的主要范围
AbilityBlueprint { @物品属性的二级标签,可以有多重性,暂时不理
Name = 'Item_Boot_010',@物品的唯一代号,同第一行一样
AbilityType = 'Quiet',@物品的类别
FromItem = 'Item_Boot_010',@物品唯一代号,同上,不能改
Icon = 'NewIcons/Boots/Boot1',@显示的图标
Buffs = { @好了,这里是buffs的变量内容了,也就是物品的主要属性,在下面可以随意更改
BuffBlueprint {
Name = 'Item_Boot_010',
BuffType = 'BOOTEVADE',@效果类型,不管
Debuff = false,
EntityCategory = 'ALLUNITS',
Stacks = 'ALWAYS',
Duration = -1,@效果持继时间,由于是物品属性,所以设为-1,代表效果无限
Affects = { @以下就是更改的核心内容,属性值
MaxHealth = {Add = 50},@增加最大生命值50
MaxEnergy = {Add = 60},@增加最大魔法值60
},
}
},
}
},
}
对于只改装备效果属性的,看上面的最后两行就行了,两个值随意更改,如把第一个属性改成
MaxHealth = {Add = 5000}
那么游戏中买到该鞋就会给你增加5000生命
同样的,包括其它的物品LUA文件,更改手法一样.
可以自定义特效,需要建立子函数,比较麻烦,暂时不讲
[$HR getPages$]
关于物品的属性的基本格式,就是 属性代码 = {ADD或者Mult(分别代表增加值或增加率,一个是整数,一个是小数) = 属性值}
类似的其它属性还有
[复制到剪贴板]CODE:
MoveMult = {Mult = 0.10},代表移动速度+10%
RateOfFire = {Mult = 0.05},攻击速度+5%
Evasion = {Add = 1},闪避+1
Regen = {Add = 1},生命值每秒回复+1
EnergyRegen = {add = 1},法力每秒回复+1
Armon = {Add = 1},护甲+1
DamageReturn = {Add = 1},遭受攻击后对敌人伤害返回1点
VisionRadius = {Add = 1},半神的视觉半径
DamageRating = { Mult = -0.1 },伤害机率-10%
其它物品文件修改大同小异,只要读懂脚本,这个开源游戏就是一个免费的个人游戏"引擎"
================关于技能的数据================
所在路径
游戏根目录⁄bindata⁄units⁄heroes⁄下,
里面有每个英雄都有对应的文件夹,比如修改oak的技能,则进入里面的HOak文件夹
里面的HOak_Abilities.lua即英雄的技能文件
用记事本开打,这里就不再详述每行的函意,只写出更改的主要部份
同物品一样,每个技能上方都有三行用#包围起来的注释行,很好辩认
比如第一个技能
# Shield I
找到下面的核心数据段
EnergyCost = 400,@魔法消耗
RangeMax = 20,@最大影响范围
Cooldown = 35,@技能冷却时间
CastingTime = 0.1,@施法时间
FollowThroughTime = 0.7,@过程时间
CastAction = 'Shield',@施法姿态,不用管
UISlot = 1,@技能槽位,位于第1个槽位,范围是1到4,建议别改
HotKey = '1',@热键,在游戏中学到后按1施放
如果是主动攻击技能的话,下面还会有两行
DamageAmt = XXX, @技能攻击力
DamageType = 'Spell', @技能类型,这里统一都为spell,魔法
以上随意更改即可,自定义技能比较麻烦,