|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 - L f6 I1 e3 x5 b* a# s" |5 \+ s
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
5 S$ i8 ~3 U% S2 e9 E5 ~- K( ~1 q4 h4 q( A) h4 w: v* D% `
其實修改無敵很容易,
- Z5 G, y. o6 G/ ?& }就以遊戲程式設計的觀點來說,
) c9 h) |/ @2 Y7 f! `0 t一開始我會將人物無敵數值設定為0
$ K7 ~1 Z- ^+ C0 y7 i9 S; Sex:
* K5 @" m4 Y5 o3 J#define InvisibleInit 0
( v' h. M) Q4 m# L" ?: `7 j4 ?) |" ]
: U, Z* D4 ~+ N- Q然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),# |; r- }! p! u, f
呼叫設定函數, h3 ~6 p8 E. c5 E+ ~+ ?) W
ex:
6 O1 L3 n: E9 J1 JBYTE InviIniVal(EVENT event,BYTE SetVal)
( C6 r+ X5 R+ x{
3 N3 z( z) Y( w9 u5 v//Deal event ...& E/ z% P! Q( e0 A8 y1 ]
A' i* h. w# `6 J9 r2 k$ v
//Deal InitVal) A0 \# A( {- G
BYTE ret = 0;" y$ n8 ?; k- U2 ]5 x
SetVal+=InvisibleInit;
7 p# B) Z6 P d7 U5 x4 ^3 bret += SetVal ;
3 X( v0 R ]% Zreturn ret;
. r5 |; I2 K. `, J' b1 ^- k7 W8 p3 N} 3 p) {/ o9 X$ O2 j
5 q7 U3 h! Z) e- a8 F3 t* g
最後關切的函數當然是遞減函數:
. {0 S( t2 T: xex:
; m% `6 p* {7 B! E- cBYTE DecInviVal(BYTE *InviVal); l( m& m% F' y; J# [5 h: A
{
5 o6 J h- c, h5 h2 x/ q x1 P: b. Ocout<<*InviVal<<endl;/ Q6 I. s8 u9 g% y9 r4 r
(*InviVal)--; //*InviVal -= DecVal;5 m7 L3 u+ y6 |2 n
cout<<*InviVal<<endl;3 k) J6 s q, z: O+ l: P7 E
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
' r \! r" @0 I* `! M2 p! mreturn *InviVal; |& G6 R# b( j* B. q
}9 U3 E' y |; [
* B/ f+ j/ u+ K9 ]) L0 m
針對以上觀念,改遊戲就很簡單,
+ L; h- o! D" \1 y1 L% `; O* m一開始我們先初始化數值,輸入'?',
T' k1 B9 ^- {接著開始無敵時,輸入'+',
! Z1 A, L0 C# n3 \# k接著我們知道無敵時間會開始變動,
& O9 @9 d$ o3 o+ y/ N" ~) V" _以上例來說時間開始減少,每隔一段時間輸入'-',
+ {) h8 b0 J" F: M最後沒有無敵效果了,輸入'!' 或是 '0'。/ A0 x9 j2 V* K
1 ]4 D2 q$ ?8 c6 w# l
記憶體地址經由演算法篩選後,只會剩下幾個,! C6 K; [% F/ f4 h, D5 u- f( O1 q, C
try 一下,你要的地址就出現了。$ H; _5 \$ l$ j$ \& W. l. ~
7 G& d n' g; y2 E6 E- ?. MP.S.以上程式已經Run過,沒有問題。
& w& e5 l0 V I& a
p5 c$ h* b7 ]" [* }- Y[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|