|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
# h- f- c6 @8 R# v4 l主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
& D; B' F8 R: J1 A! j5 A
* y7 O- s0 u+ q# E9 E/ f( m其實修改無敵很容易,* m& w8 E0 h B( n' n+ K! Z6 v% I! y# `
就以遊戲程式設計的觀點來說,
" t4 \3 X. X# h5 w一開始我會將人物無敵數值設定為08 {* W! C4 m6 U6 L% t
ex:
& ^1 Q: ~( K0 `' D: Y#define InvisibleInit 0- t. H! V" [3 ]. l9 F1 L* n
2 V' n i5 I# K% n然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),3 {0 Y( S! ^! T! Y. s' G( }
呼叫設定函數, K9 G- o2 h, O/ D1 R: b
ex:) w5 k4 K( J: g$ `6 T
BYTE InviIniVal(EVENT event,BYTE SetVal)7 h2 a% h2 u/ W5 u
{
! t& K0 w1 g# D3 S9 R2 \//Deal event ...
2 R8 y& H K2 G8 p9 a0 D# g( ]6 @# A6 y2 q" `
//Deal InitVal
' f* Q! j3 K- X* ^# q4 x0 ^/ rBYTE ret = 0;4 u/ y; P) o G$ F" R
SetVal+=InvisibleInit;
6 p/ _8 z k/ Kret += SetVal ;" S% D2 y( \* Z9 K" i$ p
return ret;
/ G* d& K% Y* m7 ] D! A}
' a& S# N$ d* O; V0 q9 W t( {! f9 V8 f# i+ p& g
最後關切的函數當然是遞減函數:% J) I$ Y: ~) o$ |7 W% j& o
ex:# i. V* B' @1 W+ x% e; c
BYTE DecInviVal(BYTE *InviVal)/ g# L0 Y4 v0 R, a9 p6 I1 B
{
; q. c4 [% |( _: U% ^2 jcout<<*InviVal<<endl;
6 i4 p% c" U& F! w2 e* |: T(*InviVal)--; //*InviVal -= DecVal;
8 F% _/ }" r8 ^0 Zcout<<*InviVal<<endl;" U" y1 K; y+ {0 m8 t1 Z* D7 Z J
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
# `0 {( h4 G9 x U0 e( {return *InviVal;
2 F7 C. J: \+ D}1 l% Q' E8 D) x5 u+ {- E
- N$ J$ m0 {1 Q5 D針對以上觀念,改遊戲就很簡單,
: f1 S# T$ P" R. d1 a- F一開始我們先初始化數值,輸入'?', p; a% j9 D$ O6 P
接著開始無敵時,輸入'+',/ T! _ l% \6 N0 y
接著我們知道無敵時間會開始變動,
. H6 d5 j3 [% u, g# D以上例來說時間開始減少,每隔一段時間輸入'-',( W% [4 B0 r2 @. j5 e
最後沒有無敵效果了,輸入'!' 或是 '0'。% G$ h @0 y$ H v
& E: c: x4 g/ x; {" s0 r7 ]9 i
記憶體地址經由演算法篩選後,只會剩下幾個,
) L. L- U) b7 Ftry 一下,你要的地址就出現了。
, ]$ k) w- f7 ~( g' ] Y# W( Z: k( b+ u6 b1 t
P.S.以上程式已經Run過,沒有問題。6 ~3 p. B7 J) r8 i3 r$ f5 R n
. ^ p# J0 f: d8 c$ E. ^& g
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|