|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
1 I) v- ^1 R/ ]; _5 C主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ' } ~, O1 I0 A$ C/ T+ g1 I2 j
# G5 n- ^8 l) v1 x7 f+ q其實修改無敵很容易,( w/ ]) \5 }% K7 l/ E* a4 q
就以遊戲程式設計的觀點來說,
' M5 ?; A& h! a# S& n一開始我會將人物無敵數值設定為0. [1 H9 A8 C9 e* m
ex: 9 @6 x7 Z) I2 i0 i/ l h
#define InvisibleInit 0
* |& a( i9 y. b- X. l) S3 U
5 b0 ~: ?+ x' Q C* a6 j- g然後當觸發特定事件,例如受到敵方攻擊(物件碰撞)," U: C; s* r( u v3 I; q' Y
呼叫設定函數
2 X0 ]% f& |# ^% D8 zex:4 R7 \; @ P/ H1 N0 ~3 {* k; s
BYTE InviIniVal(EVENT event,BYTE SetVal)6 t. w# C- w# c! A. Q2 b6 Z q# [! v
{
# I2 a4 \* ~9 `( \//Deal event ..." p8 a6 T7 Q; _5 t7 c
0 O0 h9 o: ]' ~' w, F//Deal InitVal
3 Q5 i5 @! O s1 W! b. _BYTE ret = 0;
% L* I- P9 s4 @7 }0 iSetVal+=InvisibleInit;
' u; d( R7 r% g: \. e$ o: rret += SetVal ;
4 Z# b$ I. R. D8 W9 b$ Yreturn ret;
1 P( g# e7 F4 E: B} ; Y5 W: `7 Z b! V
# Z, y# n% d v最後關切的函數當然是遞減函數:
' d4 l+ d4 W, _ex:
6 a* i1 Q+ X5 tBYTE DecInviVal(BYTE *InviVal)
& @7 s3 l5 x- F+ m{ \7 H0 z; _: a2 }: O( P
cout<<*InviVal<<endl;+ M8 v1 e) g) i$ S: G
(*InviVal)--; //*InviVal -= DecVal;8 n" J5 R' H* D% t0 m# O" P1 _
cout<<*InviVal<<endl;5 t& `1 ^* F2 K1 o8 P. B: Z5 e& A
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;0 s. W p3 t5 v$ v* h0 `2 [
return *InviVal;
/ r x9 a4 Y+ i% q. w}
/ I. v* j+ S; A( Z( d; f3 O( o: X# H; m7 ~0 C5 ?0 ?, F
針對以上觀念,改遊戲就很簡單, O# P2 B) n) o" {$ ?- F; q
一開始我們先初始化數值,輸入'?',
0 s1 K# N" O% u" o9 @# w# X7 U: ]接著開始無敵時,輸入'+',
; B& |$ P$ ^3 O" v" a8 Y接著我們知道無敵時間會開始變動,
. l+ m% G8 P' Y% l* j7 o以上例來說時間開始減少,每隔一段時間輸入'-',
) d9 v4 R1 h% X) y+ T2 Y3 a& V最後沒有無敵效果了,輸入'!' 或是 '0'。* V1 x% o, p1 {
0 `* k/ X4 B7 Y
記憶體地址經由演算法篩選後,只會剩下幾個,$ j4 ?% o1 a) c
try 一下,你要的地址就出現了。" T- y% ]- ^5 J6 U) B
+ q% n, ?- B' x7 D. \
P.S.以上程式已經Run過,沒有問題。1 \6 C E. ?4 _( M
) O( v9 S& s' R[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|