|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
; Q; k2 ?9 @; T1 ~- R& C主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
4 y5 Q# d( f# u" k2 L. t) w0 {* h5 g, L* t( L+ }8 Z* P8 @
其實修改無敵很容易,
# H1 }5 O! x0 i4 T0 h# x) F4 _就以遊戲程式設計的觀點來說,+ X P7 _, N2 v3 G3 F* D
一開始我會將人物無敵數值設定為0
2 _7 n$ ]7 k1 O# ~4 W" mex:
7 l* Y/ g( x9 D% V; x9 E) E#define InvisibleInit 0
2 q# ~8 |0 s( X& Z, E8 ?/ L( A1 f1 Y& y" Q- s
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
4 ], j, Y! g: d: w$ a, s呼叫設定函數
. e, |0 |0 |5 D& G2 q7 O5 P$ {ex:
% T9 r& g: \2 j7 Q* G( J, H9 e" lBYTE InviIniVal(EVENT event,BYTE SetVal)
8 L. R$ c& V* q3 G{
- b# E; \9 d2 w8 K/ U3 a7 U7 `//Deal event ...
* p" s$ w1 i4 c. i. j" K& y0 O
* X; @) V' J! F" g//Deal InitVal3 J/ M4 p& z% k; @6 e* I
BYTE ret = 0;
! Z# i% Z1 r L* h) Y; [SetVal+=InvisibleInit;
. f1 i% q& J j+ g1 X+ mret += SetVal ;
& E7 `% E9 Z2 ?# oreturn ret;8 O# U; U0 m1 G
} 6 [3 c9 \# A ]9 Z) v, z9 m) o
0 x/ d! z$ ]7 @* i6 f/ t! b! c最後關切的函數當然是遞減函數:
0 \, X# N$ ?2 S- O I9 dex:0 R4 b! e8 ^ C5 l; \( n7 c
BYTE DecInviVal(BYTE *InviVal)2 X3 K2 D. @* ~# ]0 |
{
# q% e% g6 s* V* S) g/ C5 Ecout<<*InviVal<<endl;
$ k, e) F* |$ J- E* I( J' Y(*InviVal)--; //*InviVal -= DecVal;
; P' f, n& F/ d( e9 S# Gcout<<*InviVal<<endl;/ L7 S; l% H. ]- w$ x" v3 _# ]
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
3 g$ R; o' z& o3 J0 k$ t& Y. H% jreturn *InviVal;
( R3 U& ]0 D& T" \* g} y/ f7 X0 ?' B2 w
6 H) A8 F. [8 t3 K7 c1 i4 F U, D針對以上觀念,改遊戲就很簡單,0 { y! x& u/ ^$ e3 x: h" b8 P9 `
一開始我們先初始化數值,輸入'?',
+ L- N4 |# \: l2 N6 W. l9 P: g接著開始無敵時,輸入'+',# s- e! A! X. ]4 Z! k
接著我們知道無敵時間會開始變動,5 ~; x' ]$ i5 O0 C; n
以上例來說時間開始減少,每隔一段時間輸入'-',
, \+ |: ^0 s K! o最後沒有無敵效果了,輸入'!' 或是 '0'。' A6 o/ D. u0 c2 J
5 E9 y. m- J( X, |3 Q- ?; y9 d7 i# P
記憶體地址經由演算法篩選後,只會剩下幾個,
' y- r ]) u; K9 Qtry 一下,你要的地址就出現了。
1 u6 Z+ ?$ P; W) g) }$ |4 B% b$ i5 s$ A% O0 [
P.S.以上程式已經Run過,沒有問題。
0 ~7 V+ s1 {% L: K$ @
) l# ]& F6 J8 u[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|