|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 ; Q( H6 {7 m: ]2 @
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
8 C, Y9 s$ n% L1 |0 `' u& ~5 u
$ t% N8 A. h9 j+ C其實修改無敵很容易,4 x" l9 h0 w2 D1 d3 B8 n
就以遊戲程式設計的觀點來說,
( h/ q, |6 V8 z2 d. {) U一開始我會將人物無敵數值設定為0
3 d5 s* G; u6 b/ ]ex: " }$ U- p, _. S& U0 M
#define InvisibleInit 07 o" n- `6 C2 S7 H
* n3 I6 U. [$ m% z0 P4 t然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),+ p' v, T' u* O
呼叫設定函數 e# e, Y s5 F/ |! _$ D: G
ex:, j8 ^: O9 u c" q3 u" U7 l
BYTE InviIniVal(EVENT event,BYTE SetVal)( [$ P. F% W2 @
{* F6 X2 d& i: R* t, o5 d5 W$ y
//Deal event ...
- n( K1 {+ o9 p9 X. h6 o4 M
$ `6 H" g J9 D4 K# Y4 A9 U//Deal InitVal
6 I3 _( D% N& b2 PBYTE ret = 0;; K: @: y5 O' Q% [; v! P/ N
SetVal+=InvisibleInit;6 N. T9 V, V" g7 Z! r/ ~
ret += SetVal ;: i" R& j! ?! i( k$ V% _% q! L$ c
return ret;
+ k" f2 Z$ {* P, |# K+ P) i8 }# |} 7 L1 e' [1 a) H4 n T, v
; B `. C& ~4 G; {
最後關切的函數當然是遞減函數:5 G0 ~, t9 z. z) A1 {! r
ex:
7 p$ E2 t# M. w) vBYTE DecInviVal(BYTE *InviVal)5 Q9 }- U) F8 A5 |& `
{: s d: ?7 r0 I4 z0 Q6 \
cout<<*InviVal<<endl;- M9 f: j, [5 T. z9 k
(*InviVal)--; //*InviVal -= DecVal;
! ^# j! v3 j' o% ocout<<*InviVal<<endl;
+ V e) p- S- M' D(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
) b3 S0 @3 \4 W* `7 b4 Creturn *InviVal;
2 Z3 k$ Y+ W5 \* J V+ O) Z}
( O4 w- c+ m5 i7 ^% m1 t) f* ?1 Q6 _+ B/ I) [
針對以上觀念,改遊戲就很簡單,
f1 J% J% q9 _0 G- V4 d2 |一開始我們先初始化數值,輸入'?',# V3 o) D( Y; C" f1 Y
接著開始無敵時,輸入'+', s- e' A, L6 [( E/ c
接著我們知道無敵時間會開始變動,
" d- k) j) s! H( `! L以上例來說時間開始減少,每隔一段時間輸入'-',
! V9 } h T0 {/ d; v最後沒有無敵效果了,輸入'!' 或是 '0'。* N h3 E' R+ j9 K; a% c
c# b/ Z0 {' ~1 G; T" P! y記憶體地址經由演算法篩選後,只會剩下幾個,! s2 W- ^; \0 m/ I* Z
try 一下,你要的地址就出現了。9 I8 E' P; B# s+ r# d; A9 I
( k4 L6 A6 V, \
P.S.以上程式已經Run過,沒有問題。
/ `& w+ M8 y. \+ w5 O9 n* l! g
, j1 I( y C l* o3 S[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|