郁金香外挂技术-郁金香灬老师

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

郁金香终身VIP管理员QQ150330575项目合作(有实力的+)视频教程+每月更新+QQ群
飞郁视频分享(每周更新)
查看: 5659|回复: 26

新人,求购热血江湖选怪和打怪call或源码

  [复制链接]
发表于 2016-4-9 17:12:59 | 显示全部楼层 |阅读模式
本帖最后由 fjsh666 于 2016-4-13 12:45 编辑

大家帮我看看,为什么只能选一次怪,而且到双浆司法处,一次怪都不能选?谢谢大家!
void SelGW()
{        // TODO: Add your control notification handler code here
        //遍历 [i*4+0599a110] 数组
        _asm
        {
                mov eax, eax
                mov eax, eax
        }
        int* b8, *bc, *b380, *p14E4;
        float *b31c;
        int* pb, *p2;
        for (int i = 0x03220B58; i<(0x03220B58 + 0x1FFF * 4); i += 4)//每次增加4字节
        {
                pb = (int*)i;
                b8 = (int*)(*pb + 0x8);
                bc = (int*)(*pb + 0xc);
                b31c = (float*)(*pb + 0x31c);//
                b380 = (int*)(*pb + 0x380);
               
                if ((*b8 == 0x2E) && (*b31c <= 100) && (*b380 == 0))
                {

                        p2 = pb;

                        //显示血条,设置怪选中状态

                        int selmonbase = *p2;
                        //去掉以下这些血条的代码,能正确选择怪物,但最后还是出错了。
                        if (*p14E4 == 0xFFFF)
                        {
                                _asm
                                {
                                        mov esi, selmonbase  //汇编里为esi,改成edi试了,还是只打一次怪,就出错了
                                        mov eax, [esi]
                                        mov edx, [eax+0x4]
                                        push 0x1
                                        push 0x450
                                        mov ecx,esi
                                        call edx  //od里,执行完后,eax=1,然后写入怪id.
                                        //ADD ESP, 0x8 //堆栈平衡,试一下,还会不会出错?结果还是出错?
                                }
                        } //end if
                        //把下面三行取消,一点就出错。
                        p14E4 = (int*)0x03220B54; //为什么一到双浆司法处,就会出错,关闭游戏?但在棕熊和狐狸那个地方,却能正确选择怪物?
                        p14E4 = (int*)(*p14E4 + 0x14E4);
                        *p14E4 = *bc;//写入下标

                        return;
                        
                }
        }
        //以下为od里汇编代码:
        //        004FE8DC   >  8B06          MOV EAX, DWORD PTR DS : [ESI]
        //        004FE8DE   .  8B50 04       MOV EDX, DWORD PTR DS : [EAX + 0x4]
        //        004FE8E1   .  6A 01         PUSH 0x1
        //        004FE8E3   .  68 50040000   PUSH 0x450
        //        004FE8E8   .  8BCE          MOV ECX, ESI
        //        004FE8EA.FFD2          CALL EDX                                                //这里就是显示血条的call,但也不知找对了没有?
郁金香外挂教程,学习中...
回复

使用道具 举报

 楼主| 发表于 2016-4-9 18:17:10 | 显示全部楼层
顶起来!顶起来!顶起来!顶起来!顶起来!顶起来!顶起来!
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

发表于 2016-4-9 19:46:24 | 显示全部楼层
、封装自动打怪函数AutoBeatMonster(char*szpSkillName);

  
  1、自动选怪

  2、释放技能

#define  MSG_BeatMosterForSkill 4 //使用物品
DWORD msgAutoBeatMosterForSkill(char*szpSkillName);


DWORD msgAutoBeatMosterForSkill(char*szpSkillName)
{  
        msgDropSkillToF1F10(szpSkillName);
        ::SendMessageA(GetGameWndHandle(),MyMsgCode,MSG_BeatMosterForSkill,(LPARAM)szpSkillName);
        return 1;
}



//自动打怪 使用技能
BOOL TRoleObj::AutoBeatMonster(char*szpSkillName)
{

        //选怪
        if (GetSelObjType()!=TYPE_MOSTER)
        {
                SelMonSterForNear();
        }

       
        g_tF1_F10_list.GetData()->UseSkillForName(szpSkillName);
        return TRUE;
}


DWORD msgAutoBeatMosterForSkill(char*szpSkillName);
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

发表于 2016-4-9 19:48:03 | 显示全部楼层

[31CE73C] //玩家对象地址
dd [31CE73C]
+0018 //玩家名字
+14b8  0xFFFF //未选中怪物  直接像这样写地址 就可以选怪 有个选怪CALL 可以增加选血条功能


dd [45E4A88+4*0]
+008 //对象类型分类编号 0X2E 0x31是玩家 0x55 动作对象
+314 //选中状态,是否显示了血条
+320 //怪物名字
+380 //死亡状态 死亡为1 未死亡为0
+768 //
+5b4 //怪物血量
+5B8 //怪物等级
+1018 //X
+1020 //Y
+1024 //X
+102c //Y
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

发表于 2016-4-9 19:49:08 | 显示全部楼层
const DWORD Call_ReleaseSkills = 0x00EE31A3;    //释放技能CALL     偏移:1    //OD地


00EE31A3    50              PUSH EAX                                 ; 技能CALL 释放
00EE31A4    C7C0 36CF9735   MOV EAX,3597CF36
00EE31AA    8D80 A66F8DF9   LEA EAX,DWORD PTR DS:[EAX+F98D6FA6]
00EE31B0    870424          XCHG DWORD PTR SS:[ESP],EAX
00EE31B3    9C              PUSHFD
00EE31B4    89AC24 04000000 MOV DWORD PTR SS:[ESP+4],EBP
00EE31BB    9D              POPFD
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-9 20:36:22 | 显示全部楼层
谢谢老师
郁金香外挂教程,学习中...
回复

使用道具 举报

 楼主| 发表于 2016-4-9 21:21:46 | 显示全部楼层
大家帮我看看,为什么只能选一次怪,而且到双浆司法处,一次怪都不能选?谢谢大家!
void SelGW()
{        // TODO: Add your control notification handler code here
        //遍历 [i*4+0599a110] 数组
        _asm
        {
                mov eax, eax
                mov eax, eax
        }
        int* b8, *bc, *b380, *p14E4;
        float *b31c;
        int* pb, *p2;
        for (int i = 0x03220B58; i<(0x03220B58 + 0x1FFF * 4); i += 4)//每次增加4字节
        {
                pb = (int*)i;
                b8 = (int*)(*pb + 0x8);
                bc = (int*)(*pb + 0xc);
                b31c = (float*)(*pb + 0x31c);//
                b380 = (int*)(*pb + 0x380);
               
                if ((*b8 == 0x2E) && (*b31c <= 100) && (*b380 == 0))
                {

                        p2 = pb;

                        //显示血条,设置怪选中状态

                        int selmonbase = *p2;
                        //去掉以下这些血条的代码,能正确选择怪物,但最后还是出错了。
                        if (*p14E4 == 0xFFFF)
                        {
                                _asm
                                {
                                        mov esi, selmonbase  //汇编里为esi,改成edi试了,还是只打一次怪,就出错了
                                        mov eax, [esi]
                                        mov edx, [eax+0x4]
                                        push 0x1
                                        push 0x450
                                        mov ecx,esi
                                        call edx  //od里,执行完后,eax=1,然后写入怪id.
                                        //ADD ESP, 0x8 //堆栈平衡,试一下,还会不会出错?结果还是出错?
                                }
                        } //end if
                        //把下面三行取消,一点就出错。
                        p14E4 = (int*)0x03220B54; //为什么一到双浆司法处,就会出错,关闭游戏?但在棕熊和狐狸那个地方,却能正确选择怪物?
                        p14E4 = (int*)(*p14E4 + 0x14E4);
                        *p14E4 = *bc;//写入下标

                        return;
                       
                }
        }
        //以下为od里汇编代码:
        //        004FE8DC   >  8B06          MOV EAX, DWORD PTR DS : [ESI]
        //        004FE8DE   .  8B50 04       MOV EDX, DWORD PTR DS : [EAX + 0x4]
        //        004FE8E1   .  6A 01         PUSH 0x1
        //        004FE8E3   .  68 50040000   PUSH 0x450
        //        004FE8E8   .  8BCE          MOV ECX, ESI
        //        004FE8EA.FFD2          CALL EDX                                                //这里就是显示血条的call,但也不知找对了没有?
}
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-10 05:32:57 | 显示全部楼层
自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!自己顶!
郁金香外挂教程,学习中...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-10 09:37:30 | 显示全部楼层
郁金香外挂教程,学习中...
回复

使用道具 举报

 楼主| 发表于 2016-4-10 12:03:36 | 显示全部楼层
郁金香外挂教程,学习中...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

限时限量优惠

QQ|小黑屋|手机版|郁金香外挂技术-郁金香灬老师 ( 苏ICP备10059359号 )

GMT+8, 2020-2-22 11:17 , Processed in 0.054250 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表