|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 3 d! O& d0 B* n' c
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 : Z O9 T9 ?" a, f+ P( V
9 k6 c2 Z. t/ b* I8 Q' R7 g( E其實修改無敵很容易,. l+ }) X9 \$ m- g- S
就以遊戲程式設計的觀點來說, y& K. S/ y7 E* U0 D, V) _ z+ L
一開始我會將人物無敵數值設定為0
6 b- \2 a l6 nex:
0 V3 X1 l9 L* ^& C0 x#define InvisibleInit 0! {9 } i* L6 x% B2 r2 X& Y5 [6 L
: @2 ~4 S& \1 ~
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),3 G& U1 c e' j2 U. m
呼叫設定函數
( v5 h$ p5 M5 r3 k+ J ^5 lex:9 } [2 j# V! F( B+ n0 R5 ?
BYTE InviIniVal(EVENT event,BYTE SetVal)& y& z% f7 d' g |$ }" j
{
0 A) y) q& A Z, k" c$ Z//Deal event ...' z% ]2 r2 N3 H B8 c% e/ T( M
! ^0 I( V* ]- k! e
//Deal InitVal
1 r8 q9 B. Z2 U9 LBYTE ret = 0;
3 F* d q, [" X. h+ [SetVal+=InvisibleInit;
- q6 p+ s$ I+ Q7 z/ X( [ret += SetVal ;
, [8 J) s9 v3 ereturn ret;4 h' q. A( O/ ^. W+ h9 A7 d
}
& @( |( Q1 o. G# n
* Z! X/ ~, F! o# k& q最後關切的函數當然是遞減函數:
: z8 o) R, z" S6 Eex:
* z5 h7 A" ~/ m( @. X) Q; bBYTE DecInviVal(BYTE *InviVal)0 r. T+ U/ F( w5 P. P/ F3 K
{
9 N8 x- X: I8 r; w9 F! d. k1 l5 ucout<<*InviVal<<endl;
/ T( D6 O) r3 u: _( J) R(*InviVal)--; //*InviVal -= DecVal;, Z! s# P* Z, T4 m% A
cout<<*InviVal<<endl;
; g0 l {+ D+ H+ W(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
' \; q k3 _" ^( F4 Treturn *InviVal;
+ b3 G" `/ O% p2 y) |$ h}
% l! C% w; \; t) l4 _4 }3 o, r" U. N0 B0 }4 q7 L( @1 h
針對以上觀念,改遊戲就很簡單,
$ u4 v4 {" p6 G8 V& R' `& V: e一開始我們先初始化數值,輸入'?',' u* H: A' E: _$ `' o% Q
接著開始無敵時,輸入'+',# n% D7 J- e* @& g( `* r: v8 c
接著我們知道無敵時間會開始變動,
/ k" N) v/ F/ d6 X( l/ U/ ]以上例來說時間開始減少,每隔一段時間輸入'-',
$ D+ Z1 n7 e0 y3 d% n3 X# w最後沒有無敵效果了,輸入'!' 或是 '0'。2 m1 F( h: K- z3 Y K5 b
' n) K `+ i1 B; b: }0 P- j
記憶體地址經由演算法篩選後,只會剩下幾個,
# i5 M; G9 y( n+ [- Wtry 一下,你要的地址就出現了。
4 @8 M5 C- [, b! F) g, i1 _, B7 y6 h9 k' |! o1 z
P.S.以上程式已經Run過,沒有問題。
$ O" k8 J/ K M7 B0 S( _4 ~$ H; W
) w' h! m% N+ X: o& A[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|