游戏狂人
 
- 贡献度
- 15
- 金元
- 15370
- 积分
- 1597
- 精华
- 0
- 注册时间
- 2010-9-13
|
本帖最后由 feiyu_wind 于 2025-1-5 23:03 编辑
1.0.13没找到修改器,所以自己用dnspy改了下。1、修改文件:Arms.Evolution.ZOMBIE.DESTROYER.v1.0.13-P2P\Zombie Destroyer_Data\Managed\Assembly-CSharp.dll
覆盖前请注意备份。
修改工具dnSpy,请用x64版本
2、修改方法,附件主要修改了以下内容,如何修改的,可以对比自己的文件和附件文件中的内容。
类PlayerDataManager
public static void AddEN(int cost)能量增加,修改倍率
public static void AddAI(float cost)心智点数增加,修改倍率
public static void init()每场战斗初始化数据,每秒增加数据的基础值在这里可以改
类GunData
public bool AddExp(float _exp)武器经验增加,修改数值
public float chargeTime武器装弹时间。/100倍,加快一百倍
public int maxLv武器最大等级
public bool UpLv(bool isAddLvCost = true)武器升级时候增加的升级点数,*500倍
public int rank武器等级,重置武器等级最高
类GunData.LevelData
public int rank武器升级技能等级
类UI_TENAsset
public void AddTEN(int v, string msg)终端能量*1000倍
类ChipDataManager
public static ChipData GetRandChip(int rank)外部数据的等级,锁定为rank5
类LinkerData
public LinkAttrData(int slot)用IL指令修改Rank,link car的等级锁定为rank5
其他的,例如星图等级,card等级暂时没找到地方,上面的修改基本也够用了。
为了回复网友,我在1.0.14上重新测试了修改
PlayerDataManager类
1、AddEN
public static void AddEN(int cost)
{
if (cost > 0)
{
PlayerDataManager.en += (long)cost * 100L;
}
else
{
PlayerDataManager.en += (long)cost;
}
if (PlayerDataManager.en < 0L)
{
PlayerDataManager.en = 0L;
}
PlayerDataManager.tempEN = PlayerDataManager.en;
}
2、AddAI
public static void AddAI(float cost)
{
if (cost > 0f)
{
PlayerDataManager.aiCost += cost * 100f;
}
else
{
PlayerDataManager.aiCost += cost;
}
PlayerDataManager.tempAICost = PlayerDataManager.aiCost;
}
3、init
public static void init()
{
PlayerDataManager.gunSecExp = 100f;
PlayerDataManager.enCostEXPlus += TechnologySaveDataManager.GetTechData(60);
PlayerDataManager.aiCostEXPlus += TechnologySaveDataManager.GetTechData(61);
PlayerDataManager.aiCostEXPlus += MemoryCardSaveData.GetEffectData("SEC_AI_COST");
PlayerDataManager.gunSecExp += TechnologySaveDataManager.GetTechData(62) + 100f;
PlayerDataManager.gunSecExp += MemoryCardSaveData.GetEffectData("SEC_EXP") + 100f;
PlayerDataManager.secHpHeal += TechnologySaveDataManager.GetTechData(68) + 100f;
PlayerDataManager.secHpHeal += MemoryCardSaveData.GetEffectData("SEC_HP_HEAL") + 100f;
}
4、AddExp
public static void AddExp(long exp)
{
PlayerDataManager.floatEXP += (float)exp * 100f * (TechnologySaveDataManager.GetTechData(66) + MemoryCardSaveData.GetEffectData("PLAYER_EXP"));
}
GunData类
5、maxLv
public int maxLv
{
get
{
return 500 + this.rank * 2 + this.plusMaxLV + this.baseLv + num + this.techLv + this.cardLv + this.typeLv * 5;
}
}
6、UpLv,需要用IL指令
if (isAddLvCost)
{
PlayerDataManager.lvCost += 500;
float num = TechnologySaveDataManager.GetTechData(56) + MemoryCardSaveData.GetEffectData("GUN_UP_LV_COST");
PlayerDataManager.lvCost += (int)num;
num -= (float)((int)num);
if ((float)Random.Range(0, 100) <= num * 100f)
{
PlayerDataManager.lvCost++;
}
}
7、rank,get_rank()
public int get_rank()
{
if (this.data.rank <= 4)
{
this.data.rank = 4;
}
return this.data.rank;
}上面这种改法,会导致打完一盘后第二盘需要退出重开。也可以用下面的改法(附件dll中为上面的,请自行修改)
public int get_rank()
{
if (this.data.rank < 4 && this.data.rank >= 0)
{
return 4;
}
return this.data.rank;
}
8、GunData.LevelData类rank
public int rank
{
get
{
return this._rank.data;
}
set
{
if (value >= 4)
{
this._rank.data = value;
return;
}
this._rank.data = 4;
}
}
GunData类
9、chargeTime:GunData.chargeTime,子弹重载时间,不是在BulletData类,之前搞错了
public float chargeTime
{
get
{
float num = this.bulletData._chargeTime;
float chargeTimePct = this.chargeTimePct;
num *= chargeTimePct / 100f;
if (this.gunType == 2 && num < 0.5f)
{
num = 0.5f;
}
if (num < 0.1f)
{
num = 0.1f;
}
return num;
}
}
UI_TENAsset类
10、AddTEN
public void AddTEN(int v, string msg)
{
this.ten += v * 10000;
PlayerSaveData.body.tCost += (long)v;
this.assetText.text = "<sprite name=\"TCOST\">" + this.ten.ToString();
if (msg != "")
{
TextMeshProUGUI[] array = this.msgText;
for (int i = 0; i < array.Length; i++)
{
array.text = msg + v.ToString();
}
base.gameObject.GetComponent<Animation>().Play("TEN_ADD_ASSET_SHOW");
}
}
LinkerData类
11、public LinkAttrData(int slot),这个是记忆卡里面的link
需要IL指令把
27 003D ldarg.0
28 003E ldloc.1
29 003F ldloc.0
30 0040 ldc.i4.1
31 0041 call class [netstandard]System.Collections.Generic.List`1<!!0> MyMathf::GetRandVByRates<int32>(class [netstandard]System.Collections.Generic.List`1<!!0>, class [netstandard]System.Collections.Generic.List`1<float32>, int32)
32 0046 ldc.i4.0
33 0047 callvirt instance !0 class [netstandard]System.Collections.Generic.List`1<int32>::get_Item(int32)
34 004C stfld int32 LinkerData/LinkAttrData::rank
改成
27 003D ldarg.0
28 003E ldc.i4.4
29 003F stfld int32 LinkerData/LinkAttrData::rank
12、结算能量(点星云那个)
UI_TENAsset类,100倍
public void AddTEN(int v, string msg)
{
this.ten += v * 10000;
PlayerSaveData.body.tCost += (long)v * 100;
}
系统有检查作弊的,我初步看了一下,主要是跟这个ten关联,(我初步看了一下,不一定准确)
为了避免作弊被查出来,可以改这里
SCA_SkyBoxRoate类,需要用IL指令把ldc.i4.1改成ldc.i4.0就行
private void Start()
{
if (PlayerSaveData.body.tCost != 0L && PlayerSaveData.body.tCost - num >= 300000L)
{
string text = "DIS:" + (num - PlayerSaveData.body.tCost).ToString() + "|";
text = text + num.ToString() + "|" + PlayerSaveData.body.tCost.ToString();
PlayerSaveData.body.isCheater = false;
PlayerSaveData.body.cheaterLog = "GameManager.tempV|" + text + "|" + UI_Ver.ver;
Debug.LogError("CHEATER");
}
注:这个结算修改不在dll中,避免不需要的朋友不小心被标记作弊
13、武器的云图技能倍率
CloadMapNode类,通过IL指令,修改的10倍基础倍率(红色),不要改太大,否则随便点一下云图,dpm就几万亿了
public void UpAttrBase()
{
this.attrV = this.data.attrV;
this.attrV *= 10f + (float)(this.rank - this.data.minRank) * this.data.rankRate;
if (this.subData == null && this.id != 6 && this.id != 9)
{
this.attrV *= (float)this.actRate;
}
14、武器的云图的点数
UI_CloudMap类,改成每次使用减少1点(而不是减少倍率,也可以直接删除--,这样就是无限点数)
public void SetNode(Transform child, CloudMapNode data, bool isShow, bool isAct, bool isForbid)
{
if (this.gunData.cloudMapCost >= this.cloudMap.actRate)
{
this.gunData.cloudMapCost--;
this.cloudMap.ActNode(data);
this.UpView();
return;
}
|
评分
-
1
查看全部评分
-
|