内容发布更新时间 : 2024/12/27 10:21:53星期一 下面是文章的全部内容请认真阅读。
------------------------------- option = {
name = \head_of_state = 1031 }
这个是动作部分
-------------------------------
这个事件为单opinion,也就是单选项。如果希望多选项的话,就做多个opinion就好了,比如这样:
option = {} option = {} option = {}
各个opinion以平行的关系存在。
顺道一说{}这两个括号的作用吧,他们是用来区分平行关系的。比如A = { B },那么我们可以说B是A的下级语句。很多时候你都可以看到A = { B = { C }}那么你可以把B= { C}看成是一个整体,完全都是A的下级语句。
另外,有一种东西叫末端语句。他们没有下级语句,直接划等号了。比如fuel = 100就是这样。而也有些语句,他需要包含某些必要的末端语句才能正常运行。比如:
threat = { who = 国家 value = 数值 }这个语句之中,就必须包含2个末端语句作为参数。一个是who,一个是value。这2个是专属于这个语句的末端语句,不可以直接拿出来运用。
而我们说的平行,就是在一个括号内的语句都是平行的。比如 option = { A = 100 B = 200 C = 300 }
那么ABC三个语句便是平行的关系,从上到下依次执行
顺带一说,在条件中,平行关系的逻辑关系是AND,也就是“和”。
\和\是语法编辑里面最容易出现的错误。一个事件之中一个\必定对应一个\。你们
做完一个事件时候可以检查2者的数量是否相等,不等的话肯定是哪里漏了个,很容易导致该事件,甚至同一个文本内的其他事件出错。
国家名之后必定要加进下级语句的,比如GER = { xxx }这样的
由于钢三是以国家为单位的,在这里我还要提出一个“属主”的概念。比如:
GER = { fuel = 100 } 德国得到100燃油 FRA = { fuel = 100 } 法国得到100燃油
这2个语句的动作相同,但是他们的属主不同,便导致了不同的结果。游戏的语句在没有标明属主的情况下,是以本国(tag)为默认属主的。
在不懂修改的时候,很多人应该都试过用控制台呼出官方的事件来给自己作弊吧?这其实就是因为官方的语句很多都是没有加属主的,于是默认属主便成了自己。谁执行事件谁受益。
同样是例子: option = { A = 100 B = 100 }
可以看成是:
option = { TAG = { A = 100 B = 100 } }
TAG代表的是这个事件的触发国。
另外,在GER = { FRA = { fuel = 100 } }这种双重属主语句中(这种语句纯属蛋疼),fuel = 100的属主是FRA,所以执行语句之后,得到100燃油的是法兰西,而不是德意志。
说完了这些,那我们先讲讲条件部分吧。
如果有条件存在的事件,在触发的时候必定是要检查条件的。除了使用控制台呼出的事件。这个时候你都可以看到控制台还会显示你满足了这个事件的哪些条件(用绿色显示)和不满足哪些条件(红色)。触发的机制是什么呢?就是满足条件---执行,不满足条件---不执行,
压根不跳出这个事件。
这里首先必须说下:随机事件和固定事件的条件的差异。这2者的定义关键在于是否有\_triggered_only = yes\这个和opinion平行的语句,这个语句存在代表着这个事件只能被触发。\和\的不同搭配会造成四种不同的后果
1.\和\都有
那么这便是一个典型的检查条件后执行动作的事件了。他不会随机发生,只能通过其他事件或决议的“country_event = xxx”来召唤执行。但有趣的是,召唤的时候如果不满足\gger\里面的条件,那么召唤了也是白召唤----这个事件便不会执行。
这个的用处可以有很多,比如我想做一个事件,这个事件发生时候,若德意志对法兰西开战则执行动作A,没有开战则执行动作B。那么你便可以做两个事件,\里面写上\R = { war = FRA} \的动作是A,\里面写not = { GER = { war = FRA} }的动作是B。然后连续通过事件召唤2个事件,那么出来的只有一个事件 --- 满足条件的那个。
这种用法在官方曾经的德国投降事件中用到过。P社用了三个不同的事件: 1.柏林和波恩都归苏联------德国全国变成DDR 2.柏林赫波恩都归同盟------德国全国变成DFR
3.柏林归苏联,波恩归同盟--东边变成DDR,西边变成DFR
然后P社一次执行三个事件,但满足条件出来的只会有一个。
2.\存在,\不存在
这是一个很典型的普通事件,他不会随机触发,只能被其他事件所召唤,然后执行下面的动作。大部分的事件都是这一类的事件。
3.\不存在,但\存在
这便是我们说的随机事件了,也就是最上面的那个事件。每一段时间电脑都会自动检查是否符合条件,符合的话则触发。为了符合历史,我们一般加入时间限制。另外,检查的频率由 mean_time_to_happen = { months = 2 modifier = {} }
这个与trigger平行的语句决定。里面可以填入days,months,years,分别的单位是:天,月,年。比如days=1就是一天检查一次。而modifier = {}是变量,大多数时候我们用不到。里面可以填入一个条件,和一个改变值,在满足条件的时候检查间隔会加上这个改变值,比如从2天变成1天。而不满足时候则不影响。
mean_time_to_happen可以不写,也就是这一整个可以直接不写。那样电脑似乎会一个月检
查一次,具体的时间没有研究过。因为电脑的间隔并不是整天数检查,而是大概天数检查,所以估计我也研究不出来。。。
4.\和\都不存在
这也是一个随机事件。。而且坑爹的是,这是一个任何条件下都可能发生的随机事件。我就有次疏忽过,结果全世界纷纷发生落日事件啊...连小胡子都TM落日了。这不坑爹吗
条件的部分也就是这些,具体的条件语句可以去参照no3的全条件语句。
最后填坑
似乎完全木人看,点击数量连新人问题贴都不如。这让我木有填坑的欲望。你们的支持是我最大的动力有木有。
看,点击数量连新人问题贴都不如。这让我木有填坑的欲望。你们的支持是我最大的动力有木有。
那么我们说回动作吧。
事件的动作都包含在opinion下,可以有多个opinion。这个想必大家都知道。
而动作的执行---无非就是一个个末端语句罢了。通过前面的教程,想必大家都能够理解了
那么今天着重讲的是:条件复合动作。
在某些时候,我们希望选出一个地区中特定的某些省份。比如说被德国占领的法国省份。以前不懂的同学也大有一个个省份号数写过去的。即繁琐,又低效。
那么条件复合句,大概的作用就是满足特定条件执行。
游戏中有两个any:any_owned,代表属主所有的地区。以及any_country,自带属主属性。代表世界上所有的国家
一般条件复合句是用在这个这两个之上的,举个简单的例子:
所有法兰西的省份割给德意志
FRA = { any_owned = { secede_province = GER }}
那么,所有被德意志占领的法兰西省份割给德意志要怎么写呢?
FRA = { any_owned = { limit = { controlled_by = GER } secede_province = GER }
唯一的区别是多了一个limit
在limit里面你可以定义这个地区要满足的要求,也就是法兰西的任意省份,满足这个条件的才会执行后面的动作。这样就达到了筛选的目的了。
同理举例:
any_country = { limit = { war = CHC } war = SOV } 所有在于某党进行战争的国家对大胡子宣战
最后说一下limit中最有趣的功能
limit中的条件不仅可以是筛选,也可以是满足特定条件。
比如:any_owned = { limit = { FRA = { war = GER } } add_core = GER }
在执行这一条动作时候,会自动检查limit中的条件。如果满足条件才会执行后面的内容。这里给的语句是:在执行时,若德国和法国开战则割让所有省份给法国。
动作的语法也到此结束了。小胡子3并没有什么更高级的语法了。完全是基础
下一坑预告:改档 End