在传奇脚本里,条件循环的条件表达式丰富多样,能根据不同的游戏场景和需求来控制循环的执行与终止。以下是一些常见的条件表达式类型:
###数值比较类
####玩家属性数值比较
-**等级比较**:依据玩家的等级来决定是否继续循环。比如玩家在等级未达到30级时,持续完成某个特定任务以获取经验。脚本示例如下:
```plaintext
WhilePlayerLevel<30
DoTask新手任务;执行新手任务
PlayerExp=PlayerExp+任务奖励经验;更新玩家经验
IfPlayerExp>=升级所需经验
PlayerLevel=PlayerLevel+1;玩家等级提升
EndIf
EndWhile
```
-**生命值、魔法值比较**:可以根据玩家的生命值或魔法值来控制循环。例如,当玩家生命值低于20%时,不断使用回血药品。
```plaintext
WhilePlayerHP<PlayerMaxHP*0.2
UseItem小生命药水;使用小生命药水
PlayerHP=PlayerHP+药水恢复生命值;更新玩家生命值
EndWhile
```
####物品数量比较
-**道具数量比较**:判断玩家背包中某种道具的数量是否满足特定条件。比如玩家拥有的回城卷数量多于5张时,持续执行某个操作。
```plaintext
WhileHaveItemCount(回城卷)>5
DoAction探索未知地图;执行探索未知地图的操作
EndWhile
```
####游戏货币比较
-**金币、元宝数量比较**:根据玩家拥有的金币或元宝数量来控制循环。例如,玩家金币数量超过1000时,不断购买某种装备。
```plaintext
WhilePlayerGold>1000
BuyItem轻型盔甲;购买轻型盔甲
PlayerGold=PlayerGold-装备价格;更新玩家金币数量
EndWhile
```
###状态判断类
####玩家状态判断
-**是否处于战斗状态**:判断玩家是否正在战斗,若处于战斗状态则持续执行攻击操作。
```plaintext
WhileIsInCombat
AttackMonster;攻击怪物
EndWhile
```
-**是否拥有某种buff**:当玩家拥有特定的buff时,持续执行某项技能操作。
```plaintext
WhileHaveBuff(攻击强化buff)
UseSkill烈火剑法;使用烈火剑法技能
EndWhile
```
####怪物状态判断
-**怪物是否存活**:只要怪物存活,玩家就持续对其进行攻击。
```plaintext
WhileMonsterIsAlive(半兽勇士)
AttackMonster半兽勇士;攻击半兽勇士
EndWhile
```
###时间相关类
####特定时间段判断
-**按天的时间段**:在每天的特定时间段内,循环执行某个活动。例如,每天晚上8点到10点开启双倍经验活动。
```plaintext
WhileCurrentTime>=20:00ANDCurrentTime<=22:00
DoubleExpOn;开启双倍经验
EndWhile
```
####持续时间判断
-**活动持续时间**:某个活动开启后,在规定的持续时间内循环执行相关操作。例如,限时活动开启30分钟内,玩家可以不断参与活动获取奖励。
```plaintext
活动开始时间=GetCurrentTime()
WhileGetCurrentTime()-活动开始时间<30分钟
ParticipateEvent限时活动;参与限时活动
EndWhile
```
###逻辑组合类
####多个条件的与(AND)关系
-当多个条件同时满足时,才会继续循环。例如,玩家等级达到20级且拥有5个魔法药水时,持续执行魔法技能练习操作。
```plaintext
WhilePlayerLevel>=20ANDHaveItemCount(魔法药水)>=5
PracticeSkill魔法技能;练习魔法技能
UseItem魔法药水;使用魔法药水
EndWhile
```
####多个条件的或(OR)关系
-只要满足多个条件中的任意一个,就会继续循环。比如玩家生命值低于30%或者魔法值低于20%时,持续使用恢复药品。
```plaintext
WhilePlayerHP<PlayerMaxHP*0.3ORPlayerMP<PlayerMaxMP*0.2
IfPlayerHP<PlayerMaxHP*0.3
UseItem小生命药水;使用小生命药水
EndIf
IfPlayerMP<PlayerMaxMP*0.2
UseItem魔法药水;使用魔法药水
EndIf
EndWhile
```
###数值比较类
####玩家属性数值比较
-**等级比较**:依据玩家的等级来决定是否继续循环。比如玩家在等级未达到30级时,持续完成某个特定任务以获取经验。脚本示例如下:
```plaintext
WhilePlayerLevel<30
DoTask新手任务;执行新手任务
PlayerExp=PlayerExp+任务奖励经验;更新玩家经验
IfPlayerExp>=升级所需经验
PlayerLevel=PlayerLevel+1;玩家等级提升
EndIf
EndWhile
```
-**生命值、魔法值比较**:可以根据玩家的生命值或魔法值来控制循环。例如,当玩家生命值低于20%时,不断使用回血药品。
```plaintext
WhilePlayerHP<PlayerMaxHP*0.2
UseItem小生命药水;使用小生命药水
PlayerHP=PlayerHP+药水恢复生命值;更新玩家生命值
EndWhile
```
####物品数量比较
-**道具数量比较**:判断玩家背包中某种道具的数量是否满足特定条件。比如玩家拥有的回城卷数量多于5张时,持续执行某个操作。
```plaintext
WhileHaveItemCount(回城卷)>5
DoAction探索未知地图;执行探索未知地图的操作
EndWhile
```
####游戏货币比较
-**金币、元宝数量比较**:根据玩家拥有的金币或元宝数量来控制循环。例如,玩家金币数量超过1000时,不断购买某种装备。
```plaintext
WhilePlayerGold>1000
BuyItem轻型盔甲;购买轻型盔甲
PlayerGold=PlayerGold-装备价格;更新玩家金币数量
EndWhile
```
###状态判断类
####玩家状态判断
-**是否处于战斗状态**:判断玩家是否正在战斗,若处于战斗状态则持续执行攻击操作。
```plaintext
WhileIsInCombat
AttackMonster;攻击怪物
EndWhile
```
-**是否拥有某种buff**:当玩家拥有特定的buff时,持续执行某项技能操作。
```plaintext
WhileHaveBuff(攻击强化buff)
UseSkill烈火剑法;使用烈火剑法技能
EndWhile
```
####怪物状态判断
-**怪物是否存活**:只要怪物存活,玩家就持续对其进行攻击。
```plaintext
WhileMonsterIsAlive(半兽勇士)
AttackMonster半兽勇士;攻击半兽勇士
EndWhile
```
###时间相关类
####特定时间段判断
-**按天的时间段**:在每天的特定时间段内,循环执行某个活动。例如,每天晚上8点到10点开启双倍经验活动。
```plaintext
WhileCurrentTime>=20:00ANDCurrentTime<=22:00
DoubleExpOn;开启双倍经验
EndWhile
```
####持续时间判断
-**活动持续时间**:某个活动开启后,在规定的持续时间内循环执行相关操作。例如,限时活动开启30分钟内,玩家可以不断参与活动获取奖励。
```plaintext
活动开始时间=GetCurrentTime()
WhileGetCurrentTime()-活动开始时间<30分钟
ParticipateEvent限时活动;参与限时活动
EndWhile
```
###逻辑组合类
####多个条件的与(AND)关系
-当多个条件同时满足时,才会继续循环。例如,玩家等级达到20级且拥有5个魔法药水时,持续执行魔法技能练习操作。
```plaintext
WhilePlayerLevel>=20ANDHaveItemCount(魔法药水)>=5
PracticeSkill魔法技能;练习魔法技能
UseItem魔法药水;使用魔法药水
EndWhile
```
####多个条件的或(OR)关系
-只要满足多个条件中的任意一个,就会继续循环。比如玩家生命值低于30%或者魔法值低于20%时,持续使用恢复药品。
```plaintext
WhilePlayerHP<PlayerMaxHP*0.3ORPlayerMP<PlayerMaxMP*0.2
IfPlayerHP<PlayerMaxHP*0.3
UseItem小生命药水;使用小生命药水
EndIf
IfPlayerMP<PlayerMaxMP*0.2
UseItem魔法药水;使用魔法药水
EndIf
EndWhile
```

