|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
! ]& }/ S$ n" `2 E主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 $ `) `7 O d" J( W: h
& \& O) p& Z6 |其實修改無敵很容易,# Q( H4 Z9 t f+ ]- g6 I
就以遊戲程式設計的觀點來說,* x* D5 O: Z/ J# X2 ?+ O/ X
一開始我會將人物無敵數值設定為0- q8 ?$ _- W0 d @
ex: 4 q1 S7 r& q5 q( K& ~+ N$ R9 r
#define InvisibleInit 04 c' y( o4 \6 ^
% O& D4 v6 n/ D2 I' y; L5 W5 i然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
; i3 n& T3 D# Z! ^( t2 n8 O: [呼叫設定函數- Y( H0 \6 \1 s# D6 v
ex:+ H2 f3 g$ X& i: p/ b9 t
BYTE InviIniVal(EVENT event,BYTE SetVal)
- \+ [7 n$ ^/ E6 o- H9 s' {{
3 D: L0 @( @8 ^/ W. x. J; P//Deal event ...
* [' d2 z$ M z" i0 ~; }2 [
/ a. m6 Z) P, R# S' q" b//Deal InitVal k) ^! B2 p d1 A) D5 }( w
BYTE ret = 0;7 g7 N, r+ ?4 D! D
SetVal+=InvisibleInit;
3 f0 |6 s- ^/ uret += SetVal ;
) f- ]8 A, s( D. |* @return ret;
% h1 Y* B* Y. d2 z1 z5 M1 l$ z: z}
9 Q4 q9 @; ^ O3 [: [0 Z" g( P! O- O
最後關切的函數當然是遞減函數:
2 z B' }3 Z$ ?5 [. T* {" W9 ?1 B5 Cex:
) E K- K" z# Y4 O0 R# _, x3 tBYTE DecInviVal(BYTE *InviVal)6 h8 d B. n, w# r1 r9 b5 d
{
2 _' W( J( W" n" P& Pcout<<*InviVal<<endl;% i! _0 s9 l7 y/ A! ?
(*InviVal)--; //*InviVal -= DecVal;
- U* b; S& r5 a7 e5 \% |cout<<*InviVal<<endl;
3 t) H* c& N! r- V$ F z(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;3 s, o5 `& P7 {/ @+ |
return *InviVal;) f" L* Q: w4 ?% ]' L
}: d1 ~5 u; n4 n$ F* E% G
. J1 \. c+ x/ p+ k* V針對以上觀念,改遊戲就很簡單,4 O: R3 B+ M3 X3 a: Q
一開始我們先初始化數值,輸入'?',
- z6 c, q4 }1 C( ~! r) p接著開始無敵時,輸入'+',
9 {% }0 [4 Z2 R3 G1 a! T接著我們知道無敵時間會開始變動,2 M: a9 k3 q6 Z
以上例來說時間開始減少,每隔一段時間輸入'-',
1 v! z) p% ?/ ?6 R最後沒有無敵效果了,輸入'!' 或是 '0'。
' j2 l5 v3 ^8 l& G
& V0 ^- A4 \0 g9 y$ _* R記憶體地址經由演算法篩選後,只會剩下幾個,
. r( g/ G# [1 I) `try 一下,你要的地址就出現了。
/ M# B# s9 N4 B9 s2 S2 P" B, F. j2 b, d; ?. z
P.S.以上程式已經Run過,沒有問題。4 v1 Q: G* E2 p& ]3 m! v9 Q
- Y% ~2 k2 a) Q9 v3 c
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|