|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
2 M. H- M" b2 j主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
. \6 R3 z$ l& d2 j0 o7 \, O6 x$ @/ x3 h& \0 ^+ p' H1 [
其實修改無敵很容易,
. A& |! {, G. f* a就以遊戲程式設計的觀點來說,
7 F; d7 s! r5 W3 U! B一開始我會將人物無敵數值設定為0
- U/ n P! [! ?- u& W% b- |( n: \ex: 6 U. F* A5 ]5 j% z( V
#define InvisibleInit 0
( o' }- w( {& z/ ^
2 @0 V( c, ]+ R% F. Z然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),) Y! M) B1 y- C4 s0 ~* I
呼叫設定函數+ o; f' n, r* [: h) M: S
ex:
I) i" }- e/ a" [BYTE InviIniVal(EVENT event,BYTE SetVal)7 J' i* ~3 r; c g8 |+ n, X+ }
{
. y. N( X/ D9 N4 Y$ n//Deal event .../ E: z3 n) m: Y, y
# x4 y, d( x8 E& S* U//Deal InitVal0 v% d6 K' [0 O% ?
BYTE ret = 0;; y) B1 _3 b" {8 ]
SetVal+=InvisibleInit;3 B5 D3 @) i# R8 M8 r/ u" M
ret += SetVal ;
- M" p5 C3 J4 q( @" y( O: r6 ?2 Preturn ret;
3 @& b- N9 a! l} ! w, ?8 F& l8 [8 J( b
8 i) ^4 H3 s$ \# k+ A1 ?( h最後關切的函數當然是遞減函數:* l5 r) Y# w1 @5 M' C2 _, R
ex:4 n) u* B4 @- P0 K& s7 \
BYTE DecInviVal(BYTE *InviVal)
/ S& v4 S. I/ u1 G1 e5 I+ U J{& e" S1 W( z) V
cout<<*InviVal<<endl;
+ Z( k, N7 W% Q5 F(*InviVal)--; //*InviVal -= DecVal;: A1 u; e" q' A! K
cout<<*InviVal<<endl;5 C' ], _2 k: y& ~( `
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
5 w% c' T8 z, b5 z5 }& Zreturn *InviVal;3 W- D F4 n6 w- t7 a& p d
}3 P' L' D" H, [6 r7 P, z
! k) b5 {3 r$ M" R$ X
針對以上觀念,改遊戲就很簡單,. K, z( i" z5 @* U0 X' |1 A8 X
一開始我們先初始化數值,輸入'?',' \9 f# r( U, Y4 E- H: g( b5 v# H
接著開始無敵時,輸入'+',5 ~' x* b6 V) p/ V: R2 T: w0 f U; g
接著我們知道無敵時間會開始變動,' I2 p. E& S; \- q/ T
以上例來說時間開始減少,每隔一段時間輸入'-',
' ?0 ^. F% c4 w) F/ q8 X最後沒有無敵效果了,輸入'!' 或是 '0'。
' J, e% Q( J6 o
. G6 u& y4 K: o) `記憶體地址經由演算法篩選後,只會剩下幾個,
3 w& F& g9 M5 \" D5 N% Itry 一下,你要的地址就出現了。
5 l1 U# d9 o4 \) m E" g& h
2 Y8 ^$ w# K" w( Z% h1 ?# n, OP.S.以上程式已經Run過,沒有問題。8 Q# U5 s, E# A9 q! k9 n" N: N
$ V) u# T+ r7 V# O) j% n) B[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|