1.         条件结束
  2.         tempHigh = PlayerY
  3.         调用子程序 GetFloor
  4.         PlayerFloor = tempFloor
  5.     条件结束
  6. 子程序结束,回到调用处
  7. //得到蓝球信息
  8. 子程序 GetBallInfo
  9.     调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
  10.     延时1毫秒
  11.     如果表达式 (BallY>0) 为真,则
  12.         tempHigh = BallY + 20
  13.         调用子程序 GetFloor
  14.         BallFloor = tempFloor
  15.     条件结束
  16.     //吃蓝是特殊情况 --因为在最右边,要想吃的话,得从左边上去。中间会导致找不到蓝球。所以强制置X坐标
  17.     如果表达式 (BallFloor = 4 and BallY < 0) 为真,则
  18.         BallX = GameRight
  19.     条件结束
  20. 子程序结束,回到调用处
  21. //得到所在的层数
  22. 子程序 GetFloor
  23.     如果表达式 (tempHigh > GameTop + 250) 为真,则
  24.         tempFloor = 0
  25.     否则如果(tempHigh > GameTop + 170)为真,则
  26.         tempFloor = 1
  27.     否则如果(tempHigh > GameTop + 110)为真,则
  28.         tempFloor = 2
  29.     否则如果(tempHigh > GameTop + 80)为真,则
  30.         tempFloor = 4
  31.     否则如果(tempHigh > GameTop + 50)为真,则
  32.         tempFloor = 3.5
  33.     条件结束
  34. 子程序结束,回到调用处
  35. //走向怪物
  36. 子程序 MoveToMon
  37.     GameState = -1
  38.     如果表达式 (MonX > 0 and PlayerX > 0) 为真,则
  39.         GameState = 0
  40.         FloorDis = MonFloor - PlayerFloor
  41.         //如果玩家高度高于怪物,先移动到怪物的下面
  42.         如果表达式 (FloorDis < 0 and (NearMon = 0 or tempFloorDis <> FloorDis)) 为真,则
  43.             tempFloorDis = FloorDis
  44.             NearMon = 1
  45.             调用子程序 JudgeMoveDir
  46.             //如果怪物处在第四层,特殊处理
  47.         否则如果(MonFloor = 4)为真,则
  48.             如果表达式 (FloorDis < 3.5) 为真,则
  49.                 如果表达式 (PlayerFloor = 1) 为真,则
  50.                     //我已在第一层了判断是否接近边缘 --判断用什么方式攻击怪物
  51.                     调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
  52.                     如果表达式 (FlooX > 0) 为真,则
  53.                         调用子程序 StopMove
  54.                         如果表达式 (Abs(MonX - PlayerX) >= AttackMaxDis) 为真,则
  55.                             GameState = 2
  56.                         否则
  57.                             GameState = 1
  58.                         条件结束
  59.                     否则
  60.                         如果表达式 (Abs(MonX - PlayerX) >= AttackMaxDis) 为真,则
  61.                             调用子程序 JudgeMoveDir
  62.                         否则
  63.                             调用子程序 StopMove
  64.                             GameState = 1
  65.                         条件结束
  66.                     条件结束
  67.                 否则
  68.                     如果表达式 (Abs(MonX - PlayerX) >= AttackMaxDis) 为真,则
  69.                         调用子程序 JudgeMoveDir
  70.                     否则
  71.                         调用子程序 StopMove
  72.                         GameState = 1
  73.                     条件结束
  74.                 条件结束
  75.             否则
  76.                 tempLeftDis = 0 : tempRightDis = 0
  77.                 tempTopDis = -90: tempButtomDis = 0: tempXDis = 65
  78.                 //在最底层,则找到第一层相对于玩家的位置
  79.                 调用子程序 JudgeFloorPos
  80.             条件结束
  81.             //玩家与怪物的高度小于3格,在最大攻击距离内跳砍就能打到
  82.         否则如果(FloorDis >= 0 and FloorDis <> 3)为真,则
  83.             //如果玩家和怪的X距离大于最大攻击距离
  84.             如果表达式 ((((Abs(MonX - PlayerX) >= AttackMaxDis) and (FloorDis < 3)) or ((Abs(MonX - PlayerX) >= 20) and (FloorDis > 3)))) 为真,则
  85.                 调用子程序 JudgeMoveDir
  86.             否则
  87.                 调用子程序 StopMove
  88.                 GameState = 1
  89.             条件结束
  90.         条件结束
  91.     否则如果(NearMon = 1)为真,则
  92.         调用子程序 StopMove
  93.     条件结束
  94. 子程序结束,回到调用处
  95. //向目标移动
  96. 子程序 JudgeMoveDir
  97.     弹起<Right>
  98.     弹起<Left>
  99.     如果表达式 (MonX > PlayerX) 为真,则
  100.         按住<Right>