|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 4 |& f2 V8 \; _ L2 I1 F" E
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ( v/ O& }! J1 @6 A; ]5 m2 Y
' X1 I0 ^9 _9 e: ^* m
其實修改無敵很容易,
Q4 {6 ^' l' M( E$ T H6 h& a就以遊戲程式設計的觀點來說,; t7 e/ `+ F5 `, b; M
一開始我會將人物無敵數值設定為00 Z! o/ m# ?# Y& r0 J4 @
ex: ' U: C5 P" r0 i7 \4 X6 U% p
#define InvisibleInit 01 L$ o& \0 L( h; {
1 Z) ]; d0 l( a7 M+ e- c# D, W
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
* D, ?; C& p9 L# M' f. G$ C# _) S呼叫設定函數
) v) Z! ~: Z( k: p; A! @ex:
7 Z2 D) d% F. W" yBYTE InviIniVal(EVENT event,BYTE SetVal)
3 Q* t3 `6 X% m{
1 H# p& w9 ]+ n% {$ b8 K3 G//Deal event ..., q( |% |0 D. z U% r7 T
G$ e# Z, ]$ i; R+ \0 L# _/ e//Deal InitVal
) F$ z8 R! f# V( R$ J2 s! gBYTE ret = 0;5 c1 y" Q9 T: F" [3 T6 J' m
SetVal+=InvisibleInit;' n; O! b1 `9 Y& F$ x( P4 W7 R
ret += SetVal ;/ f4 b. W( h9 ^' a- a. D/ Y
return ret;, {+ t1 N% [% a' L% |7 Y0 ^" w
}
7 M& T1 a+ ~% N" C( N
3 m7 z: ?: `+ c2 }最後關切的函數當然是遞減函數:$ U6 i- O# D0 D
ex:9 q; y5 M! I. m
BYTE DecInviVal(BYTE *InviVal)
9 B5 I) o. i* ^# z: r" X: K9 o3 w{
% S; m R, K1 B; H4 |cout<<*InviVal<<endl;* t6 x) s* [3 ?4 @6 A \
(*InviVal)--; //*InviVal -= DecVal;
[! s9 `2 f( E1 x: @2 h% bcout<<*InviVal<<endl;! d, y+ {3 G( z, S4 ?9 A
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;0 o& ^8 c- [% f( x' A/ z
return *InviVal;. Y& B4 Y/ T$ o) j
}- j% A/ l9 ]' C& \4 O
! H$ }; ^. m5 a$ x& t- C; Y* o
針對以上觀念,改遊戲就很簡單,
6 Q' I5 | L, l3 N. k8 ~! e一開始我們先初始化數值,輸入'?',
$ U% A" T( Z- g2 Y9 \接著開始無敵時,輸入'+',- Z6 B, e R' B" [4 Q( h% S
接著我們知道無敵時間會開始變動,
7 B# T4 C7 ?7 z3 t以上例來說時間開始減少,每隔一段時間輸入'-',
& c8 Z$ I1 X$ n/ S% C* n7 U" v7 T最後沒有無敵效果了,輸入'!' 或是 '0'。
5 F9 b" C z0 a8 |4 e, X( A8 S6 j$ u* t3 i$ h- |
記憶體地址經由演算法篩選後,只會剩下幾個,
5 W' N+ [+ T! ^: otry 一下,你要的地址就出現了。# a! i6 a6 t' [' }5 x
: l7 ~, K5 ]3 E1 w# Z' r5 u6 ZP.S.以上程式已經Run過,沒有問題。
! A# T) o2 @9 j o# [3 Q3 _& G
1 Q' r4 W4 b. ]8 F$ R. D[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|