|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 8 O5 u+ m' g& \" R2 Y4 r x
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 v# q/ H+ v* p3 {2 g k$ i* k+ }
) G/ r" _" T" B+ `# z8 t
其實修改無敵很容易,
1 s/ O; G* P% Y" }7 ^1 o就以遊戲程式設計的觀點來說,0 {* g3 h! x! i
一開始我會將人物無敵數值設定為0. D# y5 S7 S) k7 [9 w
ex:
1 @& o' |/ w& c$ x4 H/ Q" ~: {#define InvisibleInit 0
! S0 @) v, [$ N% [ m" a/ s) V9 r. g
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
8 j% h+ j# X# |. w* N8 o呼叫設定函數
* W5 M Q3 r" Z; D* Iex:0 o& _* h& ?/ j
BYTE InviIniVal(EVENT event,BYTE SetVal)4 o8 \( c+ l1 T" `
{- N. Z1 \1 O4 o5 W# ?8 p
//Deal event ...
( ` U' g5 ]6 ?% O7 @ L& ~3 W8 l9 J5 h. ]: a: E- H! m
//Deal InitVal/ U7 j; A4 f" d1 t/ Z: R1 w/ |3 Z
BYTE ret = 0;
* u- W: V m# Y, RSetVal+=InvisibleInit;
( p3 C5 X$ _" Gret += SetVal ;. L2 b5 C F! r# z$ l1 F; V7 y
return ret;
2 E3 _7 ^, q2 H+ U# q% m}
J- A8 ^& e" x3 ]9 A+ `
; T# X9 T1 f( o. x% U; a最後關切的函數當然是遞減函數:- B' S, O3 G6 }, ~
ex:7 Q- u( T% R3 K' I
BYTE DecInviVal(BYTE *InviVal). K3 u h. t' h N+ k
{
# d, o1 K' ]8 k' Gcout<<*InviVal<<endl;" O; K: e+ L( U! p# Y" a0 X
(*InviVal)--; //*InviVal -= DecVal;
$ ~& \4 s) K9 n8 |% H# }cout<<*InviVal<<endl;
' G0 o: M! w$ V. j(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
8 M1 V2 h4 ~$ P. u8 qreturn *InviVal;$ m1 X! J! D" c; J9 V& @
}( e |- {' t* l& C3 H6 A/ x0 Y8 o
4 b6 L6 ]% w. ^( H
針對以上觀念,改遊戲就很簡單,
9 b- c! c, s1 H8 k3 C \4 j* Z3 H8 K$ ~一開始我們先初始化數值,輸入'?',
# L2 I) e7 A; |4 R- ?接著開始無敵時,輸入'+',
9 m( Y! {) O- a4 \0 N5 B接著我們知道無敵時間會開始變動,
& Z( e( y: t- \以上例來說時間開始減少,每隔一段時間輸入'-',, |5 A* y# O" U
最後沒有無敵效果了,輸入'!' 或是 '0'。. z$ E, s( n/ n2 s
- t* ]7 k3 j3 {: a
記憶體地址經由演算法篩選後,只會剩下幾個,9 f) W' c8 I; `/ O! s
try 一下,你要的地址就出現了。
/ Z4 C2 U$ `) m$ `5 a x9 f7 ]4 n! p2 [% K$ S
P.S.以上程式已經Run過,沒有問題。
! J+ Q9 |) |$ X# D6 @7 N% h
0 C: p7 a, H1 x& y+ @7 C: J3 z[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|