|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 7 l/ C6 w( a; ~* }
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 % t" P* q9 i! W
6 }6 ^" X: q& [5 V+ Y* w4 p
其實修改無敵很容易,
( h4 F% I8 b/ E5 R; A% C, U就以遊戲程式設計的觀點來說,
6 X ?0 O: t5 V% H) c- V% _$ c, V一開始我會將人物無敵數值設定為0
9 [/ O; x* F/ E. mex: 5 _; ?" G! N& n% H. `/ }
#define InvisibleInit 03 P2 R! ]2 [- c3 q0 o
4 `2 x3 J: X* @$ d
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
6 Q0 R6 j5 k! ^呼叫設定函數
8 Q/ f( h+ e1 Y1 ]1 r3 h# P6 _) {9 bex:
& z# G& }7 h; p- H) Y! vBYTE InviIniVal(EVENT event,BYTE SetVal)
- [" Q" u2 `. q' b3 H: a% y. P{# u% }, b! ]9 f
//Deal event ...! C% J( k3 M" s% {
/ P1 l9 R" e6 O+ ?& P5 z6 _
//Deal InitVal
9 c! c# a# G) e. d# h$ }4 ~BYTE ret = 0;
* S$ p8 a4 t0 P9 X% ^4 VSetVal+=InvisibleInit;1 I2 x% \# @7 V9 V' ?
ret += SetVal ;4 m9 v9 _1 m; F3 K) X# L( n: Z/ n
return ret;
' a8 t+ E- A: T" g" s} ' S$ I7 j* y% F6 O# d1 N- P
5 b& u( n w6 ^ b! a- S2 l. t
最後關切的函數當然是遞減函數:, ^/ u+ K. J& P# N9 ]( a3 A
ex:
$ Z$ A- Y$ w; N: N: o* L6 ZBYTE DecInviVal(BYTE *InviVal)2 M/ \7 B8 s7 m& ?: M
{
6 C M( n2 V8 H' Ycout<<*InviVal<<endl;9 W% N$ O% m1 j; Z5 p- U
(*InviVal)--; //*InviVal -= DecVal;! Q) w0 P& G- G, b$ o5 o: D$ v: `2 f
cout<<*InviVal<<endl;
7 @! x" D. r) s. c' w(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;5 a h7 v( [% Z, k
return *InviVal;
7 f( y+ J. l2 @- j+ C% n}+ r% S/ N! @0 n1 ^+ g5 b+ p7 y
, F! f6 b6 w) U' r4 @: f9 @8 c針對以上觀念,改遊戲就很簡單,7 O( R7 W; a( ]
一開始我們先初始化數值,輸入'?',% O5 ]. _& |+ }, ~
接著開始無敵時,輸入'+',4 [' U# D5 f. V4 y- k7 X$ O: B
接著我們知道無敵時間會開始變動,
x, d3 y4 a0 E9 e以上例來說時間開始減少,每隔一段時間輸入'-',* v: Y0 S8 b, N3 ^
最後沒有無敵效果了,輸入'!' 或是 '0'。, {8 T+ K3 Z4 x! ?( A \8 N
1 x0 T6 `* f5 V" j9 G$ V記憶體地址經由演算法篩選後,只會剩下幾個,' w# V2 M& R+ V. ?) z6 I$ y( G
try 一下,你要的地址就出現了。) r4 }* H5 j; Y0 ?( H }
$ ^! e( G6 J! W' ]. \0 CP.S.以上程式已經Run過,沒有問題。1 P9 r& D& ^6 c5 a6 }
! v# b& R: w6 ^
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|