|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
6 y2 ?# \: j" j9 ]主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 / C) m A" R4 p
. o; Q5 }# r2 H5 b/ ~3 N& |
其實修改無敵很容易,9 z: @ u8 J9 U0 D9 g
就以遊戲程式設計的觀點來說,
! [9 D' m. c& o( `7 j一開始我會將人物無敵數值設定為0
2 ^4 F B% h1 L4 F: M6 [ex: 7 K- V( K- ~# z; t/ b8 K
#define InvisibleInit 0
0 l7 l ]9 C' }4 D L% r
2 t! o: a6 M: x# ?( r! J" x$ o然後當觸發特定事件,例如受到敵方攻擊(物件碰撞), s* Y% Y$ P/ G" ~6 }
呼叫設定函數# n. a; \+ [1 Y1 d! I6 s& S
ex:
. t+ Z3 F2 {0 s9 A7 w" WBYTE InviIniVal(EVENT event,BYTE SetVal)8 @* u# @1 @7 y
{2 Q c5 a8 h7 w7 Z2 N& w+ [( t: @ S
//Deal event ...2 I: [# ~6 a3 W& W3 n" m1 L% Z
% k2 H6 p0 b1 ]$ u8 q3 M
//Deal InitVal
& ]* v+ E2 }0 {+ |! e& h& _BYTE ret = 0;
5 ?) L2 _* r1 y: s; t5 }9 C3 tSetVal+=InvisibleInit;
) D# }7 A+ r, [ |# t5 v) W! f, Oret += SetVal ;5 O1 Z8 H. a: Y& q3 C
return ret;
% G. R; p# }2 F5 g}
/ T2 q" f2 ~% V. c& o0 i
# f {; s& j$ k: n& n最後關切的函數當然是遞減函數:# o- J0 p# @) c0 |. ^8 [" K t
ex:
# H. o% v4 L8 ]% t: D7 H: K: ZBYTE DecInviVal(BYTE *InviVal)
: V! T! E( H9 V{
7 C* O" }5 [7 U/ |! A7 zcout<<*InviVal<<endl;* _* M6 k* h5 C/ N; _7 R
(*InviVal)--; //*InviVal -= DecVal;$ o/ ~, ^2 X0 p& C* {$ }. B) `
cout<<*InviVal<<endl;
' ?1 Y7 T# O3 G) {0 u- F(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
2 A1 D H: U6 x* |# M$ Jreturn *InviVal;
$ A, p, A/ K0 a+ ~$ `* N; ~9 A}
5 G/ j0 Y/ A/ \% e
0 \0 @1 D+ d- L+ f針對以上觀念,改遊戲就很簡單,, x( P5 S* W/ B, ?
一開始我們先初始化數值,輸入'?',
- |$ F9 P# |* d2 o/ t7 g1 `2 u接著開始無敵時,輸入'+',) H' S( Q# }, ]
接著我們知道無敵時間會開始變動,7 {8 X% }. \3 X2 O3 h/ Q
以上例來說時間開始減少,每隔一段時間輸入'-',7 O# U! K$ X1 Y/ [5 i7 A. F
最後沒有無敵效果了,輸入'!' 或是 '0'。, x1 I1 ?; X0 T0 ]! X
- A) T( J2 W4 _2 R& D) Y. v- X9 t記憶體地址經由演算法篩選後,只會剩下幾個,
/ n1 p1 ] ^ C7 B1 ~9 y5 Etry 一下,你要的地址就出現了。" J$ ~$ P5 p$ n {
* C" c2 m6 ?# X' X
P.S.以上程式已經Run過,沒有問題。
" v/ x9 ]% |$ j) J2 o* Z( E H8 u& b# h+ M0 z2 B7 @, y
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|