|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 % s" W; n- p$ J3 @. N
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 * B" A: t4 w7 |4 B8 i' F+ b$ Z
d2 q- W2 n0 L) e' |) W4 ~其實修改無敵很容易," G' Y1 a/ M; r/ C/ e3 Z
就以遊戲程式設計的觀點來說,
4 F# y$ k" d9 {* U一開始我會將人物無敵數值設定為0" z7 C& O5 r- r+ T+ ]7 Q8 s
ex:
4 b1 i& }0 ]! Z$ m) f#define InvisibleInit 0# K2 a9 ?. w& Y3 H N e
4 W' I* { Q u( F, E
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
" j, o0 |* F/ w1 g呼叫設定函數* k+ ~9 P. J$ b: U/ Y; p" r& |
ex:
; U0 |- G+ @/ {1 ?" f& ~( L0 |BYTE InviIniVal(EVENT event,BYTE SetVal)2 I" s- h# U0 F) n1 `
{
3 A- w5 w2 S0 w' t" I9 \//Deal event ...1 Y+ X$ T3 e# ~% X4 k
: N! f1 ^+ M9 Q//Deal InitVal
( |, K( V0 ~8 c7 `4 L; I" qBYTE ret = 0;
, ~; y' O% I2 GSetVal+=InvisibleInit;
1 ~3 v$ `8 {+ X; _5 \5 ~ret += SetVal ;- a) q d) X& K
return ret;
! ^1 @' g* y1 ^} . {7 K) D% R9 r5 a( N8 I6 ]8 V
7 A# Y4 ]& r: M& X3 x& J8 K最後關切的函數當然是遞減函數:8 g3 w6 _8 K0 g' t% R+ r/ o q' O
ex:
& y" v( C) ~4 w9 z% aBYTE DecInviVal(BYTE *InviVal)! V6 A" I) ]* y* p7 `0 c4 D8 O& w
{% D2 B3 V5 }( \$ K* o, F/ n
cout<<*InviVal<<endl;' t/ o x- ^. R$ p) a. P$ Z) _
(*InviVal)--; //*InviVal -= DecVal;$ b$ ^1 h$ v, T) }: I
cout<<*InviVal<<endl;* S6 y, A1 O5 o
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;5 r4 k% a" D [% O1 G6 W
return *InviVal;
( K8 _) r1 m5 ?% L}
$ d" {8 t- T, r3 z
: n1 o* k D+ R* R5 t針對以上觀念,改遊戲就很簡單,
% H9 i W6 X9 f+ i w一開始我們先初始化數值,輸入'?',
) p& v$ @- X, }& V0 R$ V接著開始無敵時,輸入'+',. x2 e- L! b9 u
接著我們知道無敵時間會開始變動,
' P) w, _: W% H% Y以上例來說時間開始減少,每隔一段時間輸入'-',( B( d% x! S" x; p% h& o# m
最後沒有無敵效果了,輸入'!' 或是 '0'。! K2 A& F9 P0 N6 x7 `! W% q% h: K
6 B9 k2 p3 c' L& G8 G% R- Z
記憶體地址經由演算法篩選後,只會剩下幾個,7 t1 j3 ]/ J1 U3 o9 U7 p9 u" G
try 一下,你要的地址就出現了。
1 h: ^/ _3 u( V8 T" B8 ~3 I4 c l3 J. B% L0 Q+ l3 {% l
P.S.以上程式已經Run過,沒有問題。
V/ E4 o7 r8 m9 {6 i
8 e$ k' O z; N1 J% i[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|