|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 % e' J; Z$ l& D; Q, J' x
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
1 q& n7 [; a1 Z; o
[0 T% f# l8 z( v# W+ I其實修改無敵很容易,
0 V- D2 e! R; v: M3 Q就以遊戲程式設計的觀點來說,* r) |% Z5 k# U3 n q" W
一開始我會將人物無敵數值設定為0
' B/ w/ s z7 W2 \$ }4 Sex: 2 ~* y# W1 B: m
#define InvisibleInit 01 E& ^. N5 x8 q
; G4 ], n+ z4 y3 {% f7 u! f然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
& v) E; ~0 T$ H! k9 c2 \6 s呼叫設定函數8 q3 p2 v, v y, [0 f: r4 E
ex:
* t# P" X# O, {5 Y+ |* w1 k' SBYTE InviIniVal(EVENT event,BYTE SetVal)' U4 b; e0 U, D5 `2 O% [
{
/ ~" Y# y) h' {' G//Deal event ...
7 i1 Y* J9 w, Q! z% b6 `
. s7 N1 K# D5 h7 P/ E. p" B2 w) i//Deal InitVal
. G! I/ K7 [' ]+ dBYTE ret = 0;2 {$ D# b/ C4 |; h# L E
SetVal+=InvisibleInit;
8 `3 O3 o) _3 i& L! kret += SetVal ;3 n0 l% r( Q0 q5 u) _+ [4 A
return ret;
' E$ M7 P1 ~, o. h7 W}
8 x/ _; d2 e3 S& Z O" h' s* \) d/ [ a, X) y. O/ x6 S
最後關切的函數當然是遞減函數:! m/ s8 d( C3 L: G6 y5 c
ex:
& e! F" Q9 D* c0 gBYTE DecInviVal(BYTE *InviVal)
) c" s; U5 @8 d2 z0 J! k{
( }8 x/ Z: K) Icout<<*InviVal<<endl;
$ V2 W& P9 y" r1 f- H: l(*InviVal)--; //*InviVal -= DecVal;9 Q/ C8 b( z, f& b# I) c
cout<<*InviVal<<endl;' ]$ S* n" e; r- T/ w+ p
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
) q1 {+ u9 P& w( ^return *InviVal;
5 H7 D. _7 n8 x% W! O% O}
5 O' {. m) L; t
% c7 K- [4 p' p$ U* `6 i) i針對以上觀念,改遊戲就很簡單,
% @7 G; s' ^. W) S; R C/ p一開始我們先初始化數值,輸入'?',1 D* I- t' e' k, u
接著開始無敵時,輸入'+',: A* Y/ }3 @2 L& T. r4 a1 R) ~
接著我們知道無敵時間會開始變動,0 X: N" ]& c2 x9 C( I6 `
以上例來說時間開始減少,每隔一段時間輸入'-',6 o2 N4 C# u8 O7 ]* U# b
最後沒有無敵效果了,輸入'!' 或是 '0'。+ \: o) \ J. J' k
' A* p+ }0 m U
記憶體地址經由演算法篩選後,只會剩下幾個,0 L3 P8 ~+ q( ^
try 一下,你要的地址就出現了。
0 u- f1 i: ?& X+ P$ B% B
' ]% u/ Y( |, L1 f" _* cP.S.以上程式已經Run過,沒有問題。% c/ T. u' [2 h2 e+ j
G( a7 I& |1 o2 u; z
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|