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

小明思考

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

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

Posted on 2005-12-19 11:37 小明 閱讀(17131) 評論(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://m.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>
            久久精品三级| 亚洲国产日韩一区二区| 国产日韩欧美高清免费| 国产精品国产a| 国产精品自拍视频| 国产亚洲精品久久久久动| 韩日午夜在线资源一区二区| 精品999久久久| 日韩一级网站| 欧美一区视频| 巨乳诱惑日韩免费av| 亚洲高清在线| 亚洲一区二区三区高清| 欧美一区午夜精品| 久久久在线视频| 欧美xx视频| 一区二区激情视频| 久久精品国产免费看久久精品| 久久亚洲春色中文字幕| 欧美日韩综合精品| 韩国av一区二区三区| 亚洲精品三级| 久久久国产精彩视频美女艺术照福利| 亚洲电影免费| 午夜精品一区二区三区在线| 久久频这里精品99香蕉| 欧美日韩中文字幕精品| 韩国三级电影一区二区| 亚洲视频一区在线观看| 久久中文在线| 在线中文字幕不卡| 美玉足脚交一区二区三区图片| 国产精品v亚洲精品v日韩精品| 红桃视频成人| 欧美一区二区在线观看| 亚洲国产日韩一级| 久久蜜桃资源一区二区老牛 | 亚洲茄子视频| 久久久久www| 国产精品亚洲美女av网站| 亚洲国产婷婷综合在线精品 | 在线性视频日韩欧美| 鲁大师成人一区二区三区| 国产美女精品人人做人人爽| aa成人免费视频| 欧美成人国产一区二区| 欧美一区二区在线观看| 国产精品一区一区三区| 亚洲午夜精品久久| 亚洲日本成人网| 女仆av观看一区| 亚洲国产91色在线| 能在线观看的日韩av| 久久www成人_看片免费不卡| 国产美女扒开尿口久久久| 亚洲综合色视频| 亚洲午夜成aⅴ人片| 欧美午夜精品伦理| 亚洲一区二区三区欧美| 一区二区欧美激情| 国产精品国产三级国产普通话三级| 一区二区91| 一区二区三区久久| 国产精品黄色在线观看| 香港成人在线视频| 羞羞答答国产精品www一本| 国产欧美一区在线| 久久一区欧美| 免费视频一区| 欧美日韩国产影片| 一区二区激情小说| 一区二区三区毛片| 国产女主播一区二区| 久久国产精品久久精品国产| 性欧美精品高清| 亚洲国产成人午夜在线一区| 最新成人av网站| 国产精品久久久久久av福利软件| 午夜亚洲视频| 久久久久久久尹人综合网亚洲| 亚洲国产99精品国自产| 亚洲精品乱码久久久久| 国产精品日日摸夜夜添夜夜av| 欧美一区二区三区免费大片| 久久精品国产综合| 91久久精品一区二区别| 日韩视频一区二区三区在线播放| 国产精品久久久一区二区三区| 久久精品日产第一区二区| 久久久爽爽爽美女图片| 在线午夜精品| 久久久精品一区二区三区| av成人天堂| 欧美在线视频免费| 亚洲精选视频免费看| 亚洲视频中文| 亚洲高清久久网| 亚洲无限乱码一二三四麻| 激情欧美一区二区三区在线观看| 最新日韩在线视频| 国产一区二区三区在线观看网站| 亚洲国内自拍| 国产一区二区三区免费不卡| 亚洲欧洲在线播放| 国内精品一区二区三区| 日韩小视频在线观看专区| 国内欧美视频一区二区| 一区二区国产日产| 亚洲日本成人在线观看| 欧美一区二区三区视频免费播放 | 久久精品中文字幕一区| 欧美精选一区| 裸体一区二区三区| 国产精品久久久久久久久搜平片 | 亚洲国内高清视频| 午夜精品国产精品大乳美女| 99精品欧美一区二区蜜桃免费| 午夜在线a亚洲v天堂网2018| 亚洲一二区在线| 欧美精品久久久久久久免费观看| 久久久久亚洲综合| 国产精品极品美女粉嫩高清在线| 欧美国产国产综合| 国产专区综合网| 亚洲综合成人婷婷小说| 国产目拍亚洲精品99久久精品| 亚洲国产精品女人久久久| 国产一区二区三区久久久| 一区二区三区.www| 一本色道久久综合亚洲91| 麻豆精品在线观看| 免费高清在线一区| 黄色成人91| 久久国产精品亚洲77777| 欧美一级日韩一级| 国产精品美女久久久浪潮软件| 一区二区三区国产精华| 一区二区三区四区五区视频| 欧美日韩国产免费| 亚洲免费观看高清完整版在线观看熊 | 99国产精品视频免费观看一公开| 在线观看一区| 久久精品伊人| 男同欧美伦乱| 亚洲精品在线观看视频| 欧美激情久久久久| 99在线观看免费视频精品观看| 宅男噜噜噜66国产日韩在线观看| 欧美日韩亚洲三区| 亚洲综合电影| 久久五月天婷婷| 亚洲国产天堂久久综合| 欧美片第一页| 亚洲永久字幕| 免费国产一区二区| 99精品国产在热久久婷婷| 国产精品大片wwwwww| 午夜精品久久久久久99热软件| 久久久精品一区| 亚洲人成在线免费观看| 欧美日韩在线影院| 性色av一区二区三区红粉影视| 久久综合九色99| 日韩写真在线| 国产色产综合产在线视频| 美日韩丰满少妇在线观看| 99精品黄色片免费大全| 久久久久9999亚洲精品| 亚洲精品视频免费观看| 国产精品一区二区黑丝| 美女视频网站黄色亚洲| 亚洲一区二区三区免费在线观看| 久久网站热最新地址| 在线一区二区三区做爰视频网站| 国产在线精品成人一区二区三区| 欧美一级在线播放| 久久久综合精品| 亚洲视频你懂的| 亚洲国产精品一区二区第一页| 国产精品av久久久久久麻豆网| 久久久综合香蕉尹人综合网| 亚洲国产精品久久久久秋霞不卡| 欧美视频三区在线播放| 久久久久久久综合色一本| 99人久久精品视频最新地址| 久久婷婷色综合| 欧美一级午夜免费电影| 亚洲美女诱惑| 影音先锋另类| 亚洲欧美精品在线| 亚洲第一偷拍| 亚洲精品日韩久久| 黄色成人在线免费| 国产精品一区二区你懂得 | 久久久久久久综合色一本| 一区二区三区成人精品| 亚洲福利视频专区| 麻豆精品91| 久久一区二区三区国产精品| 欧美一区二区在线看|