yellowottomany
发表于 2022-7-31 21:27
dybhkc 发表于 2022-7-31 20:36
这是说npc只做自已的ip?那不是npc所有游戏,开发商发行商都是他自己?
不是这个意思,NPCIP的游戏和厂商能对应,有主题有类型有评分有具体时间,NPCgame文件里的游戏是随机给任意厂商任意时间发布,委托合同的游戏出自NPCgame,比如NPCgame有1,2,3,4分别四个游戏,可能其中3个会被任意NPC直接发布,剩下的一个会变成玩家的委托合同,怎么才能让NPCgame的游戏全变成委托合同呢
yellowottomany
发表于 2022-7-31 22:02
好像是这个里面控制的UpdateContractWork
alazypig
发表于 2022-7-31 22:20
感谢分享!
yellowottomany
发表于 2022-7-31 22:26
还有Createnewgame2的forceContractGame和textscript的GetRandomNpcGame
yellowottomany
发表于 2022-8-1 10:15
就是原版是NPC同时会开发NPCIP和NPCgame两个文件的游戏,NPCIP游戏是固定的,NPCgame的游戏是随机的,委托合同出自NPCgame,就是怎么能既不让NPC发布NPCgame的游戏又让NPC发布委托合同呢
yellowottomany
发表于 2022-8-1 10:50
或者改这个代码把委托合同也就是NPCgame的虚假游戏都只让一个厂商发布也行
private int GetRandomPublisherID()
{
int num = 0;
GameObject[] array = GameObject.FindGameObjectsWithTag("Publisher");
if (array.Length != 0)
{
bool flag = false;
while (!flag)
{
int num2 = UnityEngine.Random.Range(0, array.Length);
if (array)
{
publisherScript component = array.GetComponent<publisherScript>();
if (component)
{
if (component.isUnlocked && !component.IsTochterfirma() && !component.isPlayer)
{
return component.myID;
}
num++;
if (num > 1000)
{
return 3;
}
}
}
}
}
return 3;
}
yellowottomany
发表于 2022-8-1 11:41
可以修改这个代码让NPCGAME可以读取厂商信息,把 public string GetRandomNpcIP(int publisher_, gameScript game_)的读取厂商代码复制过去就行,可是我不会写 public string GetRandomNpcGame(int genre_)
{
string text = "";
if (this.npcGameNameInUse.Length == 0)
{
this.npcGameNameInUse = new bool[this.npcGames.Length];
}
for (int i = 0; i < this.npcGames.Length; i++)
{
if (!this.npcGameNameInUse[i && this.npcGames[i.Contains("<" + genre_.ToString() + ">"))
{
text = this.npcGames[i];
this.npcGameNameInUse[i = true;
break;
}
}
if (text.Length <= 0)
{
return "";
}
if (text == null)
{
return "";
}
for (int j = 0; j < this.genres_.genres_LEVEL.Length; j++)
{
text = text.Replace("<" + j.ToString() + ">", "");
}
text = text.Replace("\n", string.Empty);
text = text.Replace("\r", string.Empty);
text = text.Replace("\t", string.Empty);
return text.Substring(0, text.Length - 1);
}
yellowottomany
发表于 2022-8-1 12:00
CREATENEWGAME的NPCGAME的出版商是哪个代码确定的呢
dybhkc
发表于 2022-8-1 12:20
yellowottomany 发表于 2022-8-1 12:00
CREATENEWGAME的NPCGAME的出版商是哪个代码确定的呢
这个是会从头轮一遍所有的开发商
yellowottomany
发表于 2022-8-1 12:29
dybhkc 发表于 2022-8-1 12:20
这个是会从头轮一遍所有的开发商
能设置成固定吗,比如加个publisherID = 3
yellowottomany
发表于 2022-8-1 12:30
是这句代码决定的NPCgame出版商吗
if (UnityEngine.Random.Range(0, 100) > 60)
{
gameScript.npcLateinNumbers = true;
}
dybhkc
发表于 2022-8-1 12:33
yellowottomany 发表于 2022-8-1 12:30
是这句代码决定的NPCgame出版商吗
if (UnityEngine.Random.Range(0, 100) > 60)
{
我有思路了,不过电脑不在身边,你能把createnewgame2的代码发一下吗
yellowottomany
发表于 2022-8-1 12:37
dybhkc 发表于 2022-8-1 12:33
我有思路了,不过电脑不在身边,你能把createnewgame2的代码发一下吗
其实如果能固定让一个厂商发布这些游戏也能解决问题,我直接加个叫委托中心的厂商就行了
yellowottomany
发表于 2022-8-1 12:38
我已经能让普通合同都由雅达利发布了,但是作用不到委托合同上
GetRandomPublisherID这个程序集赋值3就行
yellowottomany
发表于 2022-8-1 12:48
你说的对,我发现每次最开始的三个合同都是雅达利,万代,艾尼克斯的因为这三个的ID分别是3,4,7都是从小到大依次轮一遍
dybhkc
发表于 2022-8-1 13:20
yellowottomany 发表于 2022-8-1 12:48
你说的对,我发现每次最开始的三个合同都是雅达利,万代,艾尼克斯的因为这三个的ID分别是3,4,7都是从小 ...
在case 6的if (gameScript.GetNameSimple().Length <= 0)前面加上if (gameScript.GetNameSimple().Length <= 0)return null;试试
dybhkc
发表于 2022-8-1 13:21
dybhkc 发表于 2022-8-1 13:20
在case 6的if (gameScript.GetNameSimple().Length
其它的不用动,就是在npcips里没找到合适的,就直接返回,而不是去找个随机的
yellowottomany
发表于 2022-8-1 13:27
dybhkc 发表于 2022-8-1 13:21
其它的不用动,就是在npcips里没找到合适的,就直接返回,而不是去找个随机的
...
这样委托合同就没了
dybhkc
发表于 2022-8-1 16:42
yellowottomany 发表于 2022-8-1 13:27
这样委托合同就没了
publisherScript.ReleaseTheGame()
在if (this.publisher)上面加
if (!script_.sonderIP)
{
script_.auftragsspiel = true;
}
测试过了,委托轻松叠到十几个,npc发的游戏,还没有出现npcgames里面的,全是npcips里面的
dybhkc
发表于 2022-8-1 16:44
dybhkc 发表于 2022-8-1 16:42
publisherScript.ReleaseTheGame()
在if (this.publisher)上面加
if (!script_.sonderIP)
其它地方没有改
dybhkc
发表于 2022-8-1 16:50
yellowottomany 发表于 2022-8-1 13:27
这样委托合同就没了
你先试试吧
yellowottomany
发表于 2022-8-1 16:52
dybhkc 发表于 2022-8-1 16:42
publisherScript.ReleaseTheGame()
在if (this.publisher)上面加
if (!script_.sonderIP)
可行,在测试,看看最多能到多少,会不会溢出
yellowottomany
发表于 2022-8-1 16:55
dybhkc 发表于 2022-8-1 16:50
你先试试吧
只是一开始可行,过了两年,委托合同堆积了260多个,然后NPC又开始发布NPCgame里的游戏了
dybhkc
发表于 2022-8-1 16:58
yellowottomany 发表于 2022-8-1 16:55
只是一开始可行,过了两年,委托合同堆积了260多个,然后NPC又开始发布NPCgame里的游戏了
...
是什么类型的,case 7里面也会从npcgame里面拿,7是snippoff,应该是衍生
yellowottomany
发表于 2022-8-1 17:03
dybhkc 发表于 2022-8-1 16:58
是什么类型的,case 7里面也会从npcgame里面拿,7是snippoff,应该是衍生
我知道怎么回事了,是那个合同长时间没人做就下架了,然后就被拿去发布了,不让合同下架就行
yellowottomany
发表于 2022-8-1 17:03
dybhkc 发表于 2022-8-1 16:58
是什么类型的,case 7里面也会从npcgame里面拿,7是snippoff,应该是衍生
发布的游戏都是之前委托合同列表的
dybhkc
发表于 2022-8-1 17:14
yellowottomany 发表于 2022-8-1 17:03
发布的游戏都是之前委托合同列表的
试试gamescript.FreeGameContract()
把this.auftragsspiel_Inivs = true;改成 this.auftragsspiel_Inivs = false;委托点X就是改的这个属性为true,如果X掉后能再发布,那就是这个
yellowottomany
发表于 2022-8-1 17:30
dybhkc 发表于 2022-8-1 17:14
试试gamescript.FreeGameContract()
把this.auftragsspiel_Inivs = true;改成 this.auftragsspiel_Inivs...
我试一下
yellowottomany
发表于 2022-8-1 17:36
dybhkc 发表于 2022-8-1 17:14
试试gamescript.FreeGameContract()
把this.auftragsspiel_Inivs = true;改成 this.auftragsspiel_Inivs...
没效果,委托合同一下架NPC立马开发出来,哪里可以阻止委托合同下架呀
yellowottomany
发表于 2022-8-1 17:41
dybhkc 发表于 2022-8-1 17:14
试试gamescript.FreeGameContract()
把this.auftragsspiel_Inivs = true;改成 this.auftragsspiel_Inivs...
应该是改contractworkmain的wochen相关的代码,也就是德语的week