|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 9 {) f% Q! u& x4 [% r: I
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 / _5 k$ _ f# R9 q
* l2 x9 n0 ]8 R/ T5 h7 N {其實修改無敵很容易,
" J4 ~) G1 }7 \* I, u1 m就以遊戲程式設計的觀點來說,) y/ v1 c3 @2 [, M
一開始我會將人物無敵數值設定為09 O7 v4 j: }0 \& |
ex: : f# q, i' x8 A5 N7 R% a
#define InvisibleInit 0
1 A# g6 d3 \; C" D5 h. \: R& u* o8 w% t) M ?
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
; ]3 V9 I- I5 {$ G& c7 t呼叫設定函數
8 l' |) p0 N- T t; L- Z. M+ mex:: k) B8 P5 V& {; m4 h; H
BYTE InviIniVal(EVENT event,BYTE SetVal)
( u; n9 R$ g6 @8 L7 v2 [{
9 m- q7 v: A/ W3 A' r7 @7 R//Deal event ...
+ l% U) B9 h; V" j: D4 S, F! ^
, o/ R, U$ }- N; O0 {. L& o//Deal InitVal
0 |/ [! c* M" _2 L3 oBYTE ret = 0;
* X; h0 T g) a O# q6 {0 t1 e( lSetVal+=InvisibleInit;2 F* Y) i( H, ?) S
ret += SetVal ;+ |- n ^" f2 }2 l$ w
return ret;
. F+ T# F# P0 P$ ?}
4 ]8 {+ c W% b; Q! z1 p+ A$ O' o( J* h0 l# f
最後關切的函數當然是遞減函數:
+ o! S* J' P1 P: {$ S6 ]/ \/ Tex:
- ~7 Q; G+ |8 f0 e& BBYTE DecInviVal(BYTE *InviVal)& k" a& c8 d# [+ |" m( A8 x
{
- k* Q/ j Y$ x5 ccout<<*InviVal<<endl;
9 Y+ _7 f3 N, l) c(*InviVal)--; //*InviVal -= DecVal;
. p6 Z6 g5 k1 acout<<*InviVal<<endl;
6 B& A! I9 O4 L4 o. o( d8 a7 `(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
- L! z% U/ P; c* mreturn *InviVal;
3 R% t [% E8 v+ I6 q) J0 i% g}
9 ~# @: E% k% h/ _8 _' o" d) ~0 c) h V" v# T2 I$ W1 X
針對以上觀念,改遊戲就很簡單,
4 L( d$ o' Q$ y* W$ j: `5 p1 K一開始我們先初始化數值,輸入'?',
" @! y r9 v; r) b/ X! R接著開始無敵時,輸入'+',
$ z2 T$ N. p4 X' a- @0 O9 G2 C接著我們知道無敵時間會開始變動,
9 N9 A, B6 w2 {/ c: h' P% U以上例來說時間開始減少,每隔一段時間輸入'-',
" h% C1 y4 \( |2 \* J( j6 j最後沒有無敵效果了,輸入'!' 或是 '0'。
& K# K/ D% P1 c" v" T7 a: B' `( b! _2 d4 T# N# d
記憶體地址經由演算法篩選後,只會剩下幾個,3 J9 G/ V: O3 \1 L
try 一下,你要的地址就出現了。, M1 W$ L8 O! P
% ?4 | d( k: _% I0 `
P.S.以上程式已經Run過,沒有問題。
4 Q* \, ?7 d" s& ~( |; N, h* N. n
' n+ Y8 F6 ~# ?- i+ a D[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|