|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 $ h( {# w& E% v2 u, v. h7 G F
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 , v5 w7 x5 c# W; C# @
! A9 M/ }, _8 O3 G! \3 K其實修改無敵很容易,# F: M9 U, X* R* a2 ~8 U* {3 d+ u
就以遊戲程式設計的觀點來說,
3 q& r+ j7 c6 ]3 T' I一開始我會將人物無敵數值設定為0
% g2 T$ L9 d4 S9 [! b. b+ Dex: p1 B0 j) s6 Z3 C% M
#define InvisibleInit 05 J' D& V8 s( _' O7 r3 l
7 N" }, x3 k/ }% e3 `然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
/ @8 g% `# L7 P. S' R8 M- {) A呼叫設定函數" m A2 N5 k+ X
ex:
( k. `, Z! R( SBYTE InviIniVal(EVENT event,BYTE SetVal)1 P4 l* l# e2 ~! t, A, c
{
6 z# J/ U4 S( l, v; P! C8 c//Deal event ...
. Y1 Z" M, H/ P. u% b% W) t3 g! F# Y& T& m$ Y
//Deal InitVal+ z& {4 l6 Y7 C* G5 Q' a$ t
BYTE ret = 0;5 b% {' N, a: _4 M4 L
SetVal+=InvisibleInit;
6 P# E H: s G# u8 Eret += SetVal ;% d- t% `) i0 A& J$ t
return ret;$ P! ]1 N! S( H5 v5 F
}
" @ I' q* m/ ]0 N0 W' @
/ Y+ f* h p5 c' N/ V; p4 p最後關切的函數當然是遞減函數:# p5 A) v3 t5 O3 E2 E2 c
ex:
! _5 ?6 [" s7 ^* w- M u& r7 S6 a) }) iBYTE DecInviVal(BYTE *InviVal)
8 w! I# T+ j4 t' Y0 ]7 b9 o{0 M+ W6 t$ P4 }* R! E& K4 X3 a
cout<<*InviVal<<endl;
7 P( P" F" i: |(*InviVal)--; //*InviVal -= DecVal;
# ~* z4 J" Q" pcout<<*InviVal<<endl;+ q- i5 Y5 I' n' _% |7 p
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
! ~+ E; {9 q W* q: treturn *InviVal; i% ?9 _* X+ h4 O- W
}2 A: N$ V& U7 F
( i& C: t1 T7 z4 ~, x針對以上觀念,改遊戲就很簡單,
0 y5 y% y! u) `7 a5 h$ x$ q. Q; k一開始我們先初始化數值,輸入'?',
6 N* {* I! X0 s# P s接著開始無敵時,輸入'+',
0 l; v- V# g6 F! v4 a( r) W# k接著我們知道無敵時間會開始變動,
! b- K+ \) n7 |1 _% N7 V& p* C h以上例來說時間開始減少,每隔一段時間輸入'-',
y# m1 z* o8 S& O最後沒有無敵效果了,輸入'!' 或是 '0'。
?5 p! ~* w1 \9 y3 b$ ^. S: D, y( z! k
記憶體地址經由演算法篩選後,只會剩下幾個,5 y2 v ?) X* g2 K5 i4 a/ M. {
try 一下,你要的地址就出現了。7 S h' j y g' Q1 _
7 g% a) S. ?4 G X/ _5 S, i
P.S.以上程式已經Run過,沒有問題。
7 H* V, f( h* w5 F- b, A8 g9 c1 I/ G4 }2 C* b
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|