青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

小明思考

高性能服務器端計算
posts - 70, comments - 428, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

為英雄無敵3寫個游戲修改器

Posted on 2005-12-19 11:37 小明 閱讀(17168) 評論(7)  編輯 收藏 引用 所屬分類: Win32Game Development
我是比較鐵桿的英雄無敵3的fans,在網上看到這樣的文章:http://game.china.com/zh_cn/play/10002765/20021113/11362720.html

就是讓我方英雄學會所有技能,真的蠻爽的
學會28項技能修改法
heroes3.jpg

  首先,把你的英雄的士兵調到前面幾格來,接著用FPE來搜索。例如你的士兵數:第一格3,第二格14,第三格4,那么就用 3,0,14,0,4,0 來搜索,就可以找到地址。顯示為:
  士兵種類- FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
   FF FF FF FF FF FF FF FF FF FF FF FF 03 00 00 00-士兵數量
   0E 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00
   00 00 00 00 00 00 00 00 01 02 03 04 05 06 07 08
   09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
   25 26 27 28 01 02 03 04 05 06 07 08 00 00 00 00
   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
   04 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF
   FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
   FF或00作為一格,每4格是代表一種屬性,物品, 狀態等等。前面28格是士兵的種類,接下來28格是士兵的數量。例如: 英雄可帶7種士兵,你要每種都是天使,那么把
   03 00 00 00 前面的FF FF FF FF 改為0D 00 00 00。 如果你要數量100, 那么把
   03 00 00 00 改為64 00 00 00。 士兵的種類是這樣分的:00 00 00 00 是槍兵,
   01 00 00 00 是 進化一級的槍兵,02 00 00 00 是弓箭手,03 00 00 00 是神箭手。
   如此類推。
  
   從03那一格開始數,28格后就是英雄的技能等級,接著的28格是英雄的技能,
   也就是從01到28代表的是英雄的技能等級,技能等級最多只能是3。
   01 箭術等級 02 尋路術等級 03 后勤學等級
   04 偵察術等級 05 外交術等級 06 航海術等級
   07 領導術等級 08 智慧術等級 09 神秘術等級
   10 幸運術等級 11 彈道術等級 12 鷹眼術等級
   13 招魂術等級 14 理財術等級 15 火系魔法等級
   16 氣系魔法等級 17 水系魔法等級 18 土系魔法等級
   19 學術等級 20 戰術等級 21 炮術等級
   22 學習能力等級 23 進攻術等級 24 防御術等級

但是每次使用FPE真的很麻煩,我又是很懶的人。FPE可以做到的事情,我也可以做到。
其實游戲修改不過是使用ReadProcessMemoryWriteProcessMemory

花了半天不斷的試驗,終于寫出一個可以用于英雄無敵3.1版的修改器,沒有寫界面(I'm lazy-:)),運行之后就是讓我方英雄學會所有技能。

#include <windows.h>
#include 
<tlhelp32.h>
#include 
<cstdio>

const char MODULE_NAME[] = "Heroes3.exe";

void printError( TCHAR* msg )
{
    DWORD eNum;
    TCHAR sysMsg[
256];
    TCHAR
* p;
    
    eNum 
= GetLastError( );
    FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM 
| FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL, eNum,
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), 
// Default language
        sysMsg, 256, NULL );
    
    
// Trim the end of the line and terminate it with a null
    p = sysMsg;
    
while( ( *> 31 ) || ( *== 9 ) )
        
++p;
    
do { *p-- = 0; } while( ( p >= sysMsg ) &&
        ( ( 
*== '.' ) || ( *< 33 ) ) );
    
    
// Display the message
    printf( "WARNING: %s failed with error %d (%s)\n", msg, eNum, sysMsg );
}


DWORD findProcessId(
const char *module)
{
    DWORD result 
= -1;
    HANDLE hProcessSnap;
    
    
// Take a snapshot of all processes in the system.
    hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
    
if( hProcessSnap == INVALID_HANDLE_VALUE )
    {
        printError( 
"CreateToolhelp32Snapshot (of processes)" );
        
return result;
    }
    
    PROCESSENTRY32 pe32;
    
// Set the size of the structure before using it.
    pe32.dwSize = sizeof( PROCESSENTRY32 );
    
    
// Retrieve information about the first process,
    
// and exit if unsuccessful
    if!Process32First( hProcessSnap, &pe32 ) )
    {
        printError( 
"Process32First" );  // Show cause of failure
        CloseHandle( hProcessSnap );     // Must clean up the snapshot object!
        return result;
    }
    
    
// Now walk the snapshot of processes, and
    
// display information about each process in turn
    do
    {
        
if(stricmp(pe32.szExeFile,module)==0)
        {
            printf( 
"find process:  %s\n", module );
            result 
= pe32.th32ProcessID;
            
break;
        }
        
    } 
while( Process32Next( hProcessSnap, &pe32 ) );
    
    CloseHandle( hProcessSnap );
    
return result;
}

int main(int argc,char *argv[])
{
    DWORD h3pid 
= -1;
    
    h3pid 
=  findProcessId(MODULE_NAME);
    
if(h3pid == -1)
    {
        printf(
"can't find %s in memory,please make sure the program started!\n",MODULE_NAME);
        
return 1;
    }

    HANDLE h3 
= OpenProcess( PROCESS_ALL_ACCESS, FALSE, h3pid );
    
if( h3 == NULL )
    {
      printError( 
"OpenProcess" );
      
return 1;
    }

    unsigned 
long sideOffset=0x824994;
    unsigned 
char side = 0xff;
    
if(!ReadProcessMemory(h3,(LPCVOID)sideOffset,&side,1,0)) //查找我方的顏色
    {
        printError( 
"ReadProcessMemory" );
        
return 1;
    }

    
if(side!=0xff)
    {
        printf(
"find current side:%d\n",(int)side);
    }
    
else
    {
        printf(
"can't find current side\n");
        side 
= 0;
    }

    unsigned 
long heroBaseAddress = 0x15216ab;  //hero name start
    unsigned char name[20]={0};
    unsigned 
long temp = heroBaseAddress-1;

    
char b[28]; //28種技能
    
int size = sizeof(b);
    memset(b,
3,size);
    b[
12]=0;//不學招魂術

    
for(int i=0;i<=155;++i) //一共156個Hero
    {
        
if(!ReadProcessMemory(h3,(LPCVOID)temp,name,sizeof(name),0))
        {
            printError( 
"ReadProcessMemory" );
            
return 1;
        }
        
if(name[0]==side)
        {
            printf(
"find:%s\t",name+1);
            
if(!WriteProcessMemory(h3,(LPVOID)(temp+0xA7),b,size,0))
            {
                printError( 
"WriteProcessMemory" );
                
return 1;
            }
            
else
            {
                printf(
"update skill sucess!\n");
            }
        }
        temp 
+= 0x492;
    }

    CloseHandle(h3);
    
return 0;
}


附加:
讓我方英雄所有英雄學會除了招魂術的以外的27種技能的小程序

以前英雄世界也有一個這樣的程序,但是版本太老,不能用了。

使用版本:中文版3.1,其他版本沒有測試

使用方法:進入游戲后,運行程序

Download: http://www.shnenglu.com/Files/sandy/h3c.zip

Feedback

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2005-12-19 15:10 by 小軟
玩游戲你也作弊,我就從沒看你寫的工具有界面的:(

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2005-12-28 14:41 by Flyingis
有意思

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2006-11-01 13:12 by zlot
難道說......

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2006-12-10 22:53 by maber

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2007-03-04 20:57 by pdd
我也編寫了一個,但是時靈時不靈,似乎地址是變動的。QQ:21384483

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2007-08-30 10:42 by 浪子高達
re: 為英雄無敵3寫個游戲修改器 回復 更多評論
2007-03-04 20:57 by pdd
我也編寫了一個,但是時靈時不靈,似乎地址是變動的。QQ:21384483

變動是因為英雄變了!

QQ:527301899

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2007-08-30 10:43 by 浪子高達
那個,如果有界面的話就好了~大哥...

# re: 為英雄無敵3寫個游戲修改器  回復  更多評論   

2009-04-10 20:32 by MIG39CN
你好
哥們 我下了你的那個小程序
怎么沒發現有什么變化啊?
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩网址| 亚洲国产精品精华液网站| 国产欧美日韩在线| 欧美亚洲在线视频| 欧美黄色免费网站| 99亚洲一区二区| 国产人成精品一区二区三| 久久久久久久久久久久久女国产乱 | 国产欧美日韩不卡| 久久国产88| 亚洲国产精品成人精品| 亚洲午夜精品一区二区三区他趣| 国产精品久久久久毛片软件 | 国产一区二区三区在线观看免费| 久久精品水蜜桃av综合天堂| 亚洲国产精品第一区二区| 亚洲天堂av在线免费| 国产午夜精品视频| 欧美国产日韩在线| 亚洲欧美欧美一区二区三区| 欧美成人激情在线| 亚洲欧洲av一区二区| 在线观看国产成人av片| 欧美日韩国产123| 性视频1819p久久| 亚洲国产综合在线看不卡| 欧美亚洲在线播放| 99riav国产精品| 国产综合自拍| 欧美三级视频| 麻豆国产精品va在线观看不卡 | 欧美在线观看视频在线| 亚洲国产精品成人综合色在线婷婷| 午夜激情综合网| 亚洲国产精品久久91精品| 国产精品美女久久久久av超清| 久久亚洲综合色一区二区三区| 亚洲午夜91| 亚洲欧洲日本国产| 久热精品视频在线观看一区| 亚洲一区二区高清| 亚洲欧洲在线视频| 黄色日韩网站| 国产精品日韩精品| 欧美日韩在线精品| 欧美福利影院| 久久综合999| 久久国产精品网站| 翔田千里一区二区| 亚洲视频在线观看三级| 亚洲精品视频免费观看| 欧美国产精品专区| 美日韩精品免费观看视频| 欧美在线观看一区二区三区| 亚洲香蕉成视频在线观看 | 亚洲影音先锋| 一本久道久久综合中文字幕 | 亚洲精品国产精品国自产在线 | 欧美亚洲视频在线观看| 亚洲最新在线| 99re6这里只有精品视频在线观看| 美国十次成人| 老司机亚洲精品| 久久午夜色播影院免费高清| 久久久999成人| 欧美一区二区大片| 欧美在线观看天堂一区二区三区| 亚洲欧美日韩专区| 亚洲综合视频在线| 亚洲欧美综合另类中字| 午夜欧美大片免费观看| 亚洲欧美日韩系列| 欧美一区二区三区久久精品茉莉花| 亚洲天堂成人在线视频| 亚洲欧美国产三级| 欧美一区二区三区视频在线| 欧美一区日韩一区| 久久亚洲影音av资源网| 巨乳诱惑日韩免费av| 免费看亚洲片| 亚洲国产一区二区视频| 亚洲精品一区在线观看| 亚洲视频一起| 先锋影音国产一区| 久久一区二区三区四区五区| 欧美mv日韩mv国产网站| 欧美日韩一区二区在线观看| 国产精品久久综合| 国产专区欧美精品| 亚洲国产精品传媒在线观看| 亚洲乱亚洲高清| 亚洲男女自偷自拍| 久久久久久色| 亚洲激情一区二区| 亚洲午夜一区| 久久人人看视频| 欧美日韩系列| 国产主播一区二区| 99国产精品久久久久久久久久| 在线视频亚洲| 久久免费高清视频| 91久久久精品| 午夜激情亚洲| 欧美大片一区二区| 国产精品视频网| 亚洲国产老妈| 午夜精品久久99蜜桃的功能介绍| 久久永久免费| 亚洲精品在线三区| 久久福利视频导航| 欧美日韩在线播| 伊人成综合网伊人222| 一区二区三区欧美成人| 欧美自拍偷拍午夜视频| 亚洲第一在线视频| 西瓜成人精品人成网站| 欧美国产综合一区二区| 国产免费成人| 99re热精品| 免费一区二区三区| 亚洲永久在线| 欧美激情欧美激情在线五月| 国产色视频一区| 一区二区三区欧美在线观看| 老司机亚洲精品| 亚洲专区一区| 欧美日韩国产黄| 亚洲国产精品黑人久久久| 午夜久久资源| 亚洲裸体视频| 蜜臀av在线播放一区二区三区| 国产欧美日韩一区二区三区| 一区二区免费看| 欧美国产日韩一二三区| 久久精彩视频| 国产亚洲精品一区二555| 亚洲小说区图片区| 91久久久久久国产精品| 玖玖精品视频| 激情综合激情| 久久精品最新地址| 亚洲欧美日韩精品在线| 欧美三级电影一区| 夜久久久久久| 亚洲激情网站免费观看| 老鸭窝毛片一区二区三区| 国产一区二区三区四区| 久久成人免费| 午夜精品成人在线| 国产欧美精品一区aⅴ影院| 亚洲影音先锋| 一区二区三区四区五区在线| 欧美日韩精品免费观看| 一本色道久久综合狠狠躁篇的优点 | 一本色道久久综合亚洲精品按摩 | 亚洲精品视频免费| 欧美黑人在线观看| 亚洲欧洲精品一区二区三区| 欧美bbbxxxxx| 久久婷婷久久| 亚洲国产天堂久久综合网| 欧美/亚洲一区| 麻豆精品一区二区av白丝在线| 一区二区自拍| 欧美成人按摩| 欧美成人亚洲成人| 亚洲人成精品久久久久| 亚洲成色最大综合在线| 欧美1区3d| 夜夜嗨av一区二区三区网页| 亚洲欧洲视频在线| 欧美三区在线视频| 午夜精品在线观看| 亚洲欧美日韩网| 国产有码在线一区二区视频| 久久亚洲电影| 牛牛国产精品| 宅男在线国产精品| 亚洲专区一二三| 国产综合激情| 欧美大片一区二区| 欧美日韩国产限制| 欧美一区二区视频在线观看2020 | 亚洲一本视频| 亚洲一区二区网站| 伊人久久亚洲热| 91久久久久久国产精品| 国产精品h在线观看| 久久不见久久见免费视频1| 久久精品成人一区二区三区蜜臀| 亚洲二区视频| 一区二区欧美激情| 国产亚洲福利社区一区| 欧美激情视频给我| 国产精品男gay被猛男狂揉视频| 久久午夜av| 欧美日韩国产精品一卡| 久久国产加勒比精品无码| 麻豆精品视频在线观看| 亚洲欧美一区二区视频|