|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 1 v& o7 z2 G- p/ a: O$ G* M A
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ~; v; T6 h2 S
2 R* t, _% v1 w! r- g7 v其實修改無敵很容易,
. I. F. U1 Z7 x$ {+ U就以遊戲程式設計的觀點來說,
4 |, _7 u7 B2 W/ P9 y一開始我會將人物無敵數值設定為0
+ Z d: w8 l# hex:
+ g7 q# |/ F. m#define InvisibleInit 0
3 j% z, M" h3 h7 p2 _
6 F% X5 ]- d* J [, O8 L5 }$ k然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),$ b6 {8 S w0 h, q0 a" s" `2 g7 B
呼叫設定函數/ e) e$ _3 k* F( U$ \9 k& F$ C( o4 ]5 Z
ex:
; \* G! l5 T0 H" LBYTE InviIniVal(EVENT event,BYTE SetVal)0 r# I$ g% n! Y* F0 r; T
{
5 m8 p, |) m4 J+ h//Deal event ...
# l$ [) z0 c" N' |) \* [4 e6 k+ ~4 s! r6 @0 t1 f8 x! t
//Deal InitVal6 V2 I, ~ G; ~9 i1 ]! I- p2 o4 a
BYTE ret = 0;7 ]6 g& ^2 f5 I. p& U
SetVal+=InvisibleInit;* X$ `- v5 K/ j- P
ret += SetVal ;
+ D2 v6 g& _" J/ f# A5 W3 K' mreturn ret;
; y2 ^4 r! |6 Y2 v% X6 w+ F3 _} 7 o6 r& V* I1 w6 a! m. S3 S1 Y. J5 O
0 v9 @5 j# v- ]0 }( o \( z: ?' q最後關切的函數當然是遞減函數:
& s& j7 @5 I. q- vex:9 r" K. T2 P* e/ d* C
BYTE DecInviVal(BYTE *InviVal)
9 Q1 O2 s8 X9 C( c% {) B6 Z7 j{9 Z4 D' F. j9 C0 n: Z, d1 {$ e
cout<<*InviVal<<endl;
5 Z, o* @' k# j# C0 t7 `(*InviVal)--; //*InviVal -= DecVal;: g- Z* D- ^+ f8 K1 w+ M5 E
cout<<*InviVal<<endl;+ b/ T6 z& }6 a
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
$ B) T! L6 ^& G |9 }+ e8 Q5 Oreturn *InviVal;
! V: ?" y: ~* r! k1 N) f0 p}6 s9 j9 U- n0 }( d$ g) E
5 G! x" u8 |+ v針對以上觀念,改遊戲就很簡單,
# b. }) x: Y8 f! K" m f一開始我們先初始化數值,輸入'?',3 U4 b$ {1 J. \- c+ a
接著開始無敵時,輸入'+',
7 P- Z* d, |7 [* A接著我們知道無敵時間會開始變動,% S; G6 R* c& E E
以上例來說時間開始減少,每隔一段時間輸入'-',4 x1 \2 h. t5 { R$ i
最後沒有無敵效果了,輸入'!' 或是 '0'。& J! b( z1 a' G
2 x% ~7 i. R' R, { f( Q
記憶體地址經由演算法篩選後,只會剩下幾個,( m+ [7 F! S' P5 a
try 一下,你要的地址就出現了。
9 O/ w3 @- I/ U8 J$ ^5 X" K/ N( O/ I6 k& X
P.S.以上程式已經Run過,沒有問題。
& O' T- L5 `2 I! R s2 F$ B. K3 }- z2 a- R
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|