dybhkc 发表于 2022-2-11 20:43

yxqy 发表于 2022-2-11 18:38
赞美楼主,我又来了。
请问如何修改培训上限?
初、中、高级培训封顶50、70、90 ...

修改培训上限:
Menu_Training_Select.Init(roomScript room_):
在this.FindScripts();
    this.rS_ = room_;这段后面加上:
for (int i = 0; i < this.trainingMaxLearn.Length; i++)
    {
      this.trainingMaxLearn[i = (float)(1000 / (3 - i % 3));
    }
上面就把三级培训上限改为333,500,1000 ,也就是1000的1/3,1/2,1
1000,可以是主属性上限或非主属性上限
由于培训也是调用了Learn,所以即使培训上限高于属性上限也没问题,属性不会超过属性上限
还有,培训完属性可能会高于培训上限一点点,因为只要属性<培训上限就调一次Learn,而learn基础是加1-2

yxqy 发表于 2022-2-11 20:58

本帖最后由 yxqy 于 2022-2-11 21:07 编辑

dybhkc 发表于 2022-2-11 20:43
修改培训上限:
Menu_Training_Select.Init(roomScript room_):
在this.FindScripts();



大佬帮我看看,是哪里不对。
我改的位置

dybhkc 发表于 2022-2-11 21:08

yxqy 发表于 2022-2-11 20:58
大佬帮我看看,是哪里不对。
我改的位置

i右边少了 ]

dybhkc 发表于 2022-2-11 21:09

有时候3dm的评论会吃 ] 中括号

yxqy 发表于 2022-2-11 21:21

dybhkc 发表于 2022-2-11 21:09
有时候3dm的评论会吃 ] 中括号

测试成功啦,谢谢大佬

avprince 发表于 2022-2-13 01:43

机房服务器怎么改?

mmmsss123 发表于 2022-2-13 09:05

问下,贷款的额度怎么修改啊?谢谢!

dybhkc 发表于 2022-2-13 16:21

avprince 发表于 2022-2-13 01:43
机房服务器怎么改?

机房大容量,不用放服务器
roomscript:
        UpdateListInventar():最后加:
                this.serverplatz = int.MaxValue;
如果建多个机房,会导致销量极低,可以改下面的
games:
        sellAllGames():
        在for (int k = 0; k < this.mS_.arrayRooms.Length; k++)
                {
                        if (this.mS_.arrayRooms)
                        {
                                roomScript component = this.mS_.arrayRooms.GetComponent<roomScript>();
                                if (component && component.typ == 15)
                                {
                                        this.freeServerPlatz += component.GetFreeServerplatz();
                                        component.serverplatzUsed = 0;
                                }
                        }
                }后面加:
                this.freeServerPlatz = int.MaxValue;


dybhkc 发表于 2022-2-13 16:30

mmmsss123 发表于 2022-2-13 09:05
问下,贷款的额度怎么修改啊?谢谢!

贷款的额度:
        mainscript:
                GetKreditlimit():最后一句return改成下面:
                        return num + 30000000L; +上你要贷的额度
下面可选:
                init():这是改每项贷款数额显示,直接改
                        this.uiObjects.GetComponent<Text>().text = this.mS_.GetMoney(250000L, true);
                        this.uiObjects.GetComponent<Text>().text = this.mS_.GetMoney(250000L, true);
                        this.uiObjects.GetComponent<Text>().text = this.mS_.GetMoney(500000L, true);
                        this.uiObjects.GetComponent<Text>().text = this.mS_.GetMoney(500000L, true);
                        this.uiObjects.GetComponent<Text>().text = this.mS_.GetMoney(1000000L, true);
                        this.uiObjects.GetComponent<Text>().text = this.mS_.GetMoney(1000000L, true);
                        this.uiObjects.GetComponent<Text>().text = this.mS_.GetMoney(2500000L, true);
                        this.uiObjects.GetComponent<Text>().text = this.mS_.GetMoney(2500000L, true);
下面是每个选项实际贷款数额
                BUTTON_KreditAbzahlen(int i):
                        i*=10;
                BUTTON_KreditAufnehmen(int i):
                        i*=10;
这个参数i好像是固定的,25000,50000。。。不知道哪改,所以改代码
上面改的显示最好和下面对应,比如第一个改成10倍250000,下面两个就*=10(原来是25000)

avprince 发表于 2022-2-13 17:45

IP怎么改?

dybhkc 发表于 2022-2-13 18:07

avprince 发表于 2022-2-13 17:45
IP怎么改?

修改ip相关:
gamescript:
        AddIpPoints(float p):
把这句this.script_mainIP.ipPunkte += p
                改成this.script_mainIP.ipPunkte += p * 5f;
每次增加的ip分变为5倍,想要多少就改这个5

546462284 发表于 2022-2-19 23:31

感谢楼主的教程分享,很有用

新仔2015 发表于 2022-2-21 15:48

:lol能改游戏机初始的造价成本吗,让它每一代都固定299美元就好了,要不和NPC打不起价格战

dybhkc 发表于 2022-2-21 16:13

新仔2015 发表于 2022-2-21 15:48
能改游戏机初始的造价成本吗,让它每一代都固定299美元就好了,要不和NPC打不起价格战 ...

修改游戏机初始造价:
                Menu_Dev_KonsoleComplete.BUTTON_Release() :
在this.pS_.startProduktionskosten = this.pS_.CalcStartProductionsCosts();这一行下面加上:
this.pS_.startProduktionskosten=你想要的初始造价
或者直接把 this.pS_.CalcStartProductionsCosts()改成你想要的初始造价
不过没测试,不知道效果如何

dybhkc 发表于 2022-2-21 16:15

顺带一提:修改游戏机造价:
platformScript.GetAktuellProductionsCosts() :
在return Mathf.RoundToInt(num);上面加上:
num = 0f;
0就是造价

新仔2015 发表于 2022-2-21 17:56

dybhkc 发表于 2022-2-21 16:15
顺带一提:修改游戏机造价:
platformScript.GetAktuellProductionsCosts() :
在return Mathf.RoundToInt( ...

感谢大佬,今晚回去试试:victory:

siye230 发表于 2022-2-24 13:54

dybhkc 发表于 2022-2-8 15:29
注意一点:就是总销售额之类的这些都是先转int型再赋值给long型,所以可能超出范围出现负数情况.处理办法可 ...

没懂....楼主能详细说一下怎么让总销售额不会变成负数吗

新仔2015 发表于 2022-2-25 09:05

:D感谢大佬,很多都实现了,还想问下,游戏机好像有个开发费用,就是查看平台时所有平台都有个开发费用来着?(npc用?),可以改自己主机的开发费用吗?
还有就是,游戏卖太火了,第二周直接负利咋办

dybhkc 发表于 2022-2-25 21:28

本帖最后由 dybhkc 于 2022-2-25 21:46 编辑

siye230 发表于 2022-2-24 13:54
没懂....楼主能详细说一下怎么让总销售额不会变成负数吗
举个例子:
这是游戏里的一段代码:
int num10 = Mathf.RoundToInt(num) * this.verkaufspreis;
    this.mS_.Earn((long)num10, 9);
    this.umsatzTotal += (long)num10;
num是最新一周的销量
num10是新增的一周销售额,num10=销量*售价
但是num10是int类型的,能存的最大值是2*2^31-1也就21亿多,
售价最多两位数,所以销量大于2000万(如果没有改销量之类的,单周销量基本不可能这么高),
num10=销量*售价就可能超过最大值,变成负数
也就是最新一周销售额是负数,那总销售额也会减少

总结:正常情况下不用管,
如果改了销量之类的可能会这样,
把num10这些啥的的类型改成float,long之类的大概就行了,就像int num10 改成 long num10其它地方同理


上面是游戏机相关,不过游戏的也有地方这样的,都差不多

dybhkc 发表于 2022-2-25 21:41

新仔2015 发表于 2022-2-25 09:05
感谢大佬,很多都实现了,还想问下,游戏机好像有个开发费用,就是查看平台时所有平台都有个开发费用来着 ...

开发费用这个没改过,不清楚
至于变负的事,参考上一楼

新仔2015 发表于 2022-2-26 11:48

dybhkc 发表于 2022-2-25 21:41
开发费用这个没改过,不清楚
至于变负的事,参考上一楼

哦哦,好的,谢谢大佬,游戏销售是哪个类,想改下销售量不变负

dybhkc 发表于 2022-2-26 12:28

本帖最后由 dybhkc 于 2022-2-26 12:51 编辑

新仔2015 发表于 2022-2-26 11:48
哦哦,好的,谢谢大佬,游戏销售是哪个类,想改下销售量不变负
游戏gamescript.sellgame()
游戏机platformscript.sellplayer()
游戏的跟上面说的游戏机的稍有不同

比如有这样的:num47 *= (float)Mathf.RoundToInt(num48);
            this.umsatzTotal += (long)Mathf.RoundToInt(num47);num47是销量,float类型的,范围很大,num48是售价之类的
第一句num47变成了销售额,没什么问题,但是下面那句,
把num47转成int再赋值给umsatzTotal ,num47可能超过int最大值,这么一转就变负数了
可以改成this.umsatzTotal += Convert.ToInt64(num47);
直接把num47转成long型,这样大概就行了

不止上面这一处,还有其它地方,而且情况可能不同,具体问题具体分析,看着改就行了,大都是溢出和类型转换的问题

hongyu7998 发表于 2022-2-26 12:46

怎么才能让游戏销量翻倍类似已经发过的主机销量*N的那种改法呢
gamescript.sellgame()里只看到this.playerGame,不知道应该在哪加类似num *= 2f;的语句

hongyu7998 发表于 2022-2-26 12:49

以及...我知道这听起来挺找折腾,但是有办法更改AI对使用玩家引擎/在玩家主机做游戏的倾向吗?感谢

dybhkc 发表于 2022-2-26 13:07

hongyu7998 发表于 2022-2-26 12:46
怎么才能让游戏销量翻倍类似已经发过的主机销量*N的那种改法呢
gamescript.sellgame()里只看到this.playerG ...
gmescript.sellgame()不管是玩家的,还是npc都是在这里,sellsperweek就是最新一周的销量
简单点改可以在每个(单机,网络都不一样的算法)sellsperweek的赋值语句后面加一个sellsperweek*=2
不过npc的也可能受影响,具体的可以自己去看一下它的代码,各种情况,看着改,反正改sellsperweek就行了
因为代码也挺长的,而且反编译后变量名都是num啥的,也不好看,我就没怎么看这个

dybhkc 发表于 2022-2-26 13:18

hongyu7998 发表于 2022-2-26 12:49
以及...我知道这听起来挺找折腾,但是有办法更改AI对使用玩家引擎/在玩家主机做游戏的倾向吗?感谢 ...
理论上都可以改,不过首先你要先找到它在哪,再去理解,再去改,目前我是没整过这个,所以不清楚,
有兴趣的话,你可以自己去翻一翻它的代码,只要看明白它的意思,改起来其实很简单,懂一点c#的语法就行,现学也行

hongyu7998 发表于 2022-2-26 13:40

好的,谢谢

yuxiayou 发表于 2022-2-26 16:51

这个是修改那个文件啊???

dybhkc 发表于 2022-2-26 17:27

yuxiayou 发表于 2022-2-26 16:51
这个是修改那个文件啊???

可以使用dnSpy修改游戏目录下的Mad Games Tycoon 2_Data\Managed\Assembly-CSharp.dll

yuxiayou 发表于 2022-2-26 19:06

dybhkc 发表于 2022-2-26 17:27
可以使用dnSpy修改游戏目录下的Mad Games Tycoon 2_Data\Managed\Assembly-CSharp.dll

好的 谢谢大佬
页: 1 2 3 [4] 5 6 7 8 9 10 11 12 13
查看完整版本: 【修改教程】萌新的小修改教程