|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 & S0 W( ?2 E/ D" M
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
3 u1 H% r y9 ]& |3 ?% t, r3 ~" V% v3 ] A, j0 M" c, l4 K& l: J
其實修改無敵很容易,' P3 M! I K' x: g- J$ U
就以遊戲程式設計的觀點來說,
& b; }% V. o& h0 A一開始我會將人物無敵數值設定為0' i8 J. ^0 O3 A7 n! B
ex: ( X7 q, R% Y' ?+ @. S8 }! k) r
#define InvisibleInit 0
2 P+ S8 j2 x* ~# Y+ W9 w. m$ O, | {5 |# \( T d/ u% P
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
9 B7 f0 Q! i9 \5 ^' _( }; H7 a呼叫設定函數. d: f( E8 t2 J: ^) f# A
ex:. j6 P& c+ s+ ~! @" W' X
BYTE InviIniVal(EVENT event,BYTE SetVal)9 F7 c6 i9 B; [/ E0 P
{+ ] @( _9 f9 y
//Deal event ...7 q8 X# {/ `% c0 a4 i* d0 Q
! D/ b" p6 B5 F) {" t" e
//Deal InitVal
0 A6 t3 V' r' h2 \5 EBYTE ret = 0;
8 z4 u6 Z4 B: L5 ~7 K! s5 |, }SetVal+=InvisibleInit;
H4 x2 T! C3 h- ~# G8 n* B; o: j& [ret += SetVal ;$ b9 \. I7 o' t8 q4 _% d* ?' }8 I
return ret;( C2 p4 s+ E. s: O3 l
}
5 r' A6 k m$ g9 r0 c, \0 a) ^6 g
: z, F& [: L0 E& V# V# D, H最後關切的函數當然是遞減函數:+ I, ^ c% P" J L+ ]
ex:+ H; B: `4 \0 c W# r2 O
BYTE DecInviVal(BYTE *InviVal)
2 E0 O7 \5 l% a0 `0 h! a{
* t4 ]) R' @) E5 o: Q1 U$ Rcout<<*InviVal<<endl;
1 K+ c- G, J- ]+ v(*InviVal)--; //*InviVal -= DecVal;* w& e! x( q, E3 v6 ? Z
cout<<*InviVal<<endl;6 U: ^% @7 p& }/ v1 c# g- ~2 H
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
& n( }' g; E k/ creturn *InviVal;
6 k' s+ `7 t! S/ ^4 z1 U}0 c8 r- n1 l2 M- D) u @
9 s8 A5 m8 c8 h5 n8 C
針對以上觀念,改遊戲就很簡單,
/ u! q t" r. V. P一開始我們先初始化數值,輸入'?',1 q+ v. @, U, O$ J+ T0 o. U
接著開始無敵時,輸入'+',) d( F7 V5 O& y& m0 O( D3 |- P
接著我們知道無敵時間會開始變動,
, u+ Z3 ~0 f6 S8 W [! x以上例來說時間開始減少,每隔一段時間輸入'-',' w, Q( D8 @# k
最後沒有無敵效果了,輸入'!' 或是 '0'。6 E6 r: g& M0 Z: |
. O8 X7 U9 R5 V' d) Y: ] ~
記憶體地址經由演算法篩選後,只會剩下幾個,7 Y5 P8 }- T/ ~" K4 ~) W+ o0 q
try 一下,你要的地址就出現了。
2 x9 G: B0 b3 d( t6 k8 v7 R& I- {5 t! ?$ t5 P! w8 {& h. |$ [
P.S.以上程式已經Run過,沒有問題。. ^/ [: @. i" V; _# Z3 v! b
q, f6 A7 \/ @! X$ C% ?[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|