|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 . b H/ A$ Y0 i: Y
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
! L1 m3 F" C# e7 l8 U& a. ?5 t) H* E
' U8 ]2 r3 y1 M8 b8 Q其實修改無敵很容易,! p( t, |: V' J, T7 H8 }, B
就以遊戲程式設計的觀點來說,: }" T" R# R1 `! j6 _7 |# M) i
一開始我會將人物無敵數值設定為0# K4 O3 d/ j8 ~& H% t2 \
ex: - d* p2 s: T9 w3 |5 j
#define InvisibleInit 0" J; O7 v0 Y! i8 u- p( d: O
3 k# l- n2 y* U3 v
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),3 e6 Q( |3 d9 e) q \9 w7 o
呼叫設定函數) c0 y9 ^7 t, n0 K8 \
ex:6 q7 ]- q% i1 h- }0 [# ]
BYTE InviIniVal(EVENT event,BYTE SetVal)
& y+ F" _8 `8 `2 [$ D# p. U: r- f4 a{( V1 w1 O* @4 ? w9 v- { H) G
//Deal event ...
" |) A1 S6 |5 e6 \2 F$ p$ j+ A/ G; P% {' q
//Deal InitVal/ i, j; ], P! { ]
BYTE ret = 0;
2 O! b* f: ]2 wSetVal+=InvisibleInit;
8 n k# t. H# h, m6 Nret += SetVal ;( B; a7 c; x/ _/ Y" S9 b
return ret;
; I6 N; h# f: s} ' {5 q8 {4 y2 E5 j$ y. g' I
- X' a: X% p$ W/ N# P4 Y8 T1 I最後關切的函數當然是遞減函數:
Z* f: x# v1 h. x6 x- {4 ^ex:6 U. }& c! ~; [7 l/ L" M" i
BYTE DecInviVal(BYTE *InviVal)# T& ]" J9 ~/ h
{
; _6 K! j/ ~. n6 U* U6 |" h: Icout<<*InviVal<<endl;9 V4 N* K& _1 z. X( O5 ~$ g
(*InviVal)--; //*InviVal -= DecVal;$ E9 I! R) c4 D) w+ }
cout<<*InviVal<<endl;
* B: r U; v" d# x& _; W. q1 m' A(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;+ U* i9 @; C H; l8 z
return *InviVal;
% O' q( a# r, ~( k2 u4 _8 V% o0 _+ Y/ @}8 F3 V0 p$ l% y" a
! U& h7 i1 \; l% f4 Q5 Y- o針對以上觀念,改遊戲就很簡單,
2 L% ]# a7 n0 G) p1 M' [一開始我們先初始化數值,輸入'?',. r. r4 {) I, d# M
接著開始無敵時,輸入'+',
: H Q6 b6 d& |% m接著我們知道無敵時間會開始變動,) C. c' l3 Q2 D8 w
以上例來說時間開始減少,每隔一段時間輸入'-',$ p _8 V1 [% @0 u/ C- f, b
最後沒有無敵效果了,輸入'!' 或是 '0'。4 Y: ~# N$ Z/ w" A. [- i2 n4 {
4 K/ V6 w/ J; Q" l$ ~- }) v7 \" r
記憶體地址經由演算法篩選後,只會剩下幾個,
_- \# m/ _, v; Utry 一下,你要的地址就出現了。
9 F, [$ ^# d' S" ?1 m
2 m7 Z. o5 ]! N9 [5 WP.S.以上程式已經Run過,沒有問題。! R2 P: g% W1 {2 D8 Q8 X; Q
! D. E! e( g" W" q/ X0 p
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|