|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 a- ^8 b7 f5 z* @
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 9 }9 c) F! j9 o- g V2 s" ?
" }$ i. f& o6 S, Y' \7 L其實修改無敵很容易,
, V& ^+ {6 d$ V* { P3 i5 b就以遊戲程式設計的觀點來說,
) }% b6 a) ^( l/ u: d2 c" Y( ~一開始我會將人物無敵數值設定為0
) D1 h- J4 H/ D9 Y l0 s9 g6 j; b6 Jex: $ E: L, w4 Q7 e
#define InvisibleInit 0 l# j) a/ c7 t3 Z1 Y+ a
, S0 e# \) H/ A' x9 n% |然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
( i; p! l4 W( ]: s& X呼叫設定函數2 V; t2 ~+ _5 S% _0 ^
ex:
# Y( j1 X: M( E9 G2 X N6 yBYTE InviIniVal(EVENT event,BYTE SetVal)
S9 \2 c" t5 F8 R" {{
# Q% r. f2 e4 I; D2 q//Deal event ...
- {" \4 d! J! Q f. D2 r( B* q" Z: M) \+ e. l
//Deal InitVal6 D3 n( v1 Q+ `0 f
BYTE ret = 0;
9 d+ B4 V; p+ E, f0 KSetVal+=InvisibleInit;
* x+ U' s0 J' \, \3 I F$ m' q" vret += SetVal ;
4 y2 t+ _! d0 Y% c& Ureturn ret;
7 X7 y* {( ~- o& r$ m} * H/ {4 t4 {& T
# p$ H( U" k- U% [ O; a# F- C8 N最後關切的函數當然是遞減函數:. `3 |$ `* P+ `) W# C
ex:/ r4 ^# }8 R2 \2 g
BYTE DecInviVal(BYTE *InviVal)" M3 K6 ]- e5 y/ S/ q
{% z3 w1 F' |( n
cout<<*InviVal<<endl;. Q: o; o9 T* |0 p! ]
(*InviVal)--; //*InviVal -= DecVal;
: J' l* `1 {: g) Mcout<<*InviVal<<endl;
; w8 f: v: G/ o, ~! H8 }! [(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;% J- t* I/ z w' n& @: G4 P
return *InviVal;% u7 T! M ?$ I4 t
}
) ^: P/ ]3 f$ [% g6 F a+ Q2 k* h9 z2 }. {9 X
針對以上觀念,改遊戲就很簡單,/ y* V$ E( T+ ]* Z5 m4 |0 I& n
一開始我們先初始化數值,輸入'?',+ D4 a3 L0 N- P0 X) Q5 ] @5 R7 O
接著開始無敵時,輸入'+',
% }+ V3 g) K8 w, C9 ~: m; c4 S* S接著我們知道無敵時間會開始變動,
7 W$ k# J! h; M x$ w以上例來說時間開始減少,每隔一段時間輸入'-',! l8 x& z) y& R7 y! V
最後沒有無敵效果了,輸入'!' 或是 '0'。* t/ n* H+ h" N" z& n2 T3 d/ P
& G6 Y8 t) D7 u) C/ [6 L記憶體地址經由演算法篩選後,只會剩下幾個,0 _8 W) \& C9 B' s0 A
try 一下,你要的地址就出現了。! Q) O9 A0 g" ^. H9 a
5 w5 ~- p* w8 I( Y( dP.S.以上程式已經Run過,沒有問題。' [! V# g) _$ _
5 O# ?. m0 p& a[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|