//******************************=call部份start***********************************====
procedure callwalk(xy: pcoordinate); stdcall;
varx,y: single;
begin
x := xy^.x;
y := xy^.y;
asmpushad
mov edx, x
mov eax, y
mov ecx, eax
push ecx
push edx
mov ecx, [baseaddr]
mov ecx, [ecx + $64]
mov ecx, [ecx + $160]
mov eax, callwalkaddr
call eax
popad
end;
end;
procedure walk(x, y: single);
var myzuobiao:tcoordinate;
begin
myzuobiao.x:=x;
myzuobiao.y:=y;
injectfunc(hwulin,@callwalk,@myzuobiao,sizeof(tcoordinate));
end;
//使用技能
function useskill(p: pskillparam):dword; stdcall;
varc1,c2,c3,c4,c5,c6 :dword;
begin
c1 :=p^.c1;
c2 :=p^.c2;
c3 :=p^.c3;
c4 :=p^.c4;
c5 :=p^.c5;
c6 :=p^.c6;
asmpushad
push c6
push c5
push c4
push c3
push c2
push c1
mov ecx,dword ptr ds:[baseaddr]
mov edx,dword ptr ds:[ecx+$64]
mov ecx,dword ptr ds:[edx+$160]
mov eax, calluseskilladdr
call eax
popad
end;
result:=0;
end;
//打坐 :c1=23 c2=ffffffff c3=ffffffff c4=bf800000 c5=bf800000 c6=bf800000
procedure dazuo;
varusesjineng :tskillparam;
begin
usesjineng.c1 := $23;
usesjineng.c2 := $ffffffff;
usesjineng.c3 := $ffffffff;
usesjineng.c4 := $bf800000;
usesjineng.c5 := $bf800000;
usesjineng.c6 := $bf800000;
injectfunc(hwulin,@useskill,@usesjineng,sizeof(usesjineng));
end;
//返回大理城:c1=16 c2=ffffffff c3=ffffffff c4=bf800000 c5=bf800000 c6=bf800000
procedure gotodali;
varusesjineng :tskillparam;
begin
usesjineng.c1 := $16;
usesjineng.c2 := $ffffffff;
usesjineng.c3 := $ffffffff;
usesjineng.c4 := $bf800000;
usesjineng.c5 := $bf800000;
usesjineng.c6 := $bf800000;
injectfunc(hwulin,@useskill,@usesjineng,sizeof(usesjineng));
end;
//打怪:c1=技能編號 c2=ffffffff c3=怪id c4=bf800000 c5=bf800000 c6=bf800000
procedure attack(jinengid,guaiid: dword);
varusesjineng :tskillparam;
begin
usesjineng.c1 := jinengid;
usesjineng.c2 := $ffffffff;
usesjineng.c3 := guaiid;
usesjineng.c4 := $bf800000;
usesjineng.c5 := $bf800000;
usesjineng.c6 := $bf800000;
injectfunc(hwulin,@useskill,@usesjineng,sizeof(usesjineng));
end;
//撿物品_全撿 用包裹基址
procedure select;stdcall;
begin
asmpushad
mov ecx,wpbaseadr
mov ecx,[ecx]
mov eax,[ecx]
call dword ptr [eax+$d8]
popad
end;
end;
//開啟撿物視窗 可走近撿物
procedure openselect1(bagid:pparam);stdcall;
vareax1:cardinal;
begin
eax1:=bagid^.id;
asmpushad
push eax1
mov eax,dword ptr [opencall_ecx]
mov eax,[eax]
call dword ptr [eax+$7c]
popad
end;
end;
//撿物品視窗是否開啟
function openselecttrue:bool;stdcall;
varbase:cardinal;
begin
base:= mem.readint(openselectbaseadr+$10);
base:= mem.readint(base);
base:= mem.readint(base+$c);
base:= mem.readint(base+$64);
if base=1 then result:=true else result:=false;
end;
//******************************=call部份end***********************************====
走路call呼叫方式是這樣的。(0520版)
先 push y
再 push x
傳遞暫存器 ecx=[[[charbaseaddr]+64]+160]
傳遞暫存器 edx=[[[[charbaseaddr]+64]+160]]
呼叫 call 004506f0
使用delphi的在傳遞引數時可能沒什麼問題。
使用vb的就有問題了。因為座標引數是single型別,而clsasm.push引數是long型別。兩者在記憶體中儲存的方式不一樣。所以要使用乙個api。
call copymemory(long型別的x,single型別的x,4)
call copymemory(long型別的y,single型別的y,4)
然後把long型別的座標傳遞給push就可以了。
php mysql天龍八部 php天龍八部
連線mysql資料庫 判斷是否連線成功 選擇資料庫 設定字符集 準備sql語句 向mysql服務傳送sql語句 解析處理結果集 釋放結果集,關閉資料庫連線 連線資料庫 link mysqli connect localhost root var dump link 判斷資料庫是否鏈結 if mysq...
分詞 天龍八部
自定義詞典 段譽 段正明段正淳 段延慶皇妃 刀白鳳秦紅棉 甘寶寶阮星竹 王夫人王語嫣 木婉清鍾靈 高公升泰巴天石 華赫艮范曄 褚萬里古篤誠 傅思歸朱丹臣 南海鱷神 雲中鶴鍾萬仇 崔百泉過彥之 枯榮大師 本因本觀 本相本參 黃眉大師 破疑破嗔 鳩摩智蕭峰 蕭遠山阿朱 阿紫游坦之 馬伕人徐長老 白世鏡項...
天龍八部原始碼描述
天龍八部 武俠世界 的原始碼很可能是天龍八部 流出後改寫的,因為在看了 中可以找到一些證據,整個客戶端分為 乙個是編輯器,乙個是客戶端,採用ogre cegui 自寫的簡單的物理碰撞檢測 fmod 自寫的網路庫。伺服器端 目前沒仔細關注 客戶端總體的描述如下 ui系統 cegui ui基礎系統 ce...