|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
/ K1 w. r4 \7 n: _% F8 X主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 & w% u: D6 j5 }2 ]4 a
$ ~* @3 D8 ~5 U7 m, @0 \/ B# m其實修改無敵很容易,! [2 P( `8 |7 `) ~2 M4 s/ J6 l" y3 F. B
就以遊戲程式設計的觀點來說,6 q1 d" g: M% S. c
一開始我會將人物無敵數值設定為0- T1 ?2 w; U0 l, n, O9 g8 c
ex: % Q' E& l- `1 |/ N# S$ v; V; M4 |
#define InvisibleInit 0; k; b7 N7 t$ u9 D2 l
6 q& a4 ~: e1 u. `
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
' X7 a: Z; M( h- S3 g8 _/ v# W呼叫設定函數
3 G* c+ q* y" a2 s! A/ }; sex:" H* u1 g+ L' i4 L9 a7 ~1 f4 Y4 s
BYTE InviIniVal(EVENT event,BYTE SetVal)
; V% ~6 M4 w4 Y& o3 m' a{
8 P9 m2 W% r0 I t//Deal event ...
% @2 D" R* ~/ X2 e
, ]- f8 h" H. d/ c* Z//Deal InitVal
: s' f+ U) d( g5 DBYTE ret = 0;
& U& W1 C- ^1 qSetVal+=InvisibleInit;* M4 n: s# H: S. {6 b; q
ret += SetVal ;
7 [$ O% z8 i% I1 g; B/ N: qreturn ret;5 S5 r5 O* i% c
} & x7 B. ?7 Q3 I. @. F% N, P# P7 H
/ H) w# X$ x6 @: H
最後關切的函數當然是遞減函數:$ _! g. l! k/ v9 E5 @( V
ex:
3 K* v5 O& |4 L* R* Z" DBYTE DecInviVal(BYTE *InviVal)2 X8 d1 z' F3 _% m. c( l% J- G
{
( M/ ~4 X" R9 [' N( w4 B* Zcout<<*InviVal<<endl;5 U L1 H; l$ k' H/ ^+ t
(*InviVal)--; //*InviVal -= DecVal;
& V% |: X3 v3 ncout<<*InviVal<<endl;
/ W5 a3 F/ Q9 M: W N1 x% g; M(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;# j. Q% V5 i3 ~- b' u! c* `
return *InviVal;
9 q6 R" J8 c9 e" W}2 q, t, e, @% h; k) k! I( E
! w+ F! O( |1 _( \: ^
針對以上觀念,改遊戲就很簡單,2 p. r+ M2 A6 Y W x+ N
一開始我們先初始化數值,輸入'?',' {- n8 \9 c7 A: C$ u
接著開始無敵時,輸入'+',# q& R" B. w3 l
接著我們知道無敵時間會開始變動,% I4 T/ i7 M+ A$ J2 N+ i2 w
以上例來說時間開始減少,每隔一段時間輸入'-',
0 T' B( z" ]* S7 o) {* ^! X最後沒有無敵效果了,輸入'!' 或是 '0'。
! g, m* v# _% h! G- |+ m/ g' }* Y0 s' j1 Y8 X* R# n
記憶體地址經由演算法篩選後,只會剩下幾個,
7 Z! L9 Y3 ~7 [try 一下,你要的地址就出現了。5 A/ V3 a3 U6 M; }5 f L
1 w3 N, |( f1 l- ]- e2 R( n5 M5 e* [
P.S.以上程式已經Run過,沒有問題。
. ]: D l* o6 {: U* S; O; t* J* _$ p) v
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|