血条生命值是一个游戏屏幕上的人物HP指示,当受到攻击时会减少HP值。
生命值在网游中的展现有如下几种方式:横向的血条、竖向的血条、圆形的血球、不规则型等。
生命值在网游中是最关键、最敏感、最值得关注的参数之一,而血条作为人物生命值的直观展现,几乎所有的实用脚本都要与血条打交道,几乎所有的实用脚本都首先关注人物的生死存亡,几乎所有的打怪练级加PK类网游脚本都首先提供自动加红加蓝等基础功能。
操作方式:每个血条或者蓝条都会随着时间而减少,按下相应的快捷键或者鼠标点按钮,就可以帮相应的血条补满血哦!
制作思路:根据血条的颜色或底色来找色判断,特殊血条形状用数学公式解决。
参考脚本
//分析与思路:
//1、加血加蓝类无非就是在血或蓝达到指定的条件的时候按下游戏里相应的设置键(放了血瓶或蓝瓶的键)进行加血或加蓝!
//2、一般常见的有百分比加血和血量加血.
//2.1、百分比加血是将血(蓝)槽的长度按等份平分,血槽长度是——满血时的坐标减去没血时的坐标; 平分血槽一般常 见的是将血
//槽长度除以100(你觉得除以100不够仔细你也可以除以1000甚至10000),也就是把血槽长度平均分成100小段,在根据用户设置的百分
//比来计算。
// 这种加血方法的优点是速度快、制作容易;缺点是精准不是很高,容易被干扰。
// 注意:起始坐标要加上最小值的坐标
//2.2、血量加血是更具血的显示数值进行加血,数值获得可以利用大兵、一只鱼、星星火、91等作者的插件获得。获得数值后在和用户
//设置的数值作比较。来进行加血判断。
// 这种加血方法的优点是高精准,干扰性低;缺点是制作麻烦(需要做字库),判断速度慢
//3、现在我们来看网页所给的3个例子进行分析。
//3.1、先分析血条的颜色、看血条是否会变色。三种血条就圆形的血条不变色,第一种血条是渐变的以血的颜色来判断血比较麻烦。第
//二种中间存在干扰物,可以利用左右两边进行判断(干扰刚好没在那个点上)
// 我们在对血条底色进行分析。分析结果是3种血槽底色不存在变化,所以我们可以从判断底色进行判断血量。
//4、如何制作
//4.1、根据底色如何判断呢??比如我们判断血是否大于一半(50%)如果血大于50%的话那么血槽中间就看不到血槽的底色。也就是判
//断血槽中间点是否是血槽底色。是那么血就少于50%不是的话血就多余50%。 判断出血少于了50%该如何加血呢??其实很简单(看第一
//条),给我们试验的游戏的"Q"键就是给横向血条加血的。只要当血少于50%我们就让脚本按一次"Q"键(KeyPress 81,1)
//5、关于更具数值来判断的我就不啰嗦了,感觉没什么难度。直接用2.2提到的几位大大的插件就搞定了呵呵。
//分析结束,接下来就该你动手了。祝你成功
//○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
//=================以=下=为=范=例=脚=本=================
//○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
//用户设置和变量定义
dim xzbz(5),yzbz(5)
UserVar ms=DropList{百分比模式:0|数值模式:1|推荐模式:2}=0 设置内容
UserVar sz1="百分比加血蓝设置" —
UserVar jxbfb=40 血少于百分之几加血
UserVar jlbfb=40 蓝少于百分之几加蓝
UserVar sz2="数值比加血蓝设置" —
UserVar jxl=40 血少于多少时加血
UserVar zxz=100 你的总血量是多少
UserVar jll=40 蓝少于多少时加蓝
UserVar zlz=100 你的总蓝量是多少
//获得鼠标所指向的窗口的句柄
Plugin hwnd=Window.MousePoint()
//获得窗口左上角的位置和窗口的大小
Plugin rect=Window.GetClientRect(hwnd)
If InStrRev(rect,"550|400")=0
MessageBox "请将鼠标放在游戏窗口内在启动游戏"
EndScript
EndIf
//获得窗口左上角的坐标,并将坐标作为参考坐标
dw=Split(rect,"|"):dwx=dw(0):dwy=dw(1)
If ms=1
//将数值血量转换为百分比数值
jxbfb=jxl/zxz*100
jlbfb=jll/zlz*100
ElseIf ms=2
jxbfb=40
jlbfb=40
EndIf
//按键值数组,ARRAY是用于引用数组元素的表示符,由跟随有括号的变量名组成,括号中包含指示所需元素的索引号
ajz=array(81,87,65,83,68,70)
//颜色值数组
ys=array("D9D9D9","D9D9D9","ffffff","ffffff","e6e6e6","e6e6e6")
//设置横向血和蓝的判断点
xzbz(0)=(845-614)/100*jxbfb+dwx+64:xzbz(1)=(845-614)/100*jlbfb+dwx+64
yzbz(0)=dwy+33:yzbz(1)=dwy+77
//设置竖向血和蓝的判断点
xzbz(2)=dwx+82:xzbz(3)=dwx+170
yzbz(2)=dwy+303-(590-402)/100*jxbfb:yzbz(3)=dwy+303-(590-402)/100*jlbfb
//设置圆弧形血和蓝的判断点
xzbz(4)=-67*sin(3.1415926*jxbfb/100)+dwx+382 : xzbz(5)=67*sin(3.1415926*jlbfb/100)+dwx+386
yzbz(4)=67*cos(3.1415926*jxbfb/100)+dwy+204 : yzbz(5)=67*cos(3.1415926*jlbfb/100)+dwy+204
//WHILE true 是一个死循环
While true
i=0
//因为有3种形态的血和蓝,所以循环6次
For 6
//判断学或蓝是否满足加血条件
IfColor xzbz(i),yzbz(i),ys(i),0
KeyPress ajz(i),1
EndIf
i=i+1
EndFor
//设置一个延迟、缓解CPU
Delay 10
EndWhile
EndScript
//○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
//==================以=上=为=范=例=脚=本================
//○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○
//================= 作者:月弦伤 ===================
//○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○○