|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
( l6 F' x1 }( W$ H* H# U$ u% t主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
' _) r5 M3 ^& o7 G/ R, f
& ?' h9 M" s6 I5 X3 ?; y, j其實修改無敵很容易,- f* X. t; E- _6 z d
就以遊戲程式設計的觀點來說,
. Y( `5 X. a: N% z2 I一開始我會將人物無敵數值設定為0
* ~4 _8 I# U, X. v0 Kex: 3 z9 z* n/ C/ s7 X
#define InvisibleInit 0
. ]3 r0 _6 q" ?. T1 u8 A( @5 `0 W: g5 @1 N* G$ `
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞), `+ G5 Q) U: ^$ A7 I
呼叫設定函數
# Z e! J" p, D6 X. w) K8 |5 p, Vex:
- ~" C, N1 l U) @# s8 b6 p& V; w. xBYTE InviIniVal(EVENT event,BYTE SetVal)
p; ~5 V8 L2 u# s- W) |{6 ?5 P) L3 U8 X
//Deal event ...0 g" e( p0 V7 u; Q* N# {2 J
9 ?% v8 b0 s# L, R' w//Deal InitVal8 D! `4 v8 ?5 P6 l6 U+ Y6 {
BYTE ret = 0;
& l) s5 K4 s( T, S9 ?% ESetVal+=InvisibleInit;+ ^' z) L$ c+ O- e8 J2 A
ret += SetVal ;; ~$ p( x/ Y: H
return ret;
- _: @9 c" }; s9 J& y}
/ l, b S: R5 x& _5 r/ P3 S" H0 ~6 Y
- o( W6 M9 J5 _! J2 ^最後關切的函數當然是遞減函數:
1 f1 B# s& w; S& {3 _ex:
q! h: r( j8 x/ g$ M* M4 A: GBYTE DecInviVal(BYTE *InviVal)7 U: H4 F& ~3 b# H3 T0 R$ \9 a
{3 j% `( Y9 J2 }) p- u/ k
cout<<*InviVal<<endl;2 o; n" r9 r0 F, x: o
(*InviVal)--; //*InviVal -= DecVal;) s) f$ ? V/ X ?' W
cout<<*InviVal<<endl;
- c4 e# U- t' g5 F' k(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
3 E8 _( k, h) g+ M- E5 l) xreturn *InviVal;
; X9 T3 g! a2 ?5 z7 f2 L}
' D" @# T3 n* @/ h% E0 A+ Z- i
/ n! \1 G3 m! Q0 O+ b9 r針對以上觀念,改遊戲就很簡單,
( c+ t( _5 F2 O V7 I+ l8 R! i6 o一開始我們先初始化數值,輸入'?',
6 ?% Q0 g/ C2 l; C1 _接著開始無敵時,輸入'+',# Z+ \. e. C& V7 S: F6 c" ?( M
接著我們知道無敵時間會開始變動,3 L7 Y0 @6 ]% X4 f! s: d
以上例來說時間開始減少,每隔一段時間輸入'-',( J7 n9 s; D2 Z3 j- }6 ]. R
最後沒有無敵效果了,輸入'!' 或是 '0'。& R+ B( G* y; E) @# n
. u' t6 I, d& P記憶體地址經由演算法篩選後,只會剩下幾個,
7 h/ S. p6 \; o+ ptry 一下,你要的地址就出現了。
) \- ]# f \+ N* M
) k6 C' E: K+ i! @P.S.以上程式已經Run過,沒有問題。2 {# a B8 {) [* T( j- [7 a
' {& N; N( r) l! N% N: O% x
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|