hongyu7998
发表于 2022-3-1 19:18
本帖最后由 hongyu7998 于 2022-3-2 10:06 编辑
我自己搞错了,抱歉,又没找到删回复的地方
yuxiayou
发表于 2022-3-3 13:46
dybhkc 发表于 2022-2-8 19:33
就是characterScript类的GetWorkSpeed()方法
if (this.krank > 0)
{
更新后这个用不了啊 大佬
yuxiayou
发表于 2022-3-3 13:47
dybhkc 发表于 2022-2-8 22:47
呃。。这个我没改过
不过要改游戏库存的话可以这样:
在gamescript:
这个也用不了
yuxiayou
发表于 2022-3-3 13:58
dybhkc 发表于 2022-2-3 17:10
合适的子类型组合青色显示:
menu_devgame_genres:
setdata():
这也不行啦
yuxiayou
发表于 2022-3-3 14:01
dybhkc 发表于 2022-2-4 13:56
4游戏性,画面这四项自动选择:
还是上面那里,在this.UpdateDesignSettings();上面加上:
genres componen ...
这个也不行啦
yuxiayou
发表于 2022-3-3 14:27
主题和工作速度都不管用了
无尽的遐想
发表于 2022-3-3 18:33
主题还能用
工资失效了
培训室上限也失效了
546462284
发表于 2022-3-5 09:33
求大佬更新
新仔2015
发表于 2022-3-6 13:32
:(能改掌机硬件的出现时间吗,掌机的光盘屏幕那些总是比主机的慢,技术等级差太多了
dybhkc
发表于 2022-3-6 17:27
最近没啥时间,没怎么看,好像更新了?有的不能用了吗?
dybhkc
发表于 2022-3-6 17:33
新仔2015 发表于 2022-3-6 13:32
能改掌机硬件的出现时间吗,掌机的光盘屏幕那些总是比主机的慢,技术等级差太多了 ...
这个要改文件,游戏目录\Mad Games Tycoon 2_Data\Extern\Text\DATA\Hardware.txt
比如:
0
0
1 Mhz CPU
1 Mhz CPU
1 Mhz İşlemciCPU de 1 MhzCPU de 1 Mhz1 Mhz CPU1 Mhz 处理器1 Mhz 處理器CPU 1 MhzCPU 1 MhzProcesor 1 MhzJAN 197600400000
date是时间 格式就 缩写空格年份price价格,cost花费1注意:别乱动格式比如换行什么的,好像就是用换行分隔数据的
要新档才有用,老档的话这些数据都在存档里,当然改存档也是可以的,我改过,不过比较麻烦
新仔2015
发表于 2022-3-6 17:40
dybhkc 发表于 2022-3-6 17:33
这个要改文件,游戏目录\Mad Games Tycoon 2_Data\Extern\Text\DATA\Hardware.txt
比如:
0
:victory:感谢大佬
dybhkc
发表于 2022-3-6 17:41
yuxiayou 发表于 2022-3-3 14:27
主题和工作速度都不管用了
具体啥情况
dybhkc
发表于 2022-3-6 17:42
无尽的遐想 发表于 2022-3-3 18:33
主题还能用
工资失效了
培训室上限也失效了
具体啥情况
dybhkc
发表于 2022-3-6 17:42
546462284 发表于 2022-3-5 09:33
求大佬更新
更新啥,具体啥情况
无尽的遐想
发表于 2022-3-6 20:13
dybhkc 发表于 2022-3-6 17:42
具体啥情况
又试了一下 工资失效了 现在通过减少上面的数值可以基本达到效果 其他的都可以用
dybhkc
发表于 2022-3-6 21:22
无尽的遐想 发表于 2022-3-6 20:13
又试了一下 工资失效了 现在通过减少上面的数值可以基本达到效果 其他的都可以用
...
刚刚拿3.2的测了一下,return 0的话实际工资为0,说明实际工资的修改是有效的
不过人才市场倒是显示有工资,要是说这个的话,可以去改charArbeitsmarkt.GetGehalt()这个方法
和员工那个一样的改法
恋上六弦琴
发表于 2022-3-11 18:45
员工的特性改不了
dybhkc
发表于 2022-3-11 20:14
恋上六弦琴 发表于 2022-3-11 18:45
员工的特性改不了
刚用3.02版本的测了下,好像没问题,就是特性数量超过一行会导致“人才市场”里信息显示出问题,
实际上是没有问题的,而且3.02的创建员工的代码和1.17的一样,没变
要不你看看是不是哪里改错了
新仔2015
发表于 2022-3-12 01:00
大佬手残改了data/txt主机的类型,手柄类型那里加了和WII一样的功能然后游戏不能开发了,这个运动器材通过修改存档还能删掉吗?或者这个运动器材怎么加进去,是这个运动镜头?还是啥除了这个我其他功能都有了,或者dll能去掉必要的功能条件吗:D,笑死了
dybhkc
发表于 2022-3-12 10:41
新仔2015 发表于 2022-3-12 01:00
大佬手残改了data/txt主机的类型,手柄类型那里加了和WII一样的功能然后游戏不能开发了,这个运动器材通过 ...
你这情况大概有3种办法:
1.存档里去掉"运动器材"限制
2.存档里把"运动器材"研究时间提前
但这两种都要改存档,比较麻烦
因为存档是这样的:
所以选第三种:
3.去除开发时的限制:
去除游戏机必需功能限制:
menu_devgame.button_start():
把下面的删除
if (component2.needFeatures != -1 && !this.g_GameGameplayFeatures])
{
text = string.Concat(new string[]
{
text,
component2.GetName(),
": ",
this.gF_.GetName(component2.needFeatures),
"\n"
});
}
if (component2.needFeatures != -1 && !this.g_GameGameplayFeatures])
{
text = string.Concat(new string[]
{
text,
component2.GetName(),
": ",
this.gF_.GetName(component2.needFeatures),
"\n"
});
}
if (component2.needFeatures != -1 && !this.g_GameGameplayFeatures])
{
text = string.Concat(new string[]
{
text,
component2.GetName(),
": ",
this.gF_.GetName(component2.needFeatures),
"\n"
});
}
另外从上面看似乎必需的游戏功能最多只能有三个,多了不会检查
新仔2015
发表于 2022-3-12 12:01
dybhkc 发表于 2022-3-12 10:41
你这情况大概有3种办法:
1.存档里去掉"运动器材"限制
2.存档里把"运动器材"研究时间提前
开发主机前有多存了档,想通过档来改下是不是加上运动镜头就可以的,但是看了下存档太乱了,还是改代码吧。谢谢大佬:victory:
dybhkc
发表于 2022-3-12 18:17
hongyu7998 发表于 2022-2-26 12:49
以及...我知道这听起来挺找折腾,但是有办法更改AI对使用玩家引擎/在玩家主机做游戏的倾向吗?感谢 ...
突然看见了一个类publisherscript,找到了ai做游戏的相关逻辑,楼下分析
dybhkc
发表于 2022-3-12 18:33
分析的版本是3.02,也就是更了子公司的版本
publisherScript.CreateNewGame2(bool forceContractGame)这个是ai做游戏的
约46行gameScript gameScript = this.games_.CreateNewGame(false, true);游戏new出来了
接下来是各种设置,类型,主题啥的,关注点不在这,往下
约282行,this.FindPlatformsForGameNew(gameScript);
这个 是找平台的,
进入FindPlatformsForGameNew(gameScript)
GameObject[] array = GameObject.FindGameObjectsWithTag("Platform");
遍历所有平台(包括玩家的)
开头的两个if代码块是玩家子公司相关,
往下第三个if,就是ai选平台了(子公司和非子公司都能进入)
if (this.ownPlatform)//ai有自己的平台
{
for (int j = 0; j < array.Length; j++)//遍历所有平台
{
if (array[j])
{
platformScript component2 = array[j.GetComponent<platformScript>();//拿到单个平台
//下面这个if里是对游戏的各种要求
if (component2 && ((gS_.handy && component2.typ == 3) || (gS_.arcade && component2.typ == 4) || (!gS_.handy && !gS_.arcade && component2.typ == 0) || (!gS_.handy && !gS_.arcade && component2.typ == 1) || (!gS_.handy && !gS_.arcade && component2.typ == 2)) && component2.isUnlocked && ((gS_.retro && component2.vomMarktGenommen) || (!gS_.retro && !component2.vomMarktGenommen)) && (gS_.gameTyp == 0 || (gS_.gameTyp == 1 && component2.internet) || (gS_.gameTyp == 2 && component2.internet)) && component2.npc)//component2.npc这个要求是npc的平台
{
num = component2.myID;
bool flag = false;
if (component2.manufacturer_GE.Contains(this.name_GE))
{
flag = true;
}//上面的flag:验证是否是Ai自己的平台
if (flag)//是Ai自己的平台
{
gS_.gamePlatform[num2 = component2.myID;//作为游戏的平台
gS_.gamePlatformScript[num2 = component2;
gS_.costs_entwicklung += (long)component2.dev_costs;
if (gS_.exklusiv)
{
return;
}
num2++;//下一个
if (num2 >= 4)//满四个
{
return;
}
}
}
}
}
}
上面这段就是ai从所有平台里面找适合游戏的且是自己的平台
dybhkc
发表于 2022-3-12 18:48
//没找完四个
if ((!this.exklusive && num2 <= 3) || num2 == 0)
{
this.platformList.Clear();//这个platformList大概是可选的平台列表
for (int k = 0; k < array.Length; k++)//遍历所有平台
{
if (array[k])
{
platformScript component3 = array[k.GetComponent<platformScript>();//拿到单个平台
if (component3 && component3.isUnlocked && gS_.gamePlatform[0 != component3.myID && gS_.gamePlatform[1 != component3.myID && gS_.gamePlatform[2 != component3.myID && gS_.gamePlatform[3 != component3.myID && ((gS_.retro && component3.vomMarktGenommen) || (!gS_.retro && !component3.vomMarktGenommen)))//不在四个平台里的(也就是上面没找着的),及其它要求
{
this.platformList.Add(new publisherScript.PlatformList(component3, component3.GetMarktanteil()));//加进去,后面这个是市场份额
}
}
}
this.platformList = (from i in this.platformList
orderby i.marktanteil descending
select i).ToList<publisherScript.PlatformList>();//按市场份额降序
for (int l = 0; l < this.platformList.Count; l++)//遍历 列表
{
platformScript script_ = this.platformList[l.script_;
if (script_ && gS_.gamePlatform[0 != script_.myID && gS_.gamePlatform[1 != script_.myID && gS_.gamePlatform[2 != script_.myID && gS_.gamePlatform[3 != script_.myID && ((gS_.handy && script_.typ == 3) || (gS_.arcade && script_.typ == 4) || (!gS_.handy && !gS_.arcade && script_.typ == 0) || (!gS_.handy && !gS_.arcade && script_.typ == 1) || (!gS_.handy && !gS_.arcade && script_.typ == 2)) && script_.isUnlocked && ((gS_.retro && script_.vomMarktGenommen) || (!gS_.retro && !script_.vomMarktGenommen)) && (gS_.gameTyp == 0 || (gS_.gameTyp == 1 && script_.internet) || (gS_.gameTyp == 2 && script_.internet)) && (script_.npc || (script_.thridPartyGames && UnityEngine.Random.Range(0, script_.price) < UnityEngine.Random.Range(0, this.platforms_.GetDurchschnittsDevKitPreis()) && (UnityEngine.Random.Range(0f, 100f + script_.GetMarktanteil()) > 60f || script_.GetMarktanteil() > 30f))))
//这一段也是各种要求,主要看后面
script_.npc ||//如果不是npc就要满足后面括号
(
script_.thridPartyGames &&平台接受第三方游戏
UnityEngine.Random.Range(0, script_.price) < UnityEngine.Random.Range(0, this.platforms_.GetDurchschnittsDevKitPreis())
0到平台价格 中随机一个数< 0到所有平台平均价格 中随机一个数
&&
(
UnityEngine.Random.Range(0f, 100f + script_.GetMarktanteil()) > 60f //0到100 + 份额>60
|| script_.GetMarktanteil() > 30f // 或份额 > 30
)
)
接着
{
num = script_.myID;
bool flag2 = false;
if (this.ownPlatform && script_.manufacturer_GE.Contains(this.name_GE))
{
flag2 = true;
}//ai自己的平台
if (UnityEngine.Random.Range(0, 100) > 50 || script_.playerConsole || script_.multiplaySlot != -1 || flag2)// 1/2概率 或玩家平台 或ai平台也就是就1/2概率
{
gS_.gamePlatform[num2 = script_.myID;//作为游戏的平台
gS_.gamePlatformScript[num2 = script_;
gS_.costs_entwicklung += (long)script_.dev_costs;
if (script_.playerConsole || script_.multiplaySlot != -1)//玩家平台
{
script_.SellPlayerKonsoleToNPC(this);//卖出给ai
}
if (gS_.exklusiv)
{
return;
}
num2++;//下一个
if (num2 >= 4)
{
return;
}
}
}
}
}
dybhkc
发表于 2022-3-12 18:49
又要审核...
dybhkc
发表于 2022-3-12 18:59
本帖最后由 dybhkc 于 2022-3-12 19:06 编辑
最后总结:非玩家子公司,首先从所有平台里面循环找适合游戏的且是自己的平台
再把剩下的里面的符合条件的组成一个列表,列表按市场份额降序
再循环从列表里面找符合条件的 如果是玩家的平台要额外符合条件:
1<
2 > 60 或 市场份额 > 30
满足上面条件后,如果是玩家平台则直接成为该游戏的平台
dybhkc
发表于 2022-3-12 19:02
本帖最后由 dybhkc 于 2022-3-12 19:07 编辑
所以说ai做游戏选择平台并没有什么明显倾向,
硬要说的话倾向自己的平台,市场份额高的平台,倾向npc平台
dybhkc
发表于 2022-3-12 19:09
如果说要提高ai对玩家平台“倾向”的话,可以把
&& (script_.npc || (script_.thridPartyGames && UnityEngine.Random.Range(0, script_.price) < UnityEngine.Random.Range(0, this.platforms_.GetDurchschnittsDevKitPreis()) && (UnityEngine.Random.Range(0f, 100f + script_.GetMarktanteil()) > 60f || script_.GetMarktanteil() > 30f)))这个删了,这样玩家就降低到和npc同样的要求了
无尽的遐想
发表于 2022-3-30 14:41
大佬怎么改子公司的股价或者是能力
页:
1
2
3
4
5
[6]
7
8
9
10
11
12
13
14
15