|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
) `% p1 P _" R; o主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 # V* F% F2 [2 g2 U& B, t
v$ @; c4 X; U/ z其實修改無敵很容易,2 j! L' S3 R2 P- {7 |& e
就以遊戲程式設計的觀點來說,
/ ~0 J1 T3 Y" C) b6 Y; s一開始我會將人物無敵數值設定為0' K6 G& v. [1 k2 s
ex: % F: e. M( u1 l0 B8 n6 O
#define InvisibleInit 0
. @/ W' _1 v, R0 W- I$ y$ P# c/ C2 P' K* R# b$ q
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
* r2 g/ m; ^) r; N @呼叫設定函數
! ?/ o) \ q# K8 n7 O1 Fex:
8 f) `) X6 F& D1 W$ {4 Y6 ~4 R, uBYTE InviIniVal(EVENT event,BYTE SetVal)/ g n+ B7 v+ U4 F e$ F* ^
{
+ s* a7 j$ t; r, B7 f//Deal event ...9 ^9 n- n6 x3 t- Q8 G& g1 f: x
, }, X, M) \5 Y: P
//Deal InitVal
3 L0 w9 W9 x, qBYTE ret = 0;) h( ] d3 Z; a: w; u' ]
SetVal+=InvisibleInit;) N2 q, b0 P" z+ [ d1 ~
ret += SetVal ; q; k, a/ B; |6 S2 b
return ret;5 k8 d+ W) @; _! ?6 T$ K- a
} n8 x$ l/ t V- v+ w- O
0 h4 t& l: g8 K+ ?最後關切的函數當然是遞減函數:) d/ X! X( O, ], a! M$ `$ D
ex:- z' j) y6 l# c* U4 x7 w; d7 u
BYTE DecInviVal(BYTE *InviVal)8 a" N& X2 D0 N
{
# U2 l6 @2 K7 o) F: U& r$ jcout<<*InviVal<<endl;) E j8 n8 y/ D8 P, o6 N
(*InviVal)--; //*InviVal -= DecVal;" I: G' W. R' T/ ]+ v, `: \" F; Z" w
cout<<*InviVal<<endl;
3 n3 M% U2 t S( q3 Q& s(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;2 k* i& r; g: b( W+ c/ |
return *InviVal;
( C4 } d- C k# ^& _}
$ J3 a( G; w" b, ^- e3 x
; I* w8 I9 W; P0 c針對以上觀念,改遊戲就很簡單,
4 Q4 ]( t6 a' F- b: W+ p一開始我們先初始化數值,輸入'?',% V4 L1 A+ s4 O7 K% S I
接著開始無敵時,輸入'+',: l; A+ K+ G1 Q# s$ x6 S
接著我們知道無敵時間會開始變動,
0 E2 h* E' _) t以上例來說時間開始減少,每隔一段時間輸入'-',
o+ J( b4 x6 x) z. L) q; x0 F最後沒有無敵效果了,輸入'!' 或是 '0'。
' ~/ M0 g* N2 g3 n8 v) }' E2 ?7 E
$ d" K3 \+ }) z! I# n6 }% \記憶體地址經由演算法篩選後,只會剩下幾個,
0 ?! K- B* ?) i+ p) t) Rtry 一下,你要的地址就出現了。9 l- Y* R; i- Y& Z% ^2 q+ W
f: T! ^ Q9 j; N3 k3 a
P.S.以上程式已經Run過,沒有問題。
% ^2 k; j, `2 C* h+ E/ T8 a: \, D7 w7 P4 V2 v- V
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|