黃易群俠傳M脫機外掛應用程式黃易神行
5349
11

[發問] 向各delphi 大大請教, 是我指針錯了嗎?

各位大大., 我都是初學而已 看過了很多文章 而且都跟足偏移值,還是解不出想要的值, 是我有跟錯偏移值嗎?

W2I_BASE_ADDR:=$A5BFB0;              //全局基址
    W2I_DYNAMIC_BASE_ADDR:=read_addr(W2I_BASE_ADDR+$1c);                      //動態基址
    W2I_ENVIRON_BASE_ADDR:=read_addr(W2I_DYNAMIC_BASE_ADDR+$08);              //周圍環境基址
    W2I_PLAYER_BASE_ADDR := read_addr(W2I_ENVIRON_BASE_ADDR+$20);   //周圍玩家基址
    jnnum := read_addr(W2I_PLAYER_BASE_ADDR + $14);   //24=周圍玩家總數量 14=現數量
    jnfirst := read_addr(W2I_PLAYER_BASE_ADDR + $18);   //周圍玩家列表基址
       label8.caption := IntToStr(jnnum);  //這個我用作測試上面的偏移值沒有錯
       If jnnum > 0 Then
       For i:= 0 to jnnum - 1 do
      begin
       ReadProcessMemory(hCurrentHandle, Pointer(jnfirst + I * 4), @jnbase , 4, ByteRead);//相應周圍玩家地址
       ReadProcessMemory(hCurrentHandle, Pointer(jnbase+$04), @ujnname1, 4, tt);   //相應位置玩家指針
       //ReadProcessMemory(hCurrentHandle, Pointer(ujnname1+$448), @jnID, 4, tt);  //玩家SN
       ReadProcessMemory(hCurrentHandle, Pointer(ujnname1+$450), @jnLV, 4, tt);  //玩家等級
       //ReadProcessMemory(hCurrentHandle, Pointer(ujnname1+$5D8),@AjnnameII,36,tt); //'玩家名稱
       combobox3.Items.Add(IntToStr(jnLV));


不管怎樣, 我還是列不出 jnLV,jnID 之類的
是我ujnname1 那邊指針有錯了嗎?
還是jnbase 那邊程序有錯?
列出來的, 不是0就是一部份相同的數值
如果列得出來,, 應該是每個都不同的說

請各位大大指點一下啊.. 謝謝
感恩萬分,我邊找資料 邊試差不多2天都沒結果



PS.因為源碼我都靠改某同志的技能列表, 所以比那些代號較亂 但功能是一樣吧
收藏收藏1 分享分享 讚 幹 分享分享 FB分享
回覆

使用道具 舉報


RAINTCK 當前離線
UID
1569638
熱心
259 值
嘉獎
0 次
違規
0 次
在線時間
321 小時
經驗
158 點
積分
4295
精華
0
最後登錄
2018-10-27
閱讀權限
50
註冊時間
2010-10-21
論壇幣
3504 幣
聯合幣
47 枚
幸運鑽
6 顆
招待卷
2000 點
查看詳細資料
Rank: 6Rank: 6
RAINTCK 2011-1-2 11:03:50
jnID 現在版本是 460
jnLV 是 46c 這2個偏移改一下
回覆

使用道具 舉報

無啦啦比人封 當前離線
UID
1039912
熱心
122 值
嘉獎
0 次
違規
0 次
在線時間
67 小時
經驗
98 點
積分
287
精華
0
最後登錄
2015-11-21
閱讀權限
25
註冊時間
2008-10-1
論壇幣
99 幣
聯合幣
43 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 3
無啦啦比人封 2011-1-2 11:45:49
2# RAINTCK

但經過修改之後, 數值都依然是不正確的
現在的是

  1. procedure TForm1.Button3Click(Sender: TObject);
  2. VAR
  3.        I:integer;
  4.      W2I_ROLE_SELECT_ADDR,W2I_ROLE_BASE_ADDR,W2I_PLAYER_BASE_ADDR,W2I_ENVIRON_BASE_ADDR,W2I_DYNAMIC_BASE_ADDR,W2I_BASE_ADDR,ByteRead,tt,ft,jnfirst,jnnum,jnbase,jnid,jnLV,ujnname1,ujnname2,ujnname3,jnsj,jnjg,jnzt:DWORD;
  5.   AjnnameII: array [0..35] of WideChar;
  6. begin
  7.   combobox3.clear;
  8.     W2I_BASE_ADDR:=$A5BFB0;              //全局基址
  9.     W2I_DYNAMIC_BASE_ADDR:=read_addr(W2I_BASE_ADDR+$1c);                      //動態基址
  10.     W2I_ENVIRON_BASE_ADDR:=read_addr(W2I_DYNAMIC_BASE_ADDR+$08);              //周圍環境基址
  11.     W2I_PLAYER_BASE_ADDR := read_addr(W2I_ENVIRON_BASE_ADDR+$20);   //周圍玩家基址
  12.     jnnum := read_addr(W2I_PLAYER_BASE_ADDR + $14);   //24=周圍玩家總數量 14=現數量
  13.     jnfirst := read_addr(W2I_PLAYER_BASE_ADDR + $18);   //周圍玩家列表基址
  14.        label8.caption := IntToStr(jnnum);
  15.        If jnnum > 0 Then
  16.        For i:= 0 to jnnum - 1 do
  17.       begin
  18.        ReadProcessMemory(hCurrentHandle, Pointer(jnfirst + I * 4), @jnbase , 4, ByteRead);//相應周圍玩家地址
  19.        ReadProcessMemory(hCurrentHandle, Pointer(jnbase+$04), @ujnname1, 4, tt);   //相應位置玩家指針
  20.        ReadProcessMemory(hCurrentHandle, Pointer(ujnname1+$460), @jnID, 4, tt);  //玩家SN
  21.        ReadProcessMemory(hCurrentHandle, Pointer(ujnname1+$46C), @jnLV, 4, tt);  //玩家等級
  22.        ReadProcessMemory(hCurrentHandle, Pointer(ujnname1+$618),@AjnnameII,36,tt); //'玩家名稱
  23.        combobox3.Items.Add(WideCharToString(AjnnameII)+'='+IntToStr(jnID));
  24.      end;

  25. end;

複製代碼


源碼都覆出來.. 希望大大可以幫忙試一下><
感恩!! (努力學習中)
回覆

使用道具 舉報

RAINTCK 當前離線
UID
1569638
熱心
259 值
嘉獎
0 次
違規
0 次
在線時間
321 小時
經驗
158 點
積分
4295
精華
0
最後登錄
2018-10-27
閱讀權限
50
註冊時間
2010-10-21
論壇幣
3504 幣
聯合幣
47 枚
幸運鑽
6 顆
招待卷
2000 點
查看詳細資料
Rank: 6Rank: 6
RAINTCK 2011-1-2 18:57:07
你JNBASE定義DWORD讀取BYTE
其它...........看起來都正常
回覆

使用道具 舉報

無啦啦比人封 當前離線
UID
1039912
熱心
122 值
嘉獎
0 次
違規
0 次
在線時間
67 小時
經驗
98 點
積分
287
精華
0
最後登錄
2015-11-21
閱讀權限
25
註冊時間
2008-10-1
論壇幣
99 幣
聯合幣
43 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 3
5
無啦啦比人封 2011-1-2 19:09:16
唉 真的不懂錯在哪裡YCT66B
有其他的大大能指點一下嗎 ?
回覆

使用道具 舉報

jinnrose 當前離線
UID
896933
熱心
49 值
嘉獎
0 次
違規
0 次
在線時間
79 小時
經驗
39 點
積分
167
精華
0
最後登錄
2015-7-6
閱讀權限
20
註冊時間
2008-6-19
論壇幣
8171 幣
聯合幣
9 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 2Rank: 2
6
jinnrose 2011-1-2 21:23:19
ReadProcessMemory(GAME,Pointer(DYNAMIC_BASE_ADDR+$08),@ENVIRON_BASE_ADDR,4,iread); //取得環境基址
  ReadProcessMemory(GAME,Pointer(ENVIRON_BASE_ADDR+$20),@PLAYER_BASE_ADDR,4,iread); //取得週圍玩家基址
  ReadProcessMemory(GAME,Pointer(PLAYER_BASE_ADDR+$18),@PLAYER_LIST_ADDR,4,iread); //取得週圍玩家列表基址
  ReadProcessMemory(GAME,Pointer(ROLE_BASE_ADDR+$b0c),@ROLE_SN,4,iread); //人物選中sn
  ReadProcessMemory(GAME,Pointer(PLAYER_LIST_ADDR+((ROLE_SN Mod 769))*4),@PLAYER_ADDR,4,iread );//相應位置玩家基址
  ReadProcessMemory(GAME,Pointer(PLAYER_ADDR+$4),@PLAYER_OBJ,4,iread); //相應位置玩家指針
  ReadProcessMemory(GAME,Pointer(PLAYER_OBJ+$3C),@PLAYER_X,4,iread); //相應位置玩家X座標
  ReadProcessMemory(GAME,Pointer(PLAYER_OBJ+$44),@PLAYER_Y,4,iread); //相應位置玩家y座標
  ReadProcessMemory(GAME,Pointer(PLAYER_OBJ+$40),@PLAYER_Z,4,iread); //相應位置玩家Z座標
  ReadProcessMemory(GAME,Pointer(PLAYER_OBJ+$4B4),@PLAYER_MAXHP,4,iread); //相應位置玩家最大血量
  ReadProcessMemory(GAME,Pointer(PLAYER_OBJ+$474),@PLAYER_CURHP,4,iread); //相應位置玩家當前血量
  ReadProcessMemory(GAME,Pointer(PLAYER_OBJ+$618),@PLAYER_NAME_ADDR,4,iread); //相應位置玩家名稱基址
  ReadProcessMemory(GAME,pointer(PLAYER_NAME_ADDR),@PLAYER_NAME,SizeOf(PLAYER_NAME), iread);//讀取人物名稱
  Label15.Caption := '玩家名稱:' + string(PLAYER_NAME);
  Label16.Caption := '座標:'+Formatfloat('0',(PLAYER_X/10+400))+', '+Formatfloat('0',(PLAYER_Y/10+550))+
                     '#' + Formatfloat('0',(PLAYER_Z/10));
  Label17.Caption := '玩家血量:'+IntToStr(PLAYER_CURHP)+' / '+IntToStr(PLAYER_MAXHP);

這是我在用的可以正確顯示出點選玩的血量及名子座標,可供補機補血及跟隨之用.
回覆

使用道具 舉報

RAINTCK 當前離線
UID
1569638
熱心
259 值
嘉獎
0 次
違規
0 次
在線時間
321 小時
經驗
158 點
積分
4295
精華
0
最後登錄
2018-10-27
閱讀權限
50
註冊時間
2010-10-21
論壇幣
3504 幣
聯合幣
47 枚
幸運鑽
6 顆
招待卷
2000 點
查看詳細資料
Rank: 6Rank: 6
7
RAINTCK 2011-1-3 14:09:32
看起來好像是沒選中目標的問題
遍歷了週圍玩家確沒選目標所以沒資料好讀取
回覆

使用道具 舉報

無啦啦比人封 當前離線
UID
1039912
熱心
122 值
嘉獎
0 次
違規
0 次
在線時間
67 小時
經驗
98 點
積分
287
精華
0
最後登錄
2015-11-21
閱讀權限
25
註冊時間
2008-10-1
論壇幣
99 幣
聯合幣
43 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 3
8
無啦啦比人封 2011-1-3 21:50:59
本帖最後由 無啦啦比人封 於 2011-1-4 19:34 編輯

噢,先感謝大大之前的指點,我終於解得到需要的資料了
雖然不知錯在哪裡.. 但重新編譯過,現在就有

下刪 xd
回覆

使用道具 舉報

無啦啦比人封 當前離線
UID
1039912
熱心
122 值
嘉獎
0 次
違規
0 次
在線時間
67 小時
經驗
98 點
積分
287
精華
0
最後登錄
2015-11-21
閱讀權限
25
註冊時間
2008-10-1
論壇幣
99 幣
聯合幣
43 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 3
9
無啦啦比人封 2011-1-3 21:54:32
6# jinnrose

感謝大大的資訊提供, 現在我重新編譯後已經解決了(用GOD4神人編移大全重新編- -)
真的非常感謝, 而且你提供的源碼我會好好學習啊
回覆

使用道具 舉報

無啦啦比人封 當前離線
UID
1039912
熱心
122 值
嘉獎
0 次
違規
0 次
在線時間
67 小時
經驗
98 點
積分
287
精華
0
最後登錄
2015-11-21
閱讀權限
25
註冊時間
2008-10-1
論壇幣
99 幣
聯合幣
43 枚
幸運鑽
0 顆
招待卷
0 點
查看詳細資料
Rank: 3
10
無啦啦比人封 2011-1-4 19:33:30
選怪問題已經解決了, 感恩><
謝謝各大大的幫忙.. 我又進步了一段嚕 xd
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

12下一頁

手機版 | Archiver | 外掛聯合國

GMT+8, 2024-11-22 13:29 , Processed in 0.055443 second(s), 15 queries , Memcache On.

版權說明:
  本站不會製作、經銷、代理外掛程式。僅免費提供外掛程式下載前之掃毒及掃木馬等安全檢測驗證,協助會員遠離盜號危險程式。本站所有資料均來自網際網路收集整理,說明文字暨下載連結轉載自原程 式開發站。站上出現之公司名稱、遊戲名稱、程式等,商標及著作權,均歸各公司及程式原創所有,本站程式所有權歸外掛聯合國所有。本程式所有權歸外掛聯合國所有.......

回頂部
第二步?
第三步?