|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
: @( N& e1 `, s P0 j* \1 C: K1 U主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 6 U$ _: u l* B8 E; K" P' ^
% i( U+ D1 D/ e/ w2 ^
其實修改無敵很容易,6 D5 Q, z; j# F$ Z% q/ ~
就以遊戲程式設計的觀點來說,& n1 {. s5 V d1 A. ]7 B
一開始我會將人物無敵數值設定為0
T1 j8 f6 ]0 y, W9 h* Zex: 8 R- X e, b% \- \7 B2 A# v& N
#define InvisibleInit 0
O' B9 {1 H; V- D
* f: P$ Y( g5 n$ a然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
. h+ a2 n! b5 e/ Q: {) V# S呼叫設定函數0 \+ L. m' Z- m
ex:" V$ w( E) A3 n2 E8 R# y- W% ~# \
BYTE InviIniVal(EVENT event,BYTE SetVal)( Z1 E# X% w& J: n9 i
{
% N) x! {/ s0 H- Y% ?//Deal event ...
! Z. a7 \+ a- h1 W: ?: w' r* `" Z/ [
//Deal InitVal8 `* |2 \0 u% e! C
BYTE ret = 0;; p; S# g: |3 N/ L9 ?/ n2 s
SetVal+=InvisibleInit;2 W9 B' }/ O1 V( i. l- |( r: M
ret += SetVal ;3 B5 k5 I, \- T- Q( G
return ret;
3 N! Y" R& m: L) X3 P}
+ Q+ }* \: C* F7 W. g( H
7 k1 R- v: E' |最後關切的函數當然是遞減函數:, K! ^' x* J# x, Q
ex:
e# @: w$ _3 j8 Z. k, ?2 fBYTE DecInviVal(BYTE *InviVal)" C# H/ J# G2 R
{
* B" x7 n) a) |- lcout<<*InviVal<<endl;
$ k' q H; m. Z& j! g(*InviVal)--; //*InviVal -= DecVal;/ {# p5 y$ b: t) ~" e" _
cout<<*InviVal<<endl;" e% ^! G3 e: S
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;- W( p/ Z7 S' b6 Z5 `: u
return *InviVal;1 f3 W, `" |8 i& R0 r* p S
}$ C, i( J; k2 q- o
8 D9 ~" `7 O; ]3 l針對以上觀念,改遊戲就很簡單,
* |; G# p% g+ g9 Y8 E2 ]一開始我們先初始化數值,輸入'?',# D. U) V& x% j( z& X* }9 y
接著開始無敵時,輸入'+',; ^) F2 G2 n! c: H2 u& @) R
接著我們知道無敵時間會開始變動,0 M( s% D- x; c+ U" |% i
以上例來說時間開始減少,每隔一段時間輸入'-',& R( V' _3 I+ P0 B: }; O; L, d
最後沒有無敵效果了,輸入'!' 或是 '0'。. W2 X" M( M2 I7 H; g
3 D H j' H( x$ H' S4 M
記憶體地址經由演算法篩選後,只會剩下幾個,3 N: o9 I1 T, T& L1 c( d
try 一下,你要的地址就出現了。
) a! N8 V1 i& A6 s8 s$ f: j! g, x- z% z# G( G
P.S.以上程式已經Run過,沒有問題。
: t# s( x! N- O% n; q- y- \( V9 ] J, G6 {
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|