|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 8 F: |/ z" ~5 X
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
6 r1 t! u1 X. N$ _0 x& h, k( [
* U3 z- y) w0 S P& a3 n) I3 o其實修改無敵很容易,& O6 I1 k: |8 R
就以遊戲程式設計的觀點來說,- R/ [$ N0 {7 s( f& E1 t# N( x
一開始我會將人物無敵數值設定為0$ F2 S/ [8 b* O; f! U+ p
ex:
' ^* }3 Y1 c2 s, b2 K& l#define InvisibleInit 0- U+ x, J0 ~3 j$ a
# K8 Q k, }* B7 w4 B2 p然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),* F+ {3 G/ V# k3 L; r
呼叫設定函數' { D- O+ d$ \4 B- l+ i# D
ex:# @$ k# k7 p( n
BYTE InviIniVal(EVENT event,BYTE SetVal)2 g. |% i* Q* r, m. ?
{* ?. ? {( B; f, z* k8 R. u1 E
//Deal event ...3 l+ U5 y) ~, ~0 T/ V: E
/ X4 Y' T( w5 v3 ?( s9 E//Deal InitVal
$ ]( O2 u. G( H- {. h1 h5 q5 n2 VBYTE ret = 0;
5 i+ q9 \. b1 B$ ^SetVal+=InvisibleInit;
6 s. I% g, A4 w$ {1 a7 T* zret += SetVal ;
" a; P4 ?0 U, R$ A) L/ Preturn ret;
$ g2 N9 V2 M4 D4 ~} * r3 @( O( M* |
7 ]# Q" F* x# Z9 b5 l最後關切的函數當然是遞減函數:
: w' u4 y" f, k# F( A) o! h. Hex:
' I/ g7 N$ `: M1 t0 k+ k, |BYTE DecInviVal(BYTE *InviVal)
- j: `% c* H7 }$ D6 d1 _+ R$ N{
, c9 f5 @! R8 C- l9 U7 wcout<<*InviVal<<endl;* g+ Q$ s) u. L
(*InviVal)--; //*InviVal -= DecVal;- E- ?& i- n5 @# I0 \
cout<<*InviVal<<endl;
9 }9 q( H3 M" c: Q(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;7 d# b6 L8 u. H5 p
return *InviVal;
) y6 V- s# w9 t' B+ H0 |}( `7 B2 H6 n5 F3 i) N5 s1 }
5 S- `0 a2 M# d9 c% T針對以上觀念,改遊戲就很簡單,8 g' b# D. ]' l3 O+ Z& j
一開始我們先初始化數值,輸入'?',4 ]3 }+ {9 W3 G; s
接著開始無敵時,輸入'+',9 K9 r8 U5 \7 u$ G: O, w
接著我們知道無敵時間會開始變動,
" \ ?" w3 a) ]0 b {以上例來說時間開始減少,每隔一段時間輸入'-',& j; D- X2 ?6 L; F* u- K
最後沒有無敵效果了,輸入'!' 或是 '0'。
+ L1 n6 e% ~1 D3 a5 t, p# R/ G8 x, d. _3 F5 P# [
記憶體地址經由演算法篩選後,只會剩下幾個,
! O j2 P, O5 ?1 z! G7 htry 一下,你要的地址就出現了。
4 M! f: m' O9 j' m; ?6 C
# K1 v5 l+ S! V$ X8 eP.S.以上程式已經Run過,沒有問題。
6 P, F. l+ p4 q8 X: R6 u8 c
; g/ j& ^2 ?% U( s$ w( L3 ?[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|