1.         //置玩家行走方向和当前面向相同
  2.         MonDir = 1
  3.     否则
  4.         按住<Left>
  5.         MonDir = -1
  6.     条件结束
  7. 子程序结束,回到调用处
  8. //停止移动
  9. 子程序 StopMove
  10.     FindBallState = 0
  11.     NearMon = 0
  12.     弹起<Right>
  13.     弹起<Left>
  14.     延时30毫秒
  15. 子程序结束,回到调用处
  16. //移动到蓝球
  17. 子程序 MoveToBall
  18.     //蓝自动回到大于90%时不再找蓝球回蓝
  19.     调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
  20.     如果表达式 (FindBallX > 0) 为真,则
  21.         FindBallState = 0
  22.         BallFloor = 0
  23.     条件结束
  24.     如果表达式 (GameState < 0) 为真,则
  25.         //判断是否要找蓝球回蓝
  26.         调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
  27.         如果表达式 (FindBallX < 0 and FindBallState = 0) 为真,则
  28.             FindBallState = 1
  29.         条件结束
  30.         如果表达式 (FindBallState <> 0) 为真,则
  31.             调用子程序 GetBallInfo
  32.             调用子程序 StepToFloor
  33.         条件结束
  34.     条件结束
  35. 子程序结束,回到调用处
  36. //得到层与层之间的关系
  37. 子程序 StepToFloor
  38.     如果表达式 (BallX > 0 and PlayerX > 0) 为真,则
  39.         GameState = -2
  40.         FloorDis = BallFloor - PlayerFloor
  41.         //如果玩家高度高于怪物,先移动到怪物的下面
  42.         如果表达式 (FloorDis < 0 and (FindBallState = 1 or tempFloorDis <> FloorDis)) 为真,则
  43.             tempFloorDis = FloorDis
  44.             FindBallState = 2
  45.             调用子程序 JudgeMoveBallDir
  46.         否则如果(FloorDis = 0)为真,则
  47.             调用子程序 JudgeMoveBallDir
  48.             //已吃到蓝球,蓝球位置置0
  49.             如果表达式 (Abs(BallX - PlayerX) < 40) 为真,则
  50.                 BallFloor = 0
  51.             条件结束
  52.         否则如果(FloorDis > 0)为真,则
  53.             tempLeftDis = 0 : tempRightDis = 0
  54.             //处理找蓝球加蓝时可能会导致的一个问题
  55.             如果表达式 (BallFloor = 1) 为真,则
  56.                 如果表达式 (BallX > PlayerX) 为真,则
  57.                     tempLeftDis = 250 : tempRightDis = 0
  58.                 否则
  59.                     tempLeftDis = 0 : tempRightDis = -250
  60.                 条件结束
  61.             条件结束
  62.             如果表达式 (PlayerFloor = 3.5) 为真,则
  63.                 tempTopDis = 40: tempButtomDis = 60: tempXDis = 150
  64.             否则
  65.                 tempTopDis = -90: tempButtomDis = 0: tempXDis = 65
  66.             条件结束
  67.             调用子程序 JudgeFloorPos
  68.         条件结束
  69.     否则如果(FindBallState = 2)为真,则
  70.         调用子程序 StopMove
  71.     条件结束
  72. 子程序结束,回到调用处
  73. //得到层与层之间的关系
  74. 子程序 JudgeFloorPos
  75.     //没有在第一层,则找到第一层相对于玩家的位置 从中间左右判断上一层相对于玩家的位置
  76.     调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
  77.     调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
  78.     如果表达式 (FloorX1 < 0 and FloorX2 < 0) 为真,则
  79.         按住#KeyNum
  80.     否则如果((FloorX1> 0 and FloorX2 > 0 and (FloorX2 - PlayerX >= PlayerX - FloorX1)) or (FloorX1 > 0 and FloorX2 < 0))为真,则
  81.         弹起<Right>
  82.         按住<Left>
  83.         MonDir = -1
  84.     否则如果((FloorX1> 0 and FloorX2 > 0 and (FloorX2 - PlayerX < PlayerX - FloorX1)) or (FloorX1 < 0 and FloorX2 > 0))为真,则
  85.         弹起<Left>
  86.         按住<Right>
  87.         MonDir = 1
  88.     条件结束
  89.     如果表达式 (Abs(FloorX1 - PlayerX) < tempXDis or ABS(FloorX2 - PlayerX) < tempXDis) 为真,则
  90.         按键<Space>
  91.         延时500毫秒
  92.     条件结束
  93. 子程序结束,回到调用处
  94. //向目标移动
  95. 子程序 JudgeMoveBallDir
  96.     弹起<Right>
  97.     弹起<Left>
  98.     如果表达式 (BallX > PlayerX) 为真,则
  99.         按住<Right>
  100.         //置玩家行走方向和当前面向相同