1. //分析与思路:
  2. //1、加血加蓝类无非就是在血或蓝达到指定的条件的时候按下游戏里相应的设置键(放了血瓶或蓝瓶的键)进行加血或加蓝!
  3. //2、一般常见的有百分比加血和血量加血.
  4. //2.1、百分比加血是将血(蓝)槽的长度按等份平分,血槽长度是——满血时的坐标减去没血时的坐标; 平分血槽一般常 见的是将血槽长度除以100(你觉得除以100不够仔细你也可以除以1000甚至10000),也就是把血槽长度平均分成100小段,在根据用户设置的百分比来计算。
  5. // 这种加血方法的优点是速度快、制作容易;缺点是精准不是很高,容易被干扰。
  6. // 注意:起始坐标要加上最小值的坐标
  7. //2.2、血量加血是更具血的显示数值进行加血,数值获得可以利用大兵、一只鱼、星星火、91等作者的插件获得。获得数值后在和用户设置的数值作比较。来进行加血判断。
  8. // 这种加血方法的优点是高精准,干扰性低;缺点是制作麻烦(需要做字库),判断速度慢
  9. //3、现在我们来看网页所给的3个例子进行分析。
  10. //3.1、先分析血条的颜色、看血条是否会变色。三种血条就圆形的血条不变色,第一种血条是渐变的以血的颜色来判断血比较麻烦。第二种中间存在干扰物,可以利用左右两边进行判断(干扰刚好没在那个点上)
  11. // 我们在对血条底色进行分析。分析结果是3种血槽底色不存在变化,所以我们可以从判断底色进行判断血量。
  12. //4、如何制作
  13. //4.1、根据底色如何判断呢??比如我们判断血是否大于一半(50%)如果血大于50%的话那么血槽中间就看不到血槽的底色。也就是判断血槽中间点是否是血槽底色。是那么血就少于50%不是的话血就多余50%。 判断出血少于了50%该如何加血呢??其实很简单(看第一条),给我们试验的游戏的"Q"键就是给横向血条加血的。只要当血少于50%我们就让脚本按一次"Q"键(KeyPress 81,1)
  14. //5、关于更具数值来判断的我就不啰嗦了,感觉没什么难度。直接用2.2提到的几位大大的插件就搞定了呵呵。
  15. //分析结束,接下来就该你动手了。祝你成功
  16. //○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
  17. //=================以=下=为=范=例=脚=本=================
  18. //○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
  19. //用户设置和变量定义
  20. dim xzbz(5),yzbz(5)
  21. 用户定义变量 ms=DropList{百分比模式:0|数值模式:1|推荐模式:2}=0 设置内容
  22. 用户定义变量 sz1="百分比加血蓝设置" —
  23. 用户定义变量 jxbfb=40 血少于百分之几加血
  24. 用户定义变量 jlbfb=40 蓝少于百分之几加蓝
  25. 用户定义变量 sz2="数值比加血蓝设置" —
  26. 用户定义变量 jxl=40 血少于多少时加血
  27. 用户定义变量 zxz=100 你的总血量是多少
  28. 用户定义变量 jll=40 蓝少于多少时加蓝
  29. 用户定义变量 zlz=100 你的总蓝量是多少
  30. //获得鼠标所指向的窗口的句柄
  31. 调用插件命令 hwnd=Window.MousePoint()
  32. //获得窗口左上角的位置和窗口的大小
  33. 调用插件命令 rect=Window.GetClientRect(hwnd)
  34. 如果表达式 (InStrRev(rect,"550|400")=0) 为真,则
  35.     弹出窗口 "请将鼠标放在游戏窗口内在启动游戏"
  36. 脚本停止运行
  37. 条件结束
  38. //获得窗口左上角的坐标,并将坐标作为参考坐标
  39. dw=Split(rect,"|"):dwx=dw(0):dwy=dw(1)
  40. 如果表达式 (ms=1) 为真,则
  41.     //将数值血量转换为百分比数值
  42.     jxbfb=jxl/zxz*100
  43.     jlbfb=jll/zlz*100
  44. 否则如果(ms=2)为真,则
  45.     jxbfb=40
  46.     jlbfb=40
  47. 条件结束
  48. //按键值数组,ARRAY是用于引用数组元素的表示符,由跟随有括号的变量名组成,括号中包含指示所需元素的索引号
  49. ajz=array(81,87,65,83,68,70)
  50. //颜色值数组
  51. ys=array("D9D9D9","D9D9D9","ffffff","ffffff","e6e6e6","e6e6e6")
  52. //设置横向血和蓝的判断点
  53. xzbz(0)=(845-614)/100*jxbfb+dwx+64:xzbz(1)=(845-614)/100*jlbfb+dwx+64
  54. yzbz(0)=dwy+33:yzbz(1)=dwy+77
  55. //设置竖向血和蓝的判断点
  56. xzbz(2)=dwx+82:xzbz(3)=dwx+170
  57. yzbz(2)=dwy+303-(590-402)/100*jxbfb:yzbz(3)=dwy+303-(590-402)/100*jlbfb
  58. //设置圆弧形血和蓝的判断点
  59. xzbz(4)=-67*sin(3.1415926*jxbfb/100)+dwx+382 : xzbz(5)=67*sin(3.1415926*jlbfb/100)+dwx+386
  60. yzbz(4)=67*cos(3.1415926*jxbfb/100)+dwy+204 : yzbz(5)=67*cos(3.1415926*jlbfb/100)+dwy+204
  61. //WHILE true 是一个死循环
  62. 如果表达式 (true) 为真,则循环执行
  63.     i=0
  64.     //因为有3种形态的血和蓝,所以循环6次
  65.     循环 6 遍
  66.         //判断学或蓝是否满足加血条件
  67.         如果 (xzbz(i),yzbz(i)) 的颜色等于 #ys(i) 则
  68.             按键#ajz(i)
  69.         条件结束
  70.         i=i+1
  71.     循环结束
  72.     //设置一个延迟、缓解CPU
  73.     延时10毫秒
  74. 循环结束
  75. 脚本停止运行
  76. //○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
  77. //==================以=上=为=范=例=脚=本================
  78. //○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
  79. //================= 作者:月弦伤 ===================
  80. //○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○