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

小明思考

高性能服務器端計算
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>
            亚洲一线二线三线久久久| 亚洲欧美国产高清va在线播| 欧美福利电影网| 久久久久88色偷偷免费| 久久精品一二三区| 久久午夜电影| 欧美激情精品久久久久久大尺度| 欧美乱妇高清无乱码| 国产精品乱码| 亚洲电影免费在线观看| 亚洲精一区二区三区| 亚洲综合视频一区| 老**午夜毛片一区二区三区| 欧美va亚洲va国产综合| 日韩一级精品| 久久久另类综合| 欧美午夜精品久久久久久浪潮 | 欧美 日韩 国产在线| 亚洲国产精品久久久久婷婷老年 | 欧美国产亚洲视频| 国产精品国产成人国产三级| 国产一区久久| 99这里只有精品| 久久九九精品| 99精品99| 老司机免费视频久久| 欧美系列一区| 亚洲精品男同| 久久天天狠狠| 亚洲在线国产日韩欧美| 欧美国产乱视频| 激情另类综合| 欧美专区在线| 一区二区三区国产在线| 久久一区二区三区四区| 国产日韩精品一区二区浪潮av| 亚洲精品中文字| 欧美大胆a视频| 久久激情中文| 国产日韩欧美日韩| 亚洲欧美国产毛片在线| 亚洲国产精品一区二区www在线| 性欧美xxxx大乳国产app| 亚洲免费观看| 国产日韩av一区二区| 99国产精品私拍| 欧美成人精品不卡视频在线观看 | 欧美夜福利tv在线| 欧美午夜性色大片在线观看| 亚洲精品午夜精品| 欧美国产一区二区在线观看| 久久久av网站| 伊人久久大香线| 麻豆精品国产91久久久久久| 欧美在线在线| 黑人巨大精品欧美一区二区小视频| 午夜精品久久久久久久蜜桃app | 欧美中文字幕视频| 亚洲永久免费观看| 国产欧美日本一区二区三区| 午夜精品av| 欧美一区二区精美| 国产一区二区在线观看免费播放| 亚洲欧美日本另类| 亚洲午夜精品久久| 国产精品推荐精品| 欧美专区亚洲专区| 欧美一级午夜免费电影| 国产一区二区三区高清在线观看| 久久精品成人一区二区三区| 欧美一区二区三区免费看| 国内精品嫩模av私拍在线观看| 久久精品国产亚洲一区二区| 久久精品日韩| 99视频精品在线| 一级日韩一区在线观看| 国产精品午夜春色av| 久久久国产亚洲精品| 久久人人超碰| 一区二区三区久久| 欧美一区二区大片| 亚洲精品美女免费| 亚洲网在线观看| 在线观看的日韩av| 一本到高清视频免费精品| 国产日韩三区| 亚洲高清视频在线观看| 国产精品a久久久久久| 久久精品在线免费观看| 欧美成人午夜免费视在线看片| 在线视频中文亚洲| 性欧美长视频| 亚洲精品在线视频| 欧美一二区视频| 一区二区日本视频| 久久aⅴ国产欧美74aaa| 一区二区三区 在线观看视频| 亚洲欧美国产高清va在线播| 亚洲经典视频在线观看| 亚洲一区国产一区| 1000部国产精品成人观看| 一本高清dvd不卡在线观看| 亚洲大胆女人| 欧美日韩综合在线免费观看| 欧美中文字幕不卡| 欧美另类在线播放| 免播放器亚洲一区| 国产精品亚洲аv天堂网| 亚洲精品国产精品乱码不99| 黄色成人av网站| 亚洲综合第一页| 一区二区欧美亚洲| 免费欧美网站| 久久在精品线影院精品国产| 国产精品久久久久久久久借妻| 免费毛片一区二区三区久久久| 国产嫩草影院久久久久| 日韩亚洲欧美在线观看| 亚洲国产成人porn| 久久福利资源站| 久久av老司机精品网站导航 | 国产精品一二三四区| 亚洲精品久久久久久下一站| 亚洲电影成人| 久久精品国产99精品国产亚洲性色 | 欧美一区二区三区播放老司机 | 看片网站欧美日韩| 久久黄色小说| 国产精品五区| 亚洲一区二区av电影| 一区二区三区视频在线看| 欧美成人tv| 亚洲黄色av一区| 亚洲欧洲在线免费| 男男成人高潮片免费网站| 欧美大片在线看| 亚洲精品久久久久久久久久久久久| 久久综合色综合88| 亚洲福利视频一区二区| 亚洲激情另类| 欧美日韩国产丝袜另类| 在线一区二区三区四区| 午夜亚洲一区| 曰韩精品一区二区| 欧美高清视频一区二区三区在线观看| 亚洲第一色中文字幕| 99精品热视频只有精品10| 国产精品av久久久久久麻豆网| 亚洲在线视频免费观看| 久久久www成人免费无遮挡大片| 一区在线电影| 欧美精品97| 亚洲综合色激情五月| 久久一区二区三区国产精品 | 欧美chengren| 日韩视频―中文字幕| 亚洲欧美一区二区三区久久 | 欧美一区二区在线免费观看| 久久精品国产亚洲aⅴ| 樱桃成人精品视频在线播放| 蜜臀av国产精品久久久久| 亚洲精品国产无天堂网2021| 亚洲午夜精品久久久久久app| 国产精品自拍三区| 老**午夜毛片一区二区三区| 亚洲美女精品久久| 久久国产精品久久久久久| 亚洲丰满在线| 国产精品久久国产精麻豆99网站| 欧美一区=区| 亚洲裸体俱乐部裸体舞表演av| 欧美一区二区三区在线观看视频| 一区视频在线看| 欧美性片在线观看| 美女精品一区| 午夜亚洲影视| 亚洲人体1000| 久久中文久久字幕| 亚洲欧美国产视频| 亚洲另类在线视频| 国内精品久久国产| 国产精品人人做人人爽| 欧美激情女人20p| 久久精品国产综合精品| 亚洲香蕉网站| 日韩网站在线| 亚洲国产综合91精品麻豆| 久久亚洲精选| 久久精品国产视频| 午夜一区二区三区在线观看| 亚洲精品自在久久| 亚洲国产第一| 国产真实精品久久二三区| 欧美手机在线| 欧美黄色免费| 欧美www视频| 麻豆精品网站| 久久综合网hezyo| 久久久在线视频| 久久九九国产精品|