|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
, V p# ^- [! _$ n- S# }/ p8 d主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
+ l8 a+ n& a, X! [, W# R% S2 X4 w: W
/ ?* Z# b8 ^9 t8 V! |1 K; D+ D. y" \其實修改無敵很容易,
. t4 l1 n* e: w( Y' r/ S就以遊戲程式設計的觀點來說,
6 s6 h8 a* y3 L4 ]2 z5 u一開始我會將人物無敵數值設定為0
4 A$ l. r4 X# J! @- h$ q' x7 Qex: . _ D! m$ z0 d3 {4 J9 L; V
#define InvisibleInit 0
- Q# ^" n( ^1 Z" N$ R1 m' X# @
, u4 j9 n* u% d n& _然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),5 I5 A. w% t! B0 {( E5 K
呼叫設定函數
9 L0 b: g- E4 }8 G, B( Y& Mex:2 e' S0 v$ s2 r f# P
BYTE InviIniVal(EVENT event,BYTE SetVal)
$ F. A, T$ U9 r+ I( {{& Y$ N' J# p% T2 d& ?- s2 P5 f
//Deal event ...( @7 G& j+ i: Y5 F+ e: i7 ?+ I
" Q/ f& n' L2 L
//Deal InitVal# |5 ], [ ^, Q e/ `% P
BYTE ret = 0;$ X( {: a% H8 V8 V2 \
SetVal+=InvisibleInit;0 O1 W( \0 b v9 D7 U: X) R( a
ret += SetVal ; H% H/ S5 q$ U" S
return ret;
6 ~; J. h b" a; E% {3 }6 i}
$ e5 S8 b3 \" l3 a- q# H5 B7 g& G* w! i# d) K+ u" a
最後關切的函數當然是遞減函數:0 R: K' V! f* X+ e
ex:
: t! T$ X$ Q; I6 Y9 XBYTE DecInviVal(BYTE *InviVal): j+ O8 Y3 k& c, w
{
0 F7 g3 p4 d4 o% d! Q, d& Mcout<<*InviVal<<endl;5 @& _8 N/ E6 M1 j
(*InviVal)--; //*InviVal -= DecVal;
6 I, T; Z- l- wcout<<*InviVal<<endl;- [- X s0 y' F( L7 A `
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
/ m. Q: V9 v% A+ Creturn *InviVal;
+ F% A; X+ b' v# h& o}
N- v) O7 h$ ~0 o. c! B1 M; i0 d7 v7 I8 b- h
針對以上觀念,改遊戲就很簡單,' Z. m" s" f" p2 V; `1 x: S5 x
一開始我們先初始化數值,輸入'?',- x; f0 I# f2 U
接著開始無敵時,輸入'+',
5 {9 G! d J. _8 a7 j0 c; X接著我們知道無敵時間會開始變動,
! y( K3 j/ \# |) ]! K以上例來說時間開始減少,每隔一段時間輸入'-',
% V2 W- ^8 t8 g w最後沒有無敵效果了,輸入'!' 或是 '0'。' ^: O; X* }. m4 I, |. \
! e& `. a7 B' T! k5 w記憶體地址經由演算法篩選後,只會剩下幾個,
" T3 M a9 q$ c; u+ Mtry 一下,你要的地址就出現了。
m7 X* E' T5 G
; H% g X* p! LP.S.以上程式已經Run過,沒有問題。
, I; a: K) B& n! y' h& x, F( s( _ R4 T1 p& z1 L: p; U
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|