|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
9 H9 G+ v+ P2 X9 C0 [* o' ?主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ) Q8 D9 t' h- S
0 H# o+ b7 ^+ e$ ]其實修改無敵很容易,
7 C v8 a9 M4 _5 m1 F就以遊戲程式設計的觀點來說,* C8 ?% b, R+ G
一開始我會將人物無敵數值設定為04 x; E8 k' V7 s% l
ex: ' T% k, [: R9 t8 }6 c) U( z' x
#define InvisibleInit 04 n" b3 r( z$ H3 Z7 r
6 y' r$ W# H+ s( ~
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),) c4 X& U5 u- @5 o
呼叫設定函數
( p1 h' T% E0 Hex:
3 U' X9 `* I+ sBYTE InviIniVal(EVENT event,BYTE SetVal)2 _! ~, D$ I/ B$ |- \
{
+ s0 ]2 j% x5 P2 r. S2 M//Deal event ...' M; [3 E: q& T3 B7 E% p
4 V" z7 O0 b# S' O
//Deal InitVal# j* h2 t' M$ ]* ^
BYTE ret = 0;
' g, q5 l% P: F& Z2 hSetVal+=InvisibleInit;
/ S2 a# h! S/ [+ tret += SetVal ;( u) ]% {; l& G" m# D1 V2 z' r
return ret;
# j) g2 }- o6 v! ~5 r' i- n1 v5 Z' v} 0 X) o# G* V0 Q. G
0 a+ A4 E- T2 n4 L( T& [" D3 e y最後關切的函數當然是遞減函數:2 x9 N0 C8 m( S) G- }
ex:" G+ X* {6 X3 [( w+ w/ j
BYTE DecInviVal(BYTE *InviVal)
; U$ ^6 p& x7 l{& L C l4 D: ]& W" R% [/ \4 n
cout<<*InviVal<<endl;
! ?, n, o- C, Z(*InviVal)--; //*InviVal -= DecVal;! L' j. ?4 w9 j( K6 |6 x/ m
cout<<*InviVal<<endl;4 b$ w6 k; L6 [: R6 f# \2 [
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
1 q) j( I& Y9 e u0 Qreturn *InviVal;
, E) l, X" L& F) Y; f}# ~7 ]8 M! A! }! {
7 P e0 r$ {& ^/ B* u: ^針對以上觀念,改遊戲就很簡單,. J/ O- t7 z! M. d! P6 G. e/ Q4 r
一開始我們先初始化數值,輸入'?',- o9 h3 L7 n/ t. K w! R4 b) K
接著開始無敵時,輸入'+',6 t+ F; n7 H0 P3 Y
接著我們知道無敵時間會開始變動,
! A) |6 j* m$ Z+ m s9 I+ |" x以上例來說時間開始減少,每隔一段時間輸入'-',
1 R" A" l1 H: n# B, }8 E5 ?最後沒有無敵效果了,輸入'!' 或是 '0'。: {6 n7 [/ U6 N- ]$ ^
9 F7 @/ A: T( m記憶體地址經由演算法篩選後,只會剩下幾個,
- h; x8 U- s, {/ Ctry 一下,你要的地址就出現了。
# e7 K3 X8 p5 T4 o( A" C- x, n0 y+ h* F
P.S.以上程式已經Run過,沒有問題。
) v6 I# y. c7 T! b1 M8 F3 Q2 E; L. A' o x5 c: g# V
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|