|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
- Y4 C2 k5 Z9 K! z; _主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 2 F7 X5 f1 x. e9 ~5 C o
0 p P s1 _' r" t2 i其實修改無敵很容易,2 q* v" {/ i! q7 Q* o1 i
就以遊戲程式設計的觀點來說,
( p+ f3 `7 G5 D A. b4 k+ i一開始我會將人物無敵數值設定為07 Y$ p; E4 m4 `
ex: % {& [7 r$ q/ g$ ]
#define InvisibleInit 0
4 \1 G9 [) K2 R, N. O$ p
2 Y4 j! S8 b- A6 C# u然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
& f# o. M- h& f呼叫設定函數, j! F$ ?* W$ d' t
ex:6 C! ~2 W2 w7 u. I$ s+ Y
BYTE InviIniVal(EVENT event,BYTE SetVal)5 H$ l9 D, Q+ g' M) t* G
{
# e- `- ` s/ h) ]4 ?1 E n//Deal event ..." O4 q& i+ l* u$ J
7 v) U/ j, {! J0 r
//Deal InitVal
& K" A( [ p* _5 q9 eBYTE ret = 0;% ?* }5 U- T0 D; W2 L+ F- q
SetVal+=InvisibleInit;6 X- r& c; l a7 q+ H
ret += SetVal ;
$ W! d, o4 E% C+ G }4 kreturn ret;
5 l" P2 k5 F' c3 k0 n. b" X' @, n} , X4 H3 g# I9 k3 S$ x, j% e* z- u
4 E# D7 ]; k. F4 e) H
最後關切的函數當然是遞減函數:
1 N+ Y5 H/ {* z, _3 \2 {ex:6 z8 m5 J3 [) P
BYTE DecInviVal(BYTE *InviVal)
/ K2 C5 i! y/ D: w2 d0 A+ _{% d, J! e3 G1 q4 q) z- i% Q8 I
cout<<*InviVal<<endl;8 r$ V9 H) Y6 ^& [+ H' e
(*InviVal)--; //*InviVal -= DecVal;
- D0 D Q% ~. f r' |cout<<*InviVal<<endl;- @; a }' U% C, C+ ?4 @' m
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;# [5 j2 b4 l2 ?: K1 E
return *InviVal;/ r9 T, B* m* j2 W# d
}: {0 ^3 Z) V1 T0 w# `+ M# K
- O P, I! }+ R: {6 F" m針對以上觀念,改遊戲就很簡單,) O- o. ~! }$ {2 ]( S4 B
一開始我們先初始化數值,輸入'?',% K/ D' g1 H4 t
接著開始無敵時,輸入'+',
( U& ]0 [3 K k接著我們知道無敵時間會開始變動,
) @& N* q* ^4 S6 f2 K7 w: R* _* _以上例來說時間開始減少,每隔一段時間輸入'-',8 }! C& `6 U( G; k! L* R
最後沒有無敵效果了,輸入'!' 或是 '0'。4 ~) A. T; s5 G$ u7 T3 `; G
+ @6 e3 j( f1 }1 t( Z3 g5 p記憶體地址經由演算法篩選後,只會剩下幾個,
) {$ u! A/ B* x+ Ptry 一下,你要的地址就出現了。
+ q5 X ~% Y' b; D. Z6 A. M8 j
4 M! O- z ^- `9 oP.S.以上程式已經Run過,沒有問題。
; L X9 l2 }2 `3 F- `1 [
; N4 x4 e* l& M/ y2 d( }7 f[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|