|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
2 ]% m2 ]; t4 n% }: z9 t8 j主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 - X* V+ I! Z) d* @
4 K! N$ |% P5 F) ^; |
其實修改無敵很容易,$ Q3 B4 O. m) x8 S8 }
就以遊戲程式設計的觀點來說,% x e0 a9 e( }% G# u; v' T5 A
一開始我會將人物無敵數值設定為0. j% I. L8 S" g7 x. E2 ?% I
ex:
0 y5 L5 t% d: N# W* ]0 F# X: |' m$ U#define InvisibleInit 0
; w6 @& q" I, ?/ s
( [. | \" J/ U6 k然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),% Z/ b9 g* c; Z% F: N* C% C! Q
呼叫設定函數% h4 p: N/ l0 a8 E9 {# m( I
ex:
" }; M; n$ Q) l H# g" oBYTE InviIniVal(EVENT event,BYTE SetVal)
s4 `+ f1 S5 ?- ~3 c{# v/ b# ~/ g5 P- h
//Deal event ...
5 ~3 }5 K& {# S) n! T+ ]! ?# d4 h" {* q0 O( n
//Deal InitVal
- s' j0 ^1 k. a- D! u CBYTE ret = 0;
7 n# @+ ^% J4 B) x- {9 q1 rSetVal+=InvisibleInit;9 M7 s6 }" l \
ret += SetVal ;1 l) V. d- [8 ?: l7 X; z& }2 s
return ret;
) o) ^' K. \# M v3 ?}
0 b6 v) S' Q+ V! h( n( d+ T5 ~2 A) ?; Q# x' b
最後關切的函數當然是遞減函數:+ P2 L' h* W! M9 \1 m2 K
ex:0 L- e- ?) H4 C) q2 r1 a Y
BYTE DecInviVal(BYTE *InviVal)( u8 |3 m* n2 M' H7 Y k+ r+ J
{
. V p" Z# k, C. k7 Xcout<<*InviVal<<endl;$ ^# Z' [" d6 ]1 J
(*InviVal)--; //*InviVal -= DecVal;
/ B% q- k; r" j% O" Qcout<<*InviVal<<endl;4 p7 }5 t3 `' g$ r6 y# D5 {* c
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
0 ]4 l, T+ I; x0 o4 U# `, o! y- j! Yreturn *InviVal;
1 [; q" H/ n0 ?& x% }1 P}2 {0 ^) P2 H' r- Z8 ~
/ N! d) P8 f* T! S
針對以上觀念,改遊戲就很簡單,6 c) v' R9 a l
一開始我們先初始化數值,輸入'?',
+ }4 z1 F% h, e' ?0 [接著開始無敵時,輸入'+',2 V# A* s$ H, r0 Q
接著我們知道無敵時間會開始變動,
6 X2 j3 }* R2 V/ E7 V' Z以上例來說時間開始減少,每隔一段時間輸入'-',: O, a( m; H5 k+ d/ r! ~# w) ^- }
最後沒有無敵效果了,輸入'!' 或是 '0'。
) N! m* p9 E/ F6 K3 ~ F* q' Q X" I4 }
記憶體地址經由演算法篩選後,只會剩下幾個,5 y; }. E% h! @% u1 F
try 一下,你要的地址就出現了。: d1 c2 @/ ~% k$ x: X
) ^( G3 [# I5 g8 [% V! K( x2 SP.S.以上程式已經Run過,沒有問題。+ q/ \; p1 W; S/ Y1 k3 u
7 r( O/ i/ |% n[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|