|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
/ E5 B# U% T/ D& h2 |- y! B主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
! @+ {7 f' K F. S% H ^9 S6 A5 p4 t
3 O9 D1 a( Y6 [! ?% v5 w其實修改無敵很容易,
, T7 ^- V# Q: D* L7 y$ \5 L就以遊戲程式設計的觀點來說,
) Y* ]/ T9 Q4 Y* p2 P0 w一開始我會將人物無敵數值設定為0( T0 B/ A/ n/ a& B
ex:
. {4 _8 _4 ^, q#define InvisibleInit 0
. h& W8 z/ ?0 D* P% W$ c e7 s& @/ y5 G! J3 ?( b: i4 {8 b% y. q: K
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
" m; F u# N- c呼叫設定函數
! s; z7 j% \1 R. W/ g; `( r0 M. c: L9 R# Wex:
3 X$ @" M2 |4 l4 _3 o; ZBYTE InviIniVal(EVENT event,BYTE SetVal)
5 d, M& v7 s. ~9 U0 s" j+ X{# @" T$ R* u' v' J
//Deal event ...
$ y) `9 a; b% p o7 X6 |7 j$ x! u
; e- B% b N& O2 Y, k* P! ~//Deal InitVal& {8 v! ?3 b; v% p0 _7 k
BYTE ret = 0;
4 g. I* W1 \4 U1 t TSetVal+=InvisibleInit;
8 p) d+ d6 m9 ~1 h/ e) e J1 mret += SetVal ;3 U8 O! J' ^6 [. |! K
return ret;+ Z$ ~# x a- ] y2 ^. L$ W
}
0 v! `4 X0 A5 r5 w0 e- S N4 k% H: c- H8 T! W
最後關切的函數當然是遞減函數:5 ^- f- n7 x, ~/ |. H3 h4 l
ex:
" v. n+ P3 z, g0 e6 S: U8 i2 o! hBYTE DecInviVal(BYTE *InviVal)3 w- R& }" \7 a2 w7 ]: M
{
$ ]. T, A' z: _1 Wcout<<*InviVal<<endl;
1 B# }& y4 f/ J3 S7 A5 O( P( y(*InviVal)--; //*InviVal -= DecVal;) P6 O$ O' k7 l; H0 |% ~ h$ g# K
cout<<*InviVal<<endl;) d& v% m h+ D7 M5 H5 C: p
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
. P! \" N1 Z/ r" [return *InviVal;
% v+ X, \% a8 V6 ~}
$ y! x! `( [9 R3 e: [0 {# J: @ f; A
2 @! A7 \8 n- x. h: t針對以上觀念,改遊戲就很簡單,
7 a' |8 ]1 Q1 O5 m一開始我們先初始化數值,輸入'?',
' U- c+ G& H* S8 t8 G接著開始無敵時,輸入'+',# l0 K8 |5 d5 B; J3 o
接著我們知道無敵時間會開始變動," u( N0 ]$ R5 F4 v# G7 S% A) D
以上例來說時間開始減少,每隔一段時間輸入'-',
6 G) N$ k% u$ [. f3 Q( ~最後沒有無敵效果了,輸入'!' 或是 '0'。
% e8 Z$ h7 N$ \! h# O" C' {
* `) a6 s' h- |5 R. _記憶體地址經由演算法篩選後,只會剩下幾個,% A) D* E* `# F* q* [7 Q! Z$ i
try 一下,你要的地址就出現了。 s" M; D+ E" {, p# g2 x! r
% Y7 g- g) K: j3 f& W3 [P.S.以上程式已經Run過,沒有問題。
2 z: [# A j. X! l# C x( T! Z$ q' s m
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|