快捷搜索:  

Hades游戏修改教程 物品武器装备技能修改方法

8Dz耐玩游戏网

一次冒险中出现更多武器强化房间:8Dz耐玩游戏网

LootData.lua文件下搜索Name = "WeaponUpgrade",8Dz耐玩游戏网

照整个格式复制一边添加进去:8Dz耐玩游戏网

{ Name = "WeaponUpgrade", GameStateRequirements = { RequiredMaxWeaponUpgrades = 2, RequiredNotInStore = "WeaponUpgradeDrop", RequiredMinCompletedRuns = 3, RequiredMinDepth = 3, } },8Dz耐玩游戏网

8Dz耐玩游戏网

这样冒险中就会出现3个武器强化房间了。8Dz耐玩游戏网

同理,如果想要出现4个武器强化房间,就在复制一个,然后把RequiredMaxWeaponUpgrades的值改成3即可(可能不改也行,没确认过)。8Dz耐玩游戏网

另外,第二个武器强化房间至少在26个房间才会出现,可以把整个数值往小一点改,这样武器强化房间会更快出现。8Dz耐玩游戏网

上次游戏更新后出现了大量卡顿的情况,一种是游戏时长久了出现的丢帧,估计是哪里内存溢出了;第二种是过图时存档造成卡顿,这个可以在RoomManager里的UnlockRoomExits函数下面删掉保存的代码来解决,这样捡完房间掉落后就不会自动存档了,进房间的自动存档还在所以放心删。具体代码如下:8Dz耐玩游戏网

8Dz耐玩游戏网

搜SaveCheckpoint({ SaveName = "_Temp", DevSaveName = CreateDevSaveName( run, { PostReward = true } ) })就行。8Dz耐玩游戏网

8Dz耐玩游戏网

武器锤子强化祝福修改:8Dz耐玩游戏网

LootData.lua下搜索WeaponUpgrade = 8Dz耐玩游戏网

找到Traits属性,可以看到所有强化的名字,对照英文找到想要修改的祝福的名字,这里普攻吸血2明显就是对应SwordCursedLifeStealTrait8Dz耐玩游戏网

8Dz耐玩游戏网

那么再去TraitData.lua 下搜索SwordCursedLifeStealTrait =8Dz耐玩游戏网

找到该祝福修改的属性,发现这两个属性值正好是2,英文描述也很吻合,应该直接修改这两个值就行了(下面PropertyChanges里面变化的最大生命值为40%应该就是副作用了,也可以修改)8Dz耐玩游戏网

8Dz耐玩游戏网

魔镜强化:8Dz耐玩游戏网

MetaUpgrades.lua下,搜索function SwapMetaupgrade( screen, button )8Dz耐玩游戏网

8Dz耐玩游戏网

这个函数是在0.26版本之后新增的,目的是为了替换每行的表里两种强化。8Dz耐玩游戏网

见MetaUpgradesData.lua下强化:这个MetaUpgradeOrder就是魔镜包含的所有强化,可以看到使用的是一个pair的数据结构(其实我是瞎说的,没学过lua,看的懂就行,了解的大佬欢迎补充),同时MetaUpgradesData下的每一项也是一个pair,要实现同行强化的切换,函数中会通过遍历改行找到第一个与当前使用的强化不同名称的强化,然后用新的强化替换原来的强化。8Dz耐玩游戏网

8Dz耐玩游戏网

那么问题来了, 现在我们想要新增一个强化,比如说我们新增一个增加移速的强化,你会发现是新增强化虽然缺失增加了,但是第一行的背刺强化却消失了。8Dz耐玩游戏网

8Dz耐玩游戏网

问题就在于MetaUpgrades.lua下的函数SwapMetaupgrade中,预设了每行只会出现两种强化,因此每次找到第一个不同类型的强化,就会直接替换原来的强化,因此,每行只能有两种不同类型的强化。8Dz耐玩游戏网

而我们现在希望每行有多个不同的强化,这就需要我们对SwapMetaupgrade函数下的代码进行修改。8Dz耐玩游戏网

这里提供我的一种比较蠢的做法:8Dz耐玩游戏网

遍历一边,标记与当前使用强化相同名称的强化的位置下标,让下标+1(超出上限重置为1)设为nowNum,然后再遍历一边直到下标位置为nowNum,这时替换当前强化。8Dz耐玩游戏网

具体代码:8Dz耐玩游戏网

8Dz耐玩游戏网

ocal metaupgradeData = nil local nowNum = 1 local maxNum = 0 8Dz耐玩游戏网

for i, entryName in pairs(MetaUpgradeOrder[index]) do 8Dz耐玩游戏网

if entryName == upgradeName then 8Dz耐玩游戏网

nowNum = i end 8Dz耐玩游戏网

maxNum = i end 8Dz耐玩游戏网

if maxNum == nowNum then 8Dz耐玩游戏网

nowNum = 1 8Dz耐玩游戏网

else 8Dz耐玩游戏网

nowNum = nowNum + 1 end8Dz耐玩游戏网

for i, entryName in pairs(MetaUpgradeOrder[index]) do 8Dz耐玩游戏网

if nowNum == i then 8Dz耐玩游戏网

metaupgradeData = MetaUpgradeData[entryName] 8Dz耐玩游戏网

GameState.MetaUpgradesSelected[index] = entryName end end8Dz耐玩游戏网

需要注意的是第一张图中注释 清理强化等级的那部分也需要删除(大概),因为我这边的代码没有包含还原等级的部分代码。8Dz耐玩游戏网

在此之后就可以在MetaUpgradesData.lua下添加自己想要的强化了。8Dz耐玩游戏网

制作一个祝福后,可以直接在PropertyChanges里修改需要增加的属性,也可以不填PropertyChanges,而是在其他文件中用GetNumMetaUpgrades("你的强化名字")函数来获取强化等级,据此来实现不同效果。8Dz耐玩游戏网

 8Dz耐玩游戏网

之后只要把祝福的名字填入到MetaUpgradesData.lua下的MetaUpgradeOrder里就行了。8Dz耐玩游戏网

补充说明:8Dz耐玩游戏网

考虑到源码里很多函数作用域都是全局,其实很多操作都可以放在更新不会影响的独立文件里,把需要替换的函数写成装饰器形式,每次更新只要在RoomManager.lua里加一句Import "xxx.lua"就能用了(8Dz耐玩游戏网

比如(感谢提供IsSuperAvailable这个函数)8Dz耐玩游戏网

地狱模式专属热度:8Dz耐玩游戏网

MetaUpgradeData里的NoInvulnerabilityShrineUpgrade,没有无敌时间8Dz耐玩游戏网

把GameStateRequirements这段删掉就可以在普通模式里用了。8Dz耐玩游戏网

AddTraitToHero({ TraitName = 祝福, Rarity = 稀有度 })8Dz耐玩游戏网

祝福可以在LootData里根据掉落进行查找,具体效果在TraitData8Dz耐玩游戏网

稀有度注意t1t2是没有传奇Legendary的,最高到英雄Heroic,而t3只有传奇8Dz耐玩游戏网

例:AddTraitToHero({ TraitName = "RetaliateWeaponTrait", Rarity = "Heroic" })8Dz耐玩游戏网

把这东西放在RunManager里的StartNewRun函数底部可以实现开局进塔尔塔罗斯后获取任意祝福。8Dz耐玩游戏网

三弓合一:8Dz耐玩游戏网

AddTraitToHero({ TraitName = "BowBaseUpgradeTrait", Rarity = "Heroic" })8Dz耐玩游戏网

AddTraitToHero({ TraitName = "BowMarkHomingTrait", Rarity = "Heroic" })8Dz耐玩游戏网

AddTraitToHero({ TraitName = "BowLoadAmmoTrait", Rarity = "Heroic" })8Dz耐玩游戏网

无限钱和刷新:8Dz耐玩游戏网

CurrentRun.NumRerolls = CurrentRun.NumRerolls + 10008Dz耐玩游戏网

CurrentRun.Money = CurrentRun.Money + 999998Dz耐玩游戏网

自测传奇特效:8Dz耐玩游戏网

yX_supper_trait =8Dz耐玩游戏网

{8Dz耐玩游戏网

"ZeusChargedBoltTrait", --闪电裂变8Dz耐玩游戏网

-- "ShieldHitTrait", --圣盾8Dz耐玩游戏网

"DoubleCollisionTrait", --两次撞击8Dz耐玩游戏网

-- "FishingTrait",8Dz耐玩游戏网

"MoreAmmoTrait", --全副武装8Dz耐玩游戏网

"UnstoredAmmoDamageTrait", --当头一棒8Dz耐玩游戏网

"CharmTrait", --魅惑8Dz耐玩游戏网

-- "AresCursedRiftTrait", --战轮伤害加深8Dz耐玩游戏网

"DionysusComboVulnerability", --醉酒伤害加深8Dz耐玩游戏网

"InstantChillKill",8Dz耐玩游戏网

-- "MagnetismTrait", --自动回收8Dz耐玩游戏网

"HermesRushAreaSlow", --冲刺减速8Dz耐玩游戏网

"DionysusAphroditeStackIncreaseTrait", --纵情酒色8Dz耐玩游戏网

-- "AutoRetaliateTrait" --复仇8Dz耐玩游戏网

-- "SlowProjectileTrait" --衰老8Dz耐玩游戏网

}8Dz耐玩游戏网

猜您喜欢(手机端访问请下拉获取更多相关内容):