|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 # P1 B* ~; \0 Z. v' m, Q
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
( N# t: v Q' M2 F1 K" |( `! ]% D, c: K
其實修改無敵很容易,
' j) |7 u: v, X8 ~. V. c就以遊戲程式設計的觀點來說,
3 |! A" @7 u6 t$ L1 A, x2 X一開始我會將人物無敵數值設定為06 y3 S4 t+ ^+ h+ z
ex:
/ D4 ?- a, t5 Y0 k#define InvisibleInit 0
# f- b: G. p7 Z# T! k
/ I& C& ]- c$ t7 X% \; }% w& [然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),& q* v, v$ K5 \. t
呼叫設定函數4 N) f: B3 Q7 N; i' y! v0 Q- K" A
ex:" t3 I- P* ~) w' @$ e7 H8 _- c2 f
BYTE InviIniVal(EVENT event,BYTE SetVal)! n+ v$ X- o* E2 x
{! @1 E, p, K. H
//Deal event ...0 n: ]- n# w' N: q
) d" A6 p. z, u6 f/ i
//Deal InitVal# {$ O! w1 G' O3 v, }) o
BYTE ret = 0;
$ {# w0 U1 L- [4 Z* ZSetVal+=InvisibleInit;
( l" p1 ^$ I" Y/ J( mret += SetVal ;
- }' Y! y. z M% ^: G* \8 B" \$ J$ Sreturn ret;" v. U+ `+ m9 m0 r, u: t
} : k% U8 w$ b3 \2 A
. z; f: a3 Q- f1 {
最後關切的函數當然是遞減函數:
5 ~$ j- \7 y% g% mex:
4 M; x1 i/ @9 d6 ?8 M5 ]1 `9 TBYTE DecInviVal(BYTE *InviVal)
i2 @! A# [! Y9 n3 T) W" O{
) F- P9 Y; r& j4 k5 m* f [ x! n% fcout<<*InviVal<<endl;
. T* B2 f) A/ Q( {- _5 V4 c% ~(*InviVal)--; //*InviVal -= DecVal;) a( ?2 d! l8 W9 \/ y
cout<<*InviVal<<endl;; l; S: T% I( A" `* |0 ^
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
' Z1 a( J# ?( O/ z! breturn *InviVal;1 C1 q) d; q4 c) u- Q
}
5 e4 V9 b$ e% f% j% V( B9 b
: d. }, j5 b2 Z7 N$ l" E針對以上觀念,改遊戲就很簡單,( d1 |( ]8 Z7 @5 E
一開始我們先初始化數值,輸入'?',# ?, G, p) ?( B) ]& y4 n' O
接著開始無敵時,輸入'+',
: g* [! t, c2 d u# s2 H接著我們知道無敵時間會開始變動,
( E- D5 c1 J7 p以上例來說時間開始減少,每隔一段時間輸入'-',2 N4 S' c& A7 ^6 y a' F* r
最後沒有無敵效果了,輸入'!' 或是 '0'。 j9 y8 G: T3 F) s
* S% Q) E' }9 ]7 p
記憶體地址經由演算法篩選後,只會剩下幾個,6 A8 d' |+ m0 ], n, J( m: z! i* f9 c) E
try 一下,你要的地址就出現了。
1 `6 _& k& | z6 _5 H
7 Z) m I# j! Z1 h* DP.S.以上程式已經Run過,沒有問題。* _2 K" d) R& H
4 k Y/ g2 Y, l& b$ h
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|