半神吧 关注:1,823贴子:7,721

半神1.3版修改秘诀

只看楼主收藏回复

众所周知,半神1.2之前的版本可以把dgdata.zip解压到bindata目录,
然后可以很方便的进行修改。只是升级到1.2,1.3之后,这个方法不行了。
找不到dgdata.zip,游戏就无法进行。直接修改dgdata.zip之后也会报错。
看上去好像是不能修改了,实则不然,我经过实验发现了其秘密所在。
现把经验分享给大家:
1,我们用winrar打开dgdata.zip文件,查看信息,会发现压缩比是100%
即是说【压缩方式是“存储”,不经任何压缩,仅仅是打包】。
所以我们修改完重新进行压缩的时候仍然要选择“存储”方式。
2,也是最重要的一点,【修改任何一个文件不要改变其字节的大小。】
我原先以为是加了md5验证,后来发现不是那么回事,仅仅是加了字节验证。
也就是说,只要文件大小改变了游戏就报错。只要保持字节不变,可随便改。
这样我们修改的时候就必须注意,如果增加了几个字节就要相应的删除几个字节。
(可以选择删除注释部分,不影响游戏数据,#号后面的所有字符均为注释)
同样的,如果我们删减了字节,就要相应的增加同等的字节。
(同样可以加在注释里,#号后面的所有字符均为注释)
举个例子:
修改黑炬魔神“霜冻新星”的冻结时间,1级原来是普通单位冻结6秒,半神1秒
我们把他改成统一冻结10秒。
解压出dgdata.zip\units\heroes\HEMA01\HEMA01_Abilities.lua文件
先记下它的字节数是113,635

用文本编辑器打开,找到# Frost Nova I ,
这是霜冻新星1级代码的开始注释。
往下找到
Buffs = {
BuffBlueprint {
Name = *HEMA01FrostNova01*,
DisplayName = *<LOC ABILITY_HEMA01_0047>Frost Nova*,
Description = *<LOC ABILITY_HEMA01_0048>Frozen.*,
BuffType = *FREEZESTRUCTURE*,
Debuff = true,
CanBeDispelled = true,
EntityCategory = *ALLUNITS - HERO - UNTARGETABLE*,
Stacks = *REPLACE*,
Duration = 6,(这是普通单位冻结时间,单位是秒)
TriggersStunImmune = true,
Affects = {
Freeze = {Add = 0},
},
Icon = */dgtorchbearer/NewTorchBearFrostNova01*,
},
BuffBlueprint {
Name = *HEMA01FrostNova01Hero*,
DisplayName = *<LOC ABILITY_HEMA01_0047>Frost Nova*,
Description = *<LOC ABILITY_HEMA01_0048>Frozen.*,
BuffType = *FREEZEUNIT*,
Debuff = true,
CanBeDispelled = true,
EntityCategory = *HERO*,
Stacks = *REPLACE*,
Duration = 1,(这是半神冻结时间)
把我加注释的位置前面的6和1改成你想要的任意时间,比如10
(太变态就不好玩了,你要一下冻结3分钟,那别人别玩了)
改完之后保存一下,如果是带字节统计的编辑器你会直接看到字节数变成了113,637
因为你6,1都变成了两位数,增加了2个字节。
所以你要删除本文件里任意位置的2个#后面的符号(前面说了#是注释符号)
比如这里:
#######################################################################
# Frost Nova I
#######################################################################
后面的大串#号都是可以删减或增加凑字节数的。
然后保存之后,压缩回dgdata.zip
注意!!!压缩的时候选存储模式!

大功告成,进游戏体验一下就可以了。
修改前一定要备份一个dgdata.zip文件啊,否则改坏了你就麻烦了。
我讲完了,希望能帮到大家。
最后,求加精!


IP属地:山东1楼2014-10-09 09:22回复
    楼主是个大好人......


    IP属地:重庆2楼2014-10-10 21:56
    回复
      吧主求加精@半神


      来自Android客户端3楼2014-10-12 17:25
      回复
        技术贴顶


        IP属地:山东来自Android客户端4楼2014-10-15 11:23
        回复
          赞\(≥▽≤)/


          IP属地:云南来自Android客户端5楼2014-10-16 12:11
          回复
            楼主试验好了没?和之前一样需要解压后修改,还是直接修改dgdata.zip里的文件?我按照你说的方法试了一下,文件大小没变。但是crc32不一样……还是不能玩


            6楼2014-10-26 02:25
            回复
              这个是我修改后的,字节大小都一样,但是crc32值不一样……

              这个是原来的

              修改后运行还是出错……


              7楼2014-10-26 02:57
              回复
                @堕·珑 @ 堕·珑 看见了麻烦回一声


                8楼2014-10-26 02:58
                回复

                  我试过了,这个文件里有特殊字符,直接用普通文本编辑器会丢失这个特殊字符,
                  所以要么找到可编辑这种字符的对应语言的软件,要么用2进制方式编辑。


                  IP属地:山东10楼2014-10-26 13:34
                  回复
                    我是想修改初始金币的,但是修改完总出错……


                    11楼2014-10-26 23:21
                    回复
                      StartingGold = {
                      Normal = 100000,
                      High = 750000,
                      Rich = 2500000,
                      }
                      初始金币想都修改为100倍……结果一直出错。你看下行不行。@堕·珑


                      12楼2014-10-26 23:26
                      回复
                        这个文件还真改不了,我试了,可能有别的验证。
                        我现在已经不怎么玩这个游戏了,也没时间继续研究了。
                        别改它了,其实你只要改一下个别道具的价格和属性就相当逆天了,别改钱了。


                        IP属地:山东13楼2014-10-27 08:45
                        回复
                          好吧,……关键是你只改装备或技能属性的话,电脑选择这个英雄或物品也起作用……


                          14楼2014-10-28 17:51
                          收起回复
                            这是Achievement_Items.lua神眷物品我修改的文件里钻石吊坠的代码,你试下。
                            #################################################################################################
                            # Diamond Pendant
                            #################################################################################################
                            ItemBlueprint {
                            Name = *AchievementCooldown*,
                            DisplayName = *<LOC ITEM_Achievement_0008>Diamond Pendant*,
                            Tooltip = {
                            Bonuses = {
                            *<LOC ITEM_Glove_0003>+[GetAttackSpeedBonus]% Attack Speed*,
                            *<LOC ITEM_Artifact_0100>+[GetMovementBonus]% Movement Speed*,
                            *<LOC ITEM_Boot_0013>+[GetDodgeBonus]% Dodge*,
                            *<LOC ITEM_Helm_0001>+[GetManaBonus] Mana*,
                            *<LOC ITEM_Achievement_0009>[GetCooldownBonus]% to ability cooldowns*,
                            },
                            },
                            GetAttackSpeedBonus = function(self) return math.floor( Buffs[*Item_Artifact_130*].Affects.RateOfFire.Mult * 100 ) end,
                            GetMovementBonus = function(self) return math.floor( Buffs[*Item_Artifact_130*].Affects.MoveMult.Mult * 100 ) end,
                            GetDodgeBonus = function(self) return Buffs[*Item_Artifact_130*].Affects.Evasion.Add end,
                            GetManaBonus = function(self) return Buffs[*AchievementCooldown*].Affects.MaxEnergy.Add end,
                            GetCooldownBonus = function(self) return math.floor( Buffs[*AchievementCooldown*].Affects.Cooldown.Mult * 100 ) end,
                            Mesh = */meshes/items/chest/chest_mesh*,
                            Animation = */meshes/items/chest/Animations/chest_Idle_anim.gr2*,
                            MeshScale = 0.10,
                            Icon = */NewIcons/AchievementRewards/DiamondEncrustedPendant*,
                            InventoryType = *Achievement*,
                            Abilities = {
                            AbilityBlueprint {
                            Name = *AchievementCooldown*,
                            AbilityType = *Quiet*,
                            Icon = */NewIcons/AchievementRewards/DiamondEncrustedPendant*,
                            FromItem = *AchievementCooldown*,
                            Buffs = {
                            BuffBlueprint {
                            Name = *AchievementCooldown*,
                            BuffType = *ACHIEVEMENTCOOLDOWN*,
                            Debuff = false,
                            EntityCategory = *ALLUNITS*,
                            Stacks = *ALWAYS*,
                            Duration = -1,
                            Affects = {
                            RateOfFire = {Mult = .50},
                            MoveMult = {Mult = 0.50},
                            Evasion = {Add = 20},
                            Cooldown = {Mult = -0.50},
                            MaxEnergy = {Add = 55000, AdjustEnergy = true},
                            },
                            }
                            },
                            }
                            },
                            }
                            括号不要丢了,注意字节数


                            IP属地:山东15楼2014-10-30 11:06
                            收起回复
                              好的,晚上回去试一下


                              来自手机贴吧16楼2014-10-30 12:49
                              回复