- //置玩家行走方向和当前面向相同
- MonDir = 1
- 否则
- 按住<Left>
- MonDir = -1
- 条件结束
- 子程序结束,回到调用处
- //停止移动
- 子程序 StopMove
- FindBallState = 0
- NearMon = 0
- 弹起<Right>
- 弹起<Left>
- 延时30毫秒
- 子程序结束,回到调用处
- //移动到蓝球
- 子程序 MoveToBall
- //蓝自动回到大于90%时不再找蓝球回蓝
- 调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
- 如果表达式 (FindBallX > 0) 为真,则
- FindBallState = 0
- BallFloor = 0
- 条件结束
- 如果表达式 (GameState < 0) 为真,则
- //判断是否要找蓝球回蓝
- 调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
- 如果表达式 (FindBallX < 0 and FindBallState = 0) 为真,则
- FindBallState = 1
- 条件结束
- 如果表达式 (FindBallState <> 0) 为真,则
- 调用子程序 GetBallInfo
- 调用子程序 StepToFloor
- 条件结束
- 条件结束
- 子程序结束,回到调用处
- //得到层与层之间的关系
- 子程序 StepToFloor
- 如果表达式 (BallX > 0 and PlayerX > 0) 为真,则
- GameState = -2
- FloorDis = BallFloor - PlayerFloor
- //如果玩家高度高于怪物,先移动到怪物的下面
- 如果表达式 (FloorDis < 0 and (FindBallState = 1 or tempFloorDis <> FloorDis)) 为真,则
- tempFloorDis = FloorDis
- FindBallState = 2
- 调用子程序 JudgeMoveBallDir
- 否则如果(FloorDis = 0)为真,则
- 调用子程序 JudgeMoveBallDir
- //已吃到蓝球,蓝球位置置0
- 如果表达式 (Abs(BallX - PlayerX) < 40) 为真,则
- BallFloor = 0
- 条件结束
- 否则如果(FloorDis > 0)为真,则
- tempLeftDis = 0 : tempRightDis = 0
- //处理找蓝球加蓝时可能会导致的一个问题
- 如果表达式 (BallFloor = 1) 为真,则
- 如果表达式 (BallX > PlayerX) 为真,则
- tempLeftDis = 250 : tempRightDis = 0
- 否则
- tempLeftDis = 0 : tempRightDis = -250
- 条件结束
- 条件结束
- 如果表达式 (PlayerFloor = 3.5) 为真,则
- tempTopDis = 40: tempButtomDis = 60: tempXDis = 150
- 否则
- tempTopDis = -90: tempButtomDis = 0: tempXDis = 65
- 条件结束
- 调用子程序 JudgeFloorPos
- 条件结束
- 否则如果(FindBallState = 2)为真,则
- 调用子程序 StopMove
- 条件结束
- 子程序结束,回到调用处
- //得到层与层之间的关系
- 子程序 JudgeFloorPos
- //没有在第一层,则找到第一层相对于玩家的位置 从中间左右判断上一层相对于玩家的位置
- 调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
- 调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
- 如果表达式 (FloorX1 < 0 and FloorX2 < 0) 为真,则
- 按住#KeyNum
- 否则如果((FloorX1> 0 and FloorX2 > 0 and (FloorX2 - PlayerX >= PlayerX - FloorX1)) or (FloorX1 > 0 and FloorX2 < 0))为真,则
- 弹起<Right>
- 按住<Left>
- MonDir = -1
- 否则如果((FloorX1> 0 and FloorX2 > 0 and (FloorX2 - PlayerX < PlayerX - FloorX1)) or (FloorX1 < 0 and FloorX2 > 0))为真,则
- 弹起<Left>
- 按住<Right>
- MonDir = 1
- 条件结束
- 如果表达式 (Abs(FloorX1 - PlayerX) < tempXDis or ABS(FloorX2 - PlayerX) < tempXDis) 为真,则
- 按键<Space>
- 延时500毫秒
- 条件结束
- 子程序结束,回到调用处
- //向目标移动
- 子程序 JudgeMoveBallDir
- 弹起<Right>
- 弹起<Left>
- 如果表达式 (BallX > PlayerX) 为真,则
- 按住<Right>
- //置玩家行走方向和当前面向相同