丁宝振 发表于 2022-2-13 11:03

记一次steam某挂机游戏破解

在steam上9.9米购买了某挂机游戏,玩了一段时间后发现里面的经验可以兑换潜能,而且所需的经验是呈指数倍数的,是个大坑啊,看了下本地文件是Unity的游戏,以下是修改部分打怪经验倍率的教程
steam浏览本地文件,打开Managed目录打开Assembly-CSharp.dll
找到剿匪


jiaofei



编辑方法
using System;
using LitJson;
using UnityEngine;
using UnityEngine.UI;

// Token: 0x02000014 RID: 20
public partial class jiaofei : MonoBehaviour
{
      // Token: 0x06000076 RID: 118
      public void Enter_zhandoujiemian()
      {
                GameObject.Find("Canvas").transform.Find("zhandoujiemian").transform.Find("batting").GetComponent<Text>().text = "0";
                Saveplayer saveplayer = JsonMapper.ToObject<Saveplayer>(GameObject.Find("loaddata").GetComponent<Text>().text);
                int num = saveplayer.player_level];
                for (int i = 1; i < 5; i++)
                {
                        if (saveplayer.player_level] > num)
                        {
                              num = saveplayer.player_level];
                        }
                }
                if (num >= 10 && saveplayer.player_canzhan.Count > 0)
                {
                        GameObject.Find("Canvas").transform.Find("zhandoujiemian").gameObject.SetActive(true);
                        GameObject.Find("Canvas").transform.Find("shuxingjiemian").gameObject.SetActive(false);
                        GameObject gameObject = GameObject.Find("Main Camera").gameObject;
                        Text component = GameObject.Find("Canvas").transform.Find("zhandoujiemian").transform.Find("earning").transform.Find("timeshow").GetComponent<Text>();
                        Text component2 = GameObject.Find("wupin_earning").GetComponent<Text>();
                        Text component3 = GameObject.Find("money_earning").GetComponent<Text>();
                        Text component5 = GameObject.Find("experience_earning").GetComponent<Text>();
                        component.text = "0:0:0";
                        component2.text = "0";
                        component3.text = "0";
                        component5.text = "0";
                        Text component4 = GameObject.Find("zhandou_level").GetComponent<Text>();
                        Text component6 = GameObject.Find("zhandoubunus").GetComponent<Text>();
                        component6.text = "金钱 200\n";
                        component6.text += "经验 100\n";
                        component6.text += "御兽心得 3";
                        component4.text = num.ToString();
                        Text component7 = GameObject.Find("monster").GetComponent<Text>();
                        component7.text = "匪首Lv." + component4.text + "#普通攻击1,连击3,呼风唤雨3,针锋相对3#15 10 4 4 2 2 1 1#3#3\n";
                        component7.text += "二当家#普通攻击1,连击3,焚魔烈焰3,赏善罚恶3#10 7 3 3 2 2 1 1#2#2\n";
                        component7.text += "三当家#普通攻击1,连击3,焚魔烈焰3,赏善罚恶3#10 7 3 3 2 2 1 1#4#4\n";
                        component7.text += "狗头军师#普通攻击1,连击3,春风化雨3,夺气3#8 5 2 2 2 2 1 1#1#1\n";
                        component7.text += "狗头军师#普通攻击1,连击3,春风化雨3,夺气3#8 5 2 2 2 2 1 1#5#5\n";
                        component7.text += "喽啰#普通攻击1,连击3,赏善罚恶3,涌泉之恨3#4 5 2 2 2 2 1 1#6#10";
                        GameObject.Find("zhandou_type").GetComponent<Text>().text = "0";
                        foreach (string text in component7.text.Split(new char[]
                        {
                              '\n'
                        }))
                        {
                              GameObject.Find("Canvas").transform.Find("zhandoujiemian").GetComponent<zhandou>().zhandoudanyuan_monster(int.Parse(component4.text), text.Split(new char[]
                              {
                                        '#'
                              }), text.Split(new char[]
                              {
                                        '#'
                              }), text.Split(new char[]
                              {
                                        '#'
                              }), int.Parse(text.Split(new char[]
                              {
                                        '#'
                              })), int.Parse(text.Split(new char[]
                              {
                                        '#'
                              })));
                        }
                        GameObject.Find("Canvas").transform.Find("zhandoujiemian").GetComponent<zhandou>().zhandoudanyuan_loading();
                }
      }
}

找到经验金钱部分,全都改成增加一千倍,这样打一次相当于一千次100就改成100000,以此类推
using System;
using LitJson;
using UnityEngine;
using UnityEngine.UI;

// Token: 0x02000014 RID: 20
public partial class jiaofei : MonoBehaviour
{
      // Token: 0x06000076 RID: 118
      public void Enter_zhandoujiemian()
      {
                GameObject.Find("Canvas").transform.Find("zhandoujiemian").transform.Find("batting").GetComponent<Text>().text = "0";
                Saveplayer saveplayer = JsonMapper.ToObject<Saveplayer>(GameObject.Find("loaddata").GetComponent<Text>().text);
                int num = saveplayer.player_level];
                for (int i = 1; i < 5; i++)
                {
                        if (saveplayer.player_level] > num)
                        {
                              num = saveplayer.player_level];
                        }
                }
                if (num >= 10 && saveplayer.player_canzhan.Count > 0)
                {
                        GameObject.Find("Canvas").transform.Find("zhandoujiemian").gameObject.SetActive(true);
                        GameObject.Find("Canvas").transform.Find("shuxingjiemian").gameObject.SetActive(false);
                        GameObject gameObject = GameObject.Find("Main Camera").gameObject;
                        Text component = GameObject.Find("Canvas").transform.Find("zhandoujiemian").transform.Find("earning").transform.Find("timeshow").GetComponent<Text>();
                        Text component2 = GameObject.Find("wupin_earning").GetComponent<Text>();
                        Text component3 = GameObject.Find("money_earning").GetComponent<Text>();
                        Text component5 = GameObject.Find("experience_earning").GetComponent<Text>();
                        component.text = "0:0:0";
                        component2.text = "0";
                        component3.text = "0";
                        component5.text = "0";
                        Text component4 = GameObject.Find("zhandou_level").GetComponent<Text>();
                        Text component6 = GameObject.Find("zhandoubunus").GetComponent<Text>();
                        component6.text = "金钱 200000\n";
                        component6.text += "经验 100000\n";
                        component6.text += "御兽心得 3000";
                        component4.text = num.ToString();
                        Text component7 = GameObject.Find("monster").GetComponent<Text>();
                        component7.text = "匪首Lv." + component4.text + "#普通攻击1,连击3,呼风唤雨3,针锋相对3#15 10 4 4 2 2 1 1#3#3\n";
                        component7.text += "二当家#普通攻击1,连击3,焚魔烈焰3,赏善罚恶3#10 7 3 3 2 2 1 1#2#2\n";
                        component7.text += "三当家#普通攻击1,连击3,焚魔烈焰3,赏善罚恶3#10 7 3 3 2 2 1 1#4#4\n";
                        component7.text += "狗头军师#普通攻击1,连击3,春风化雨3,夺气3#8 5 2 2 2 2 1 1#1#1\n";
                        component7.text += "狗头军师#普通攻击1,连击3,春风化雨3,夺气3#8 5 2 2 2 2 1 1#5#5\n";
                        component7.text += "喽啰#普通攻击1,连击3,赏善罚恶3,涌泉之恨3#4 5 2 2 2 2 1 1#6#10";
                        GameObject.Find("zhandou_type").GetComponent<Text>().text = "0";
                        foreach (string text in component7.text.Split(new char[]
                        {
                              '\n'
                        }))
                        {
                              GameObject.Find("Canvas").transform.Find("zhandoujiemian").GetComponent<zhandou>().zhandoudanyuan_monster(int.Parse(component4.text), text.Split(new char[]
                              {
                                        '#'
                              }), text.Split(new char[]
                              {
                                        '#'
                              }), text.Split(new char[]
                              {
                                        '#'
                              }), int.Parse(text.Split(new char[]
                              {
                                        '#'
                              })), int.Parse(text.Split(new char[]
                              {
                                        '#'
                              })));
                        }
                        GameObject.Find("Canvas").transform.Find("zhandoujiemian").GetComponent<zhandou>().zhandoudanyuan_loading();
                }
      }
}

点击编译保存模块,重启游戏,这项战斗的倍率就变成1000倍啦!

丁宝振 发表于 2022-2-13 11:45

WoShiXXX 发表于 2022-2-13 11:30
贴代码的话最好别用纯文字,看着不舒服,咱论坛有代码框插件的,发帖的时候可以看一下

改好了{:1_899:}有加热心值得吗?

tasty007 发表于 2022-2-16 10:39

膜拜大神,厉害

q20401872 发表于 2022-2-15 08:05

丁宝振 发表于 2022-2-14 20:36
历练改什么?

不用改历练了,历练也无非是经验、钱和装备,昨天试了一下,把剿匪和闯关怪的技能删掉了,全部只能普攻,打起来简单多了

serious_snow 发表于 2022-2-14 09:17

为什么总感觉你只改了个字符串显示,除非其它地方有专门解析component6.text

丁宝振 发表于 2022-2-13 11:06

有什么问题欢迎询问

xtkj 发表于 2022-2-13 11:14

学习了。

Aag阿怪 发表于 2022-2-13 11:25

ii丶BigBreast 发表于 2022-2-13 11:28

叫啥名字这个游戏

WoShiXXX 发表于 2022-2-13 11:30

贴代码的话最好别用纯文字,看着不舒服,咱论坛有代码框插件的,发帖的时候可以看一下

玩机小白丶王 发表于 2022-2-13 11:33

DLL都能改 那直接CE不是更简单

丁宝振 发表于 2022-2-13 11:42

Aag阿怪 发表于 2022-2-13 11:25
啥类型的游戏

挂机的游戏

丁宝振 发表于 2022-2-13 11:43

玩机小白丶王 发表于 2022-2-13 11:33
DLL都能改 那直接CE不是更简单

数据太大了,CE不支持
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: 记一次steam某挂机游戏破解