|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
6 X: E" Z; ]* @% G1 e主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
5 w: W3 u5 @0 A4 K3 H$ h4 B& w2 _: P' T F: B" ~
其實修改無敵很容易,
, j$ V0 z0 h; V, y0 n8 [7 J) ?就以遊戲程式設計的觀點來說,* ?* @; V/ n* H x3 Y
一開始我會將人物無敵數值設定為0+ j& t/ F* }2 N: s; }
ex: # c/ d; ]/ r0 }+ U* h2 ~5 r `7 c0 X
#define InvisibleInit 0
1 r) L4 r1 {) y, A! J; z
0 S& N2 N6 w* g! g; e2 s6 v7 ?然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),) l& f8 B; g- [4 |8 X' j
呼叫設定函數/ {* l3 C6 W' E3 ^) c* o, |, T1 {
ex:
+ G, D: R- _: ~. i5 RBYTE InviIniVal(EVENT event,BYTE SetVal), W$ c, F) R( o, K- ~
{
! Y0 y- S2 Z5 x2 m& p' x4 a//Deal event ... I! }/ f# g. _9 A; r8 Z8 d9 _; D
/ j' r( s# k3 n$ V7 z+ l; d$ S1 p+ x//Deal InitVal8 B! v, y3 l; h5 X" [
BYTE ret = 0;
6 I* c. s8 |" \* R: RSetVal+=InvisibleInit;
' C @( ?' w! R# hret += SetVal ;" j4 v8 ]4 k1 g% X
return ret;
4 U) _2 Z# s0 y$ K* A. ] o}
" D2 K, O. E. b2 ]( u5 J# @4 Q) s% c R. g8 M/ x1 V
最後關切的函數當然是遞減函數:* |2 h6 d! t1 w) y) l
ex:
! b& I' M! O( C8 t6 r! f+ l7 oBYTE DecInviVal(BYTE *InviVal)
7 _& `' K9 f: I' f{
! u8 _4 M' {5 Ucout<<*InviVal<<endl;8 j1 e, a$ V2 M8 o
(*InviVal)--; //*InviVal -= DecVal;
8 a/ i- {5 H, Bcout<<*InviVal<<endl;
+ e& ?! F6 `2 V5 s7 D2 N: ^' Q L(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;: l* E5 K4 J% }1 o4 O/ D* l& y
return *InviVal;
- Q" `- z( O" d- M8 \}* l* U) t f7 U9 g6 S& v/ c
$ I( w* K: `6 t- s針對以上觀念,改遊戲就很簡單,$ K$ f/ B9 {( C% F3 V) Y% Z6 y
一開始我們先初始化數值,輸入'?',
2 x% N0 Z4 A! i2 a( ]接著開始無敵時,輸入'+',6 y+ C2 L5 D% B6 B8 |
接著我們知道無敵時間會開始變動,+ [8 j% Q& y$ \7 F4 |7 m
以上例來說時間開始減少,每隔一段時間輸入'-',4 O+ Y$ k% k6 ?6 F( c, }! X
最後沒有無敵效果了,輸入'!' 或是 '0'。" ^( m( g3 _$ O9 r8 E) }: U! f
! h6 }; ]0 n! {. l$ Z- e- K ~
記憶體地址經由演算法篩選後,只會剩下幾個,
% ^4 T" E1 @$ l% j* h& ptry 一下,你要的地址就出現了。& {4 \* s+ T: j7 x7 |2 C
6 D7 O1 R* O6 D6 c1 v) H7 L
P.S.以上程式已經Run過,沒有問題。6 ` i$ z, W( o! K% j) {
! k$ W% e9 e) g; \0 _[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|