|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
3 A5 f# Q9 o% d$ g7 o主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
. y* z' o: Z: i+ T" s
; f. F. j6 q; D( |+ N' `其實修改無敵很容易,, B, C$ H0 G& ]: D, T R
就以遊戲程式設計的觀點來說,
+ @5 A' ]6 [0 o7 e' z一開始我會將人物無敵數值設定為01 e( L6 v* s. ]* k+ X! G
ex:
2 K1 a4 h& }9 ?# u6 ]#define InvisibleInit 08 f. j3 H+ L: b( P& b6 Z
7 k$ X3 R/ Y5 E! I+ ~. B. `/ y0 R然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),- e3 h1 ^. ?) R @( L4 x( Q
呼叫設定函數3 r6 K6 e8 _, B+ M7 X9 ~
ex:
$ H; a4 ^% a( X5 g R3 B& D$ q- pBYTE InviIniVal(EVENT event,BYTE SetVal)+ v9 f* w5 V, [; X/ L) w1 W
{
8 j0 S2 m% `! B//Deal event ...8 m+ N8 ?) i6 r" N7 R- H8 m/ n
: W! n* w8 c! @5 o: ^+ O; I% e0 R
//Deal InitVal
5 {! v( [! s) W" R# R# wBYTE ret = 0;# C' H, B# D/ d4 B
SetVal+=InvisibleInit;
6 h9 f$ c* V0 j mret += SetVal ;
; f: F0 o6 Y1 N/ {, _5 ?: K. Nreturn ret;9 u) A, U0 b4 V5 d
} 9 Y, i9 A4 y K/ K, F
- u: V5 ^0 B+ n& _+ p最後關切的函數當然是遞減函數:# Q: g+ M8 E+ R& J
ex:1 x3 Q5 L/ A" E \6 z" L& B
BYTE DecInviVal(BYTE *InviVal)
U' q& m) H& w& f$ r" ?{
, E) k; f, R4 v, R( G/ f: a) zcout<<*InviVal<<endl;! F& |+ j1 Y9 J: p4 N9 f
(*InviVal)--; //*InviVal -= DecVal;7 J# l( U- n; ?! y+ f* X; n. Q
cout<<*InviVal<<endl;8 J, |$ D( y |) [9 r4 E
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;# P) }. I$ W9 o, N' o, q
return *InviVal;
" K! t. G" G- i4 v% h8 Y* l' C9 w}; [+ e/ o/ W7 G& a) f J; x
/ G0 E6 V9 P) m7 d
針對以上觀念,改遊戲就很簡單,
! }" @; S# C$ T$ ~ _" A( \一開始我們先初始化數值,輸入'?',
( n+ f( J% }3 ?' a2 C接著開始無敵時,輸入'+',% u) \1 _' ?: h& R; \8 Q* N8 b
接著我們知道無敵時間會開始變動,
/ w) l# w5 s7 K) E0 p以上例來說時間開始減少,每隔一段時間輸入'-',) {4 U3 u3 b3 B' b
最後沒有無敵效果了,輸入'!' 或是 '0'。
0 R& G0 w4 A% |8 j. Q/ M; T' b& h* D
4 N1 E" M3 k* V: m記憶體地址經由演算法篩選後,只會剩下幾個,
( w/ d( Z+ z9 _try 一下,你要的地址就出現了。
% | q3 p* q/ r& E; \% k
: i0 K8 a5 X5 Y# T3 O* {P.S.以上程式已經Run過,沒有問題。3 X+ r* v% \0 h$ m0 s" n3 M1 X2 C
$ O% l# f% x) B) q& ]- ^/ P( _: n4 i. v[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|