|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
) @! ` ~5 e! J主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 # @& g1 T3 F3 N. e- j2 x' b! D
5 D( J( O1 y6 \6 ^$ w. j1 P9 M其實修改無敵很容易,+ [# \% }5 c+ l- b
就以遊戲程式設計的觀點來說,* _* M! |& Y7 e
一開始我會將人物無敵數值設定為0
6 {% m3 ^6 A1 Q3 R3 c$ G4 S+ ~ex: ! R- F A! }9 i
#define InvisibleInit 00 q/ f# O3 }2 @- a
1 Q! }4 ?$ b' f然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
( p$ }/ K7 M; D* Z呼叫設定函數6 x; w1 S6 `7 h- ?/ o
ex:
+ Q5 d& n1 X5 dBYTE InviIniVal(EVENT event,BYTE SetVal)* d8 y# g* l: Y0 g
{+ m m# ` n! B+ E' b } w$ x; N i
//Deal event ...7 ?) | @( s# _4 s0 K2 L6 \! I
) w4 n' Q' T- I/ T- l0 _//Deal InitVal
! u# k" p5 X9 F) qBYTE ret = 0;1 ~, V& F. p7 F+ [% V" L
SetVal+=InvisibleInit;
) R K. C' n9 `; Z, M! `8 N$ Gret += SetVal ;2 e7 A/ j+ d( Z4 I8 }
return ret;
8 v/ z4 h0 q% l} 3 T( M) b* M; b' o+ I- v5 D0 I6 _
4 P8 z4 H/ }' d+ T* h0 ^' J+ f最後關切的函數當然是遞減函數:
" ? v B$ ^+ ^ex:
! A) N3 S, w! I4 |, `. M1 J6 }BYTE DecInviVal(BYTE *InviVal)
' }* m4 Z8 y! B6 O9 A* X2 J1 Z9 v{; ?5 ^) @, z7 K' s8 c: o
cout<<*InviVal<<endl;
" I% B# G8 x# j. e/ M% U(*InviVal)--; //*InviVal -= DecVal;+ W6 w- U/ t. n( q) T
cout<<*InviVal<<endl;- [. N) Y; n9 {5 E% g; g
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;1 h8 T5 m1 C9 i2 ]$ ~* v4 A& \7 \5 M
return *InviVal;, G4 `+ _" r" d. ^% \+ I
}
$ g+ q0 O, V, E
+ c% M% x2 w; Z2 I針對以上觀念,改遊戲就很簡單,5 v2 I, B: b g9 U# B. ~5 D. i
一開始我們先初始化數值,輸入'?',
. `! w' z& O9 j) g4 h t接著開始無敵時,輸入'+',
; t6 a" T5 q, _4 a接著我們知道無敵時間會開始變動,
0 R$ l2 r! D5 I以上例來說時間開始減少,每隔一段時間輸入'-'," V# n2 b( i/ l, j. W) h6 O( L- l/ i
最後沒有無敵效果了,輸入'!' 或是 '0'。" p N5 u$ Y3 R# l8 S* B% g
2 M9 t7 N8 f* o" w0 I% j/ D/ K記憶體地址經由演算法篩選後,只會剩下幾個,* f6 J) }/ J: G: U9 c/ L! _( B* o
try 一下,你要的地址就出現了。
/ \( g6 X G& C( p' |) t$ |2 x9 X2 C
P.S.以上程式已經Run過,沒有問題。, o, E6 U: R0 {. u7 c$ D
" z# q G4 F5 Q7 @" p" K3 S) j
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|