黃易群俠傳M脫機外掛應用程式黃易神行
6026
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, 2026-9-27 02:38 , Processed in 0.053871 second(s), 17 queries , Memcache On.

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

回頂部
第二步?
第三步?