| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 903 人关注过本帖
标题:有偿找高人帮忙写个游戏脚本
只看楼主 加入收藏
蹲点
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-11-6
收藏
 问题点数:0 回复次数:0 
有偿找高人帮忙写个游戏脚本
天堂2外挂宝盒的卖东西的脚本,NPC每天8点收东西,到点的时候很多人一起卖,根本卖不出去,找高人做个能准点卖东西的脚本,QQ335610487

E游脚本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。
说明:
无。
搜索更多相关主题的帖子: 脚本 高人 游戏 
2010-11-06 03:41
快速回复:有偿找高人帮忙写个游戏脚本
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024410 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved