- 条件结束
- tempHigh = PlayerY
- 调用子程序 GetFloor
- PlayerFloor = tempFloor
- 条件结束
- 子程序结束,回到调用处
- //得到蓝球信息
- 子程序 GetBallInfo
- 调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
- 延时1毫秒
- 如果表达式 (BallY>0) 为真,则
- tempHigh = BallY + 20
- 调用子程序 GetFloor
- BallFloor = tempFloor
- 条件结束
- //吃蓝是特殊情况 --因为在最右边,要想吃的话,得从左边上去。中间会导致找不到蓝球。所以强制置X坐标
- 如果表达式 (BallFloor = 4 and BallY < 0) 为真,则
- BallX = GameRight
- 条件结束
- 子程序结束,回到调用处
- //得到所在的层数
- 子程序 GetFloor
- 如果表达式 (tempHigh > GameTop + 250) 为真,则
- tempFloor = 0
- 否则如果(tempHigh > GameTop + 170)为真,则
- tempFloor = 1
- 否则如果(tempHigh > GameTop + 110)为真,则
- tempFloor = 2
- 否则如果(tempHigh > GameTop + 80)为真,则
- tempFloor = 4
- 否则如果(tempHigh > GameTop + 50)为真,则
- tempFloor = 3.5
- 条件结束
- 子程序结束,回到调用处
- //走向怪物
- 子程序 MoveToMon
- GameState = -1
- 如果表达式 (MonX > 0 and PlayerX > 0) 为真,则
- GameState = 0
- FloorDis = MonFloor - PlayerFloor
- //如果玩家高度高于怪物,先移动到怪物的下面
- 如果表达式 (FloorDis < 0 and (NearMon = 0 or tempFloorDis <> FloorDis)) 为真,则
- tempFloorDis = FloorDis
- NearMon = 1
- 调用子程序 JudgeMoveDir
- //如果怪物处在第四层,特殊处理
- 否则如果(MonFloor = 4)为真,则
- 如果表达式 (FloorDis < 3.5) 为真,则
- 如果表达式 (PlayerFloor = 1) 为真,则
- //我已在第一层了判断是否接近边缘 --判断用什么方式攻击怪物
- 调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
- 如果表达式 (FlooX > 0) 为真,则
- 调用子程序 StopMove
- 如果表达式 (Abs(MonX - PlayerX) >= AttackMaxDis) 为真,则
- GameState = 2
- 否则
- GameState = 1
- 条件结束
- 否则
- 如果表达式 (Abs(MonX - PlayerX) >= AttackMaxDis) 为真,则
- 调用子程序 JudgeMoveDir
- 否则
- 调用子程序 StopMove
- GameState = 1
- 条件结束
- 条件结束
- 否则
- 如果表达式 (Abs(MonX - PlayerX) >= AttackMaxDis) 为真,则
- 调用子程序 JudgeMoveDir
- 否则
- 调用子程序 StopMove
- GameState = 1
- 条件结束
- 条件结束
- 否则
- tempLeftDis = 0 : tempRightDis = 0
- tempTopDis = -90: tempButtomDis = 0: tempXDis = 65
- //在最底层,则找到第一层相对于玩家的位置
- 调用子程序 JudgeFloorPos
- 条件结束
- //玩家与怪物的高度小于3格,在最大攻击距离内跳砍就能打到
- 否则如果(FloorDis >= 0 and FloorDis <> 3)为真,则
- //如果玩家和怪的X距离大于最大攻击距离
- 如果表达式 ((((Abs(MonX - PlayerX) >= AttackMaxDis) and (FloorDis < 3)) or ((Abs(MonX - PlayerX) >= 20) and (FloorDis > 3)))) 为真,则
- 调用子程序 JudgeMoveDir
- 否则
- 调用子程序 StopMove
- GameState = 1
- 条件结束
- 条件结束
- 否则如果(NearMon = 1)为真,则
- 调用子程序 StopMove
- 条件结束
- 子程序结束,回到调用处
- //向目标移动
- 子程序 JudgeMoveDir
- 弹起<Right>
- 弹起<Left>
- 如果表达式 (MonX > PlayerX) 为真,则
- 按住<Right>