|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
6 J4 @$ |8 b- V t主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
4 |* g4 b# e& Z" Y" N
6 N% w( E5 K; v/ v0 `1 y0 g/ O其實修改無敵很容易,
$ A4 t2 {7 a$ \% t" b; _就以遊戲程式設計的觀點來說,6 x4 h( I5 q8 N0 p/ O* f
一開始我會將人物無敵數值設定為08 [/ d. y. A" q8 }+ e! N+ ~. \
ex: * K* @" C/ r% I' h
#define InvisibleInit 0
& l! h4 D( ]" @+ A6 L" ]% u( P) H
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),6 Q& P$ v! I. \
呼叫設定函數6 x$ M" ^0 f+ i, g! _/ s1 L
ex:
: M, J$ Z, g3 b' ~5 M# _$ rBYTE InviIniVal(EVENT event,BYTE SetVal)
# @- V$ d; T! o! @9 `{
, X# x" @! W& [3 J) H//Deal event ...
0 ]+ H6 z* ~5 U$ A' v* G3 m/ `( {/ `+ M# t# Z# d- `
//Deal InitVal
- j% i# S! k/ @' VBYTE ret = 0;# K" Y4 j7 \& l; O$ h9 K
SetVal+=InvisibleInit;
! w$ D) s5 q# \" v* P# hret += SetVal ;
, d6 [, V1 ^2 T/ W! }3 O/ k9 breturn ret;
" Z5 e' S% R$ l' o3 ?} b( E6 W0 O1 H5 a; v; T O
! ^' ]4 y4 O9 f6 M# v. z最後關切的函數當然是遞減函數:
' g% _4 d& q% l6 pex:
" I- }9 e1 l) U# G- tBYTE DecInviVal(BYTE *InviVal)' v8 w- M1 {( Z; c
{
; P. S# H( j; C, N* kcout<<*InviVal<<endl;
0 W# I( c$ S, G: H# l I: g(*InviVal)--; //*InviVal -= DecVal;" n. B% M8 A s% t! `; j( r
cout<<*InviVal<<endl;7 @& F- S: [. @8 s I
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
: q: ^" y( L& K4 |return *InviVal;# r! H3 E G3 K
}
# J" B- h! e1 G! O* i" C6 ?; Y O
: a5 t$ W. w7 X針對以上觀念,改遊戲就很簡單,0 m' i, E3 o& O3 u B
一開始我們先初始化數值,輸入'?',
, ?, j! O4 c9 T, O1 R3 t接著開始無敵時,輸入'+',( {; U- p7 ?/ ^: \# k. S# P
接著我們知道無敵時間會開始變動,
; c' J! i* @$ h- |# Y" }( I以上例來說時間開始減少,每隔一段時間輸入'-',7 G9 i, S5 @" ?! w% F, H% w X
最後沒有無敵效果了,輸入'!' 或是 '0'。' v, l) r R* C0 r2 i
+ G* Q9 O1 g8 H+ d0 n記憶體地址經由演算法篩選後,只會剩下幾個," |4 `" Y1 x! t/ J% Z- A" n
try 一下,你要的地址就出現了。
8 H0 m! f5 k7 q/ U; Y
* W, [8 T6 u$ O" X SP.S.以上程式已經Run過,沒有問題。6 p5 r3 e3 q5 P1 O" I
$ O6 @ Q6 N0 x/ W
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|