• 1329阅读
  • 1回复

任鸟飞易语言外挂第2期 第12课自动打怪====》脚本调用 [复制链接]

上一主题 下一主题
离线啊冲
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2016-09-05
任鸟飞2014 辅助培训班
外部群:239774259
第12课自动打怪====》脚本调用

人物信息===========================================================================
[[[[00BC1A9C]+4]+24]+8]+628  32位浮点型X坐标
[[[[00BC1A9C]+4]+24]+8]+62C  32位浮点型Y坐标

怪物数组信息========================================================================
[[[[[[[BC1A9C]+14]+8]+esi*4]+2c]]+10]+40   血量
[[[[[[[BC1A9C]+14]+8]+esi*4]+2c]]+10]+294  名称
[[[[[[BC1A9C]+14]+8]+esi*4]+24]+8]+628   浮点型  怪物X坐标
[[[[[[BC1A9C]+14]+8]+esi*4]+24]+8]+62C   浮点型  怪物Y坐标
[[[[BC1A9C]+14]+8]+0*4]+C           怪物系统ID
[[[[BC1A9C]+14]+8]+0*4]+8           怪物ID      

技能数组=============================================================================
[[BA8714]+8]+ebx*4

怪物选中状态
[00BA4AAC]+64

选怪CALL=============================================================================
push  怪物系统ID
push  怪物ID
mov   ecx,[BC1A9C]
call  [[[BC1A9C]]+50]


技能CALL=============================================================================
push    eax                              ; 0012F2B8  堆栈地址  并且常量
mov     eax, dword ptr [esp+C]
push    ecx                              ; 703013200    怪物系统ID
push    edx                              ; 33554473   怪物ID
push    eax                              ; 02004E01 常量
push    esi                              ; 12513010    技能ID
call    00574530
add     esp, 14                          ; add esp,14  
善者 慈悲心常在 无怨无恨 以苦为乐
默认压缩密码www.hifyl.com
文件分享密码问题:http://www.hifyl.com/read-htm-tid-4444.html
离线啊冲

只看该作者 沙发  发表于: 2016-09-05
.版本 2
.支持库 EThread

.程序集 窗口程序集1
.程序集变量 共享, 类_共享内存
.程序集变量 返回, 逻辑型

.子程序 _窗口1_创建完毕

时钟1.时钟周期 = 5000
_时钟1_周期事件 ()
返回 = 共享.创建内存 (“共享内存”, 4096)
标签1.标题 = 到文本 (返回)

.子程序 _时钟1_周期事件
.局部变量 偏移, 整数型
.局部变量 人物名称, 文本型
.局部变量 血, 双精度小数型
.局部变量 蓝, 双精度小数型
.局部变量 最大血, 双精度小数型
.局部变量 最大蓝, 双精度小数型

内存_读整数型 (-1, 十六到十 (“00BBeA9C”), 偏移, , )  ' [00BBEA9C]
内存_读整数型 (-1, 偏移 + 十六到十 (“4”), 偏移, , )  ' [[00BBEA9C]+4]
内存_读整数型 (-1, 偏移 + 十六到十 (“2c”), 偏移, , )  ' [[[00BBEA9C]+4]+2c]
内存_读整数型 (-1, 偏移, 偏移, , )  ' [[[[00BBEA9C]+4]+2c]]
内存_读整数型 (-1, 偏移 + 十六到十 (“10”), 偏移, , )  ' ' [[[[[00BBEA9C]+4]+2c]]+10]

内存_读文本型 (-1, 偏移 + 十六到十 (“294”), 人物名称, , )  ' ' [[[[[00BBEA9C]+4]+2c]]+10]+294

内存_读双精度小数型 (-1, 偏移 + 十六到十 (“40”), 血, , )  ' ' [[[[[00BBEA9C]+4]+2c]]+10]+294
内存_读双精度小数型 (-1, 偏移 + 十六到十 (“48”), 蓝, , )  ' ' [[[[[00BBEA9C]+4]+2c]]+10]+294
内存_读双精度小数型 (-1, 偏移 + 十六到十 (“30”), 最大血, , )  ' ' [[[[[00BBEA9C]+4]+2c]]+10]+294
内存_读双精度小数型 (-1, 偏移 + 十六到十 (“38”), 最大蓝, , )  ' ' [[[[[00BBEA9C]+4]+2c]]+10]+294


共享.写文本型 (0, 人物名称)
共享.写双精度小数型 (20, 血)
共享.写双精度小数型 (30, 最大血)
共享.写双精度小数型 (40, 蓝)
共享.写双精度小数型 (50, 最大蓝)

标签2.标题 = “人物名称:” + 人物名称
标签3.标题 = “血量:” + 到文本 (血) + “/” + 到文本 (最大血) + “  蓝量:” + 到文本 (蓝) + “/” + 到文本 (最大蓝)


.子程序 自动打怪
.局部变量 怪物偏移, 整数型
.局部变量 怪物数量, 整数型
.局部变量 打怪数量, 整数型
.局部变量 i, 整数型
.局部变量 n, 整数型
.局部变量 怪物111, 整数型
.局部变量 怪物名称, 文本型
.局部变量 怪物血, 双精度小数型
.局部变量 怪物x坐标, 小数型
.局部变量 怪物y坐标, 小数型
.局部变量 人物偏移, 整数型
.局部变量 x坐标, 小数型
.局部变量 y坐标, 小数型
.局部变量 怪物最大血, 双精度小数型
.局部变量 怪物ID, 整数型
.局部变量 怪物系统ID, 整数型


打怪数量 = 到整数 (编辑框_打怪数量.内容)  ' '''''''''''''''''''''''''获得一下提供的打怪数量
' '''''I 没有赋值  那么他的初始值就是0
.判断循环首 (i < 打怪数量)  ' 2

    内存_读整数型 (-1, 十六到十 (#人物基地址), 怪物偏移, , )
    内存_读整数型 (-1, 怪物偏移 + 十六到十 (“14”), 怪物偏移, , )
    内存_读整数型 (-1, 怪物偏移 + 十六到十 (“14”), 怪物数量, , )

    .计次循环首 (怪物数量, n)

        内存_读整数型 (-1, 十六到十 (#人物基地址), 怪物偏移, , )
        内存_读整数型 (-1, 怪物偏移 + 十六到十 (“14”), 怪物偏移, , )
        内存_读整数型 (-1, 怪物偏移 + 十六到十 (“8”), 怪物偏移, , )
        内存_读整数型 (-1, 怪物偏移 + 4 × (n - 1), 怪物偏移, , )
        内存_读整数型 (-1, 怪物偏移 + 十六到十 (“2c”), 怪物偏移, , )
        内存_读整数型 (-1, 怪物偏移 + 十六到十 (“0”), 怪物偏移, , )
        内存_读整数型 (-1, 怪物偏移 + 十六到十 (“10”), 怪物111, , )
        内存_读文本型 (-1, 怪物111 + 十六到十 (“294”), 怪物名称, 20, , )
        内存_读双精度小数型 (-1, 怪物111 + 十六到十 (“40”), 怪物血, , )

        .如果真 (怪物名称 = 编辑框_打怪名称.内容)  ' ''''''''''''''''''''''''''''''''确定怪物名称正确

            内存_读整数型 (-1, 十六到十 (#人物基地址), 怪物偏移, , )
            内存_读整数型 (-1, 怪物偏移 + 十六到十 (“14”), 怪物偏移, , )
            内存_读整数型 (-1, 怪物偏移 + 十六到十 (“8”), 怪物偏移, , )
            内存_读整数型 (-1, 怪物偏移 + 4 × (n - 1), 怪物偏移, , )
            内存_读整数型 (-1, 怪物偏移 + 十六到十 (“24”), 怪物偏移, , )
            内存_读整数型 (-1, 怪物偏移 + 十六到十 (“8”), 怪物偏移, , )
            内存_读小数型 (-1, 怪物偏移 + 十六到十 (“628”), 怪物x坐标, , )
            内存_读小数型 (-1, 怪物偏移 + 十六到十 (“62c”), 怪物y坐标, , )

            内存_读整数型 (-1, 十六到十 (#人物基地址), 人物偏移, , )
            内存_读整数型 (-1, 人物偏移 + 十六到十 (“4”), 人物偏移, , )
            内存_读整数型 (-1, 人物偏移 + 十六到十 (“24”), 人物偏移, , )
            内存_读整数型 (-1, 人物偏移 + 十六到十 (“8”), 人物偏移, , )
            内存_读小数型 (-1, 人物偏移 + 十六到十 (“628”), x坐标, , )
            内存_读小数型 (-1, 人物偏移 + 十六到十 (“62C”), y坐标, , )
            内存_读双精度小数型 (-1, 怪物111 + 十六到十 (“30”), 怪物最大血, , )

            .如果真 (取绝对值 (到整数 (x坐标 ÷ 100) - 到整数 (怪物x坐标 ÷ 100)) < 8 且 取绝对值 (到整数 (y坐标 ÷ 100) - 到整数 (怪物y坐标 ÷ 100)) < 8)
                ' ''''''''''''''''''''''''''距离正确
                .如果真 (怪物血 = 怪物最大血)  ' '''''''''''''''''确定选中怪物满血

                    内存_读整数型 (-1, 十六到十 (#人物基地址), 怪物偏移, , )
                    内存_读整数型 (-1, 怪物偏移 + 十六到十 (“14”), 怪物偏移, , )
                    内存_读整数型 (-1, 怪物偏移 + 十六到十 (“8”), 怪物偏移, , )
                    内存_读整数型 (-1, 怪物偏移 + 4 × (n - 1), 怪物偏移, , )
                    内存_读整数型 (-1, 怪物偏移 + 8, 怪物ID, , )
                    内存_读整数型 (-1, 怪物偏移 + 12, 怪物系统ID, , )

                    选怪CALL (怪物系统ID, 怪物ID)

                    超级延时 (300)

                    .如果真 (获取怪物选中状态 () ≠ 0)  ' '''''''''''''确定怪物可以选中 否则是死亡怪

                        跳出循环 ()
                    .如果真结束

                .如果真结束

            .如果真结束

        .如果真结束

    .计次循环尾 ()




    .如果真 (获取怪物选中状态 () ≠ 0)

        技能攻击CALL (怪物系统ID, 怪物ID, 12710001)


    .如果真结束

    .判断循环首 (获取怪物选中状态 () ≠ 0)

        超级延时 (2200)
        技能攻击CALL (怪物系统ID, 怪物ID, 12710001)

    .判断循环尾 ()





    ' 自动打一个怪物

    i = i + 1

.判断循环尾 ()


.子程序 选怪CALL, , , OK
.参数 系统ID, 整数型
.参数 ID, 整数型

asm_置代码 ()
asm_pushad ()

asm_push (系统ID)
asm_push (ID)
asm_mov_ecx_ptr (十六到十 (#人物基地址))
asm_mov_eax_ptr_ecx ()
asm_mov_eax_ptr_eax_add (十六到十 (“50”))
asm_call_eax ()

asm_popad ()
asm_ret ()
asm_调用函数 (取自进程ID (), asm_取代码 ())


.子程序 获取怪物选中状态, 整数型, , OK
.局部变量 怪物选中状态, 整数型

内存_读整数型 (-1, 十六到十 (#怪物选中基地址), 怪物选中状态, , )
内存_读整数型 (-1, 怪物选中状态 + 十六到十 (“64”), 怪物选中状态, , )  ' 读取[00BA4AAC]+64 的值
返回 (怪物选中状态)


.子程序 技能攻击CALL, , , OK
.参数 系统ID, 整数型
.参数 ID, 整数型
.参数 技能ID, 整数型

asm_置代码 ()
asm_pushad ()

asm_push (十六到十 (“0012F2B8”))
asm_push (系统ID)
asm_push (ID)
asm_push (十六到十 (“02004E01”))
asm_push (技能ID)
asm_mov_ecx_常数 (十六到十 (“00574530”))
asm_call_ecx ()
asm_add_esp (十六到十 (“14”))

asm_popad ()
asm_ret ()
asm_调用函数 (取自进程ID (), asm_取代码 ())


.子程序 _按钮2_被单击, , , OK

启动线程 (&自动打怪, , )  ' ''''''''''''''''''''我们的DLL 在游戏主线程里  如果直接在主线程里加延时   游戏会直接卡死


.子程序 执行脚本
.局部变量 执行脚本, 文本型

执行脚本 = 读入文本 (打开文件 (取运行目录 () + “\执行脚本.txt”, , ), )  ' ''''''''''''''''''''''''''读入脚本中的文本
编辑框1.加入文本 (执行脚本)
脚本_初始化 ()
脚本_注册接口 (“自动打怪”, &自动打怪_脚本)
脚本_加载文本并执行 (编辑框1.内容)



.子程序 自动打怪_脚本
.参数 参数列表, 整数型
.局部变量 打怪数量, 整数型
.局部变量 打怪名称, 文本型


打怪名称 = 脚本_取文本 (参数列表, 1)
打怪数量 = 脚本_取整数 (参数列表, 2)
自动打怪 (打怪名称, 打怪数量)


.子程序 _按钮1_被单击

启动线程 (&执行脚本, , )
善者 慈悲心常在 无怨无恨 以苦为乐
默认压缩密码www.hifyl.com
文件分享密码问题:http://www.hifyl.com/read-htm-tid-4444.html
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个