注册 | 登录

游侠NETSHOW论坛





查看: 11758|回复: 28
打印 上一主题 下一主题

行会2 AI的医院不会治病,求解决。附上自己的解决办法 [复制链接]

帖子
440
精华
0
积分
220
金钱
1722
荣誉
0
人气
0
评议
0
跳转到指定楼层
楼主
发表于 2010-4-25 17:08:49 |只看该作者 |倒序浏览
ai的医院因为不会库存绷带、药瓶、止痛药。所以AI治下的医院是任何病都治不了的。(你自己的医院如果全部委任给电脑,也是不会库存的)
所以我想谁能修改lua文件,解决这一问题呢?不然黑死病一来,市民肯定全死的(基本上得黑死病3回合之内就死,这病会传染!!)。上次玩工艺大约到了400年(我2年1回合,差不多200回合)。黑死病来了。人口从490多,一下降到200不到。(我改了城市升级人口,因为用16世家,如果不改,前5回合就差不多能开放出总督来)如果觉得黑死传染不厉害,那有可能是城里人少,城市人口多了传染的几率就大。而且我又是RPG那种,从不杀人的。每代只生一个。只经营1中店铺(最初就是一个铁匠世家,现在被逼无奈,做了医生+药水店)
我提供修改思路,但是我不会写这些语言。所以只能指望计算机高手了。
1 让市民都来我开的医院。
2 每次治疗成功+Alignment。无药治疗减Alignment(这个反映在人物属性里的性格,比如正值,贪污什么的)。越低的话,市民就越不去,最低就是那个walking nightmare(翻译为“活梦魔”,汗一个)
3 把AI建医院去掉。使得只有我才能见医院。



附上我目前用的“解决办法”:
我现在用的是自己改的,把1级医院的够买/建造价格改成100万。AI初始没有那么多钱的。(调整config,不要让AI初始就有商业,初始设定AI,1老婆,4孩子,孩子少了他们死的快。还有10万钱,把他的家,商业都给调成0,开局AI会自己买这些的,不然开局电脑会给AI分配医院)我给自己+300+1万。专门买医院(3个城的3个医院,3百万,我用的维也纳那个图,有海的图跳出很多)。然后到熬到总督后把其他医院拆掉(初始每个城有2医院)留下每个城一个医院。这样市民就不容易死了。

如果碰到电脑把医院分配给了非家族人员,比如开局的市长啊什么的。你只要把医院的产物修改下,让电脑无法靠卖肥皂赚钱就可以了-电脑比较傻,复杂的材料产物它们都不会做,你可以把肥皂的材料改成5绷带+原来的材料出6块肥皂这种含有其他成品的配方,如此电脑就不会造肥皂了,这样电脑在开局会很痛快的把它的医院挂牌出售。
同理如果你不想要电脑做高级武器,铠甲,可以把他们的制造材料加入多个低级武器,铠甲,或者加入一些市场买不到的东西,比如说:绷带,药瓶,赎罪币(你自己要有对应的产业来提供原料),这种只能卖给市场,不能买的东西。

[ 本帖最后由 wetmoss 于 2010-4-26 04:20 编辑 ]

使用道具 举报

帖子
440
精华
0
积分
220
金钱
1722
荣誉
0
人气
0
评议
0
沙发
发表于 2010-4-25 17:55:53 |只看该作者
有人看贴。没人回。 。等你们遇到黑死病。就了解医院bug的严重了。

使用道具 举报

帖子
692
精华
0
积分
356
金钱
9064
荣誉
1
人气
0
评议
0
板凳
发表于 2010-4-25 18:08:44 |只看该作者
我就是开局学者建医院的,不然一个感冒就能整死你。

使用道具 举报

帖子
440
精华
0
积分
220
金钱
1722
荣誉
0
人气
0
评议
0
地板
发表于 2010-4-25 18:11:45 |只看该作者
原帖由 sccj 于 2010-4-25 18:08 发表
我就是开局学者建医院的,不然一个感冒就能整死你。

嗯。感冒--流感--肺炎--死。马的。AI的医院就是个摆设。你去了连个万灵药这种假药都不买不到。

使用道具 举报

帖子
2457
精华
0
积分
1361
金钱
20646
荣誉
13
人气
20
评议
0
5#
发表于 2010-4-25 18:20:51 |只看该作者

回复 #1 wetmoss 的帖子

我以前的作法是手控(不交給電腦)
其實就是一直累積原料,
到達一定程度後再賣出一部份即可,
這樣的操作也不會太麻煩(也留存原料)

另外,對手開不了醫院就沒有對抗的感覺了

使用道具 举报

帖子
132
精华
0
积分
66
金钱
705
荣誉
0
人气
0
评议
0
6#
发表于 2010-4-25 21:41:38 |只看该作者
请假一下,怎么修改城镇升级需要的人数?

使用道具 举报

帖子
338
精华
0
积分
169
金钱
22488
荣誉
0
人气
0
评议
0
7#
发表于 2010-4-25 23:33:06 |只看该作者
小弟,工艺师,上次感冒了,睡了2天,竟然好了。哈哈~~!

使用道具 举报

帖子
9
精华
0
积分
5
金钱
49
荣誉
0
人气
0
评议
0
8#
发表于 2010-4-26 00:29:44 |只看该作者
乱改脚本杯具了
居然来直接就华丽丽的把来看病的黑死病人给挂了

使用道具 举报

帖子
440
精华
0
积分
220
金钱
1722
荣誉
0
人气
0
评议
0
9#
发表于 2010-4-26 04:01:23 |只看该作者
原帖由 sdfzero 于 2010-4-25 21:41 发表
请假一下,怎么修改城镇升级需要的人数?


修改scripts-city-citylevel.lua。开头里面有一段
function GetValue(Level)
if Level==2 then
  return {0, 120}
elseif Level==3 then
  return {100, 200}
elseif Level==4 then
  return {175, 300}
elseif Level==5 then
  return {255, 400}
elseif Level==6 then
  return {350, 99999}
end

你修改我加粗了的数就可以了。比如(0,120)这个意思是,到120人口就会扩张。(100,200)这个意思是如果人口大于200,扩张到下一级城市,如果人口小于100,降级城市。人口在100-200之间不变。
上面的数字是我现在用的。因为是用的2年一回合。如果不改人口,16家族第一天开局就有近200人口。而且我个人觉得城市慢慢发展比较有趣。

使用道具 举报

帖子
440
精华
0
积分
220
金钱
1722
荣誉
0
人气
0
评议
0
10#
发表于 2010-4-26 04:04:58 |只看该作者
原帖由 keyneslin 于 2010-4-25 18:20 发表
我以前的作法是手控(不交給電腦)
其實就是一直累積原料,
到達一定程度後再賣出一部份即可,
這樣的操作也不會太麻煩(也留存原料)

另外,對手開不了醫院就沒有對抗的感覺了 ...


医院当然要手控拉。我的意思是这个医院是AI拥有的。不是我家的那种。
我是A。另一个电脑世家为B。如果B有医院。你可以进它医院里看,不管什么病,它都是没有药的。而病人还会络绎不绝的去B医院 。这样就造成了很多去B医院的市民得不到医治,小病发展成大病。

[ 本帖最后由 wetmoss 于 2010-4-26 04:39 编辑 ]

使用道具 举报

帖子
440
精华
0
积分
220
金钱
1722
荣誉
0
人气
0
评议
0
11#
发表于 2010-4-26 04:09:51 |只看该作者
原帖由 隐形的拖鞋 于 2010-4-25 23:33 发表
小弟,工艺师,上次感冒了,睡了2天,竟然好了。哈哈~~!

脚本里有睡觉可以治感冒的好像(我看lua还说的每个病都有个持续时间,时间过了就会好,但是也有可能不好,转化为更严重的病或者挂掉,我对那些语言不是很懂,也不是很清楚),而且好像我们主人公不容易病死(或者小病变大病,比如感冒到流感),但是NPC那些工人就不同了。
我也没有实验过,一般自己人有病了,就直接回家睡觉或者去自己的医院治疗了。

使用道具 举报

帖子
440
精华
0
积分
220
金钱
1722
荣誉
0
人气
0
评议
0
12#
发表于 2010-4-26 04:14:33 |只看该作者
原帖由 zhouye5188 于 2010-4-25 19:36 发表
这办法还不是太行!...估计要官方弄...


官方弄还不知道要什么时候,guild2是出名了bug多。我这样只是把电脑运营医院给抑制了(我玩时电脑很喜欢医院,因为肥皂利润高的缘故吧)。

使用道具 举报

帖子
67
精华
0
积分
34
金钱
261
荣誉
0
人气
0
评议
0
13#
发表于 2010-4-26 04:25:50 |只看该作者
世界本没有光,上帝说:“要有光”,于是世界有了光。

而你却说:摧毁它们吧,反正可能他们只会卖肥皂。

使用道具 举报

帖子
440
精华
0
积分
220
金钱
1722
荣誉
0
人气
0
评议
0
14#
发表于 2010-4-26 04:38:48 |只看该作者
原帖由 sssjjjddd 于 2010-4-26 04:25 发表
世界本没有光,上帝说:“要有光”,于是世界有了光。

而你却说:摧毁它们吧,反正可能他们只会卖肥皂。

国内现在是凌晨4点多啊。您在哪里?我在北美所以是中午2点多。夜深要睡啊。

使用道具 举报

帖子
67
精华
0
积分
34
金钱
261
荣誉
0
人气
0
评议
0
15#
发表于 2010-4-26 04:40:09 |只看该作者
如果不让电脑买医院,这样来改:找到ms_071_buybuilding.lua

找到        if not AliasExists("Destination") then
        
                local Class        = BuildingGetCharacterClass("")
                local Count = DynastyGetMemberCount("dynasty")
                local        Number = 0

                for Number=0,Count-1 do
                        if DynastyGetMember("dynasty", Number, "Member") then
                                if Class==GL_CLASS_NONE or Class==SimGetClass("Member") then
                                        if BuildingCanBeOwnedBy("","Member") then
                                                CopyAlias("Member", "Destination")
                                                break;
                                        end
                                end
                        end
                end
        end

改成

if not AliasExists("Destination") then
        
                local Class        = BuildingGetCharacterClass("")
                local Count = DynastyGetMemberCount("dynasty")
                local        Number = 0

                if BuildingGetType("")==GL_BUILDING_TYPE_HOSPITAL and  not DynastyIsPlayer("dynasty") then
                            return
                end

                for Number=0,Count-1 do
                        if DynastyGetMember("dynasty", Number, "Member") then
                                if Class==GL_CLASS_NONE or Class==SimGetClass("Member") then
                                        if BuildingCanBeOwnedBy("","Member") then
                                                CopyAlias("Member", "Destination")
                                                break;
                                        end
                                end
                        end
                end
        end

如此思路,有兴趣你可以测试。当然还可以增加其他判断条件。

使用道具 举报

帖子
67
精华
0
积分
34
金钱
261
荣誉
0
人气
0
评议
0
16#
发表于 2010-4-26 04:41:13 |只看该作者
原帖由 wetmoss 于 2010-4-26 04:38 发表

国内现在是凌晨4点多啊。您在哪里?我在北美所以是中午2点多。夜深要睡啊。


睡醒早起了。

使用道具 举报

帖子
440
精华
0
积分
220
金钱
1722
荣誉
0
人气
0
评议
0
17#
发表于 2010-4-26 04:47:52 |只看该作者
原帖由 sssjjjddd 于 2010-4-26 04:40 发表
如果不让电脑买医院,这样来改:找到ms_071_buybuilding.lua

找到        if not AliasExists("Destination") then
        
                local Class        = BuildingGetCharacterClass("")
                lo ...

我刚下了您发的那个小Mod。正在研修您的医院lua。嗨,,为啥我就不会修改这些语言呢。下学期去大学修2门计算机课。

使用道具 举报

帖子
67
精华
0
积分
34
金钱
261
荣誉
0
人气
0
评议
0
18#
发表于 2010-4-26 04:49:42 |只看该作者
当然可以在其中再加一段

if BuildingGetType("")==GL_BUILDING_TYPE_HOSPITAL and  not DynastyIsPlayer("dynasty") then
      LogMessage("要记录的信息") --运行过程中看logfile.log的记录,就知道电脑是不是想买而被阻止了。
      return
end

使用道具 举报

帖子
67
精华
0
积分
34
金钱
261
荣誉
0
人气
0
评议
0
19#
发表于 2010-4-26 04:53:41 |只看该作者
原帖由 wetmoss 于 2010-4-26 04:47 发表

我刚下了您发的那个小Mod。正在研修您的医院lua。嗨,,为啥我就不会修改这些语言呢。下学期去大学修2门计算机课。


可以随便看一门编程语言的教程,掌握 if while for 的用法,脚本里的流程控制就没什么问题了。

另外这些脚本里的function传递变量的方法比较特殊,研究研究也就知道了。我也是摸索出了的,顺便了解了了解lua的特殊语法

使用道具 举报

帖子
440
精华
0
积分
220
金钱
1722
荣誉
0
人气
0
评议
0
20#
发表于 2010-4-26 04:54:39 |只看该作者
原帖由 sssjjjddd 于 2010-4-26 04:49 发表
当然可以在其中再加一段

if BuildingGetType("")==GL_BUILDING_TYPE_HOSPITAL and  not DynastyIsPlayer("dynasty") then
      LogMessage("要记录的信息") --运行过程中看logfile.log的记录,就知道电脑是不是想买 ...

没明白。。。。啥是“要记录的信息”

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2025-6-14 03:16 , Processed in 0.417554 second(s), 12 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到