|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 6 v* a& V+ Y7 t
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 : b/ ?# \- y6 s* o6 z( D
; ^# n# |4 q' v) H$ |% _6 m" A
其實修改無敵很容易,
! C" B2 k- v `( E* U4 t+ O5 D8 _. ~就以遊戲程式設計的觀點來說,
. A" [0 s2 S. {- ~$ u+ i$ a- v& R一開始我會將人物無敵數值設定為0
- [ T L8 [2 L, @0 J6 m; k7 w: S3 Hex:
& J6 f6 J9 l1 q3 O/ u8 }: M9 m#define InvisibleInit 0
6 a+ {: h2 G7 L& ?! n6 r* F& S2 e$ Z, u9 b3 A2 `" Z5 r. ~) y/ f
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
$ { m3 Z8 F4 i呼叫設定函數
l0 [0 R' b R' _' Hex:$ f3 O8 B# [% f& V
BYTE InviIniVal(EVENT event,BYTE SetVal)8 i* m/ N3 o% X, F, z
{
! Y% @3 J9 X8 u: `//Deal event ...
% \ M0 z4 q1 v. f
+ W4 \2 F7 Q# Y V' f! o//Deal InitVal3 h4 }9 o- C9 B
BYTE ret = 0;9 p* E1 E5 J# h' ?! J& E x6 e; I3 |* \
SetVal+=InvisibleInit;: d7 A2 I6 j, x( S3 m
ret += SetVal ;( Y, z# e5 w. L" u( Z
return ret;# q0 z# g" L9 `
}
: a/ t& ], F% \9 v7 W, ]1 i8 P2 w3 a+ M4 W
最後關切的函數當然是遞減函數:% w4 S$ b k# X8 ]
ex:% Y9 K2 ?, b% R) W4 v {/ ~) `
BYTE DecInviVal(BYTE *InviVal)
' M5 b7 t! d/ C3 f! j/ i{2 E7 D' \. I, }
cout<<*InviVal<<endl;
/ v+ h; f/ j$ g(*InviVal)--; //*InviVal -= DecVal;9 Y E4 h x" _- T! m" L
cout<<*InviVal<<endl;
) d- I' o+ d! b(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;6 h% }+ d9 ]" I& Y+ ?( ^
return *InviVal;
0 \. M3 |; u+ J2 F5 ?}
5 y' n; x% p/ p# v6 Z0 g+ ?9 J1 V5 O" X; M8 y/ _) D# F
針對以上觀念,改遊戲就很簡單,
: {4 \! q0 J' p/ C4 L一開始我們先初始化數值,輸入'?',
8 H% w7 a, S) ]接著開始無敵時,輸入'+',+ K! I% s d; i+ O' K
接著我們知道無敵時間會開始變動,8 u0 b% q N5 _; Y
以上例來說時間開始減少,每隔一段時間輸入'-',
# b7 ^0 e! F; v% S+ e最後沒有無敵效果了,輸入'!' 或是 '0'。
8 W1 X' V- Q) ?
" m) ?8 g& o# G* h i r記憶體地址經由演算法篩選後,只會剩下幾個,) i9 ^$ z% f) x4 I' S4 E& D2 D
try 一下,你要的地址就出現了。
/ t5 r! O$ z9 {3 @& F: V
& \1 }2 B8 v1 L) OP.S.以上程式已經Run過,沒有問題。
% |/ A+ q/ f! o5 y: I x6 p- |5 z! p. ]2 c
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|