1. 延时1000毫秒
  2. 延时1000毫秒
  3. //**************************************************************************
  4. //作者:Jimmyzs
  5. //制作时间:2009-9-4 11:00 ~ 2009-9-5 2:00
  6. //V1.1 1-解决上个版本怪在某些特殊位置出现导致的问题
  7. // 2-修正了判断层位置时的BUG
  8. // 3-加入了平时对技能的支持
  9. // 4-退出时弹起所有按键
  10. //V1.2 1-加入了寻找蓝球加蓝
  11. // 2-加入了对玩家高度高于目标二层时下落一层时行走方向的再次判断
  12. // 3-对层次判断提取为一个子函数
  13. //V1.3 最终版--解决最右边层蓝球的问题和对左边怪物攻击方式的判断
  14. //**************************************************************************
  15. 用户定义变量 HpPer = 50 使用血瓶的血量百分比
  16. 用户定义变量 MpPer = 30 寻找蓝球时的百分比
  17. 用户定义变量 UseSkillMpPer = 70 平时使用技能的蓝量百分比
  18. //定义变量与初始化
  19. Dim hWnd, ClientRect, Ret(4), HpStep, HpX, HpY, MpX, MpY, UseSkillMpX, UseSkillMpY
  20. Dim GameLeft, GameTop, GameRight, GameButtom
  21. Dim MonX, MonY, PlayerX, PlayerY, BallX, BallY
  22. Dim MonFloor, PlayerFloor, BallFloor, tempHigh, tempFloor
  23. Dim HPColor, MpColor, MonColor, PlayerColor, FloorColor, SideColor, BallColor
  24. Dim AttackMaxDis, MagicDis, AttackedDis, RelativeDis, GameState, FindBallState, MonDir, KeyNum
  25. //MonColor 怪物的特征色--棒子 PlayerColor 人物的特征色--手臂 FloorColor 每层高度的特征色--绿色 MonFloor 怪物所在的高度层 PlayerFloor-玩家所在的高度层
  26. HpColor = "0066FF": MpColor = "FF6600": MonColor = "4C7299": PlayerColor = "0033CC": FloorColor = "0B8648": SideColor = "004E88": BallColor = "CC6601"
  27. MonFloor = 0: PlayerFloor = 0: BallFloor = 0
  28. //GameState --含义 -1 没有发现怪物 0 发现怪物 1 普通攻击 2 魔法攻击
  29. AttackMaxDis = 125: MagicDis = 330: AttackedDis = 104: GameState = -1: FindBallState = -1: MonDir = 1: KeyNum = 39: HpStep = 0.88: MpStep = 0.88
  30. //--------------------------------------------------------------
  31. //获得游戏窗口句柄和位置尺寸等信息以便操作
  32. 调用插件命令 hWnd = Window.mousepoint()
  33. 调用插件命令 ClientRect = Window.GetClientRect(hWnd)
  34. //以下语句判断是否获得的是游戏窗口(游戏窗口尺寸是550x400)
  35. 如果表达式 (StrComp(Right(ClientRect, 7), "550|400") <> 0) 为真,则
  36.     Messagebox("请将鼠标放在游戏窗口内启动脚本。")
  37. 脚本停止运行
  38. 条件结束
  39. Rect = Split(ClientRect,"|",-1,1)
  40. GameLeft = CInt(Rect(0))
  41. GameTop = CInt(Rect(1))
  42. GameRight = CInt(Rect(0)) + CInt(Rect(2))
  43. GameButtom = CInt(Rect(1)) + CInt(Rect(3))
  44. HpX = GameLeft + 80 + CInt( HpStep * HpPer)
  45. HpY = GameTop + 31
  46. MpX = GameLeft + 80 + CInt( MpStep * MpPer)
  47. MaxMpX = GameLeft + 80 + CInt( MpStep * 90)
  48. MpY = GameTop + 61
  49. UseSkillMpX = GameLeft + 80 + CInt( MpStep * UseSkillMpPer)
  50. UseSkillMpY = GameTop + 61
  51. //系统和窗口初始化完毕------------------------------------------
  52. 如果表达式 (True) 为真,则循环执行
  53.     调用子程序 AddHp
  54.     调用子程序 PlayerMove
  55.     调用子程序 GetMonInfo
  56.     调用子程序 GetPlayerInfo
  57.     调用子程序 MoveToMon
  58.     调用子程序 MoveToBall
  59.     调用子程序 AttackMon
  60. 循环结束
  61. //左右移动
  62. 子程序 PlayerMove
  63.     如果表达式 (GameState = -1) 为真,则
  64.         //判断地图边界则是通过地图最下面的二颗树的枝来判断的 //MinDir 行动方向, 1 向右 -1 向左
  65.         调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
  66.         如果表达式 (SideX > 0) 为真,则
  67.             弹起#KeyNum
  68.             如果表达式 (SideX < GameLeft + 200) 为真,则
  69.                 MonDir = 1
  70.             否则
  71.                 MonDir = -1
  72.             条件结束
  73.         条件结束
  74.         KeyNum = 38 + MonDir
  75.         按住#KeyNum
  76.     条件结束
  77. 子程序结束,回到调用处
  78. //得到怪物信息
  79. 子程序 GetMonInfo
  80.     调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
  81.     延时2毫秒
  82.     如果表达式 (MonY >0) 为真,则
  83.         //得到怪物X中心坐标
  84.         MonX = MonX + 15
  85.         tempHigh = MonY
  86.         调用子程序 GetFloor
  87.         MonFloor = tempFloor
  88.     条件结束
  89. 子程序结束,回到调用处
  90. //得到玩家信息
  91. 子程序 GetPlayerInfo
  92.     调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
  93.     延时2毫秒
  94.     如果表达式 (PlayerY>0) 为真,则
  95.         PlayerDir = 1
  96.         // 默认认为玩家面象为右边,这里通过玩家特征点的坐标加偏移找玩家背后的衣服边框来判断面象DFDFDF
  97.         //PlayerX + 12, PlayerY - 15, PlayerX + 16, PlayerY - 19
  98.         调用外部VBScript子程序 FindColorEx(GameLeft + 140, GameButtom - 3, GameRight - 140, GameButtom - 1, SideColor, 0, 0.9, SideX, SideY)
  99.         如果表达式 (HeadX >0) 为真,则
  100.             PlayerDir = 0