|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 8 H0 z) E* c7 j5 ~! ?7 Z, b/ K4 `
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
- e7 k& [- G. _0 B8 B+ W, J6 J7 N3 \& W! ^' H* u4 @3 |1 Q* ^
其實修改無敵很容易,
4 b6 K$ D+ M& x/ `' M* X就以遊戲程式設計的觀點來說,- O8 i' [2 q* c" d+ _! K" w
一開始我會將人物無敵數值設定為0% C ^) W* @0 t
ex: ! [6 Z- e8 y# U4 r2 N0 S. H7 g
#define InvisibleInit 0: Y2 H. A2 K: d: o: g
0 \& O: G Q3 R9 Z2 ?: ?: M: {然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),; F4 ]. [% i8 R3 J ~
呼叫設定函數
* K) X# `- u; f$ n1 K; u; cex:
5 S, p/ v& s. L. ]5 \BYTE InviIniVal(EVENT event,BYTE SetVal), z' j* ^. t- q
{) n4 J) R, [! D' p/ L. s
//Deal event ...
8 C( w- Q7 f( t" `/ W
( `" S) r: W! E, c) R//Deal InitVal
. Z N0 B7 |0 ^' l% m" {4 [BYTE ret = 0;
) j, L( G1 ]0 B# n/ k' NSetVal+=InvisibleInit;1 \5 p, K4 I( Z1 p, z d
ret += SetVal ;
- v2 D3 b4 A4 V7 d D+ ?return ret;
; k M3 ?3 v+ f0 ?0 d3 R} 2 P9 d& ^4 M; n" F4 V
. d' Y* a: t9 c! J" p* i2 q8 B; @
最後關切的函數當然是遞減函數:
j3 u$ t3 Z5 f3 d4 B* Qex:6 N- c. V" s0 _- w; u
BYTE DecInviVal(BYTE *InviVal)! e- E# B, @5 `9 C; v7 Z9 B
{
P2 l- j3 J5 u3 F- Ncout<<*InviVal<<endl;
; r, F( Q! E9 `* ^8 M8 {4 l(*InviVal)--; //*InviVal -= DecVal;* Z" O) w" c5 V. H. Z3 N
cout<<*InviVal<<endl;
* q, G' t0 ?0 U(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
) E% d! R9 o6 J& v% i! l& B Yreturn *InviVal;
& E9 H4 D: T$ b. N$ u' C# O |3 s}. r; [$ J4 t% ^& [2 `2 A* V
% i: [9 q1 m6 e% _1 t7 ?針對以上觀念,改遊戲就很簡單,
4 n. T5 O* A, g8 O' l一開始我們先初始化數值,輸入'?',6 ~4 c4 A% b4 A3 ?+ x; V" d+ R
接著開始無敵時,輸入'+',, A* h$ a% G# \ J+ t; d
接著我們知道無敵時間會開始變動,
; D$ Y2 A% R9 \' R' s; Y以上例來說時間開始減少,每隔一段時間輸入'-',
& l6 I6 M( U4 b/ F+ ?% v最後沒有無敵效果了,輸入'!' 或是 '0'。# _+ l' e; ] o1 z! ?( |! x# W
. W" ^* b) W( ]/ [' g8 d記憶體地址經由演算法篩選後,只會剩下幾個,' |1 T. S/ w0 h4 |0 x* M: F
try 一下,你要的地址就出現了。
$ ~" R O. z& I) w
: T, U1 H: Y0 S. W" k% W. HP.S.以上程式已經Run過,沒有問題。
: v l' c. r. i: L4 W( {# |- S/ o! c2 m, L& ]+ D
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|