|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 : O' Z- y2 C4 ?/ W
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ! }% z' y$ y! ?$ i C$ E t
6 Y9 ?+ e& H- [* c1 _其實修改無敵很容易,
' o' c& H7 ?1 q就以遊戲程式設計的觀點來說,, O6 J7 c7 g. U* y# M8 E& f
一開始我會將人物無敵數值設定為00 K- T1 L) Z! r/ l" v
ex:
5 J- P) R5 S' U6 k& {$ a#define InvisibleInit 09 @6 `# f8 L) K* I8 C
% q4 }5 G; _5 \然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),+ I0 e+ |7 X6 S3 B9 ^
呼叫設定函數
, `3 P- u% r+ M) H8 S$ Mex:4 e. }( h% l% |3 q- q9 O
BYTE InviIniVal(EVENT event,BYTE SetVal)
( l/ `# r; z4 `1 i& K N8 ?{6 }6 i; r( f0 v% M
//Deal event ...9 d0 k: q* v4 L* N6 j1 [! O
" `( b& m2 u8 p3 N- Y! U
//Deal InitVal
: V* z) J: s3 q# BBYTE ret = 0;. n+ M: _, @7 z% v( M. i4 J
SetVal+=InvisibleInit;3 ?; [) R: I/ w8 l* {) O5 {6 t- N) y9 v2 ]
ret += SetVal ;% C+ ~- g D" I
return ret;
7 o* ]; l h ~. | m}
( q. u% s Z9 h
* w2 [/ ]- g& ~. w1 J; r最後關切的函數當然是遞減函數:
2 {* N2 @3 k2 q+ [: M7 y" [% X' bex:
9 V0 N$ z6 p D* d2 Q: d4 jBYTE DecInviVal(BYTE *InviVal)
$ u. ?" o6 f8 |8 I{
h' I0 T5 w( }, o8 Z2 {9 ucout<<*InviVal<<endl;
h# \& l& M# P; G(*InviVal)--; //*InviVal -= DecVal;
1 L9 F6 q! B& h/ }" `' Xcout<<*InviVal<<endl;
; L8 c; Z2 P. d/ |5 H7 ]1 |) g(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;' R' i, c% H" T8 Y
return *InviVal;. ]/ _7 @1 ]# C0 M
}. f8 l$ F; ]# ?# Y0 N7 b
! L5 Z: s5 Z1 m. ~
針對以上觀念,改遊戲就很簡單,
3 g/ ^% d! R) U" X7 }/ J+ \一開始我們先初始化數值,輸入'?',
1 A" z1 o' ~) ]7 U2 D接著開始無敵時,輸入'+',
, d6 P" W7 |0 Y6 r1 I1 g9 |- k5 s7 ~接著我們知道無敵時間會開始變動,/ c! h5 E: l1 K' K+ p+ ^& {; `
以上例來說時間開始減少,每隔一段時間輸入'-',. k* x1 q& F, u7 b
最後沒有無敵效果了,輸入'!' 或是 '0'。
1 |) z7 C' m4 c
7 L; C) |/ L7 r: P記憶體地址經由演算法篩選後,只會剩下幾個,
" l8 Y/ k) b, ?3 t" @' h/ Ztry 一下,你要的地址就出現了。
* {$ ?& J$ ~% P( v" b! D) J& r/ r5 j6 h! {- ` ~
P.S.以上程式已經Run過,沒有問題。. S8 D/ W: w2 d
* @3 ~; n3 v% m+ {5 S7 R
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|