|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
9 `& M$ x- H& b5 O* E. A% T主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
+ p9 M3 ^% K3 r% ?$ ]! G. g2 k3 @2 Z! U9 a1 s- U6 N; C$ j0 o
其實修改無敵很容易,6 B) j& b/ \# `# N; j, s
就以遊戲程式設計的觀點來說,* _/ j( i( K: \& L& i. b) D
一開始我會將人物無敵數值設定為0
9 T3 y& m" z0 F4 tex: ( E9 K, f. _: A
#define InvisibleInit 0
( y3 Z) ]# }/ K: B# h
1 _& l. ~! D" X9 e6 c0 D然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),7 S' m. S; v5 l9 c# r3 E# K
呼叫設定函數
' p1 H' S+ a$ E4 J' `ex:
. {# o F- s% ]( y# FBYTE InviIniVal(EVENT event,BYTE SetVal)
* M# ^4 b/ m" g3 O{# }" \9 H t: ^$ d7 ?
//Deal event ...5 i" ?$ x! o9 p; A0 R
& C) w. s, C, f, }2 d5 u( W//Deal InitVal
. R, W# i; [% v7 Q1 \BYTE ret = 0;3 h1 t0 s! y) ]8 y, q& E
SetVal+=InvisibleInit;
8 Q/ Y0 K6 h* ?4 |ret += SetVal ;
1 V; ~& y2 C6 j+ T- I/ Breturn ret;
6 |6 X9 D2 h2 ]: {5 L& l}
+ V% n" |# v1 S: F! @8 A& z6 o/ v) y; b- g% o& e" i7 s) E2 ]
最後關切的函數當然是遞減函數:6 @2 d6 F4 Y0 a" K. l2 p, u9 v
ex:
( Y6 W- R8 o1 O% Z: s RBYTE DecInviVal(BYTE *InviVal)
0 X* w4 k4 R4 N! O{
K# c6 n2 E+ jcout<<*InviVal<<endl;
# e- I* Q5 S& ~' E& C0 Z0 a, X(*InviVal)--; //*InviVal -= DecVal;
4 }9 n) g# f* U$ f( Wcout<<*InviVal<<endl;% y8 j p% ]1 C7 a, W( E* y
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;( V1 b; X2 D/ D7 C( h! ]5 A
return *InviVal;8 d+ W( l* q# t4 h) P( V
}4 `" n" F/ l& [* T" b3 K
) z# W' @- C2 Q( u針對以上觀念,改遊戲就很簡單,* Y9 Q; {4 ]8 L5 f, c4 C
一開始我們先初始化數值,輸入'?',
) W& d( b8 H3 j5 X接著開始無敵時,輸入'+',4 o5 f( A* q1 E# P) N5 n" J
接著我們知道無敵時間會開始變動,) K* w8 y& X& Q# I% z
以上例來說時間開始減少,每隔一段時間輸入'-',' U9 _: ?+ R* w+ f/ V
最後沒有無敵效果了,輸入'!' 或是 '0'。6 a/ S* W) l; E( b' ^* Y- @& Y( h
# ^: [2 f L0 t% m3 |5 I! A0 h5 h記憶體地址經由演算法篩選後,只會剩下幾個,
3 M& |8 s- y. M! i( n$ _try 一下,你要的地址就出現了。5 |; X4 X( q4 z
+ o- \$ E' P c; K, [
P.S.以上程式已經Run過,沒有問題。6 a" j2 v3 J4 ^& \& [- d6 n
' d& j! ?+ i5 {3 u% W
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|