|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
$ T$ f( ~; A* @. E/ ^主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
+ u/ }6 s% e9 P- R5 P# I# S( p$ u- U. j5 v
其實修改無敵很容易,4 R' n# S9 V, P3 i! l' h# R3 |: b
就以遊戲程式設計的觀點來說,
* e) b9 {2 A5 j: F4 m$ O一開始我會將人物無敵數值設定為0# [' b0 [& I8 `7 u9 D
ex:
. y3 Q; ^/ c3 X+ ]+ k+ Z#define InvisibleInit 0( \% n) F+ ~5 G R7 H& \, m ^
0 t5 L4 H% X7 E) ~0 p* b
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),/ l) M) b+ p7 T. x# n1 [ C1 P
呼叫設定函數3 y8 b" [/ B) \- z' w+ X2 m" X
ex:
" |$ R! J1 V$ y+ A$ z9 N& b2 z. [BYTE InviIniVal(EVENT event,BYTE SetVal)" ^+ {; w2 J$ D: O! t) t) N
{: w) g j- F/ N$ c, n: T9 n
//Deal event ...
& Z, J, {. H5 v
( X6 e4 u7 }- ]2 w; O. ?//Deal InitVal
4 F, J. g) p, {6 T, j2 l" dBYTE ret = 0;. O8 F8 d% p" e! v3 ^
SetVal+=InvisibleInit;2 B& e& y `, Z0 _8 v
ret += SetVal ;0 ?/ Q* }" q( X8 c
return ret;$ w+ T# v. z& J# `/ ^
} 1 b# X! d; \% T/ D
" h5 a$ E- ?" G/ T最後關切的函數當然是遞減函數:
+ N! i/ D- M* i/ ^/ |! d1 J4 Fex:
2 Z( U# s( i% ? P3 z7 K1 p: WBYTE DecInviVal(BYTE *InviVal)5 | @% H' @9 n; s
{
& I$ t( Y/ L- |, C) ~1 U/ r1 D3 ?cout<<*InviVal<<endl;) G! [: B" u* i2 O6 F
(*InviVal)--; //*InviVal -= DecVal;. }. F( M) ^3 a$ |- z5 E
cout<<*InviVal<<endl;
% J$ G8 |2 `8 v/ X# |2 R( K(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;% v3 T) X* m @/ {4 }+ K" ~
return *InviVal;! _+ c- ?' W' \& [6 ^8 g+ p# o
}
) \2 O$ f7 ~1 b. l9 I3 y& I% a
, e# ~, t& S; o7 z2 q3 N; X針對以上觀念,改遊戲就很簡單,% a2 v4 e# [" K- [0 v; ]& c3 n
一開始我們先初始化數值,輸入'?',
2 d4 S4 w" q- U接著開始無敵時,輸入'+', P$ q1 @; M3 F0 r- o+ [; _
接著我們知道無敵時間會開始變動,
7 ~2 p+ X0 s' ]& Z2 B+ O) g以上例來說時間開始減少,每隔一段時間輸入'-',( r O e) V y4 W+ v. A
最後沒有無敵效果了,輸入'!' 或是 '0'。
6 J& m. N0 f& ~" |6 T" m8 ]8 |% r
. Y# K' i; M2 C記憶體地址經由演算法篩選後,只會剩下幾個,1 E, R$ s$ T- A3 r! h7 y9 `; L
try 一下,你要的地址就出現了。2 S0 m' H! t, s4 q
! {/ F% T/ Z4 I; KP.S.以上程式已經Run過,沒有問題。
0 c' _! K+ k+ V$ Y/ r0 ^
! ^' Z) \4 ^- {[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|