|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 # ^; v% E5 d) I- `9 U
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
" t/ }) I( W m; J, p) t7 Z0 C. Q" Q9 b$ {8 [0 ]
其實修改無敵很容易,9 o: n9 S: b" |
就以遊戲程式設計的觀點來說,
2 J6 H/ I+ g7 y5 P一開始我會將人物無敵數值設定為05 M/ }, m, n' v. j7 u8 C0 X5 a
ex:
+ @" _1 v$ {. A P8 J7 H#define InvisibleInit 0
! x# m7 a. }# _8 P9 v* P
* `( B" ` s9 X# P! h% S然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),6 { {4 a6 _5 e& ^4 z' _' A; M
呼叫設定函數
- s) H4 e1 M4 O5 O- W) oex:
% ?6 g/ z6 `$ M3 a' B2 P8 x: P+ l5 FBYTE InviIniVal(EVENT event,BYTE SetVal)! J( G1 z% I; S
{
8 o, F+ g' d. Z. T$ Z! o9 W//Deal event ...+ W% M/ o- e: _) _$ B1 N- A* O
4 @. O+ @7 f) F//Deal InitVal: [& X2 L% ^( c
BYTE ret = 0;
5 U2 O& I2 E' i2 m( S3 SSetVal+=InvisibleInit;
: A. p! a5 W: @; z5 d$ H& l5 jret += SetVal ;, H) v5 f9 @: ~# K$ e# S' a6 j; [
return ret;
' L; O) d* ]; V3 F4 g} $ K3 B! }. g& N9 P/ v8 N
* O$ ?( G: l# f8 }1 u' j3 P4 T最後關切的函數當然是遞減函數:
7 z5 Q. a* U. ^9 xex:
1 U9 z1 i# M6 k! YBYTE DecInviVal(BYTE *InviVal)
7 S+ e+ U/ @* l) a4 O+ H! G+ H) h{
/ {, P' A) t5 U1 H: N9 acout<<*InviVal<<endl;
5 U k7 C Z1 w6 D(*InviVal)--; //*InviVal -= DecVal;2 Z% e. V0 f* ?7 s
cout<<*InviVal<<endl;' l. B9 g- y! D" h: ^* m4 U
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;3 K) W) `9 {$ m3 s; b7 E+ R
return *InviVal;) D S& |8 ?" v5 X
}9 | J- r% C. D! ^! b
) k( F9 i: ~) ~, a1 A$ w) k' j
針對以上觀念,改遊戲就很簡單,' g5 L9 d/ J8 @5 `
一開始我們先初始化數值,輸入'?',; H# _- I( d8 S
接著開始無敵時,輸入'+',
$ w7 s$ N- T" g6 G: W+ y, {+ C$ C7 y接著我們知道無敵時間會開始變動,
) _% t* q0 D* [/ i) n以上例來說時間開始減少,每隔一段時間輸入'-',: Y2 j: X$ y3 [( m5 G
最後沒有無敵效果了,輸入'!' 或是 '0'。7 Z2 {) K. U' A K2 @
9 d0 Y- X% Z, u+ N3 @; G+ Y
記憶體地址經由演算法篩選後,只會剩下幾個,
& B7 X Z( o9 |7 |2 q$ D6 C0 M7 m6 {try 一下,你要的地址就出現了。# t( q( {4 A8 N* Y' X
, M% Q- N$ E' u) F( `P.S.以上程式已經Run過,沒有問題。
* P" j% B5 M. f3 m1 |, @1 p: A# Y! I8 E4 N0 D9 \- z: `0 x
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|