|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 ) v5 N o' s A* p0 n
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 : {" Z: H% S- `' }3 |$ S0 s8 ^. S
- @% `6 l/ D! I5 g& f
其實修改無敵很容易,+ M! z# q3 `) H3 p5 W# Q+ }( s
就以遊戲程式設計的觀點來說,) c: K1 O0 j: ^2 K9 e
一開始我會將人物無敵數值設定為03 J9 U! t" a8 h& C) F3 q( {* b) l' {2 J O
ex:
& u5 R. L8 c0 A8 w9 y% L#define InvisibleInit 0 i7 u* V, l# P& C6 @
: K3 [; Z' F3 x2 i然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
3 E; K5 D G% `* j& q/ v" @呼叫設定函數
- S1 u. V8 _$ t) t$ Jex:
" S+ s S1 |* W U3 bBYTE InviIniVal(EVENT event,BYTE SetVal)
2 V$ _1 \" Y j* o8 ^1 G. d{7 D# Z7 w1 E0 Q5 g/ R8 W
//Deal event ...
" O+ ^/ b9 E, ] e! t$ b8 G) G
: ?6 K) C& r: t/ w//Deal InitVal4 x0 `4 J1 |2 H5 f- X( t4 `
BYTE ret = 0;3 I, t& u1 v3 q1 o; K1 K& s
SetVal+=InvisibleInit;, L) w! k0 @0 d. [+ w& J: f4 m
ret += SetVal ;
: `- c& V: |3 M7 @4 W5 C/ F4 X8 ^return ret;9 r! _2 } ~' d% N- }; i P
} " z* u: e0 e4 [1 i2 ]2 q3 y
. Y4 S" I, b$ R; I1 ?, K5 v' k最後關切的函數當然是遞減函數:% n) j! Y/ p2 @" T& j
ex:: [: e' x$ A9 c
BYTE DecInviVal(BYTE *InviVal)( O+ j* Z& @$ |
{
, c) {9 D( O- j% `& fcout<<*InviVal<<endl;, ]- L0 X7 f& R% r
(*InviVal)--; //*InviVal -= DecVal;
7 x' y$ a0 s; H! I" I, I. Rcout<<*InviVal<<endl;
/ m1 \9 \! w: `, A+ h u(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
# [( n! ]$ v0 H& X" V' Sreturn *InviVal;
2 z2 x! e; ~8 c t, w+ p5 Q}
3 H0 ?; I( Q5 M6 j! z5 p7 Y1 o8 Q8 \& J% a+ r% o
針對以上觀念,改遊戲就很簡單," j; u2 M' |. }. P
一開始我們先初始化數值,輸入'?',
% c7 C' x& |1 L2 x* X3 e接著開始無敵時,輸入'+',. @/ l5 i& ^! l
接著我們知道無敵時間會開始變動,
5 y9 E l9 k9 E/ C1 {' o以上例來說時間開始減少,每隔一段時間輸入'-',
2 [/ v) d% `, x- J最後沒有無敵效果了,輸入'!' 或是 '0'。
# B5 ]' E7 o1 o
: T5 y8 T6 ^4 \4 V; b+ U記憶體地址經由演算法篩選後,只會剩下幾個,( B# w# F8 r8 f0 t5 ?
try 一下,你要的地址就出現了。5 Y7 S1 q! ?* T3 D4 V+ t: o% r
1 n$ G! n& b) K- H5 [' m/ Q* a
P.S.以上程式已經Run過,沒有問題。
# B$ g l4 k* i5 B9 D# \5 }4 J
/ q4 F8 I. S+ J" r& L[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|