|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
5 ?! A3 h3 L7 s主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
/ }0 c0 f! O* T0 l; }1 _/ D/ @& `6 Q! b, u9 j
其實修改無敵很容易,; J, `/ u" p& Z2 P" ^0 P; k* g
就以遊戲程式設計的觀點來說,/ _9 T% A$ a4 x1 ]3 \
一開始我會將人物無敵數值設定為0 W1 }3 h% g4 n l7 h
ex:
: M% h5 Z$ c( D, x$ t3 v. c% J9 D: H#define InvisibleInit 0
6 A1 i. b) ?' Z. W, G" I3 o, k( u
( {- W+ k8 l$ |' P4 B* q+ W然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),+ k' V1 I3 O% M9 O
呼叫設定函數* K; L' q$ F+ S g P# }
ex:' S/ S9 r$ w$ x" R: V' {0 u3 J0 ~
BYTE InviIniVal(EVENT event,BYTE SetVal)
) e, j' h1 s) H5 f ?$ O4 J' a{
+ F4 W: D4 }4 f3 [//Deal event ...
! ~2 s- }7 o7 q( e% R1 \: O, N0 L: B+ P' T0 U
//Deal InitVal& z. U( g! A& t4 r2 W
BYTE ret = 0;- j) ~- l0 O1 \! w K9 I G6 c8 J# W
SetVal+=InvisibleInit;3 G0 l% _- G8 y0 k1 n
ret += SetVal ;+ z0 L5 { C9 S R1 b3 ?( ~1 g) ?) H
return ret;
- v1 g% }8 m9 g& I}
1 P: n4 l( B- o+ M
1 M1 V3 a+ r1 R$ V# W# c1 c. T最後關切的函數當然是遞減函數:. T& I0 v4 q0 ]' Y+ ?/ M0 |
ex:
6 |5 @" ^1 k8 R: P5 T- c) C) ?! qBYTE DecInviVal(BYTE *InviVal)* u+ |+ W6 P8 \- ^$ Y$ {
{
% O- o4 \1 o x' Q4 G7 pcout<<*InviVal<<endl;
" o* J" I0 I9 e" z6 _& G) T(*InviVal)--; //*InviVal -= DecVal;
+ Y; p4 X$ U+ n8 k9 Wcout<<*InviVal<<endl;
7 z6 Y1 {' N& O$ }" ?(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
1 q2 k/ r3 u5 A) h) {. ^return *InviVal;2 ^/ _; p! d5 @% _4 b
}
0 C# C/ P0 J9 _1 r0 h
6 [' T) ~' W$ _4 ]+ T9 b; v針對以上觀念,改遊戲就很簡單,
" P* P/ `/ z# q1 @6 e% t一開始我們先初始化數值,輸入'?',
% j" e' @+ u2 h接著開始無敵時,輸入'+',
2 u5 }6 f% ~$ T1 m接著我們知道無敵時間會開始變動,2 b2 z# ]6 C/ h, [# |
以上例來說時間開始減少,每隔一段時間輸入'-',
$ D/ i$ `9 p" o0 l, S5 Y# I最後沒有無敵效果了,輸入'!' 或是 '0'。/ N, \# z+ a9 U9 g# k, q
: ?9 `8 Q2 c# e+ c
記憶體地址經由演算法篩選後,只會剩下幾個,! k% o- O+ [& K3 \2 J' {
try 一下,你要的地址就出現了。, G( o% p% E' u5 g4 n) y; a
. g8 D2 s) v0 ~- W8 i7 @7 VP.S.以上程式已經Run過,沒有問題。
: ]3 _- v1 [6 O) Q9 I+ F
5 ~7 `4 e: f* E d1 q2 N[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|