一:巡航系统

理想情况:
1.自动清理人物所在地图的所有区域
2.根据脚本设定的指令自动进入/不进入地图内的地下城(洞子)
3.自动跳过过场动画

二:战斗系统

1.人物技能使用
(每一个技能都可以用下面任意一种方式进行设定,如能多条方式能共同存在就更好)
1)根据判定角色身上有无此状态来使用    (如某buff 技能,当无此buff时使用)
2)根据血量百分比使用技能              (血量低于多少百分比使用某技能)
3)根据CD使用技能                      (当某技能不在冷确时间时使用)
4)根据时间设置使用技能                (每过多少秒使用某技能)
5)根据怪物数量或者精英怪使用技能      (怪物达到多少或者是精英怪时才使用某技能)

2.怪物技能躲避
对怪物施放的技能进行自动跑位躲避,比如 冰 火  秘 毒 等元素技能。

三:目标使用及易碎物摧毁等
比如:开宝箱,开圣坛,翻尸体,摧毁路障,摧毁其他障碍物等
注:
1.这些最好能放在脚本里面,根据使用者喜好和必要性添加或删除是否使用。因为有些地方需要通过摧毁路障才能通过,有些地方则是浪费时间。
2.如果目标和角色不在同一水平线上,则不执行,否则可能出现发呆,隔空打物等情况。

四:存仓修装拾取等规则

1.金币拾取  首先有开启/关闭拾取金币功能 其次可设置根据金币数量多少以上才拾取
2.装备拾取  根据装备物品等级拾取
3.装备存仓  首先根据背包状态判定是否回城存装。其次根据脚本指令是否鉴定装备。最后,如已鉴定装
            备,根据属性决定是存进仓库还是卖给NPC(此项较复杂,需讨论)。
4.回城修理  根据人物身上装备的耐久度来决定是否回城修装。
5.优先拾取物品/优先打怪 功能。(理想状态下,玩家可根据自己喜好设定,是优先拾取物品还是优先打怪,如果优先拾取物品,就是地上有符合拾取的东西先捡再打怪,但是如果装备不好,特别是如果距离较远就容易死掉。如果优先打怪,就有可能因为追怪而远离了之前掉落的物品,而错失掉落的物品)

五:任务
自动接受黄色或蓝色感叹号的任务,自动点击游戏下方出现的与NPC的对话。(可选择开启或关闭)

六:随机时间设定  (可有可无,也许有助于防封)
完成某一项具体动作后随机等待多少时间再执行下一动作。
比如随机时间是1-10秒,在完成修装,存仓,回城后都可以用上此随机时间。
具体例子:
背包满后需要回城则执行以下一系列动作:
回城-----随机等待4秒------移动到仓库-----鉴定物品------存仓------随机等待8秒------移动到-----修装NPC处------卖物品修装备-----随机等待7秒------返回到传送门

七:登录系统
1.自动登录
2.掉线自动重连 (最好可以自行设置次数,比如设置重连3次,如不成功则放弃,避免游戏维护时无限登录游戏)
3.根据设置自动切换客户端美 欧 亚 三服

八:其他功能
秒退 超时秒退等功能。

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <vector>
#include   <afxwin.h>
#include <set>
#include "math.h"
#include <algorithm>
typedef unsigned char byte;
using namespace std;
struct roleInfo
{
 int acdBase;//人物对象地址
 int actBase;//
 int acdId;//人物ID惟一组队用的是此ID
 //int roleObjID;//对象ID.别人看到的周围对象ID
 //WCHAR roleNameame[40];//人物名
 string roleName;
 wchar_t cName[80];//中文名
 string mapName;
 char typeName[40];
 int typeId;//对象类别 例如道具 建筑物 玩家 NPC等
 int typeIndex;//对象存在的位置 例如地面 背包 仓库 商店 等
 int roleHP;//人物当前血量
 int roleMaxHP;//最大血量
 int roleMP;//当前念力
 int roleMaxMP;//最大念力
 int roleExp;//当前经验
 int roleMaxExp;//最大经验
 int roleLevel;//等级
 char roleSex;//0为男1为女
 char isOnline;//1为在线 0为离线
 float x;//坐标
 float y;
 float z;
 int jl;//距离
 int mapId1;//地图ID
 int mapId2;

char roleMapName[80];//角色所在地图
 int cashMoney;//点券
 int goldMoney;//金币
 int addNum;
 //int xMoney;//星币
 int roleGridCount;//角色背包格子总数
 int petGridCount;//已有宠物格子总数
 int actId;
 int fagId;
 int isExists;
 int color;//装备颜色
 /*
 装备颜色
 0 灰
 1-2 白装
 3-5 蓝 魔法装备
 6-8 黄色 稀有装备
 9 橙色 传奇装备
 */
 string colorDesc;//颜色描述
 int index1;//第几行
 int index2;//第几列
 int goodsNum;//数量
 int last;//持久
 int maxLast;//持久上限
 roleInfo()
 {
  isExists=1;
  acdBase=-1;
  acdId=-1;
  //roleNameame[0]='\0';
  roleHP=0;
  roleMaxHP=0;
  jl=999;
 }
};
struct kv
{
 int k;
 int aid;
 int v;
};
struct tz
{
 char PY[10];
 int DATA[3];
 bool isJmp;//是否类似跳转
 bool isZZ;//是否只要地址
 char dName[40];
 tz()
 {
  isZZ=false;
  isJmp=false;
 }
};

struct goodsInfo
{
 int goodsId;//物品ID
 int goodsIndex;//物品下标
 int goodsType;//物品类别
 int goodsNum;//物品数量
 int goodsBase;//物品基址
 int goodsLevel;//物品等级
 int minLevel;//至少多少级才能使用
 int maxLevel;//最多多少级能使用
 int isBind;//是否绑定
 int isFightingUse;//是否战斗可用
 int last;//当前持久
 int maxLast;//最大持久
 char isTimeOver;//是否过期
 char equipIndex;//可装备位置
 char sexType;//要求性别
 char zzType;//要求的种族
 string goodsDesc;//物品描述
 string goodsName;//物品名字
};
struct petInfo
{
 int petBase;//宠物对象地址
 int petID;//宠物ID
 string petName;//自己修改的宠物名字
 int petHP;//宠物血
 int petMaxHP;//宠物最大血量
 int petMP;//蓝
 int petMaxMP;//最大蓝量
 int petExp;//经验
 int petMaxExp;//升级所需经验
 int zc;//忠诚度
 int sm;//寿命
 int level;//等级
 int rLevel;//可携带等级
 int addNum;//潜力
 int isFight;//是否出战状态
 int petIndex;
 petInfo()
 {
  petBase=0;
 }
};
struct taskInfo
{
 int taskBase;//任务基址
 int taskId1;//任务ID1
 int taskId2;//任务ID2
 int taskDifficulty;//难度
 int index1;//第几章
 int index2;//第index1章第index2个任务
 int index3;//第index1章第index2个任务index3个子任务
 int tpara1;
 int tpara2;
 int tpara3;
 int tpara4;
 //int taskPara;
 //string taskName;
 //string taskType;//任务类别
 //string taskDesc;
 //string acceptNpcName;//接任务NPC名字
 ///int npcId;//接或交任务NPCID
 //int cityId;//城市ID
 //string acceptCity;//接任务城市
 //POINT cpoint;//接任务坐标
 //int taskState;//2任务正在进行.3任务完成. 5表示任务失败
};
struct teamInfo
{
 int actId;
 int fagId;
 int acdBase;
 string roleName;
};
struct talkInfo
{
 string talkTemp;
 int talkIndex;
 int talkId;
};
struct keyData
{
 int hwnd;
 int mtype;
 int keycode;
 int keystate;
};
struct skillInfo
{
 int skillBase;
 int skillId;
//  string skillName;
//  int rMoney;//升级所需金钱
//  int rExp;//升级所需经验
//  int isCanUse;//是否可用。这里只检测心法是否达到技能需要的指定等级。其它所需血量蓝量要求没有检测。你自己检测。
//  int skillLevel;
//  int isZd;//是否主动技能
 //int rhp;
 //int rmp;
 //string skillXG;//技能效果

};
struct buffInfo
{
 string buffName;
 int buffIndex;
 int buffTime;//剩余时间
};
struct activityInfo
{
 string activityName;//活动名
/// string npcName;//活动发布人
// string huoYueDu;//活跃度说明
// string aTime;//时间段
 int completeNum;//完成次数
 int maxNum;//最大次数
// int minLevel;//活动所需最小等级
// int maxLevel;//活动所需最大等级
 int activityId;
 int huoYueDu;
 activityInfo()
 {
  completeNum=0;
  maxNum=0;
 }
};
struct liBaoInfo
{
 string liBaoName;//礼包名字
 int isCanGet;//是否可以领取
 int liBaoId;//ID
};
struct winInfo
{
 int winBase;
 int isV;//是否可见
 int isE;//是否可用
 string winName;
 string winText;
};
// float mvFloat;
// int mvInt;

struct searchPara1
{
 int s1;
 int s2;
 float x;
 float y;
 float z;
 int z1;
 int z2;
 float z3;
 int actBase;
};
struct callPara
{
 int acdBase;
 int acdType;
 int acdId;
 float x;
 float y;
 float z;
 int mapId1;
 int useSkill;
};
struct taskTP
{
 int diff;//难度
 int taskId1;
 int taskId2;
};

struct store
{
 int selfAcdBase;
 int goodsAcdBase;
 int storeOrFetch;
};
struct buySp
{
 int acdBase;
 int buyOrSell;
 int acdId;
};

//
//
//主要信息 ---------------

void initData(HANDLE hd=(HANDLE)-1,BOOL show=false);//初始化数据,这个函数必须在注入DLL后马上调用.
//获取周围对象信息包括商店物品周围玩家NPC怪物背包物品仓库物品等等
//各种对象是什么参数roleInfo的typeName
//背包物品的typeIndex==0 typeId==5
//地面物品的typeIndex==-1 typeId==5
//仓库物品的typeIndex==0xf typeId==5
//商店物品的typeIndex==0x11 typeId==5
//已经装备物品的(0x1<=typeIndex<=0xD)并且typeId==5
vector<roleInfo> getAroundList(HANDLE hd=(HANDLE)-1,int self=0);
//获取窗体的子窗体 parentBase为winInfo结构的winBase如果获取最顶层窗体的子窗体则parentBase为0
vector<winInfo> getWinList(int parentBase=0);
//参数为控件名字,返回值为0表示不可见大于0表示可见,返回值为winInfo的winBase
int IsWindowV(CString winName);
//获取鼠标当前悬停指向的窗体名字。这个函数非常重要。。你可以启动一个线程不停的调用 此函数来观察鼠标指向的窗口名字
//获取到窗口名字后你可以记下窗口名把他当作参数传入 点击控件示例clickKJ(IsWindowV(控件名字))
CString funcShowHover();
//获取传送平台的可选传送点 需要先打开传送平台
vector<winInfo> getCanSelectCuanSong();
//打开对象
//int csPara[60];
//打开传送门,传送平台,储物箱,各种箱子,拾取物品,上述这些动作的callType为0x7545 打开NPC为0x7546,上述动作只需考虑前两个参数
//如果是使用技能 则useSkill传1  callType为技能ID,如果对敌人使用则acdId传敌人actId,如果对自己使用则传-1
//如果是指向性技能则acdId传-1和你想攻击的坐标的x,y,z和地图id,非指向性技能(可以选择目标攻击的技能)则不需要传x,y,z和mapId1,只需要传敌人的acdID
void __stdcall callCSPT(int acdId,int callType=0x7545,int useSkill=0,float x=0,float y=0,float z=0,int mapId1=0x772e0000);
//点击控件 回城也可以使用此函数 kjBase可以用IsWindowV获得。窗体名字一般不会变的。
void __stdcall clickKJ(int kjBase);
//寻路 mapId1为当前角色信息的mapId1
void __stdcall searchXY(int actBase,float searchX,float searchY,float searchZ,int mapId1);//寻路
vector<taskInfo> getCanSelectTaskList(int diff);//在角色选择画面获取可选任务信息 需要先打开可选任务框再调用此函数 diff为难度 0,1,2,3 0代表普通
taskInfo getCurTaskInfo();//获取当前任务信息
//参数1为难度 选择任务
void selectTask(int diff,int taskId1,int taskId2);
vector<skillInfo> getSkillInfo();//获取技能信息为1,2,3,4,鼠标左,鼠标右,上的技能信息
//存取物品 storeOrFetch=0表示存 1表示取
void __stdcall storeFetch(int selfAcdBase,int goodsBase,int storeOrFetch=0);
//买卖物品 0表示买,1表示卖
void __stdcall buySell(int goodsAcdBase,int buyOrSell=0);
//修理所有装备
void __stdcall repairAll(int selfAcdId);
roleInfo getRoleInfo(); //获取角色信息
//设置登陆的账号密码 在登陆界面调用
void __stdcall setUserPwd(char *userName,char *password);

csdn 无法传文件,lib,dll 文件传不上来,不过游戏内部数据早变了,也用不了,发来大家吐槽下。

暗黑3 外挂开发资料相关推荐

  1. N76E003介绍与开发资料获取

    介绍 N76E003 为新唐高速 1T 8051 微控制器系列产品,提供 18 KB Flash ROM.可配置Data Flash与高容量1 KB SRAM ,支持2.4V 至 5.5V 宽工作电压 ...

  2. iPhone开发资料之内存管理 ,循环引用导致的内存问题

    iPhone开发资料之内存管理 ,循环引用导致的内存问题 https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual ...

  3. [转]常用Delphi开发资料网址

    发现一个很好的个人网站,该网站收集了大量有关Delphi开发资料的网址链接,值得收藏. 相关Delphi链接如下: Books, Tutorials Tomes of Delphi: Algorith ...

  4. 最新MTK芯片型号汇总,MTK开发资料大全下载

    前面总结的MTK芯片资料有点混乱,不好查看,现在重新整理一份全面的MTK芯片,MTK开发设计资料,方便大家学习,下载. MTK芯片分类: MTK芯片型号大全:http://bbs.16rd.com/c ...

  5. 分享]基于Web开发资料专集

    分享]基于Web开发资料专集 [这个贴子最后由huili46在 2006/02/17 04:17pm 第 4 次编辑] 本专集包含的内容如下: [color=#008B8B] 网页设计制作标准规范 [ ...

  6. IT开发资料大全 转

    IT开发资料大全 分类: Asp.net C#1.2.2.0.3.0.3.5.4.02012-06-27 11:18 210人阅读 评论(0) 收藏 举报 原作者:http://www.cnblogs ...

  7. [分享]错误“应用程序Xcode的这个版本不能与此版本的OS X配合使用”以及Mac源码和IOS开发资料分享

    [分享]错误"应用程序Xcode的这个版本不能与此版本的OS X配合使用"以及Mac源码和IOS开发资料分享 安装Xcode时,出现"应用程序Xcode的这个版本不能 ...

  8. CAD二次开发资料汇总

    欢迎加入建筑信息化开发交流群,获取开发资料 群号:711844216 一.背景 对工程出身的朋友来说,CAD就像一位朋友,常伴吾身,为了提高效率,于是小伙伴门开始尝试CAD二次开发,刚入门,资料去哪找 ...

  9. 最全面的tvOS开发资料

    2019独角兽企业重金招聘Python工程师标准>>> tvOS-Guide 本文档收集了最多的tvOS开发资料,方便学习使用.欢迎大家持续更新. ####欢迎大家帮忙翻译校正或者提 ...

  10. 800个电子竞技设计大赛毕业设计产品开发资料

    ** 800个电子竞技设计大赛毕业设计产品开发资料 部分列举如下: ```c 0001.PC 机与单片机通信(RS232 协议) 0002.C与VB语言联合在proteus上仿真 0003.IC卡读写 ...

最新文章

  1. sqli-labs:5-6,盲注
  2. sshd_config中文手册2
  3. gdal java api_Java使用GDAL库
  4. Python2.5.4移植到arm-linux
  5. C++--第20课 - 函数模板
  6. spring与spring mvc
  7. js怎么实现ftp上传文件到服务器上,js ftp上传文件到服务器上
  8. CGGame资源(转)
  9. 《守望先锋》架构设计与网络同步 -- GDC2017 精品分享实录
  10. Sharpen 的调试步骤
  11. entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit
  12. 三线制PT100测正温(篇一)
  13. ld: cannot find -lxxx终极解决方法
  14. Unity2020找不到Device Simulator
  15. unity3d:ugui 长按按钮
  16. 仓库摆放示意图_仓库合理堆放标准,货物入库摆放规范
  17. html之行间样式和外部样式以及内部样式
  18. 期刊论文和会议论文的区分与识别
  19. docker设置代理 速度终于起飞
  20. win10神州网信政府版系列设置(麦克风、摄像头、相机、屏幕保护时间)

热门文章

  1. Android Java 颜色代码 对照表
  2. java中的displaytag类_java-如何在displaytag中以xlsx扩展名导出Excel文...
  3. 【梦幻童年win7热门主题】
  4. 一、首页、详情页、文章编辑页制作《iVX低代码/无代码个人博客制作》
  5. multisim 1.4破解汉化
  6. increase-memory-limit 解决 项目运行内存不足(JS stack trace)
  7. 整理几个高质量Java自学网站
  8. 方舟生存进化掉落物代码
  9. fanuc机器人试题_E01OF工业机器人FANUC系统维护试题库.docx
  10. linux多线程编程书籍推荐:linux大牛之路从这几本书開始总结