|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
, M# i+ @' l/ I {) H; k+ _' I主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 5 u6 X$ _; j4 \5 s4 H$ D
3 _3 N- Y8 |" M: S其實修改無敵很容易,( o! D% f2 R- N4 M: K
就以遊戲程式設計的觀點來說," Y4 l0 v* f2 f6 y
一開始我會將人物無敵數值設定為0
) ]8 }- G7 y! Zex:
0 Y9 a' S& r7 T' e#define InvisibleInit 0
- _, A4 t' V8 i9 v5 I) M# [( O; w& T+ B1 L3 D* n
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
l E( j, P# |0 G6 z呼叫設定函數3 N3 }; d: o$ Z8 \
ex:
! C1 K; B: A7 c1 e fBYTE InviIniVal(EVENT event,BYTE SetVal)
" b3 K2 R2 x& H5 @. v& L. |6 Z{$ b1 s6 _6 |% @2 X" R' N0 z
//Deal event ...0 L2 l" v, j5 L' X' y/ L A
+ s/ F, ~+ R+ T/ q' S& d//Deal InitVal$ |2 S* R0 U# X, J$ u r8 y
BYTE ret = 0;2 s/ X* c R4 ?+ O2 d. y) n
SetVal+=InvisibleInit;
& |8 \/ P& J4 h& Hret += SetVal ;: W# ]; s9 {5 U f* Z) B/ p
return ret;
! R% G# m: I! w}
$ p; I7 J# l$ N( b# u: B) u4 c, D- W: ~ ~2 l D3 b! y" Y- W+ p0 c
最後關切的函數當然是遞減函數:
' F% F! G. @6 `# Eex:' L% n$ k; r; h% ?
BYTE DecInviVal(BYTE *InviVal)+ l3 C9 q4 c8 t8 T
{
/ {8 l- n$ Q* @6 e& Z# vcout<<*InviVal<<endl;# E9 `6 Y) z; p
(*InviVal)--; //*InviVal -= DecVal;% p" Z- g' {% H3 r- _
cout<<*InviVal<<endl;
9 I5 r- k+ d! U5 `0 z: F+ n# H, J(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
" Y+ }! \' `4 d% z# G& Hreturn *InviVal;
0 [: i1 r' O, W' a}" |. Z H2 w" S0 H
( U7 i9 A/ y! ?, a3 D( K9 s
針對以上觀念,改遊戲就很簡單,4 y9 n% o9 }( x; I. O2 \
一開始我們先初始化數值,輸入'?',- Y, y& R9 z- [: \1 c
接著開始無敵時,輸入'+',
% ^6 \3 R) z9 A0 v4 r: f接著我們知道無敵時間會開始變動,
7 V; [& Z# C, N( n( f" G以上例來說時間開始減少,每隔一段時間輸入'-',
$ I9 S' F4 w W2 w/ J最後沒有無敵效果了,輸入'!' 或是 '0'。
, \8 [' z! m v8 D1 J" k2 E' J
1 H2 }' W2 ]6 M記憶體地址經由演算法篩選後,只會剩下幾個,
$ W9 @* e4 E1 |try 一下,你要的地址就出現了。" c* a5 }& n. i2 I% S$ @0 x) [
) N K# n. B% S6 T5 N
P.S.以上程式已經Run過,沒有問題。
y2 y7 B: T+ f6 u5 m9 g( `" U$ Y0 g" D( m$ Z2 ^
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|