|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 3 z& {5 P& i; V$ t
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
7 F6 q! @) O! p: n/ U( e, M4 ]/ t" m1 D5 x
其實修改無敵很容易,
% z* {1 x, y3 b- b就以遊戲程式設計的觀點來說,
+ V5 {) Q5 p7 U- \" m' ^% _一開始我會將人物無敵數值設定為0
8 b1 @$ s- s4 c/ \/ A5 y$ {ex:
& r7 `5 S* X6 l9 @* y#define InvisibleInit 0: p, z+ z0 r# l8 M3 E
3 r5 d! u$ M1 @ K' D% L, Y L然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
/ g8 t4 Q; B) Q) c3 p呼叫設定函數, X' C. n7 l( _- ~" i$ ?
ex:
7 Q0 B' A* c& c4 ]1 oBYTE InviIniVal(EVENT event,BYTE SetVal)1 B7 ~2 y! `7 W9 k7 \! I
{8 O9 A C0 y! C& U
//Deal event ...
E2 e0 W* J# m+ J# j v: c' l
- R v- z* @2 h! C//Deal InitVal3 N) m8 [& d* F+ }4 O; z* j- F
BYTE ret = 0;
* D. W" T; P3 p8 a8 u* A0 ESetVal+=InvisibleInit;; M- o- a0 @& L* g* P
ret += SetVal ;
% \* G u* N5 ~9 Z( F9 c3 Ureturn ret;. X0 ^2 [+ d0 {, A) ?4 O
} . F( Y- ]+ w) k7 p6 A* o% f
3 k* W+ ~8 y8 [
最後關切的函數當然是遞減函數:1 P% \$ a6 L/ F" P) K" J
ex:
) A r. u0 \7 F& e8 @6 hBYTE DecInviVal(BYTE *InviVal)
* G7 g5 L7 {- U h: ~( I: B5 U{
5 B7 n; D' W9 C Bcout<<*InviVal<<endl;) R# D$ L& n8 }/ k# d, |
(*InviVal)--; //*InviVal -= DecVal;
7 l# A0 x$ u! V: z* b5 ?8 Dcout<<*InviVal<<endl;' U4 J6 X" V# ]9 e3 a3 M
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;+ l2 M: u" b8 n) e, y4 b. N( `, U
return *InviVal;* M! k' _% v+ g4 b# Z1 o7 I x
}3 W% X" \; a( U! N2 l4 e0 P
# f9 d5 N: N( w針對以上觀念,改遊戲就很簡單,
$ l* ~# F; J5 L& D一開始我們先初始化數值,輸入'?',
: C7 j. R' z4 Q6 L, V( E接著開始無敵時,輸入'+',, h" h' T6 z. j& j
接著我們知道無敵時間會開始變動,
8 u: |6 W& j! w6 _7 _% M" N% v ~以上例來說時間開始減少,每隔一段時間輸入'-',
4 c* h+ \3 a2 C4 x, C最後沒有無敵效果了,輸入'!' 或是 '0'。1 | m+ G. ~, `* Q
! g% ?: s2 ]0 [3 [ o0 H
記憶體地址經由演算法篩選後,只會剩下幾個,+ o& }( S) D6 U' }* m+ P
try 一下,你要的地址就出現了。; \3 L0 K5 m# T8 Z x3 {' S
" K1 @4 @; ]" W6 ]# z7 |) V8 L; c+ A2 z2 mP.S.以上程式已經Run過,沒有問題。
7 A% @7 D' l3 q' Y9 y7 F
- Z4 q- c9 L9 ]8 z[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|