|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
9 F! c$ Q8 O- O; \主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 6 k- L" z& E# R3 S
8 } Z2 V# U/ U" E
其實修改無敵很容易,
5 ?& Y+ X8 _1 R7 w8 W$ q( g. @就以遊戲程式設計的觀點來說,
5 X7 K8 t, D$ K o0 B2 [一開始我會將人物無敵數值設定為0; f- q- U2 F+ f1 m
ex: ; I' o& o5 ?! p. B0 ?: C
#define InvisibleInit 08 P$ [! O: c0 z# ~! x
! l, f4 N5 [: G然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),; m3 J2 D4 {) \/ s& a8 @
呼叫設定函數
+ R9 B& C( i+ X2 ]& xex:' y7 }/ E- I/ F3 `+ c+ V
BYTE InviIniVal(EVENT event,BYTE SetVal)
) D$ l( g- v6 P: {! ?{
! l, `' U2 G7 N3 J1 Y//Deal event ...
' c3 @) u6 M' z7 g4 ^1 p; J+ G, w) B2 w* q. ]/ F3 R
//Deal InitVal
& ~2 }3 i9 H4 U0 } M& e7 b; B9 IBYTE ret = 0;5 ?( \6 W# f5 V( X! k
SetVal+=InvisibleInit;6 R# A# x2 y, ^, a- z
ret += SetVal ;
1 ] b3 u/ [" _( \- }return ret;
3 x- z1 D9 m3 g8 N1 H} 9 h4 B6 i2 X) n$ n2 I
( d2 n' Q; L- H6 F6 O% B/ h! K最後關切的函數當然是遞減函數:
! Q5 \* F- M( jex:
Q9 H$ A- D+ Z; v$ R9 wBYTE DecInviVal(BYTE *InviVal)
* ~* c. w6 f4 L& p V" x5 Z, N5 F{1 o; c2 v& {5 j8 F2 E! j# {
cout<<*InviVal<<endl;
9 j3 c. z# M& k M* I7 A% h(*InviVal)--; //*InviVal -= DecVal;$ C- U- P6 a" i3 z' i& s& ]! |0 {6 z' p
cout<<*InviVal<<endl;- e$ A7 B* O7 }3 n' x/ n
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;5 f* d+ [4 Z; l0 I& ]) L
return *InviVal;
# r! |3 w. E9 a& s a- G3 z}
+ O, \. z- O9 ^" X6 o* t0 S. y8 @% _/ a( j
針對以上觀念,改遊戲就很簡單," k% \5 `% w# a' z5 B
一開始我們先初始化數值,輸入'?',
' b u8 C$ [! ?+ Z6 j& A接著開始無敵時,輸入'+',3 x6 s4 ^/ N0 f. R0 t
接著我們知道無敵時間會開始變動,
& Y/ g) U/ N) \5 ~. K以上例來說時間開始減少,每隔一段時間輸入'-',
7 M- [4 I# F9 p6 D( N最後沒有無敵效果了,輸入'!' 或是 '0'。
0 ~: g, p7 k1 J) m0 ^, a2 D# C7 M2 g) ?' p( Y/ Q
記憶體地址經由演算法篩選後,只會剩下幾個,+ c8 E1 G5 f/ C4 K/ ~# h1 |# ]$ Z
try 一下,你要的地址就出現了。# p V* T( r: `4 X5 e4 Y$ {% G
3 A3 t; z0 J" F8 ^. d, {
P.S.以上程式已經Run過,沒有問題。! \1 I6 i* ^' r( n" @$ F
2 \5 S: j& J. ^) Y' P[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|