dybhkc 发表于 2022-2-3 17:09

【修改教程】萌新的小修改教程

本帖最后由 yellowottomany 于 2022-7-26 19:48 编辑

萌新开个贴说一下自己的小修改
**** Hidden Message *****


dybhkc 发表于 2022-2-26 20:51

本帖最后由 dybhkc 于 2022-2-26 21:00 编辑

(方便没修改过的,大佬请无视)修改代码:工具:dnSpy用dnSpy打开游戏目录下的\Mad Games Tycoon 2_Data\Managed\Assembly-CSharp.dll,如下图:下接129楼

dybhkc 发表于 2022-2-3 17:10

合适的子类型组合青色显示:
menu_devgame_genres:
        setdata():
                if (this.genres_.IsGenreCombination(this.mDevGame_.g_GameMainGenre, i) && g != 0)
                        {
                                gameObject.GetComponent<Image>().color = Color.cyan;
                        }
把这个加到这个方法下面的for里面

dybhkc 发表于 2022-2-3 17:13

本帖最后由 dybhkc 于 2022-6-15 17:51 编辑

3直接显示适合的主题Menu_DevGame_Theme类的FitGenre(int theme_)方法

if (num != -1)
      {
                int i = 0;
                while (i < this.games_.arrayGamesScripts.Length)
                {
                        if (this.games_.arrayGamesScripts && this.games_.arrayGamesScripts.spielbericht && this.games_.arrayGamesScripts.maingenre == num && (this.games_.arrayGamesScripts.playerGame || this.games_.arrayGamesScripts.IsMyAuftragsspiel()) && (this.games_.arrayGamesScripts.gameMainTheme == theme_ || this.games_.arrayGamesScripts.gameSubTheme == theme_))
                        {
                              if (this.themes_.IsThemesFitWithGenre(theme_, num))
                              {
                                        return 1;
                              }
                              return -1;
                        }
                        else
                        {
                              i++;
                        }
                }
      }
      return 0;
改成
if (num == -1)
      {
                return 0;
      }
      if (this.themes_.IsThemesFitWithGenre(theme_, num))
      {
                return 1;
      }
      return -1;


dybhkc 发表于 2022-2-3 17:16

本帖最后由 dybhkc 于 2022-6-15 17:51 编辑

4不用创建游戏报告就能自动分配 和 游戏性等四项自动分配
Menu_DevGame.BUTTON_AutoDesignSettings():
先 去除自动分配设计重点限制:
把if (this.g_GameMainGenre != -1 && this.genres_.GetFocusKnown(i, this.g_GameMainGenre, this.g_GameSubGenre))和
if (this.g_GameMainGenre != -1 && this.genres_.GetAlignKnown(j, this.g_GameMainGenre, this.g_GameSubGenre))这两句删了
再在最下面加上游戏性等四项的自动分配:
genres component = this.main_.GetComponent<genres>();
                this.uiObjects.GetComponent<Slider>().value = component.genres_GAMEPLAY/5;
                this.uiObjects.GetComponent<Slider>().value = component.genres_GRAPHIC/5;
                this.uiObjects.GetComponent<Slider>().value = component.genres_SOUND/5;
                this.uiObjects.GetComponent<Slider>().value = component.genres_CONTROL/5;
                SetAP_Gameplay();
                SetAP_Grafik();
                SetAP_Sound();
                SetAP_Technik();

dybhkc 发表于 2022-2-3 17:24

@mmmsss123

mmmsss123 发表于 2022-2-3 20:18

谢谢谢谢!!!!我先试试看

avprince 发表于 2022-2-4 11:44

dybhkc 发表于 2022-2-3 17:10
合适的子类型组合青色显示:
menu_devgame_genres:
        setdata():


大佬,加在哪个派生类型中?

avprince 发表于 2022-2-4 11:47

dybhkc 发表于 2022-2-3 17:16
游戏性,画面这四项自动选择:
Menu_DevGame:
        BUTTON_AutoDesignSettings():


// Menu_DevGame
// Token: 0x04000D1F RID: 3359
public string g_Beschreibung = "";
// Token: 0x04000D22 RID: 3362
public int g_GameZielgruppe = 4;
// Token: 0x04000D27 RID: 3367
public int g_GameLicence = -1;
// Token: 0x04000D28 RID: 3368
public int g_GameEngine = -1;
// Token: 0x04000D2A RID: 3370
public int g_mainIP = -1;
// Token: 0x04000D2B RID: 3371
public int g_originalIP = -1;
// Token: 0x04000D2C RID: 3372
public int g_portIP = -1;
// Token: 0x04000D2D RID: 3373
public int g_teil = 1;
// Token: 0x04000D30 RID: 3376
public int g_GameCopyProtect = -1;
// Token: 0x04000D32 RID: 3378
public int g_GameAntiCheat = -1;
// Token: 0x04000D5C RID: 3420
private string orignal_name = "";
// Token: 0x04000D5F RID: 3423
private string searchStringA = "";
// Token: 0x06000910 RID: 2320 RVA: 0x0006405C File Offset: 0x0006225C
public Menu_DevGame()
{
}
显示主题条件是哪个?

dybhkc 发表于 2022-2-4 11:59

avprince 发表于 2022-2-4 11:44
大佬,加在哪个派生类型中?

这个可以把那个updategui()方法里面的东西都删了,再把这段加上去

dybhkc 发表于 2022-2-4 12:00

avprince 发表于 2022-2-4 11:44
大佬,加在哪个派生类型中?

不是,刚才看错了

dybhkc 发表于 2022-2-4 12:02

avprince 发表于 2022-2-4 11:44
大佬,加在哪个派生类型中?

setdata最下面有个for循环,加到for里最下面的if下面

dybhkc 发表于 2022-2-4 12:03

avprince 发表于 2022-2-4 11:44
大佬,加在哪个派生类型中?

setdata最下面有个for循环,加到for里最下面的if

dybhkc 发表于 2022-2-4 12:21

下午细

dybhkc 发表于 2022-2-4 12:22

dybhkc 发表于 2022-2-4 12:21
下午细

下午细说

dybhkc 发表于 2022-2-4 13:44

现在细说
首先,基于2022.1.17版本修改,但其它版本相差应该不大,毕竟是基本玩法,大概也能用。真实补丁什么的应该也能套用(没玩过,不能的话请无视)

dybhkc 发表于 2022-2-4 13:48

1.目标人群青色显示
menu_devgame_zielgruppe这个类的
        updateUI()方法
把这段删了:
this.uiObjects.GetComponent<Image>().color = Color.white;
        this.uiObjects.GetComponent<Image>().color = Color.white;
        this.uiObjects.GetComponent<Image>().color = Color.white;
        this.uiObjects.GetComponent<Image>().color = Color.white;
        this.uiObjects.GetComponent<Image>().color = Color.white;

换成这段:
genres component = this.main_.GetComponent<genres>();
                for (int i = 0; i < 5; i++)
                {
                        this.uiObjects.GetComponent<Image>().color = (component.genres_TARGETGROUP ? Color.cyan : Color.white);
                }

dybhkc 发表于 2022-2-4 13:50

2.合适的子类型组合青色显示:
menu_devgame_genres:这个类的
        setdata():方法

if (i == this.mDevGame_.g_GameSubGenre || i == this.mDevGame_.g_GameMainGenre)
                        {
                                gameObject.GetComponent<Button>().interactable = false;
                        }
在这段下面加上:
if (this.genres_.IsGenreCombination(this.mDevGame_.g_GameMainGenre, i) && g != 0)
                        {
                                gameObject.GetComponent<Image>().color = Color.cyan;
                        }

dybhkc 发表于 2022-2-4 13:54

本帖最后由 dybhkc 于 2022-2-4 18:45 编辑

3.去除自动分配设计重点限制
Menu_DevGame类的BUTTON_AutoDesignSettings()方法
把if (this.g_GameMainGenre != -1 && this.genres_.GetFocusKnown(i, this.g_GameMainGenre, this.g_GameSubGenre))和
if (this.g_GameMainGenre != -1 && this.genres_.GetAlignKnown(j, this.g_GameMainGenre, this.g_GameSubGenre))这两句删了,大括号里的别删嗷

dybhkc 发表于 2022-2-4 13:56

4游戏性,画面这四项自动选择:
还是上面那里,在this.UpdateDesignSettings();上面加上:
genres component = this.main_.GetComponent<genres>();
        this.uiObjects.GetComponent<Slider>().value = component.genres_GAMEPLAY / 5f;
        this.uiObjects.GetComponent<Slider>().value = component.genres_GRAPHIC / 5f;
        this.uiObjects.GetComponent<Slider>().value = component.genres_SOUND / 5f;
        this.uiObjects.GetComponent<Slider>().value = component.genres_CONTROL / 5f;
        this.SetAP_Gameplay();
        this.SetAP_Grafik();
        this.SetAP_Sound();
        this.SetAP_Technik();

dybhkc 发表于 2022-2-4 14:06

本帖最后由 dybhkc 于 2022-2-4 19:39 编辑

写完了,一些基本的修改,仅供参考,虽然也没人看

avprince 发表于 2022-2-4 17:36

dybhkc 发表于 2022-2-4 13:48
1.目标人群青色显示
menu_devgame_zielgruppe这个类的
        updateUI()方法


亲测有效!!!

avprince 发表于 2022-2-4 17:48

dybhkc 发表于 2022-2-4 13:50
2.合适的子类型组合青色显示:
menu_devgame_genres:这个类的
        setdata():方法


亲测有效!!!

dybhkc 发表于 2022-2-4 18:05

肯定有效啊,都在我另一个贴子里的修改文件用过的

avprince 发表于 2022-2-4 18:11

大佬有新技能还望分享,很强!!!

avprince 发表于 2022-2-4 18:27

dybhkc 发表于 2022-2-4 13:54
3.直接显示适合的主题
Menu_DevGame类的BUTTON_AutoDesignSettings()方法
把if (this.g_GameMainGenre != - ...

这条好像无法显示适合的主题,适合主题颜色会变青色吗?好像是和设计点有关!

avprince 发表于 2022-2-4 18:30

本帖最后由 avprince 于 2022-2-4 18:33 编辑

如果任何制作都做到极致 你会发现 游戏评分大多都是98分 这是因为程序就已经规定了 如果游戏超过98分 99 100完全4% 2%概率问题 所以如果想增多点99 100评分改法如下
目录GAMESCRIPT 关键词Review CalcReview
方法public void CalcReview(bool entwicklungsbericht) 1867行左右 AI和玩家的共用代码段
if (num6 >= 98f)
                {
                        num6 = 98f;
                        if (global::UnityEngine.Random.Range(0, 25) == 1)
                        {
                              num6 = 99f;
                        }
                        if (global::UnityEngine.Random.Range(0, 50) == 1)
                        {
                              num6 = 100f;
                        }
                }
if (num6 >= 98f)NUM6就是总评分 判定如果超过或者等于98分 则是从0-25 0-50里面随机一个数等于1 1/25 1/50 概率 所以在这段程序里面加上后面的红色代码 让游戏99和满分概率增加
if (num6 >= 98f)
      {
            num6 = 98f;
            if (global::UnityEngine.Random.Range(0, 25) == 1)
            {
                num6 = 99f;
            }
            if (global::UnityEngine.Random.Range(0, 50) == 1)
            {
                num6 = 100f;
            }
            if (this.playerGame)
            {
                if (global::UnityEngine.Random.Range(0, 10) > 5)
                {
                  num6 = 99f;
                }
                if (global::UnityEngine.Random.Range(0, 10) > 5)
                {
                  num6 = 100f;
                }
            }
      }

0-10随机抽出大于5的概率 5/10
想要多少概率可以自己改>后面的数字
!!!这条代码应该怎么修改让我超过95分就直接是100分!电脑要随机!!!

dybhkc 发表于 2022-2-4 18:44

avprince 发表于 2022-2-4 18:27
这条好像无法显示适合的主题,适合主题颜色会变青色吗?好像是和设计点有关!
...

是我写错了,这个是去除自动分配设计重点限制的

dybhkc 发表于 2022-2-4 19:01

5.直接显示合适的主题
Menu_DevGame_Theme类的FitGenre(int theme_)方法

if (num != -1)
        {
                int i = 0;
                while (i < this.games_.arrayGamesScripts.Length)
                {
                        if (this.games_.arrayGamesScripts && this.games_.arrayGamesScripts.spielbericht && this.games_.arrayGamesScripts.maingenre == num && (this.games_.arrayGamesScripts.playerGame || this.games_.arrayGamesScripts.IsMyAuftragsspiel()) && (this.games_.arrayGamesScripts.gameMainTheme == theme_ || this.games_.arrayGamesScripts.gameSubTheme == theme_))
                        {
                                if (this.themes_.IsThemesFitWithGenre(theme_, num))
                                {
                                        return 1;
                                }
                                return -1;
                        }
                        else
                        {
                                i++;
                        }
                }
        }
        return 0;
改成
if (num == -1)
        {
                return 0;
        }
        if (this.themes_.IsThemesFitWithGenre(theme_, num))
        {
                return 1;
        }
        return -1;
实际上就是把条件删了

dybhkc 发表于 2022-2-4 19:04

avprince 发表于 2022-2-4 18:30
如果任何制作都做到极致 你会发现 游戏评分大多都是98分 这是因为程序就已经规定了 如果游戏超过98分 99 10 ...

改个锤子,直接删了

if (num6 >= 98f)
    {
      num6 = 98f;
      if (UnityEngine.Random.Range(0, 25) == 1)
      {
            num6 = 99f;
      }
      if (UnityEngine.Random.Range(0, 50) == 1)
      {
            num6 = 100f;
      }
    }
    if (num2 >= 98f)
    {
      num2 = 98f;
      if (UnityEngine.Random.Range(0, 10) == 1)
      {
            num2 = 99f;
      }
      if (UnityEngine.Random.Range(0, 25) == 1)
      {
            num2 = 100f;
      }
    }
    if (num3 >= 98f)
    {
      num3 = 98f;
      if (UnityEngine.Random.Range(0, 10) == 1)
      {
            num3 = 99f;
      }
      if (UnityEngine.Random.Range(0, 25) == 1)
      {
            num3 = 100f;
      }
    }
    if (num4 >= 98f)
    {
      num4 = 98f;
      if (UnityEngine.Random.Range(0, 10) == 1)
      {
            num4 = 99f;
      }
      if (UnityEngine.Random.Range(0, 25) == 1)
      {
            num4 = 100f;
      }
    }
    if (num5 >= 98f)
    {
      num5 = 98f;
      if (UnityEngine.Random.Range(0, 10) == 1)
      {
            num5 = 99f;
      }
      if (UnityEngine.Random.Range(0, 25) == 1)
      {
            num5 = 100f;
      }
    }
这些全删了就行

dybhkc 发表于 2022-2-4 19:05

该多少分多少分,后面有超100分的限制
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 【修改教程】萌新的小修改教程