|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 . q5 _- z7 M8 E! C* `
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 8 }) E. s0 ^* x3 P+ q2 F
" _# r7 @% O& d/ Q# J# E
其實修改無敵很容易,
7 e6 c$ A% ~! S) M1 a; g; q4 f; M3 Y就以遊戲程式設計的觀點來說,% f1 ~) e1 p4 @. e# U
一開始我會將人物無敵數值設定為0! u& H- j) V9 V. C1 r
ex:
& ?- ]! Z, }& V- x' U1 O#define InvisibleInit 07 L, C: B. S$ q
$ A% L. h" ]6 |, a0 r然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
! W: \! S+ u# B; ~$ E呼叫設定函數
* R7 s/ e( b* }4 f# Aex:0 K8 s, l, u6 q! z
BYTE InviIniVal(EVENT event,BYTE SetVal)
0 s( ]- q. U6 \+ V{! H" X: Z3 ~8 z( a9 z" R. Y
//Deal event ...+ h7 e0 p3 L2 F6 {' y. B. |2 x4 \
) t. V7 b* ^$ y7 G/ l' W
//Deal InitVal
( k, L3 S; }/ o$ ^8 Y' KBYTE ret = 0;- H4 k# _( }/ G/ l+ k: B
SetVal+=InvisibleInit;* \- V" w5 s* _" U$ Z
ret += SetVal ;9 q) y0 q: x2 T" a) D/ T* d
return ret;
7 N: y' r- b' e6 I+ L0 V; s} 7 N/ g/ M: G' i* I; ?0 v- ?
" M& t; q2 J; r( i$ N
最後關切的函數當然是遞減函數:5 ~4 G1 i4 C" b2 W9 o
ex:5 b$ N8 T5 o9 o' ~% M) J
BYTE DecInviVal(BYTE *InviVal) d: U3 ?: H+ H' X8 a. U
{1 V5 g9 \: I3 \; l$ {
cout<<*InviVal<<endl;/ d) B/ \" B# t
(*InviVal)--; //*InviVal -= DecVal;
- e3 b* I3 w, B* {cout<<*InviVal<<endl;" t; a9 T- N8 Z0 I' I$ q
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;2 i+ q& U: f; D" i- N% Q' ~, ]
return *InviVal;
) ~8 {& K% f. f( g/ X; z0 Q}
{+ n& {+ l: ^
6 G) a, A W' ]; l- e' w針對以上觀念,改遊戲就很簡單,
3 m3 ^' H* O" ^" M3 c# h% F* R一開始我們先初始化數值,輸入'?',8 G- W. v3 i% k u
接著開始無敵時,輸入'+',7 _6 _9 ]# e1 L2 l2 j/ T
接著我們知道無敵時間會開始變動,
4 h5 o' ]2 D* J8 e以上例來說時間開始減少,每隔一段時間輸入'-',: r) x+ x: k/ | F7 `5 u/ ]
最後沒有無敵效果了,輸入'!' 或是 '0'。
0 f1 @1 p, @5 E/ E+ H5 L, [/ v' b4 [% M
記憶體地址經由演算法篩選後,只會剩下幾個,
( l8 X( s3 I( S- R) Itry 一下,你要的地址就出現了。
3 ~* D! A* X3 e) F) {
4 r) ?. G* s0 e7 v( Q% iP.S.以上程式已經Run過,沒有問題。+ ^" O. q ]0 c/ S
; R! E0 m+ ? L5 c2 c
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|