|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 ; p$ K2 G6 P$ K
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
( u2 M3 v' e: z m# n8 |! L3 i" R7 p
其實修改無敵很容易,& e9 d# }0 }- v1 r0 `- ~+ \
就以遊戲程式設計的觀點來說,
/ } t5 q( J, i3 G# o一開始我會將人物無敵數值設定為0
4 t9 F# ~6 j3 A, r I1 `: oex: . H0 |0 l( ?7 T% {; ]2 `+ U- {5 w' i
#define InvisibleInit 0
& ~ _: e3 M+ {) B R4 a4 ^. |$ l k$ O! A
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
, U0 E7 `3 t. M5 ?呼叫設定函數0 p; o3 g# t; e$ |3 X
ex:7 i# r% o; ]2 w; C! R3 J
BYTE InviIniVal(EVENT event,BYTE SetVal)/ O2 M J1 i9 r; |; ~
{
$ M4 {. O. }0 @* H//Deal event ...
7 G' ~- t" M; l! q* ]. f2 c: N. R- i3 |) b% x f* z3 A' [
//Deal InitVal0 J9 ^7 p& A6 X' _
BYTE ret = 0;
: A3 B' c: p9 D2 {6 b) E; MSetVal+=InvisibleInit;
, j& U5 E' M7 R5 |4 @ret += SetVal ;* y; `1 t- v2 D
return ret;
* l/ B4 m1 r, r/ N9 c1 t}
! [2 `' j7 G* h! q$ P0 e+ R3 O4 K
/ h) R" l; w$ C' h& y' o7 f% E最後關切的函數當然是遞減函數:1 ?. h( Z+ P* ]% C
ex:
) [" l: H2 W+ ?! |; {' s2 L1 M# w9 lBYTE DecInviVal(BYTE *InviVal)6 a+ ]; C: a3 M: D1 h P
{
* b8 W' j) }1 L! b9 c. Gcout<<*InviVal<<endl;
# R8 `) Q3 E, ~(*InviVal)--; //*InviVal -= DecVal;
$ {5 z& M7 O6 }cout<<*InviVal<<endl;
/ m$ X* K. T5 H( Y3 D9 ?3 M I(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;5 k" F# ]+ Z3 }8 V7 P3 q+ Z
return *InviVal;( x6 Y) U6 O8 @7 N" E) h
} U/ k% F) O3 e& t! T
2 A+ x( i( x$ I& g7 ^5 w3 B/ [2 X4 L
針對以上觀念,改遊戲就很簡單,
) P+ R; E8 S: x- l5 a6 X一開始我們先初始化數值,輸入'?',* s# d/ H8 K; ?& e
接著開始無敵時,輸入'+',% v8 x7 }, `, k* A! s" C+ y
接著我們知道無敵時間會開始變動,
0 e+ z/ p% ? y7 F, J( ]% q1 G+ G以上例來說時間開始減少,每隔一段時間輸入'-',7 e" d$ C2 k: N5 C8 T
最後沒有無敵效果了,輸入'!' 或是 '0'。4 u, U7 s$ i( T8 e8 ^& F/ w u
% I7 w2 d. y% u4 c$ C記憶體地址經由演算法篩選後,只會剩下幾個,( }. j9 m# a5 {1 `& \
try 一下,你要的地址就出現了。
2 l& F$ O! Q3 p! N7 \3 f3 c4 C5 ~ l) D9 [
P.S.以上程式已經Run過,沒有問題。
8 F8 C2 J/ a9 n" O% x1 p$ O+ @' k* G" T5 O+ h6 X9 f
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|