|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 9 }# s- V0 N7 u+ ^
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
6 U# R( B7 q5 t2 E. R1 i' M. R' ^( f! v% S/ K9 C
其實修改無敵很容易,/ }2 C5 X+ G4 C+ c/ s
就以遊戲程式設計的觀點來說,
3 d- _* r, v/ O. R3 A, ?( C一開始我會將人物無敵數值設定為08 x7 V: S2 h6 R9 a) S$ Y6 U) ]# S
ex:
. {6 v4 q4 x8 T! y6 U5 h) j#define InvisibleInit 0( d% U5 q! \2 X6 r1 p
: L( c5 A$ J) t3 P( A然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
, O& ?& i6 w9 H+ R呼叫設定函數
" J% c2 J7 t6 z/ Wex:9 D: ~0 c' e; E# `: O. H7 J5 N
BYTE InviIniVal(EVENT event,BYTE SetVal)( R3 w+ l) g& q" h
{
h* R9 C: f# ^ {- I" s0 k//Deal event ...
, p$ J, G( v, q' @, Z( W8 ^* q$ D f( L- l6 R# i0 X
//Deal InitVal' `8 T; I- C8 G# f4 V+ L
BYTE ret = 0;" j. c$ n# v Y. y2 ?
SetVal+=InvisibleInit;
4 I+ k1 N+ b: h- hret += SetVal ;6 R( p# M6 L/ X
return ret;
- O6 _* q7 @" M. ?1 [4 I5 N} ( }& `2 u* y8 K: I8 Q7 a U
* J& F2 t2 s/ ]! M/ b z$ A最後關切的函數當然是遞減函數:
) b% Z2 U+ Y& q3 N& j' I2 Rex:( ~* l ^5 i0 r
BYTE DecInviVal(BYTE *InviVal)- Y# r2 {# I/ [( y4 K2 Q; j
{
4 z. E1 P+ R2 ^0 V' s" m o6 Dcout<<*InviVal<<endl;6 d2 N% o' ^+ X0 Q/ c% T
(*InviVal)--; //*InviVal -= DecVal;+ |9 N. H" R5 U5 L" i" c0 P* D) i
cout<<*InviVal<<endl;
! Z3 E' g* ` q- C(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
, q. m5 H' \$ yreturn *InviVal;5 T4 R/ i. I+ i4 h: V
}
& g$ y0 v. N I; s, H3 O# H3 ~# N4 ~) }; Y# `, Q
針對以上觀念,改遊戲就很簡單,5 n' q8 H3 e* x) O" s3 X2 W
一開始我們先初始化數值,輸入'?',6 [9 `/ H* ^& L9 D
接著開始無敵時,輸入'+',5 v+ e7 ~4 }/ v& ~
接著我們知道無敵時間會開始變動,- M: @) Z& K- t3 U) I- \5 m# D, q8 ?4 L
以上例來說時間開始減少,每隔一段時間輸入'-',* W' ]9 K3 S5 c
最後沒有無敵效果了,輸入'!' 或是 '0'。
* J8 m% H0 p$ V& m# Q. s
( F* U2 y8 E3 R* U3 r0 U+ D3 ?3 E& g記憶體地址經由演算法篩選後,只會剩下幾個,
^2 x. t# ]8 \- j+ S- J0 T( ftry 一下,你要的地址就出現了。
! V9 S8 P; P% o, z$ J. u# Z
& j! S9 ~( x3 h B( h' O* q* aP.S.以上程式已經Run過,沒有問題。
" H" j7 P7 L0 P3 n1 \/ ]- O+ B( k0 i9 |$ n; t5 d
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|