有偿找高人帮忙写个游戏脚本
天堂2外挂宝盒的卖东西的脚本,NPC每天8点收东西,到点的时候很多人一起卖,根本卖不出去,找高人做个能准点卖东西的脚本,QQ335610487E游脚本2.0使用说明
以前重大更新内容:
1.删除 GetStatusEx、GetPlayerStatusEx 函数,相应功能由 GetStatus、GetPlayerStatus 替代。
2.删除 PlrEnd、GdsEnd、MonEnd、NpcEnd、PetEnd 函数,相应的操作,将由系统自动在适合的时候处理。
3.删除 HideWindow、MindWindow、MaxdWindow、NordWindow 函数,相应功能由 ShowWindow 替代。
4.扩展 GetStatus、GetPlayerStatus 函数的参数意义。
本次更新内容:
1.新增 LvUpItem、LeagueFirst、LeagueNext、GetTickCount、SetHook、HookProc、SetAccount 7个函数。
简介
结构
常识
语法
数据
函数
指令
使用
简介
脚本使用与C/C++类似的语言风格、数据操作和函数调用方式,以提供最强大的功能平台为基本。采用最少量简单易用的指令,让玩家看得舒服、用得爽心。合理利用逻辑推理,巧妙实现智能化。
整个编写过程中只有IF-ELSE、标签定义、GOTO、RETURN、数据传递、数据运算、函数调用这些语法。
更详细的介绍请看其它章节。
返回开头
结构
脚本的结构类似一个程序的源代码文件,可以包括多个模块(函数)。每个模块都是脚本中独立的结构,模块与模块之间可以互相调用,但不可嵌套(不可在一个函数中再内嵌另一个函数),函数可以有输入参数和输出参数(返回值)。
每个脚本中,必须要有main()这个函数,脚本的执行也就是执行该函数。函数的名称必须是字母开头的字母、数字和下划的组合,不能含有中文和其它符号。不管函数有无输入参数,定义和调用时,名称后面都必须带配套的括号”(”与”)”,如main(),函数后面的执行实体须用大括号”{”与”}”括起来。如:
main()
{
GotoQY(); //调用移动去奇岩的函数
}
GotoQY()
{
//……
}
返回开头
常识
脚本文档中,两个反斜扛”//”后面的到本行结束的部分为注释文本,编译时将会被忽略。例如:
value0++; //记数器叠加
脚本文档中,反斜扛加星号”/*”到星号加反斜扛”*/”中间的部分为注释文本,编译时将会被忽略。例如:
value0++; /*记数器叠加*/
脚本文档中,每条指令结尾须带一个分号”;”隔开,标签定义例外。例如:
loop01: //标签
v0=v1+123; //把v1的值加123,然后放在v0内
脚本文档中,括号”(”与”)”,有两个函义,1.标识着函数参数的起始与结尾;2.标识着if判断语句的起始与结尾。例如:
GetPos(int x,int y,int z)
if(3>1)
脚本文档中,大括号”{”与”}”,的函义是标识着括号中间的部分为一个整体,或者是函数的实体。
脚本文档中,指令不区分大小写,函数名也不区分大小写。
脚本文档中,字符串参数须用双引号括起来。例如:”哈哈”、“我不在那里啊”等等。
脚本文档中,字符串的编码为Unicode,每个英文、数字或汉字均表示一个字符,占用1的字串长度,但是源代码可以是ANSI或Unicode格式。
返回开头
语法
IF语句的说明:
IF是“如果”的意思,后面跟随着的是判断语句,且必须用括号括起来,如果判断结果为真,则执行随后的部分,如果不为真时,则跳过下一步而执行。当判断结果为真,想要执行随后的多步(大于1步)时,请把后面的多步用大括号扩起来。
判断语句的条件一共有 大于、大于或等于、等于、小于或等于、小于、不等于 六种,分别对应的符号为 >、>=、==、<=、<、!= 。脚本中所有整数的比较均为32位带符号整数的比较。字符串的也能进行类似的比较。
例1:
语句 执行否
if(1>2)
value0++; 不
value0--; 是
因为1大于2是不真的(这个结论是假的),所以跳过if的下一步,不执行value++,而执行value0--。
例2:
语句 执行否
if(6>2)
value0++; 是
value0--; 是
因为6大于2是真的,所以执行判断语句随后的部分。
例3:
语句 执行否
if(1>2)
{
value0++; 不
value0--; 不
value0*=10; 不
}
value0+=2; 是
因为1大于2是假的,所以跳过if的下一步,但是下一步是用大括号括起来的一个整体,所以跳过整个整体,而执行value0+=2。
例4:
语句 执行否
if(8>2)
{
value0++; 是
value0--; 是
value0*=10; 是
}
value0+=2; 是
因为8大于2是真的,所以执行判断语句随后的部分。
例5:
语句 执行否
if("B">"A")
{
value0++; 是
value0--; 是
value0*=10; 是
}
value0+=2; 是
因为'B'的编码是66,大于'A'的编码65,判断结果为真,所以执行判断语句随后的部分。
值得注意的是,IF判断语句中,只能是两个数的比较或两个字符串的比较,不能象C/C++一样进行多级组合的比较。如果有需要,请用多个IF嵌套实现。例如:
if(value0>100) //正确:判断value0是否大于100
if(value0) //正确:判断value0是否不为0,等效语句 if(value0!=0)
if(_HP<1000) //正确:判断自己HP是否小于1000
if(string0=="啊") //正确:判断字串string0是否为"啊"
if(string0) //正确:判断string0是否不为空,等效语句 if(string0!="")
if(value0+1==1) //错误:比较源数据不能在内部进行运算
if(value0==1 && _HP<1000) //错误:不能进行这样的多级比较
if(GetItemCount("线")>100) //错误:比较的源数据不能由另一级操作提取,可以用如下的方式实现:value0=GetItemCount("线"); if(value0>100)
IF…ELSE语句的说明:
IF语句的含义同前所述,但搭配ELSE后,当判断结果为真时,会执行IF后面的语句,执行完后跳到ELSE随后语句之后执行;判断结果为假时,执行ELSE后面的语句。
例1:
语句 执行否
if(1>2)
value0++; 否
else
value0--; 是
value0+=10; 是
例2:
语句 执行否
if(9>2)
value0++; 是
else
value0--; 否
value0+=10; 是
例3:
语句 执行否
if(10>12)
{
value0++; 否
value0+=2; 否
}
else
value0--; 是
value0*=12; 是
例4:
语句 执行否
if(10<12)
value0++; 是
else
{
value0--; 否
value0-=2; 否
}
value0*=12; 是
例5:
语句 执行否
if(10>12)
value0++;
value0+=2;
else
value0--;
value0*=12;
错误的语法,if后面有多步,需要用大括号”{”与”}”括起来。
IF…ELSE IF语句的说明:
IF与ELSE IF组成连续判断,ELSE IF也是一个判断语句,当IF的判断结果为假时,跳到下一个ELSE IF进行再次判断,再为假时,再跳到下一个ELSE IF进行判断……
例1:
语句 执行否
if(1>2)
value0+=1; 否
else if(1>3)
value0+=2; 否
else if(1>4)
value0+=3; 否
else
value0+=4; 是
value0+=5; 是
标签的定义:
标签顾名思义,就是标识一个地方,方便GOTO语句的跳转,标签必须是字母开头的字母、数字与下划线的组合,不能为中文或其它符号。标签后面用一冒号”:”加以标识,不可用分号。同一函数内两标签名称不能相同。例如:
loop01:
next09:
exit02:
GOGO语句的说明:
跳转到指定的标签。例如:
goto loop01;
goto next09;
goto exit02;
RETURN语句的说明:
立即返回,后面可以带返回值。例如:
return;
return 12;
return TRUE;
实例:
main()
{
value0=GetRange(); //执行完这一句后,value0的值为16
}
GetRange()
{
return 16;
}
函数的调用:
通常调用举例:
main()
{
Sleep(1000); //调用延迟函数
}
取返回值调用举例:
main
{
value0=CalcDistance(1,2,12,13); // CalcDistance返回结果被置入value0内。
}
函数参数的传递:
调用时参数的传递如上面实例所示,从”(”开始,每个参数之间用逗”,”号隔开,到”)”号结束。当自己编写函数时,外部传入的参数,被按顺序传入对应类型的函数变量(见数据章节说明)内。例如:
main()
{
GoGo(12,24,”啊啊”,48);
}
GoGo()
{
//此时 value0等于12
//value1等于24
//string0等于”啊啊”
//value2等于48
}
返回开头
数据
脚本中的数据均为32位整数,字符串的最大长度不能超过255(中文或字母、数字等)。编写过程中,int表示整数,char*表示字符串,BOOL表示布尔值(真/假值)。
常量:
定义了一部分自己可以直接引用的常量,列表如下:
常量名 含义
_HP 自己HP值
_MP 自己MP值
_CP 自己CP值
_LV 自己等级(LV)
_WEIGHT 自己负重百分数的10000倍(如:当负重为45.12%时,该值为4512)
_EXP 自己经验百分数的10000倍(如:当经验为78.10%时,该值为7810)
_MAXHP 自己HP最大值
_MAXMP 自己MP最大值
_MAXCP 自己CP最大值
_OX 自己X坐标
_OY 自己Y坐标
_OZ 自己Z坐标
_ID 自己唯一标识ID
_ITEMNUM 自己身上物品总数(包括穿在身上的物件和任务物件)(包裹里每占一个方格算1个)
_TROOPNUM 自己所在的队伍人员总数(不包括自己)
TRUE 布尔值:真,等于1
FALSE 布尔值:假,等于0
_FX 挂机中心点X坐标
_FY 挂机中心点Y坐标
_FZ 挂机中心点Z坐标
_RX 挂机休息点X坐标
_RY 挂机休息点Y坐标
_RZ 挂机休息点Z坐标
_PETUSE 自己是否有召唤兽/宠物
_PETHP 自己召唤兽/宠物的HP
_PETMP 自己召唤兽/宠物的MP
_PETLV 自己召唤兽/宠物的等级
_PETX 自己召唤兽/宠物的X坐标
_PETY 自己召唤兽/宠物的Y坐标
_PETZ 自己召唤兽/宠物的Z坐标
_PETMAXHP 自己召唤兽/宠物的最大HP
_PETMAXMP 自己召唤兽/宠物的最大MP
_PETID 自己召唤兽/宠物的唯一标识ID
_SELID 已选择对象的唯一标识ID
_SELHP 已选择对象的HP
_SELMAXHP 已选择对象的最大HP
变量:
每个函数分配了32个32位的整型变量和16个字符串变量。不需要另外定义即可直接使用。列表如下:
变量名 实际数据类型 范围 简写
value0 long -2147483648 - 2147483647 v0
value1 long -2147483648 - 2147483647 v1
value2 long -2147483648 - 2147483647 v2
value3 long -2147483648 - 2147483647 v3
value4 long -2147483648 - 2147483647 v4
value5 long -2147483648 - 2147483647 v5
value6 long -2147483648 - 2147483647 v6
value7 long -2147483648 - 2147483647 v7
value8 long -2147483648 - 2147483647 v8
value9 long -2147483648 - 2147483647 v9
value10 long -2147483648 - 2147483647 v10
value11 long -2147483648 - 2147483647 v11
value12 long -2147483648 - 2147483647 v12
value13 long -2147483648 - 2147483647 v13
value14 long -2147483648 - 2147483647 v14
value15 long -2147483648 - 2147483647 v15
value16 long -2147483648 - 2147483647 v16
value17 long -2147483648 - 2147483647 v17
value18 long -2147483648 - 2147483647 v18
value19 long -2147483648 - 2147483647 v19
value20 long -2147483648 - 2147483647 v20
value21 long -2147483648 - 2147483647 v21
value22 long -2147483648 - 2147483647 v22
value23 long -2147483648 - 2147483647 v23
value24 long -2147483648 - 2147483647 v24
value25 long -2147483648 - 2147483647 v25
value26 long -2147483648 - 2147483647 v26
value27 long -2147483648 - 2147483647 v27
value28 long -2147483648 - 2147483647 v28
value29 long -2147483648 - 2147483647 v29
value30 long -2147483648 - 2147483647 v30
value31 long -2147483648 - 2147483647 v31
string0 WORD[256] 最大长度255 s0
string1 WORD[256] 最大长度255 s1
string2 WORD[256] 最大长度255 s2
string3 WORD[256] 最大长度255 s3
string4 WORD[256] 最大长度255 s4
string5 WORD[256] 最大长度255 s5
string6 WORD[256] 最大长度255 s6
string7 WORD[256] 最大长度255 s7
string8 WORD[256] 最大长度255 s8
string9 WORD[256] 最大长度255 s9
string10 WORD[256] 最大长度255 s10
string11 WORD[256] 最大长度255 s11
string12 WORD[256] 最大长度255 s12
string13 WORD[256] 最大长度255 s13
string14 WORD[256] 最大长度255 s14
string15 WORD[256] 最大长度255 s15
数据的运算:
数据的运算支持 加、减、乘、除、and、or、余除,对应的操作符分别为 +、-、*、/、&、|、% ,每条运算指令只能执行一步运算,不可进行多步运算。支持C/C++风格的 +=、-=、*=、/=、&=、|=、%=、++、-- 运算。例如:
指令 正确否
value0=value1+2; 正确
value1=-32+6; 正确
value2=_HP*100; 正确
value3=value1&value0; 正确
value0+=12; 正确
value0++; 正确
_HP=12+1; 错误,常量不可作为结果存放体
value0=1+2+3; 错误,不可进行多步运算
字符串的操作:
字符串支持格式化与连接操作,操作中使用 =、+= 两个操作符,举例如下:
指令 正确否
value0=12; 正确
string0="哈"; 正确(此时string0="哈")
string1=value0; 正确(此时string1="12")
string1+=value0; 正确(此时string1="1212")
string1+=string0; 正确(此时string1="1212哈")
string1=string0+"aaa" 错误
返回开头
函数
脚本中,int表示定义的为整数、char*表示定义的为字符串(传入/传出)、BOOL表示定义的为布尔型数(有真/假两种状态)、int&表示定义的为传出整数(即指针),void表示无返回函数,自定义函数参数最多只可以传送16个。可以使用的系统函数列表如下:
Msg 发送文本信息
LoadSetFile 装载配置文件
MoveTo 移动
MoveToNpc 向NPC移动
MoveToPlayer 向玩家移动
SafeMoveTo 带自卫地移动
SafeMoveToNpc 带自卫地向NPC移动
SafeMoveToPlayer 带自卫地向玩家移动
AsyncMoveTo 异步移动
AsyncMoveToNpc 异步向NPC移动
AsyncMoveToPlayer 异步向玩家移动
SelNpc 选择NPC
SelPlayer 选择玩家
SelId 根据唯一标识ID选择目标
ForceAttack 强制攻击
ShiftForceAttack 定点强制攻击
Attack 攻击(相当于再次点击目标)
ShiftAttack 定点攻击(相当于再次点击目标)
QueryNpc 询问NPC,打开对话框
QueryPlayer 询问玩家,对于开店的玩家会打开对话框
DlgText 点击NPC对话框中的文本
DlgTextInc 点击NPC对话框中的包含文本的项
DlgPos 按NPC对话框中的可点击文本顺序,点击(从0开始)
DlgSetEditValue 设置NPC对话框中编辑框的值
DlgFindLink 检索可点连接中的文本
ReadyTeleport 准备开始传送
WaitTeleport 等待传送完成
GetGameTime 获取当前游戏中的时间
RequestTrade 向玩家请求交易
ShopFirst 遍历 交易/商店买卖/庄园购买/仓库存取 列表中的第一个物品
ShopNext 遍历 交易/商店买卖/庄园购买/仓库存取 列表中的下一个物品
ShopItem 获取 交易/商店买卖/庄园购买/仓库存取 列表中的物品数量
ShopPrice 获取 交易/商店买卖/庄园购买/仓库存取 列表中的物品价格
ShopAdd 进行 交易/商店买卖/庄园购买/仓库存取 的物品批量交易
ShopTrade 进行 交易/商店买卖/庄园购买/仓库存取 的单个物品交易
RefreshItem 刷新身上道具信息
ItemFirst 遍历身上的第一个物品
ItemNext 遍历身上的下一个物品
GetItemCount 获取身上的某个物品数量
UseItem 使用物品
UseItemAsId 根据唯一标识ID使用物品
GiveItem 给别人物品
WantItem 向别人索取物品
DelItem 删除物品
ThrowItem 丢弃物品
MakeItem 制作物品
LvUpItem 强化道具
GetSkillLevel 获取技能等级
UseSkill 使用技能
ShiftUseSkill 定点使用技能
TouchSkill 触发技能的使用
ShiftTouchSkill 定点触发技能的使用
GetName 获取自己名字
GetMetier 获取自己的职业名称
GetLeague 获取自己血盟与联盟名称
GetBuff 检测自己BUFF
GetStatus 获取自身状况
GetByAtks 获取围攻击怪数
SitDown 坐下
StandUp 站立
DeadGoBack 死亡返回
Set 设置开关
Get 获取开关状态
GetFollow 获取前2个(队伍设置栏的)跟随队长的名字
NotifyEvent 获取通知事件
GetPlayerPos 获取玩家位置
GetPlayerInfo 获取玩家信息
GetPlayerLeague 获取玩家血盟与联盟名称
GetPlayerBuff 检测玩家BUFF
GetPlayerStatus 获取玩家状况
GetNpcPos 获取NPC位置
GetMonPos 获取怪物位置
TroopInvite 邀请组队
TroopKick 驱逐队员
TroopLeave 脱离退伍
IsTroopMember 检测玩家是否是队伍成员
TroopFirst 遍历第一个队员(不包括自己)
TroopNext 遍历下一个队员(不包括自己)
IsCoadjMember 检测玩家是否是可协助人员
CoadjFirst 遍历第一个可协助人员(不包括自己)
CoadjNext 遍历下一个可协助人员(不包括自己)
PlrFirst 遍历第一个玩家
PlrNext 遍历下一个玩家
GdsFirst 遍历第一个地上的物品
GdsNext 遍历下一个地上的物品
MonFirst 遍历第一个怪物
MonNext 遍历下一个怪物
NpcFirst 遍历第一个NPC
NpcNext 遍历下一个NPC
PetFirst 遍历第一个宠物
PetNext 遍历下一个宠物
GetPetPos 获取宠物位置
GetMonStatus 获取怪物状况
GetPetStatus 获取宠物状况
GetNpcStaus 获取NPC状况
UnionTroopInfo 获取联盟频道信息
UnionTroopFirst 遍历联盟频道第一个成员
UnionTroopNext 遍历联盟频道下一个成员
LeagueFirst 遍历血盟第一个成员
LeagueNext 遍历血盟下一个成员
Sleep 延迟
Beep 调用机箱轰鸣器发出声音
GetTime 获取当前时间
TimePassed 检测现在是否过了指定的时间
Shutdown 关闭计算机
Logout 登出游戏
Login 登入游戏
Quit 结束脚本
Exit 结束程序
IsLogin 检测现在的登录状况
CalcDistance 计算二维平面两点的距离
CalcDistance3D 计算三维物理空间两点的距离
ShowWindow 以特定模式显示窗口
MoveWindow 设置窗口位置大小
GetWindowPos 获取窗口位置大小
GetKeyState 获取键盘某一个键状态
GetMousePos 获取鼠标在屏幕上的坐标
keybd_event 模拟键盘按键
mouse_event 模拟鼠标操作
sqrt 开平方(只返回结果的整数部分)
GetTickCount 获取自从系统启动以来,时间经过的毫秒(1/1000秒)数
SetAccount 设置脱机宝盒账号密码和人物序号
strupr 将字串中的小写字母转换成大写字母
strlwr 将字串中的大写字母转换成小写字母
strlen 获取字串长度
strspt 提取字串中的一部分
CharGet 获取字串中的某个字符编码(Unicode)
CharSet 设置字串中的某个字符编码(Unicode)
FileCreate 创建或打开文件
FileDelete 删除文件
FileClose 关闭文件
FileSeek 设置文件当前操作的位置指针
FileReadLine 读取文本文件的一行
FileWriteLine 写入文本文件的一行
ValueAlloc 申请批量整数内存
StringAlloc 申请批量字串内存
ValueReAlloc 重新申请批量整数内存
StringReAlloc 重新申请批量字串内存
ValueFree 释放申请的整数内存
StringFree 释放申请的字串内存
GetValueCount 获取申请的整数内存个数
GetStringCount 获取申请的字串内存个数
ValueSet 设置整数内存的值
ValueGet 获取整数内存的值
StringSet 设置字串内存的值
StringGet 获取字串内存的值
SetHook 安装/卸载 钩挂
HookProc 钩挂回调函数
BOOL Msg(char* szObject,char* szChat)
功能:
发送文本信息
参数:
szObject: 信息对象。为"[系统]"时,显示系统信息;为"[一般]"时,在普通频道说话;为"[喊叫]"时,在喊叫频道说话;为"[交易]"时,在交易频道说话;为"[队伍]"时,在队伍频道说话;为"[血盟]"时,在血盟频道说话;为"[同盟]"时,在同盟频道说话;为玩家名字时,对该玩家私聊,在玩家名字前面加"#"时,为对本机登录的用户发送隐藏脚本指令。
szChat: 信息内容
返回:
正确发送信息时返回TRUE;发送失败时返回FALSE。
说明:
无
返回索引
BOOL LoadSetFile(char* szFileName)
功能:
装载配置文件
参数:
szFileName: 配置文件路径名(包括扩展名),整个字串长度不可超过255个字符
返回:
正确装载时返回TRUE;失败时返回FALSE。
说明:
无
返回索引
BOOL MoveTo(int x,int y,int z)
功能:
移动
参数:
x: 目的地X坐标
y: 目的地Y坐标
z: 目的地Z坐标
返回:
顺利移动到目的地时返回TRUE;失败时返回FALSE。
说明:
直到到达目的地后才返回,移动过程中具备一定的寻道(绕障碍物)能力。
返回索引
BOOL MoveToNpc(char* szNpcName)
功能:
向NPC移动
参数:
szNpcName: NPC名称
返回:
顺利移动到目的地时返回TRUE;失败时返回FALSE。
说明:
直到到达目的地后才返回,移动过程中具备一定的寻道(绕障碍物)能力,如果有同名NPC存在,则选择离自己最近的一个。
返回索引
BOOL MoveToPlayer(char* szPlayerName)
功能:
向玩家移动
参数:
szPlayerName: 玩家名称
返回:
顺利移动到目的地时返回TRUE;失败时返回FALSE。
说明:
直到到达目的地后才返回,移动过程中具备一定的寻道(绕障碍物)能力。
返回索引
BOOL SafeMoveTo(int x,int y,int z)
功能:
带自卫地移动
参数:
x: 目的地X坐标
y: 目的地Y坐标
z: 目的地Z坐标
返回:
顺利移动到目的地时返回TRUE;失败时返回FALSE。
说明:
直到到达目的地后才返回,移动过程中具备一定的寻道(绕障碍物)能力。如果有怪攻击队伍(包括协友),就会暂停移动而打怪,打完后再继续往目的地移动。
返回索引
BOOL SafeMoveToNpc(char* szNpcName)
功能:
带自卫地向NPC移动
参数:
szNpcName: NPC名称
返回:
顺利移动到目的地时返回TRUE;失败时返回FALSE。
说明:
直到到达目的地后才返回,移动过程中具备一定的寻道(绕障碍物)能力,如果有怪攻击队伍(包括协友),就会暂停移动而打怪,打完后再继续往目的地移动。如果有同名NPC存在,则选择离自己最近的一个。
返回索引
BOOL SafeMoveToPlayer(char* szPlayerName)
功能:
带自卫地向玩家移动
参数:
szPlayerName: 玩家名称
返回:
顺利移动到目的地时返回TRUE;失败时返回FALSE。
说明:
直到到达目的地后才返回,移动过程中具备一定的寻道(绕障碍物)能力。如果有怪攻击队伍(包括协友),就会暂停移动而打怪,打完后再继续往目的地移动。
返回索引
BOOL AsyncMoveTo(int x,int y,int z)
功能:
异步移动
参数:
x: 目的地X坐标
y: 目的地Y坐标
z: 目的地Z坐标
返回:
成功时返回TRUE;失败时返回FALSE。
说明:
只触发一次移动,马上返回,不跟踪是否到达了目的地,该函数如果是单纯只执行一次,将不具备寻道(绕障碍物)能力。在标准每间隔1秒的触发下,才具备寻道(绕障碍物)能力。
返回索引
BOOL AsyncMoveToNpc(char* szNpcName)
功能:
异步向NPC移动
参数:
szNpcName: NPC名称
返回:
成功时返回TRUE;失败时返回FALSE。
说明:
只触发一次移动,马上返回,不跟踪是否到达了目的地。如果有同名NPC存在,则选择离自己最近的一个。该函数如果是单纯只执行一次,将不具备寻道(绕障碍物)能力,在标准每间隔1秒的触发下,才具备寻道(绕障碍物)能力。
返回索引
BOOL AsyncMoveToPlayer(char* szPlayerName)
功能:
异步向玩家移动
参数:
szPlayerName: 玩家名称
返回:
成功时返回TRUE;失败时返回FALSE。
说明:
只触发一次移动,马上返回,不跟踪是否到达了目的地。该函数如果是单纯只执行一次,将不具备寻道(绕障碍物)能力。在标准每间隔1秒的触发下,才具备寻道(绕障碍物)能力。
返回索引
BOOL SelNpc(char* szNpcName)
功能:
选择NPC
参数:
szNpcName: NPC名称
返回:
成功时返回TRUE;失败时返回FALSE。
说明:
如果有同名NPC存在,则选择离自己最近的一个。
返回索引
BOOL SelPlayer(char* szPlayerName)
功能:
选择玩家
参数:
szPlayerName: 玩家名称,当输入名称为空""时选择自己
返回:
成功时返回TRUE;失败时返回FALSE。
说明:
无。
返回索引
BOOL SelId(int nId)
功能:
根据唯一标识ID选择目标
参数:
nId: 玩家、物品、怪物、NPC、宠物等的唯一标识ID。当nId为0时,表示取消选择。
返回:
成功时返回TRUE;失败时返回FALSE。
说明:
当ID为地上物品ID时,表示去捡取该物品。
返回索引
BOOL ForceAttack()
功能:
强制攻击
参数:
无
返回:
成功时返回TRUE;未选择目标时返回FALSE。
说明:
使用前请先选择目标。
返回索引
BOOL ShiftForceAttack()
功能:
定点强制攻击
参数:
无
返回:
成功时返回TRUE;未选择目标时返回FALSE。
说明:
使用前请先选择目标,使用时,自己人物不会移动,具有在游戏中按住Shift施放的效果。
返回索引
BOOL Attack()
功能:
攻击(相当于再次点击目标)
参数:
无
返回:
成功时返回TRUE;未选择目标时返回FALSE。
说明:
使用前请先选择目标,如果所选目标是怪物、紫名或红名或战场内玩家,就会去攻击;如果所选目标是NPC,就会去询问;如果所选目标是白名非战场内玩家,就会去跟随。
返回索引
BOOL ShiftAttack()
功能:
定点攻击(相当于再次点击目标)
参数:
无
返回:
成功时返回TRUE;未选择目标时返回FALSE。
说明:
使用前请先选择目标,如果所选目标是怪物、紫名或红名或战场内玩家,就会去攻击;如果所选目标是NPC,就会去询问;如果所选目标是白名非战场内玩家,就会去跟随,使用时,自己人物不会移动,具有在游戏中按住Shift施放的效果。
返回索引
BOOL QueryNpc(char* szNpcName)
功能:
询问NPC,打开对话框
参数:
szNpcName: NPC名称
返回:
成功时返回TRUE;失败时返回FALSE。
说明:
如果有同名NPC存在,则选择离自己最近的一个。
返回索引
BOOL QueryPlayer(char* szPlayerName)
功能:
询问玩家,对于开店的玩家会打开对话框
参数:
szPlayerName: 玩家名称
返回:
成功时返回TRUE;失败时返回FALSE。
说明:
无。
返回索引
BOOL DlgText(char* szText)
功能:
点击NPC对话框中的文本
参数:
szText: 要选择的文本
返回:
成功时返回TRUE;指定项不存在时返回FALSE。
说明:
无。
返回索引
BOOL DlgTextInc(char* szText)
功能:
点击NPC对话框中的包含文本的项
参数:
szText: 要选择的包含文本
返回:
成功时返回TRUE;指定项不存在时返回FALSE。
说明:
例如,点击奇岩城镇的传送师克拉彼亚,并点击了传送,会出现如下的选项列表:
欧瑞城镇 - 9400 金币
水上都市海音斯 - 7600 金币
狄恩城镇 - 6800 金币
高达德城镇 - 63000 金币
卢云城镇 - 59000 金币
修加特城镇 - 87000 金币
古鲁丁城镇 - 29000 金币
亚丁城镇 - 13000 金币
奇岩港口 - 5200 金币
哈汀学院 - 4400 金币
龙之谷 - 1800 金币
安塔瑞斯洞窟 - 7000 金币
恶魔岛 - 5700 金币
伏尔特的巢穴 - 1000 金币
然后用DlgTextInc执行操作,传送结果如下:
DlgTextInc("修加特"); //将传送到 修加特城镇
DlgTextInc("巢穴"); //将传送到 伏尔特的巢穴
DlgTextInc("丁"); //将传送到 古鲁丁城镇
DlgTextInc("城镇"); //将传送到 欧瑞城镇
使用时,务必注意包含文本在所有可能出现的连接文本中的唯一性。
返回索引
BOOL DlgPos(int nPos)
功能:
按NPC对话框中的可点击文本顺序,点击(从0开始)
参数:
nPos: 选择项的序号
返回:
成功时返回TRUE;指定项不存在时返回FALSE。
说明:
无。
返回索引
BOOL DlgSetEditValue(char* szValue)
功能:
设置NPC对话框中编辑框的值
参数:
szValue: 编辑框内容
返回:
成功时返回TRUE;失败时返回FALSE。
说明:
无。
返回索引
BOOL DlgFindLink(char* szText)
功能:
检索可点连接中的文本
参数:
szText: 检索文本
返回:
找到时返回TRUE;未找到时返回FALSE。
说明:
无。
返回索引
BOOL ReadyTeleport()
功能:
准备开始传送
参数:
返回:
成功返回TRUE,失败返回FALSE。
说明:
该函数在即将要传送的时候调用。搭配WaitTeleport一起使用。
返回索引
BOOL WaitTeleport()
功能:
等待传送完成
参数:
返回:
成功返回TRUE,失败返回FALSE。
说明:
该函数必须搭配ReadyTeleport一起使用。ReadyTeleport在即将要传送的时候调用;WaitTeleport在传送后调用。
WaitTeleport的功能是等待传送的顺利完成,当使用脱机宝盒传送时,也可以用Sleep(3000)这样相仿但效果不很好的方法来替代;如果是在内挂宝盒上使用脚本传送,最好使用该函数来等待传送的完成,以确保不同速度的机器都能传送得很满意。使用方法举例如下:
//从奇岩传送到亚丁
MoveToNpc("克拉彼亚");
QueryNpc("克拉彼亚");
DlgText("传送");
ReadyTeleport();
DlgTextInc("亚丁城镇");
WaitTeleport();
返回索引
BOOL GetGameTime(int& nHour,int& nMinute)
功能:
获取当前游戏中的时间
参数:
nHour: 返回的,当前游戏的时针
nMinute: 返回的,当前游戏的分针
返回:
成功返回TRUE;失败返回FALSE,未登入游戏时会返回失败。
说明:
该函数用于获取游戏中的时间(不是 定量时间、使用时间、包月时间,而是每一天的某个时刻),返回时间按24小时制,午夜12点时返回的时针为0点,下午6点时返回的时针为18点。
例如:
深夜12:34 返回的nHour与nMinute值分别为 0 34
上午08:23 返回的nHour与nMinute值分别为 8 23
下午01:56 返回的nHour与nMinute值分别为 13 56
晚上10:29 返回的nHour与nMinute值分别为 22 29
返回索引
BOOL RequestTrade (char* szPlayerName)
功能:
向玩家请求交易
参数:
szPlayerName: 玩家名称
返回:
请求成功时返回TRUE;请求被拒绝时返回FALSE。
说明:
无。
返回索引
BOOL ShopFirst(char* szItemName,int& nCount,int& nPrice)
功能:
遍历 交易/商店买卖/庄园购买/仓库存取 列表中的第一个物品
参数:
szItemName: 返回的,物品名称
nCount: 返回的,物品数量
nPrice: 返回的,物品价格
返回:
获取到第一个交易物品时返回TRUE;无交易物品时返回FALSE。
说明:
无。
返回索引
BOOL ShopNext(char* szItemName,int& nCount,int& nPrice)
功能:
遍历 交易/商店买卖/庄园购买/仓库存取 列表中的下一个物品
参数:
szItemName: 返回的,物品名称
nCount: 返回的,物品数量
nPrice: 返回的,物品价格
返回:
未遍历完毕时返回TRUE;已经遍历完毕时返回FALSE。
说明:
无。
返回索引
int ShopItem(char* szItemName)
功能:
获取 交易/商店买卖/庄园购买/仓库存取 列表中的物品数量
参数:
szItemName: 需检测的物品名称
返回:
返回值大于0时,该值即为物品数量;返回值等于0时,表示物品不存在。
说明:
无。
返回索引
int ShopPrice(char* szItemName)
功能:
获取 交易/商店买卖/庄园购买/仓库存取 列表中的物品价格
参数:
szItemName: 需检测的物品名称
返回:
返回物品价格。
说明:
无。
返回索引
BOOL ShopAdd(char* szItemName,int nCount)
功能:
进行 交易/商店买卖/庄园购买/仓库存取 的物品批量交易
参数:
szItemName:物品名称
nCount: 物品数量
返回:
成功时返回TRUE;失败时返回FALSE。
说明:
每调用一次,将把该待交易物品添加进交易名单。当最后一次添加物品名称为"[确认]"时,将确认交易内容。
返回索引
BOOL ShopTrade(char* szItemName,int nCount)
功能:
进行 交易/商店买卖/庄园购买/仓库存取 的单个物品交易
参数:
szItemName:物品名称
nCount: 物品数量
返回:
成功时返回TRUE;失败时返回FALSE。
说明:
该函数只能进行 交易/商店买卖/庄园购买/仓库存取 的一项物品,并且立即确认。当物品名称为"[所有物品]",并且是保存进仓库时,将把所有物品存进仓库。
返回索引
BOOL RefreshItem()
功能:
刷新身上道具信息
参数:
返回:
成功时返回TRUE;失败时返回FALSE。
说明:
该函数用于更新当前自己身上的道具信息。
返回索引
BOOL ItemFirst(char* szItemName,
int& nCount,
BOOL& bPacked,
BOOL& bMission,
int& nId
)
功能:
遍历身上的第一个物品
参数:
szItemName: 返回的,物品名称
nCount: 返回的,物品数量
bPacked: 返回的,是否装备在身
bMission: 返回的,是否任务物件
nId: 返回的,物品唯一标识ID
返回:
取得身上的第一个物品时返回TRUE;身上无物品时返回FALSE。
说明:
无。
返回索引
BOOL ItemNext(char* szItemName,
int& nCount,
BOOL& bPacked,
BOOL& bMission,
int& nId
)
功能:
遍历身上的下一个物品
参数:
szItemName: 返回的,物品名称
nCount: 返回的,物品数量
bPacked: 返回的,是否装备在身
bMission: 返回的,是否任务物件
nId: 返回的,物品唯一标识ID
返回:
未遍历完毕时返回TRUE;已经遍历完毕时返回FALSE。
说明:
无。
返回索引
int GetItemCount(char* szItemName)
功能:
获取身上的某个物品数量
参数:
szItemName:物品名称
返回:
未遍历完毕时返回TRUE;未登录或已经遍历完毕时返回FALSE。
说明:
返回值大于0时,该值即为物品数量;返回值等于0时,表示物品不存在。
返回索引
BOOL UseItem(char* szItemName)
功能:
使用物品
参数:
szItemName:物品名称
返回:
成功时返回TRUE;物品不存在时返回FALSE。
说明:
无。
返回索引
BOOL UseItemAsId(int id)
功能:
根据唯一标识ID使用物品
参数:
id: 物品唯一标识ID
返回:
成功时返回TRUE;物品不存在时返回FALSE。
说明:
无。
返回索引
BOOL GiveItem(char* szPlayerName,char* szItemName,int nCount)
功能:
给别人物品
参数:
szPlayerName: 对方名字
szItemName: 物品名称
nCount: 物品名称
返回:
触发成功时返回TRUE;物品不存在或对方离自己太远时返回FALSE。
说明:
该操作只触发自动交易里的给物品功能,并不跟踪交易完成与否。
返回索引
BOOL WantItem(char* szPlayerName,char* szItemName,int nCount)
功能:
向别人索取物品
参数:
szPlayerName: 对方名字,该玩家必须是本机用宝盒登录的
szItemName: 所需物品名称
nCount: 所需物品数量
返回:
触发成功时返回TRUE;对方离自己太远时返回FALSE。
说明:
该操作只触发自动交易里的索取物品功能,并不跟踪交易完成与否。
返回索引
BOOL DelItem(char* szItemName,int nCount)
功能:
删除物品
参数:
szItemName: 物品名称
nCount: 物品数量
返回:
成功时返回TRUE;物品不存在时返回FALSE。
说明:
无。
返回索引
BOOL ThrowItem(char* szItemName,int nCount,int x,int y,int z)
功能:
丢弃物品
参数:
szItemName: 物品名称
nCount: 物品数量
x,y,z: 把物品扔到的目的X,Y,Z坐标
返回:
成功时返回TRUE;物品不存在时返回FALSE。
说明:
物品扔到的目的X,Y,Z坐标,不能离自己太远。
返回索引
BOOL MakeItem(char* szMakeName)
功能:
制作物品
参数:
szMakeName: 登记的制作卷名称
返回:
成功时返回TRUE;没有登记指定的制作卷时返回FALSE。
说明:
无。
返回索引
BOOL LvUpItem(char* szItemName1,int nDelay,char* szItemName2)
功能:
强化道具
参数:
szItemName1: 要强化的物品名称
nDelay: 强化过程中的延迟,单位为毫秒(即1/1000秒)。通常可输入3000(即3秒)
szItemName2: 使用的强化卷名称
返回:
成功时返回TRUE;没有相关道具或未登入时返回FALSE。
说明:
无。
返回索引
int GetSkillLevel(char* szSkillName)
功能:
获取技能等级
参数:
szSkillName: 技能名称
返回:
返回大于0时,为该技能的等级;返回值等于0时,表示技能不存在。
说明:
无。
返回索引
BOOL UseSkill(char* szSkillName)
功能:
使用技能
参数:
szSkillName: 技能名称
返回:
成功时返回TRUE;技能不存在时返回FALSE。
说明:
无。