|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 7 R5 o; S& W+ |, V) n
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ( p; I4 J( x/ J
5 y7 ^5 {. H. ^; O# `$ y其實修改無敵很容易,$ N" X8 E; u' O0 y
就以遊戲程式設計的觀點來說,
8 p* f, W* |5 [一開始我會將人物無敵數值設定為0
+ O. V( \0 Y) M0 g2 X6 L' ]. wex: 2 w. J& a9 E# L7 Q5 A
#define InvisibleInit 05 E( e" u2 u9 P/ [( G: z! U& E
- k0 q: c0 Q% }6 s( {/ ]* B
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),) g9 B* P `: s* ]$ K# @$ z) x1 X
呼叫設定函數* m6 K5 D7 |1 a3 ]9 S
ex:
0 J. M2 \1 k+ I5 ABYTE InviIniVal(EVENT event,BYTE SetVal)* J8 W4 G0 Z ~" W
{
: Y' h' r+ k4 n1 [& x, _+ z8 Z5 X//Deal event ...
. X$ x" E! z* q, h% ?7 a h6 w; K# y- b7 ^' z- o: j! A' {5 b/ `
//Deal InitVal
# K/ X% p$ d9 O( ~9 y( ~* XBYTE ret = 0;! P7 R8 G6 m* B: o
SetVal+=InvisibleInit;
) P# j: w E/ j6 W. e, N: kret += SetVal ;0 t1 |+ X2 e& ~% i. x, l
return ret;( h5 N/ A; v' ^) t1 {
}
- y- r) H8 [0 U: \8 q
1 H% e. o9 L( I最後關切的函數當然是遞減函數:0 [9 C, j2 ?9 O' p/ c& s
ex:8 N5 U9 S0 {% H* \' M# T3 c/ r& {
BYTE DecInviVal(BYTE *InviVal)* |6 Z6 a6 c- L7 ?% X( g; P
{
$ L( b! [3 S, n. X0 F! ^$ }$ h" |5 Dcout<<*InviVal<<endl;9 d; q. a9 I. u8 C
(*InviVal)--; //*InviVal -= DecVal;! x: i) D$ c' ~
cout<<*InviVal<<endl;1 ^. a+ J; E1 ^3 t8 t* E4 S
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
6 j0 ?- C! k; R. J s; areturn *InviVal;7 b) p5 \* O: r! G( o
}
5 G4 n7 `2 k2 G. Q! z2 W
/ A" Z- ]# d6 j針對以上觀念,改遊戲就很簡單,. E) s6 D; Y0 h' O8 o" z6 O
一開始我們先初始化數值,輸入'?',
% w- ~4 M0 i( V! n% w接著開始無敵時,輸入'+',
5 F. ?3 c Y* m o+ B) F接著我們知道無敵時間會開始變動,
3 @- l3 Y0 e5 A( [0 J/ q以上例來說時間開始減少,每隔一段時間輸入'-',3 _' |: N0 w9 u( R" G# u
最後沒有無敵效果了,輸入'!' 或是 '0'。# e$ N6 O" \5 B- Q
! Y; m& I$ I. d; l
記憶體地址經由演算法篩選後,只會剩下幾個,
- r0 |2 {/ i8 H3 @4 Dtry 一下,你要的地址就出現了。
* }8 \. L p7 S$ o& I2 f& D5 m- O) Q4 O9 M! R9 U
P.S.以上程式已經Run過,沒有問題。6 e) @# T) j6 ]1 l# ~' S- r
! T& @. M c$ O. J[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|