|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 8 c6 \/ y% d7 m, z2 h! Z3 x
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 . K3 S: g* c! J, l/ K: h& F' v" k
9 |# Z3 _5 q1 T i W* f. U
其實修改無敵很容易,
7 O- N' {/ y2 ~" O. A就以遊戲程式設計的觀點來說,) x1 q; k& U! L1 |9 y: C
一開始我會將人物無敵數值設定為0
. K$ Y' l/ s U! b# ?& m& gex: + W$ }5 A: k- w, k c
#define InvisibleInit 0
' i; p6 i! p' M1 Q8 a9 R9 Q
' P I( n/ E/ a9 p然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
+ j. b: r) z6 I0 m5 S呼叫設定函數9 t* U' c2 Q" d7 ?% h& i' w
ex:- o5 J8 J% B# ~- ] k
BYTE InviIniVal(EVENT event,BYTE SetVal)
! s/ @( B5 f3 Y7 w2 j{
/ O- e! f! U0 O o: x" Q1 i0 _//Deal event ...
[$ |. v7 r1 d2 u+ @+ K2 R) y0 z% S- I: A
//Deal InitVal; }" ^. l7 o) i1 V6 |' `
BYTE ret = 0;1 v1 ]" D; v9 S. h& w
SetVal+=InvisibleInit;
; Z I% c& f/ ?- P: j K7 Lret += SetVal ;
8 S8 {& Z7 N; `2 H4 D/ ?return ret;+ y: c% h8 S- _& y, I* _
}
! ?- q8 ]+ Q, W9 _2 s0 R; ^2 D% ?) p/ d5 J3 q# f }
最後關切的函數當然是遞減函數:! u4 [* `6 x( M4 U; Q0 j
ex:9 Y9 P t/ [5 W! q' ~9 T4 Q+ S% _
BYTE DecInviVal(BYTE *InviVal)1 i {0 H, G* Y' ~) m( |$ S w. G
{
) e* d2 w, ~7 o+ u5 b; u o% _cout<<*InviVal<<endl;
1 s3 K4 A7 p- n3 x D% W(*InviVal)--; //*InviVal -= DecVal;
3 M1 ] w5 |% v2 \( x1 T' Icout<<*InviVal<<endl;: s' c% Q1 Y& }# j: H- o
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;4 u$ d1 v1 X3 V
return *InviVal;" A F. q2 t0 m: x2 q; w
}0 \' o# o, c( A% s
' a4 Y2 e7 i8 P0 c
針對以上觀念,改遊戲就很簡單,
/ q+ X3 Z4 i# _2 n一開始我們先初始化數值,輸入'?',
6 ^- m# N' J) K接著開始無敵時,輸入'+',
2 `( q- ?% f) `. j M' w. S接著我們知道無敵時間會開始變動,
% l- i( {2 m: {6 P: ~4 W9 }: R: v以上例來說時間開始減少,每隔一段時間輸入'-',/ R1 \7 c$ w% v/ R- m
最後沒有無敵效果了,輸入'!' 或是 '0'。
. P6 t$ e. _( Q l& w% ~% e+ X% [$ L& M4 i* p) d- V
記憶體地址經由演算法篩選後,只會剩下幾個,
, s6 C; y& c) Z& e8 c5 {try 一下,你要的地址就出現了。
. w& x0 T- m/ |& @5 N
: o* f" C- n/ Q6 dP.S.以上程式已經Run過,沒有問題。4 n2 F/ j% G, h: K
2 K7 B. u! J3 [" s& c[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|