|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
& |. }, t+ J& \9 ]* \1 W" [主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
* C0 L3 m# S/ ]5 k/ g8 k7 s- ?4 N( v' H
其實修改無敵很容易,; }0 U. w- g0 f# @7 h& u# Z
就以遊戲程式設計的觀點來說,2 N- Y2 z6 x/ n# c0 e
一開始我會將人物無敵數值設定為0& h- z5 ^: K7 _; m: h" B
ex:
: F) y* |1 x: z% }$ x. X. c5 u#define InvisibleInit 0" _! D0 e& m1 a: z# V
$ \- ~+ F E2 Y+ |9 W% x
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),+ g. V+ O, [* u- G( U8 {# ?
呼叫設定函數) b1 b* a/ b/ b( ~5 k9 P
ex:
6 s- k; x c* B5 ~' t; ^& r3 `BYTE InviIniVal(EVENT event,BYTE SetVal)
& X8 R! P- P5 K) a' r# U% ^{& I6 {; {* L+ P; U/ J G( y D
//Deal event ...$ j7 I6 k. W8 l! u
: a0 f3 E: n+ C- i$ Q//Deal InitVal
3 z* D5 R/ f" J* YBYTE ret = 0;8 i% B( [) d- r/ t( R
SetVal+=InvisibleInit;
; X8 E' b5 E: S. u( cret += SetVal ;
# i/ ~4 u" d& l" |9 Yreturn ret;
. ?+ Y6 W! t; \' e, I} i# M# N* a$ F3 j1 l# ?+ [* C$ s; |
, ~% v2 I0 k: r- S) M0 h最後關切的函數當然是遞減函數:
8 o. R' R1 ^! v6 }0 eex:* P6 _# f; r0 Z. D: l# B9 j
BYTE DecInviVal(BYTE *InviVal). `: B/ k ]! g: i" [0 h! E# e6 f
{
3 K# m, P! i+ i3 ~/ m% }% ~! Scout<<*InviVal<<endl;
: a* K& r5 }8 t' N(*InviVal)--; //*InviVal -= DecVal;
1 s9 o$ f E6 {( j5 ?* bcout<<*InviVal<<endl;
' E- d2 x% W$ ]1 e7 L/ p; r5 F1 F(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;, a; d! k9 I# I% Z P
return *InviVal;* F+ d3 Q% N4 `8 _8 Q/ H
}6 G' s: n3 T7 R( N
- R% `" S) m' u" y+ _4 h& p9 }: T針對以上觀念,改遊戲就很簡單,
7 m* o4 |' }) h" q# |4 d- U一開始我們先初始化數值,輸入'?',
* G+ @3 U% E2 ]% s+ Q3 c7 _接著開始無敵時,輸入'+',
* ?1 C3 ]+ ?& H& [; C5 a! a接著我們知道無敵時間會開始變動,
) |# F$ o, P6 E5 p5 X% R" b. t以上例來說時間開始減少,每隔一段時間輸入'-',
" d# p$ q9 `$ b8 G q/ `最後沒有無敵效果了,輸入'!' 或是 '0'。
3 O; ]& S8 e, g8 G9 c
6 f3 V' [7 l% c記憶體地址經由演算法篩選後,只會剩下幾個,
( m0 L: @, b& v: E3 |* mtry 一下,你要的地址就出現了。
8 J* u# w2 A( d [( S; k0 W" K1 |+ n
! x% U6 S# z9 K/ @P.S.以上程式已經Run過,沒有問題。0 y" }( r- @# Z% d" b% H8 p& \9 Z6 O% z
! X& c$ k; _+ q# U- h! i
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|