|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
- K4 S& ?5 B8 H主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ( W- e: _. J5 b1 w7 c
' h' M9 e$ W1 G# L
其實修改無敵很容易,+ r5 j2 e- R5 W* b4 a' a+ S
就以遊戲程式設計的觀點來說,/ c* I$ _! m' [2 p+ D) p/ @
一開始我會將人物無敵數值設定為0
8 s- h' s2 ]1 z6 J. W( B yex: 8 x& X7 w" h' o: E$ _. q, I
#define InvisibleInit 0$ @6 ^ y) J; h# P3 l
6 C0 p6 ^4 E0 F7 W2 |, B然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
) ]! I4 A( a" V) U# }7 e' d4 j3 r呼叫設定函數
; V3 D# v! M' V$ Hex:' V7 O! d3 n |) K; v# E7 k- x
BYTE InviIniVal(EVENT event,BYTE SetVal)& x! C3 G0 b' ~! m
{
) J0 C, B9 U# G8 o//Deal event ...: F* o$ z7 V9 o; \# b' X
! N; n: v7 G; f//Deal InitVal. }& _! {2 C6 u6 }! J( W
BYTE ret = 0;
. q5 c. g1 l1 ]SetVal+=InvisibleInit;. n( n1 v) U4 P' V2 X1 a9 }
ret += SetVal ;7 G9 v$ D. y! u- I
return ret;' s7 `/ g7 ^1 ~! @
} ' n4 u g4 v) a% h# H
" Q, j8 B9 I8 ]
最後關切的函數當然是遞減函數:( o% _* g) }7 C5 h
ex:
4 \7 a, n' G# v) ZBYTE DecInviVal(BYTE *InviVal)2 ^. ]1 n( e; K+ |. \& p
{
2 G. l; u" {3 h# c1 ocout<<*InviVal<<endl;* E% f' u5 h& |. U5 P
(*InviVal)--; //*InviVal -= DecVal;
* N$ H0 L9 R* q+ q; D% l1 scout<<*InviVal<<endl;3 x% N% F" m$ k% P% ^# A' L5 q) x
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;5 v$ w5 s) N$ w/ P# B
return *InviVal;
7 ]+ P+ u# s5 z6 u6 o}
! l0 j, r3 r5 X% `3 P1 w; O, G3 r }. z8 _
針對以上觀念,改遊戲就很簡單,3 N8 ?; x$ ^- C) y* t: D
一開始我們先初始化數值,輸入'?',
. r9 p2 I( j; _) x& q接著開始無敵時,輸入'+'," R: R; ?& H& `
接著我們知道無敵時間會開始變動,
( C. O& w P2 h+ i% b; t1 C8 t3 t以上例來說時間開始減少,每隔一段時間輸入'-',, |& j' V2 W" F
最後沒有無敵效果了,輸入'!' 或是 '0'。
5 U" i! S) s0 k( b9 c9 V, R5 A" K& ]/ n$ ~9 t" @
記憶體地址經由演算法篩選後,只會剩下幾個,( g+ ~! e: J2 p0 q$ V; {" W* v6 f5 p
try 一下,你要的地址就出現了。
, ? v" |$ n. k d. \
4 U: P, h, v7 k$ D2 LP.S.以上程式已經Run過,沒有問題。
$ P# d8 F0 m- o/ [ w% T% {! P Y% S# t
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|