|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
8 @ p; ^. _# `/ o2 b* k8 N2 K主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 7 u) B) |5 W: l7 Z$ y' h
+ O, X% u' e( z4 K. f
其實修改無敵很容易,; Q& u% k W/ L- P4 ~! ^
就以遊戲程式設計的觀點來說,! c, n' k+ l2 J! `! K, T
一開始我會將人物無敵數值設定為0
- h" d/ M9 D4 m* S5 }ex: 9 V2 t4 k& M( s
#define InvisibleInit 0
) ]6 d0 R9 h% w
5 x2 i# q' g" `* ~0 s. h- @6 b$ G然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),5 m2 p+ A. @! V# i3 d! P, x
呼叫設定函數! e, d+ u+ V4 y& A4 v3 U, I* @+ o" J
ex:% b! ~; R8 {1 u. G; E% \4 ~* i2 @
BYTE InviIniVal(EVENT event,BYTE SetVal)
3 a9 m& b0 t7 e+ ?{
! y9 |2 ?2 R. u+ ~' j9 q- q/ Z6 ]//Deal event ...+ J) ^- t4 ~" Z+ \3 h1 d
% f! S0 z+ B+ X1 ^* C//Deal InitVal4 @# ]# V% \6 F B
BYTE ret = 0;7 [5 m' P* j& A) a5 @. w' U
SetVal+=InvisibleInit;0 Q: F9 X5 O; _8 _! _: b% u
ret += SetVal ;8 q6 j) n6 @9 e. t- O
return ret;
- q3 f- l$ z4 S4 ?9 b( \8 G}
?7 a3 I7 a0 m& K' W
! I8 h: a. J- i3 e" @最後關切的函數當然是遞減函數:- G; [% e) m' A7 c
ex:& b+ m9 Y4 ?* @8 q+ C4 t
BYTE DecInviVal(BYTE *InviVal)
. x G! I; Q- E( M: {- {{
) h1 X& l/ v& [/ V2 q' T, Q1 u/ ycout<<*InviVal<<endl;2 l% t: e" {6 D
(*InviVal)--; //*InviVal -= DecVal;
E k' w: c" q' Fcout<<*InviVal<<endl;
0 w6 u/ X) ^7 [(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;0 [$ x- x5 h: p3 J5 T- M; V* I
return *InviVal;
0 `$ r9 J, ^2 b; W/ c}) h5 c3 t {3 ?# d
B# o2 n6 o% k# C. D1 n3 A
針對以上觀念,改遊戲就很簡單,
* `* k2 U0 c# v* T" [一開始我們先初始化數值,輸入'?',
, H0 T0 j6 _; v* K7 W7 b8 }接著開始無敵時,輸入'+',* K1 G9 W$ a( [# a z5 l, \
接著我們知道無敵時間會開始變動,
7 e5 y/ H3 y: _& C以上例來說時間開始減少,每隔一段時間輸入'-',; L3 L3 a1 `+ f! l3 U! N
最後沒有無敵效果了,輸入'!' 或是 '0'。$ _$ \; H1 T9 U/ \
9 D2 }4 b( b5 L' w" M7 u5 D記憶體地址經由演算法篩選後,只會剩下幾個,( H- i# O/ J! E$ @# |- Q0 e4 n i( I
try 一下,你要的地址就出現了。
. K. D4 b0 v6 }) P9 l2 O1 `" q* \
P.S.以上程式已經Run過,沒有問題。, g& v$ d! t) ~8 V( K6 o
. U2 H4 ?8 {" c" {: | i4 ]! S
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|