For each (Integer A) from 1 to 12, do (Actions) //为1-12的每个整数A循环下列动作
Loop - 动作 //循环内容
IF (All Conditions are true) then do (Then Actions) else do (Else Actions) //IF判断,如果符合条件则执行Then下的内容,如果不符合则执行Else下的内容
If - 条件 //层级If1,注意这个触发用到了多层IF,所以我在这里标记一下,同一层的IF、Then、Else需要匹配
((Player((Integer A))) controller) 等于 电脑 //判断电脑玩家
((Player((Integer A))) slot status) 等于 正在游戏 //判断玩家游戏中
Then - 动作 //Then1
Set VariableSet ComputerRandom = (Random integer number between 0 and 3) //其中“ComputerRandom”是预设整数变量,该条效果为随机一个0-3之间的整数赋予该变量,用于随机原种族或新种族
If (All Conditions are true) then do (Then Actions) else do (Else Actions)
If - 条件 //If2
(Race of (Player((Integer A )))) 等于 人类 //判断该玩家种族是否为人类,注意这里
Then - 动作 //Then2
If (All Conditions are true) then do (Then Actions) else do (Else Actions)
If - 条件 //If3
ComputerRandom 小于或等于1
Then - 动作 //Then3这里不做动作即使用原版人族,如果需要应用AI则在这里对电脑应用响应的AI
AI - Start melee AI script for (Player ((Integer A))): Scripts\human.ai
Else - 动作 //Else3,从这里开始是替换种族的动作,同样的,如果需要应用AI也是在这一层添加
单位组 - Pick every unit in (Units owned by (Player((Integer A))) of type 议政厅)and do (Actions) //该动作为选取地图上所有玩家A的议政厅,并循环执行接下来的Loop动作,这里有另一个类似的动作是直接在“Actions”位置填写要执行的动作,也可以用那一个,把动作设置成底下的内容即可,我这里主要是为了各种族之间方便复制修改
Loop - 动作
单位 - Replace (Picked unit) with a 新种族基地 using 旧单位的百分比 life and mana //替换上面选择的议政厅为新种族基地
单位组 - Pick every unit in (Units owned by (Player((Integer A))) of type 农夫)and do (Actions) //同上效果,这个是选择所有农夫
Loop - 动作
单位 - Replace (Picked unit) with a 新种族农民 using 旧单位的百分比 life and mana //同上,依次替换农民
AI - Start melee AI script for (Player ((Integer A))): Scripts\new.ai //同样的,应用新AI,注意这个和上面两个单位组是同一层的,都在Else下面,不要放到Loop里面去了
Else - 动作 //Else2,这里对应If2判断是否人族,如果不是人族则进行对应兽族的判断
If - 条件 //If4,总体内容为复制一遍整个IF2,然后把里面对应内容改成兽族对应的内容和新种族,
………
Else - 动作 //Else4,If2对应人族,在IF4的Else下面复制IF2改兽族,接下来依次类推,在对应兽族的Else4下面写IF5对应不死,在对应不死的IF5下面写IF6对应暗夜
If - 条件 //IF5
Else - 动作 //Else5
If - 条件 //IF6
Else - 动作 //Else6,因为四个种族都判断完成了,所以这个Else空着
Else - 动作 //Else1,这个地方因为我们只做电脑的随机种族,所以对非电脑玩家不做动作,也空着
触发器1:
事件:时间 - Elapsed game time is 0.01
条件空白
动作:
游戏 - Pause the game
Set VariableSet Number = (Number + 1) //Number增加为1
If (All Conditions are true) then do (Then Actions) else do (Else Actions) //If1标记层级
If - 条件
Number 等于 13 //如果Number=13(设置成最大玩家数+1)
Then - 动作
游戏 - Unpause the game //取消暂停继续游戏
触发器 -Turn off (This trigger)) //关闭此触发
Else - 动作
If (All Conditions are true) then do (Then Actions) else do (Else Actions) //判断玩家是真人操纵
If - 条件 //If2
((Player((Integer Number))) controller) 等于 用户 //判断真人玩家
((Player((Integer Number))) slot status) 等于 正在游戏 //判断玩家游戏中
Then - 动作 //Then2
If (All Conditions are true) then do (Then Actions) else do (Else Actions) //判断玩家种族
If - 条件 //If3
(Race of (Player(Integer Number))) 等于 人类
Then - 动作 //Then3
对话框 - Change the title of Choice to 你要选择哪个种族开始游戏 //非必须,只是在对话框上方增加一句提示
对话框 - Create a dialog button for Choice labelled 人类 //创造第一个按钮“人类”
Set VariableSet Origin = (Last created dialog Button) //把“人类”按钮赋值给变量Origin
对话框 - Create a dialog button for Choice labelled 新种族1 //创造第二个按钮“新种族1”
Set VariableSet New1 = (Last created dialog Button) //把“新种族1”按钮赋值给变量New1
…… //依次类推,给每个变量赋值对应按钮
Else - 动作 //Else3,在下面把If2复制一遍,种族判断及内容改成兽族即可
If - 条件 //If4
……
Else - 动作 //Else4,类似的,在Else3下面复制If2为If4,在Else4下面复制F2为If5,对应剩下两个种族
……
Else - 动作 //Else2
触发器 - Run 触发器1<预设> (ignoring conditions) //如果玩家Number是电脑或未开启,则无视条件直接重新运行触发,开始下一名玩家的选择
触发器1结束
触发器2:
事件:对话框 - Adialog button is clicked for Choice
条件:空白
动作:
If (All Conditions are true) then do (Then Actions) else do (Else Actions) //再次判断种族
If - 条件 //If1标记层级
(Race of (Player(Integer Number))) 等于 人类
Then - 动作 //Then1
If (All Conditions are true) then do (Then Actions) else do (Else Actions) //接下来判断是哪一个对话框被点击
If - 条件 //If2
(Clicked dialog button) 等于 Origin
Then - 动作 //这里代表原种族,所以不用执行动作
Else - 动作
If - 条件 //If3
(Clicked dialog button) 等于 New1 //判断按下了新种族1的按钮
Then - 动作
…… //和上面电脑替换单位一样,把上面一层Else3的几个动作复制过来就行
Else - 动作 //按下的按钮不是New1,则继续判断按下了哪个按钮
…… //同样的,复制If3到下面,依次判断每个按钮是否被按下,被按下那个就执行替换单位的操作
Else - 动作 //Else1,上面是判断玩家为人族的情况,接下来依次类推,判断剩下三个种族的情况
……
触发器 - Run 触发器1<预设> (ignoring conditions) //玩家1选择结束,无视条件运行触发器1,开始判定玩家2