|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 * w! b) D( ?; d9 [; w" r- v. P
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ! h( m$ R4 R: D
$ U" t! E" h4 P' p其實修改無敵很容易,
3 G8 E( N" E6 G V; ^, v' M就以遊戲程式設計的觀點來說,+ @8 J' p. I4 m$ }7 K6 O( X* y
一開始我會將人物無敵數值設定為09 f& ]% ?% P- M5 X6 m# V
ex:
( Y2 K ^- l1 ~, N z# v) _4 t#define InvisibleInit 0! H9 x7 L) x; w/ `
! w1 |6 n3 `- }3 F/ @* U8 j然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
: I* C9 A. p4 T( D* `" g呼叫設定函數
3 D( y6 f9 U; K- O( Y6 Eex:
6 F V0 p7 y9 V: b. e* s1 UBYTE InviIniVal(EVENT event,BYTE SetVal)4 R; z9 F( B4 C, F' S
{
! m1 F2 I e8 `0 q5 L; W' e5 l# w//Deal event ...# w/ F3 V4 p' r+ v2 H: r7 m
3 u- n3 N* Y& [+ ~
//Deal InitVal
9 K- k* f' s; `7 m2 t, \BYTE ret = 0;
1 ?( y- K3 ] ]SetVal+=InvisibleInit;" s8 f; H& A1 x. Y4 O! P" t- |# z8 C
ret += SetVal ;6 S: ?& A. x( ?# S# u9 |& Y
return ret;
; C" y1 y: P, e8 \) x( @9 }}
* F* {# V% p* U2 u! i: B+ c
0 a% `) \0 Z/ h5 N8 U! v最後關切的函數當然是遞減函數:( S, ~/ F6 a+ A, C, ?
ex:
: P. {! x8 M( V' Z$ vBYTE DecInviVal(BYTE *InviVal)
3 r& o2 ?% }' W3 n1 C$ q{
: E9 s4 _7 F, j& [3 x9 Fcout<<*InviVal<<endl; @0 v' Y3 j# g/ l) a6 A
(*InviVal)--; //*InviVal -= DecVal;
+ X" r7 G: o B1 b$ t7 ~$ Ecout<<*InviVal<<endl;& ^ `; T$ t1 ?/ W9 d* M* y
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
3 o9 O5 b1 ] lreturn *InviVal;
9 P, k/ Q( R( m; s0 j' q+ D2 x& ^}
0 \9 a1 j- W( h" z: v
! H0 G" s; t) S$ z7 {針對以上觀念,改遊戲就很簡單,: F) i# j2 I5 {3 m, Z
一開始我們先初始化數值,輸入'?',* w) c4 D) |* J5 }" L
接著開始無敵時,輸入'+',+ ], P6 G/ ]* x2 z' s% f( i
接著我們知道無敵時間會開始變動,
7 Y3 H9 v$ I1 V I, S! q6 B0 z+ f以上例來說時間開始減少,每隔一段時間輸入'-'," A6 R# N$ @# S& T1 i5 w$ A. o
最後沒有無敵效果了,輸入'!' 或是 '0'。+ p5 c" K1 k' Z+ ^1 h* [
4 l) y* N7 c( H) h
記憶體地址經由演算法篩選後,只會剩下幾個,
& x: X5 I$ E' |try 一下,你要的地址就出現了。2 c# e; o6 U% R9 v1 V
3 j X9 ]4 N4 H. d
P.S.以上程式已經Run過,沒有問題。
8 f$ v8 X; j+ {$ s' K, D
: u1 U$ S5 l) @3 g[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|