飞艳小屋

程序--人生--哲学___________________欢迎艳儿的加入

BlogJava 首页 新随笔 联系 聚合 管理
  52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks

EZScript II【基本操作】


【执行/停止】
可以执行或停止script。停止後,再换执行则是从头开始。另外可用Alt-Pause来热键启动执行/停止的功能。

【暂停/继续】
可以暂停或继续script,与执行/停止不同的是可以从暂停处继续执行。另外可用Pause来热键启动执行/停止的功能。

【即时取得座标】
只要把动态抓点及颜色选项开启接著把滑鼠游标移到该点再按下Alt+Ctrl+左边的1-8数字键即可把座标存到Pos1-Pos8中了

【即时取得对应座标颜色】
只要把动态抓点及颜色选项开启接著把滑鼠游标移到该点再按下Alt+Ctrl+Shift左边的1-8数字键即可把Pos1-Pos8座标的颜色存到对应的Var1-Var8中了


 

EZScript IIScript语法】








【变数】

目前EZScript II提供16个变数供使用,分别是Var1~Var8,Pos1~Pos8。

【运算语法】

























名称 范例 结果
加法 var1+var2 把var1加上var2
减法 var1-var2 把var1减掉var2
乘法 var1*var2 把var1乘上var2
除法 var1/var2 把var1除以var2
取馀数 var1%var2 把var1除以var2取馀数


【条件语法】




























条件 用法
等於(=) var1=var2
大於(>) var1>var2
大於或等於(>=) var1>=var2
小於(<) var1
小於或等於(<=) var1<=var2
不等於(!=) var1!=var2
且(&&) var1=1 && var2=3
或(||) var1=1 || var2=3

条件语法通常配合if或while使用。


【流程控制】

if...end if

用法:

条件成立则执行if...end if里的叙述。

if 条件
    叙述
end if

范例:

if var1>3
    say "hi!!"
end if




else

用法:

与if...end if配合使用。
条件成立则执行if...else之间的叙述,
条件不成立则执行else...end if之间的叙述。

if 条件
    叙述
else
    叙述
end if

范例:

if var1>3
    say "hi!!"
else
    say "bye!!"
end if




while...wend

用法:

条件成立则执行while...wend里的叙述。

while 条件
    叙述
wend

范例:

while var1<100
    var1=var1+1
wend




repeat...end repeat

用法:

重覆执行repeat...end  repeat里的叙述。
次数可直接用数字也可用变数或运算式。

repeat 次数
    叙述
end repeat

范例:

repeat 100
    var1=var1+1
end repeat

repeat var2
    var1=var1+1
end repeat




break

用法:

离开目前的repeat...end repeat或while...wend回圈。

范例:

while var1<100
    var1=var1+1
    var2=var2*var1
    if var2>30
        break
    end if
wend




标记

标记的格式为名称:

范例:

Label:

good:




jump 标记

跳到指定的标记处。

用法:

jump 标记

范例:

add:
    var1=var1+1
    jump add




on..jump

resume

条件成立则触动jump指令。
on...jump检查条件时机在on..jump後的所有指令,直到最後一行或有其他的on...jump。
on...jump之前的script不会检查。
一但触动jump,会停止目前的script,直接jump到指定标记处。
配合resuem可以回到触动条件成立时的script位

用法:

On var1=1 Jump ext

范例:


on var1=1 jump ext
...
...
//下面这行会触动jump而到ext标记处执行
var1=1
//在resume後会从此处继续执行
var2=2
...
...

ext:
    var1=0
    resume




stop

结束script执行,即按了停止键。
将stop放在script最後一行,则script只会执行一次

范例:

var1=var1+1
stop




【键盘字元相关指令】

SendKey(按键码)
KeyPress(按键码)


用途:


模拟按下键盘动作。

范例:


 //以下皆为送出F1(模拟按了F1键)
SendKey(112)
KeyPress(112)

//alt+F1
SendKey(alt+112)
KeyPress(alt+112) //ctrl+alt+F1
SendKey(ctrl+alt+112)
KeyPress(ctrl+alt+112)




Say "字串" 
Text "字串" 
KeyString "字串"


用途:


模拟打字动作。
Text和KeyString功能相似,但Text不会影响你目前的键盘操作。
Say会在送完字串後再送出一个Enter键,Text和KeyString则否。
KeyString可以用"\n"来送出Enter键。
注意,KeyString无法用中文,Say及Text可以是中文字串。


范例:


Say "Hi!!你好!!"
Text "Hi!!你好!!"
KeyString "Hi!!"

//打完字後模拟按Enter
KeyString "Hi!!\n"

如果想把某个变数或运算式结果说出来,可以用$[运算式(或变数)]
如我要列出var1的值:
KeyString "$[var1]\n"

或如我要列出22*33的值:
KeyString "$[22*33]\n"




KeyDown(按键码)
KeyUp(按键码)

用途:

模拟按下或放开某个键。
若用了KeyDown而没用KeyUp放开,
则被按下的按键会一直保持著按下的状态。

范例:

//按下按键A不放
KeyDown(65)
//放开按键A
KeyUp(65)




【mouse指令】

Left Click 座标
Left DbClick 座标(位置)
Left Down 座标(位置)
Left Up 座标(位置)
Right Click 座标
Right DbClick 座标(位置)
Right Down 座标(位置)
Right Up 座标(位置)

用途:

模拟滑鼠按键动作。
用法和键盘指令类似。
若用了Left Down或Right Down而没用Left Up或Right Up来放开,
则该键会一直保持被按下的状态。
座标若是NoPos,则表示在目前座标处做动作(类似滑鼠连点功能)。

范例:

//在Pos1座标处按下点一下左键
Left Click Pos1

//在Pos1座标处按下左键不放
Left Down Pos1

//在目前游标座标处按下左键
Left Click NoPos




Left ColorClick 颜色 左上角座标 右下角座标
Left Color DbClick 颜色 左上角座标 右下角座标

用途:

在指定座标范围内点选或双击符合颜色值的第一个座标。

范例:

//在Pos1座标及Pos2座标范围内双击符合颜色Var1的第一个座标
Left Color DbClick Var1 Pos1 Pos2




MouseMove 座标

用途:

模拟滑鼠移动到座标处。

范例:

//移动游标到Pos1处
MouseMove Pos1




【其他指令】

Delay(时间)

用途:

延迟指定时间。
时间单位为ms(千分之一秒)。

范例:

//等待2秒
delay(2000)




Color[位置]

用途:

传回指定位置的颜色值。

范例:

//取得Pos1座标的颜色值
var1=color[pos1]




Rand[范围]

用途:

传回指定范围内的整数乱数。

范例:

//取得0-99的整数乱数
var1=rand[100]




Xy2Pos[X座标,Y座标]

用途:

把x,y形式表示的座标转成Pos位置格式。

范例:

//指定pos1座标为(100,200)
pos1=xy2pos[100,200]




Time
Timer


用途:

传回时间值。
Time传回从西元1970年至现在所经过的秒数。
Timer传回系统的clock时间,单位为ms(千分之一秒)

范例:

var1=time




GetColorPos[颜色值,左上角,右下角]


用途:


取得范围内符合颜色值的第一个座标。

范例:

//取得pos1,pos2范围内符合颜色值var1的第一个座标
var2=GetColorPos[var1,pos1,pos2]




Beep


用途:


发出哔声。

范例:

//发出哔声
beep


 

EZScript IIUO-Plugin








以下指令功能只适用在UO。

【延伸指令】


SellItem 数量

用途:

卖指定数量的物品。
若物品可堆叠,则只会卖一个。
在卖之前先把Sell视窗打开,并且不要移动视窗。

范例:

//卖前20个物品
sellitem 20
stop




SendMacro(编号)

用途需有UOAssist)

送出UOAssist里的对应的编号macro。
macro送出後会等待UOAssist动作完成後再继续下一个指令。
在使用SendMacro时要注意,尽量不要随便对EZScript视窗做操作,
否则可能造成一直呈现等待状态,这时请按暂停/继续按钮即可。

范例:

//送出编号#1的macro
sendmacro(1)




Drag 数量 from 来源 to 目的

用途:

搬指定数量的物品从指定的来源到目的。
数量若输入all表示全部搬过去。

范例:

//搬3个物品从pos1到pos2
Drag 3 from pos1 to pos2




WaitForWghtChange(时间)
WaitForWghtDec(时间)
WaitForWghtInc(时间)

用途需有UOAssist)

和Delay相似,差别在於在身上重量有变化时就不再等待。
WaitForWghtChange(时间)-重量改变
WaitForWghtDec(时间)-重量减少
WaitForWghtInc(时间)-重量增加

范例:

//等待10秒,或身上重量改变就结束等待
WaitForWghtChange(10000)




Skill[编号]
sSkill[编号]

用途需有UOAssist)

取得对应编号的技能值。
编号范围为0~48刚好对应UO里的49个技能。
sskill是表面值,skill是真实值。

范例:

var1=skill[11]




STR
HITS
INT
MANA
DEX
STAM
WGHT
MAXWGHT
NowX
NowY

用途需有UOAssist)

传回人物目前的状态。

范例:

//取得人物目前的加量值
var1=str
//传回人物目前所在的X座标
var1=nowx




BP
BM
MR
SS
SA
GA
GI
NS
USER1
USER2

用途需有UOAssist)

传回人物目前的资源数量。

范例:

//传回目前有多少药草SS
var1=ss

·EZScript 1.07版说明 only for UO

EZScript for Ultima Online (by Ajax)
-----------------------------------------------------
功能说用:
-----------------------------------------------------
【Run(执行)】
-按Run(执行)可以重覆不断的执行script
-想中断执行中的script可以按Stop(停止)或按键盘上的Pause键
-如果只想执行一次script可以在最後加上end script指令

【暂停/继续(1.1版以上)】
-可以暂停及继续script
-也可以在游戏中按Scroll Lock切换

【简易模式/完整模式(1.1版以上)】
-简易模式只有3个按钮,只占萤幕一小部分

【取得座标】
-取得选取的座标值到对应的变数pos1~pos4

【posX颜色】
-取得posX的颜色值到对应的变数var1~var8中

【按键码】
-取得按下按键的扫描码

-----------------------------------------------------
一般指令说明:
-----------------------------------------------------
【变数】
var1,var2....var8,pos1,pos2,pos3,pos4
运算式用法
var1=var2+var3+3*pos1......

【运算符号】
+,-,*,/,%(取馀数)

【座标指令】
单位是像素
x(n),y(n)
如:
pos1=pos1+x(22)会把pos1的x座标+22
pos1=pos1+x(22)-y(22)会把pos1的x座标+22,把y座标-22

取得posx的x和y的分量值
用法:
var1=getx(posx)
var2=gety(posx)

以上getx和gety分别会传回posx的x和y分量值
因为有些人也许会用到,所以写了一下


【送按键】
sendkey(key)
key的值有2种表示法
虚拟码:
f1-f12,left,right,up,down,pageup,pagedown,home,end
按键码:
请参考按键码
如:
sendkey(f1)和sendkey(112)都是代表送出F1
sendkey(f12)和sendkey(123)都是代表送出F12
sendkey(left)和sendkey(37)都是代表送出左键

【回圈控制】
repeat n
end repeat
(n省略,代表无穷回圈)
可以用多层repeat
如:
repeat var1
repeat 3
end repeat
end repeat
回圈可用break中断
如:
repeat 10
var1=var1+1
if var1=10
break
end if
end repeat

【判断指令】
判断符号有>(大於),<(小於),=(等於),>=(大於等於),<=(小於等於),!=(不等於),and(并且),or(或者)
如:
if var1>var2
end if

if var1>var2*var3
end if

if var1!=3
end if

if var1<=1 and var2=1
end if

if var1!=1 or var2>2
end if

【延迟指令】
delay(n)
n单位为千分之一秒
1000代表1秒

【乱数指令】
rand(n)
产生0-n的正整数乱数

【时间指令】
timer取得系统的clock(1/1000秒)
time取得系统时间(秒)
如:
var1=timer
var2=time

【声音】
beep发出警告声
如:
if var1=1
beep
end if

【color指令】
color(位置)-取得位置的颜色值
位置可以是变数或数值
如:
color(pos1)
color(var1)
color(1233123)
可以配合if用法
if color(pos1)=var1
end if

if var1=color(pos1)
end if

if color(pos1)=数值
end if

※使用color指令时UO要在最上层视窗

【mouse指令】
mouse状态(测试中)
mouse=n(n=1,0)
当n=0时滑鼠不会移动
当n=1时滑鼠会移动

按左键
left click 座标(位置)
座标可以用变数var1...var8,pos1,pos2,pos3,pos4
也可以用数字(参考撷取的值)
left click pos1
left click 837233

按左键2下
double left click 座标(位置)
double left click pos1
double left click 123987

按住左键不放n秒
left down 时间 座标(位置)
如:
left down 2000 pos1
表在pos1按住左键2秒再放开

※右键和左键一样将left改成right

【Drag指令】
drag 数量 from 座标1(位置) to 座标2(位置)
数量和座标可以用变数也可以用数字
数量如果是all,则代表全部移过去
drag 10 from pos1 to pos2
drag var1 from pos1 to 数字

※若lag很严重可在drag指令得加上delay time,如drag 10 from pos1 to pos2 delay 500

【DragAll指令】
DragAll 颜色值 from 左上角座标 右下角座标 to 目的地座标 delay 时间(内定为0)
这个指令可以用来搬容器内所有特定颜色值的东西
如把主包包内所有的黑药水全搬到指定的容器内(在练制药时很有用)

※使用DragAll指令时UO要在最上层视窗

【说话指令】
say "讯息"
text "讯息"
say会送出enter
text不会
say "$[变数]"可送出变数的内容
如:
say "现在HP=$[hits]"

【注解指令】
//代表後面的不是指令
如:
//这是if
if var=10
//说话
say "测试"
end if

【结束指令】
end script或stop
放在最後一行
script只会执行一次

-----------------------------------------------------
延伸指令说明(以下指令需有UOAssist):
-----------------------------------------------------
【取得目前状态及身上资源】
取得目前的str,hits,int,mana,dex,stam,wght,maxwght,NowX(目前X座标),NowY(目前Y座标)
以下变数可以取得目前身上的资源(请先用UOAssist中的Count Resources,取得数值再执script):
bp,bm,mr,ss,sa,ga,gi,ns,user1,user2

如:
if hits<10
end if
if mana<10
end if

【送出UOAssist的macro】
SendMacro(编号1-16)
如:
SendMacro(1)会送出UOAssist中编号#1的macro

【死亡及断线时自动通知】
当script在执行时,如果断线或死亡会自动发出9声警告声


【取得Skill值(1.09c版以上)】
varx=skill(数值)
数值范围为0-48,刚好对应uo里的49个技能

【等待延伸指令(1.09d版以上)】
WaitForWghtChange(时间)
时间单位为千分之秒,与delay指令功能功相似
差别在於WaitForWghtChange在身上重量有变化时就不再等待
嗯,那这指令有什麽好处??自己想棉..^^

-----------------------------------------------------
UO2指令:
-----------------------------------------------------
当你开了UO2时,你可以用app="视窗名称全名或关键字"来指令macro要送到那个UO视窗
如:
//送到有视窗Title有"Ultima"的client
app="Ultima"
sendkey(f2)
//送到有视窗Title有"Origin"的client
app="Origin"
sendkey(f2)

-----------------------------------------------------
范例:
-----------------------------------------------------
范例1:
持续每秒按一次F1
sendkey(F1)
delay(1000)

范例2:
把一堆东西由位置1移10个到位置2
先取得位置1的座标到pos1
再取得位置2的座标到pos2
然後写下面的script
drag 10 from pos1 to pos2
end script
·EZScript II 2.1.0.3新增功能


 

新增热键
以下功能要把动态抓点打勾

CTRL+ALT+HOME
呼叫EZScript视窗并显示


--------------------------------------------------------------------
新增指令
ReadMemory[address,type]
取得记忆体某位址的值
这功能不能用"工作中视窗"..请注意....
用法:
address为记忆体位址
你可以用10进位或16进位
16进位表示法为
0x0000a
记住"0x"为16进位表示

type为读取格式
共有0,1,2三个值可用
0表示读1个byte
1表示读2个bytes
2表示读4个bytes

这个功能有什麽用呢?
你可以用GM7找到游戏中的某个数值的记忆位址
比如体力好了...位址为004DE19A,大小为1byte

那你想要做到体力如果小於10就补充体力
可以这样写
if ReadMemory[0x004DE19A,0]<10 then
...补充体力....
end if


x2pos[x偏移量]
y2pos[y偏移量]

以上2个和xy2pos一样,只不过独立出来



waitkey
功能:等待按键并传回按键码
这个指令可单独使用或配合指定或条件式
如:
waitkey

var1=waitkey

while(waitkey!=27)
wend

scankey
功能:传回按键码
这个指令无法单独使用需配合指定或条件式
PS.这指令功能和waitkey一样,只不过不会等待按键输入,若没按任何键则传回0
如:
var1=scankey

while(scankey!=27)
wend



year
month
hour
day
minute
second

功能:传回目前时间值(年,月,日,时,分,秒)
这个指令无法单独使用需配合指定或条件式
如:
//传回目前是几点到var1
var1=hour

--------------------------------------------------------------------
流程控制
if...elseif...else...end if
多了elseif
现在您可以用
if var1=1
....
elseif var1=3
....
elseif var1=5
...
else
....
end if

--------------------------------------------------------------------
新增阵列变数
extvar[n]
n的范围为0~49

用法:
extvar[11]=var1
var2=extvar[3]

您也可以用变数来控制阵列位置
如把extvar[0]~extvar[49]全设为1



var1=0

while var1<50

extvar[var1]=1

var1=var1+1

wend
·EZScript II 2.1.0.4新增功能

新增热键
以下功能要把动态抓点打勾

CTRL+ALT+HOME
呼叫EZScript视窗并显示


--------------------------------------------------------------------
新增指令
ReadMemory[address,type]
取得记忆体某位址的值
这功能不能用"工作中视窗"..请注意....
用法:
address为记忆体位址
你可以用10进位或16进位
16进位表示法为
0x0000a
记住"0x"为16进位表示

type为读取格式
共有0,1,2三个值可用
0表示读1个byte
1表示读2个bytes
2表示读4个bytes

这个功能有什麽用呢?
你可以用GM7找到游戏中的某个数值的记忆位址
比如体力好了...位址为004DE19A,大小为1byte

那你想要做到体力如果小於10就补充体力
可以这样写
if ReadMemory[0x004DE19A,0]<10 then
...补充体力....
end if


x2pos[x偏移量]
y2pos[y偏移量]

以上2个和xy2pos一样,只不过独立出来



waitkey
功能:等待按键并传回按键码
这个指令可单独使用或配合指定或条件式
如:
waitkey

var1=waitkey

while(waitkey!=27)
wend

scankey
功能:传回按键码
这个指令无法单独使用需配合指定或条件式
PS.这指令功能和waitkey一样,只不过不会等待按键输入,若没按任何键则传回0
如:
var1=scankey

while(scankey!=27)
wend


mousepos
功能:传回目前滑鼠游标的位置(相对目前程序)
这个指令无法单独使用需配合指定或条件式
如:
var1=mousepos



year
month
hour
day
minute
second

功能:传回目前时间值(年,月,日,时,分,秒)
这个指令无法单独使用需配合指定或条件式
如:
//传回目前是几点到var1
var1=hour

--------------------------------------------------------------------
流程控制
if...elseif...else...end if
多了elseif
现在您可以用
if var1=1
....
elseif var1=3
....
elseif var1=5
...
else
....
end if


call
return
call会跳到标记所指的位置,并记录目前执行的位置
return则是回到上一个call位置
用法
call 标记
stop

标记:
return

--------------------------------------------------------------------
新增阵列变数
extvar[n]
n的范围为0~49

用法:
extvar[11]=var1
var2=extvar[3]

您也可以用变数来控制阵列位置
如把extvar[0]~extvar[49]全设为1



var1=0

while var1<50

extvar[var1]=1

var1=var1+1

wend
·一些使用上的小技巧

对於滑鼠部分
如果发现Left Click或Right Click不起作用,这时可以把滑鼠锁定功能打开
打开後在执行滑鼠相关指令时就无法使用滑鼠了,但却可以解决无法Click
的问题....


Say,Text,Keystring
这3个指令都是送出字串的功能,但应用上还是有点差异...
有些游戏是利用取得字元的讯息来判断是不有输入字...
这些游戏可以用Say,及Text...
但若遇到无法用Say及Text送字串的情况时
就得用keyString了....
KeyString是无法直接输入中文的
您只能利用间接的方式来输入
比如:
先模拟按了Ctrl+Space切换中文输入状态
接著在KeyString里打入输入中文的动作(里面还是英文)...即可
EX:
keypress(ctrl+32)
keystring "onf vnd "
keypress(ctrl+32)
以上3行就是用仓颉输入"你好"2个字
·EZScript II 2108新增指令

新增一变数MoveFlag
功能
当moveflag=0时(预设)
在执行click动作时和以前一样

当moveflag=1时
则会自动移到该点再执行click动作


left click pos1
left click pos2
left click pos3

游标并不会移到pos1~3(除非有把滑鼠锁定打勾)
若要移到该处需用mousemove

mousemove pos3
left click pos3


现在你可以用
mouseflag=1
left click pos1
left click pos2
left click pos3
如此,在执行click前游标便会移到pos1~3处...
而不需用mousemove了


在使用时会以最近的一次设定为主

moveflag=1
left click pos1
left click pos2
left click pos3

moveflag=0
left click pos4
left click pos5
left click pos6

黄色那3行会做游标移动的动作
而红色3行则不会

·EZScript II指令整理--New

EZScript IIScript语法】

【变数】

目前EZScript II提供66个变数供使用,分别是Var1~Var8,Pos1~Pos8,ExtVar[n]。

ExtVar[n]
n的范围为0~49

用法:
extvar[11]=var1
var2=extvar[3]

您也可以用变数来控制阵列位置
如把extvar[0]~extvar[49]全设为1

var1=0


while var1<50


   extvar[var1]=1


   var1=var1+1


wend

【运算语法】
名称 范例 结果
加法 var1+var2 把var1加上var2
减法 var1-var2 把var1减掉var2
乘法 var1*var2 把var1乘上var2
除法 var1/var2 把var1除以var2
取馀数 var1%var2 把var1除以var2取馀数

【条件语法】
条件 用法
等於(=) var1=var2
大於(>) var1>var2
大於或等於(>=) var1>=var2
小於(<) var1
小於或等於(<=) var1<=var2
不等於(!=) var1!=var2
且(&&) var1=1 && var2=3
或(||) var1=1 || var2=3

条件语法通常配合if或while使用。

【流程控制】

if...elseif...else...end if

用法:

条件成立则执行if...end if里的叙述。

if 条件
叙述
end if

范例:

if var1>3
say "hi!!"
end if

if 条件
叙述
elseif var1=10
叙述
end if

if var1>3
say "hi!!"
else
say "bye!!"
end if


while...wend

用法:

条件成立则执行while...wend里的叙述。

while 条件
叙述
wend

范例:

while var1<100
var1=var1+1
wend


repeat...end repeat

用法:

重覆执行repeat...end repeat里的叙述。
次数可直接用数字也可用变数或运算式。

repeat 次数
叙述
end repeat

范例:

repeat 100
var1=var1+1
end repeat

repeat var2
var1=var1+1
end repeat


break

用法:

离开目前的repeat...end repeat或while...wend回圈。

范例:

while var1<100
var1=var1+1
var2=var2*var1
if var2>30
break
end if
wend


标记

标记的格式为名称:

范例:

Label:

good:


jump 标记

跳到指定的标记处。

用法:

jump 标记

范例:

add:
var1=var1+1
jump add


on..jump

resume

条件成立则触动jump指令。
on...jump检查条件时机在on..jump後的所有指令,直到最後一行或有其他的on...jump。
on...jump之前的script不会检查。
一但触动jump,会停止目前的script,直接jump到指定标记处。
配合resuem可以回到触动条件成立时的script位

用法:

On var1=1 Jump ext

范例:


on var1=1 jump ext
...
...
//下面这行会触动jump而到ext标记处执行
var1=1
//在resume後会从此处继续执行
var2=2
...
...

ext:
var1=0
resume


stop

结束script执行,即按了停止键。
将stop放在script最後一行,则script只会执行一次

范例:

var1=var1+1
stop


call
return

call会跳到标记所指的位置,并记录目前执行的位置
return则是回到上一个call位置

用法
call 标记
stop

标记:
return


【键盘字元相关指令】

SendKey(按键码)
KeyPress(按键码)

用途:

模拟按下键盘动作。

范例:

//以下皆为送出F1(模拟按了F1键)
SendKey(112)
KeyPress(112)

//alt+F1
SendKey(alt+112)
KeyPress(alt+112) //ctrl+alt+F1
SendKey(ctrl+alt+112)
KeyPress(ctrl+alt+112)


Say "字串"
Text "字串"
KeyString "字串"

用途:

模拟打字动作。
Text和KeyString功能相似,但Text不会影响你目前的键盘操作。
Say会在送完字串後再送出一个Enter键,Text和KeyString则否。
KeyString可以用"\n"来送出Enter键。
注意,KeyString无法用中文,Say及Text可以是中文字串。

范例:

Say "Hi!!你好!!"
Text "Hi!!你好!!"
KeyString "Hi!!"

//打完字後模拟按Enter
KeyString "Hi!!\n"

如果想把某个变数或运算式结果说出来,可以用$[运算式(或变数)]
如我要列出var1的值:
KeyString "$[var1]\n"

或如我要列出22*33的值:
KeyString "$[22*33]\n"


Echo "字串"
用途:

模拟打字动作。用法和Say、Text、KeyString类似。
这个指令较特别,你必须先将滑鼠游标移到要输入的范围内(只要是范围内即可,不用在起点),然後再使用Echo "字串"


范例:

//Pos1为输入对话框的座标位置
MouseMove pos1
Echo "Hi!!你好!!\n"


KeyDown(按键码)
KeyUp(按键码)

用途:

模拟按下或放开某个键。
若用了KeyDown而没用KeyUp放开,
则被按下的按键会一直保持著按下的状态。

范例:

//按下按键A不放
KeyDown(65)
//放开按键A
KeyUp(65)


WaitKey

功能:等待按键并传回按键码
这个指令可单独使用或配合指定或条件式
如:
waitkey

var1=waitkey

while(waitkey!=27)
wend


ScanKey

功能:传回按键码
这个指令无法单独使用需配合指定或条件式
PS.这指令功能和waitkey一样,只不过不会等待按键输入,若没按任何键则传回0
如:
var1=scankey

while(scankey!=27)
wend


【mouse指令】

Left Click 座标
Left DbClick 座标(位置)
Left Down 座标(位置)
Left Up 座标(位置)
Right Click 座标
Right DbClick 座标(位置)
Right Down 座标(位置)
Right Up 座标(位置)

用途:

模拟滑鼠按键动作。
用法和键盘指令类似。
若用了Left Down或Right Down而没用Left Up或Right Up来放开,
则该键会一直保持被按下的状态。
座标若是NoPos,则表示在目前座标处做动作(类似滑鼠连点功能)。

范例:

//在Pos1座标处按下点一下左键
Left Click Pos1

//在Pos1座标处按下左键不放
Left Down Pos1

//在目前游标座标处按下左键
Left Click NoPos


Left ColorClick 颜色 左上角座标 右下角座标
Left Color DbClick 颜色 左上角座标 右下角座标

用途:

在指定座标范围内点选或双击符合颜色值的第一个座标。

范例:

//在Pos1座标及Pos2座标范围内双击符合颜色Var1的第一个座标
Left Color DbClick Var1 Pos1 Pos2


MouseMove 座标

用途:

模拟滑鼠移动到座标处。

范例:

//移动游标到Pos1处
MouseMove Pos1


MoveFlag

功能
当moveflag=0时(预设)
在执行click动作时和以前一样

当moveflag=1时
则会自动移到该点再执行click动作


left click pos1
left click pos2
left click pos3

游标并不会移到pos1~3(除非有把滑鼠锁定打勾)
若要移到该处需用mousemove

mousemove pos3
left click pos3


现在你可以用
mouseflag=1
left click pos1
left click pos2
left click pos3
如此,在执行click前游标便会移到pos1~3处...
而不需用mousemove了


在使用时会以最近的一次设定为主

moveflag=1
left click pos1
left click pos2
left click pos3

moveflag=0
left click pos4
left click pos5
left click pos6

黄色那3行会做游标移动的动作
而红色3行则不会


 

【座标转换指令】

Xy2Pos[X座标,Y座标]

用途:

把x,y形式表示的座标转成Pos位置格式。

范例:

//指定pos1座标为(100,200)
pos1=xy2pos[100,200]


x2pos[x偏移量]
y2pos[y偏移量]


以上2个和xy2pos一样,只不过独立出来


【颜色相关指令】

Color[位置]

用途:

传回指定位置的颜色值。

范例:

//取得Pos1座标的颜色值
var1=color[pos1]


GetColorPos[颜色值,左上角,右下角]

用途:

取得范围内符合颜色值的第一个座标。

范例:

//取得pos1,pos2范围内符合颜色值var1的第一个座标
var2=GetColorPos[var1,pos1,pos2]


【时间日期指令】

Time
Timer

用途:

传回时间值。
Time传回从西元1970年至现在所经过的秒数。
Timer传回系统的clock时间,单位为ms(千分之一秒)

范例:

var1=time


year
month
hour
day
minute
second


功能:传回目前时间值(年,月,日,时,分,秒)
这个指令无法单独使用需配合指定或条件式
如:
//传回目前是几点到var1

var1=hour

【其他指令】

Delay(时间)

用途:

延迟指定时间。
时间单位为ms(千分之一秒)。

范例:

//等待2秒
delay(2000)


Rand[范围]

用途:

传回指定范围内的整数乱数。

范例:

//取得0-99的整数乱数
var1=rand[100]


Beep

用途:

发出哔声。

范例:

//发出哔声
beep


 

ReadMemory[address,type]
取得记忆体某位址的值
这功能不能用"工作中视窗"..请注意....

用法:
address为记忆体位址
你可以用10进位或16进位
16进位表示法为
0x0000a
记住"0x"为16进位表示

type为读取格式
共有0,1,2三个值可用
0表示读1个byte
1表示读2个bytes
2表示读4个bytes

这个功能有什麽用呢?
你可以用GM7找到游戏中的某个数值的记忆位址
比如体力好了...位址为004DE19A,大小为1byte

那你想要做到体力如果小於10就补充体力
可以这样写
if ReadMemory[0x004DE19A,0]<10 then
...补充体力....
end if


 

interval

用法
interval=数值(千分之一秒)


interval=100
//以下每个指令间隔为0.1秒
repeat 10
var1=var1+1
end repeat

interval=1
//以下每个指令间隔为0.001秒
repeat 10
var1=var1+1
end repeat


表示每个指令间的时间间隔为0.1秒

预设内定值为1(即0.001秒)

注意若设成0,会造成CPU被100%占用住....
所以若非特别需要,请最少设成1

posted on 2007-08-29 14:11 天外飞仙 阅读(15860) 评论(6)  编辑  收藏 所属分类: 其它

Feedback

# re: EZScript II【基本操作】 2007-12-21 16:16 网上邻居
这个帖子不错,但是颜色很伤眼
也许飞艳想用颜色强调、区分不同的内容,
但是颜色选得很不好,黄色系的颜色使人无法看清楚,适得其反:(  回复  更多评论
  

# re: EZScript II【基本操作】 2008-05-04 20:04 玫瑰
我还是有点不理解
我捉的Var怎么会跳过一边去呢?  回复  更多评论
  

# re: EZScript II【基本操作】 2008-05-04 20:08 玫瑰
SendKey(45)
Delay(1000)
SendKey(112)
MouseMove 2228254
Delay(1500)
Left Click 2228254


这个脚步不知道对不对,,高人请回我  回复  更多评论
  

# re: EZScript II【基本操作】[未登录] 2009-01-24 09:34 哈哈
按键码 是什么 例如 1 这个按键码 急用 请回复  回复  更多评论
  

# re: EZScript II【基本操作】 2010-06-23 13:58 干你娘
傻B,按键码都不懂你学什么脚本  回复  更多评论
  

# re: EZScript II【基本操作】 2011-01-30 03:45 摆脱
我想做一个 加血又加状态的 但是加血和加状态的时间不一样加状态的那个要65秒做完一后加血的也成65秒才加一次帮忙改下吧Var1=50
If Color[23920767]=9214629
KeyPress(117)
Delay(Var1)
KeyPress(117)
Delay(Var1)
End If
Var2=55000
delay=Var2
sendkey(F9)
delay(Var2)
End If
  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: