|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 8 k% S9 b) x: }" O7 i
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
; i& A1 Z/ I4 k% ?( V/ F; e. w6 ^
其實修改無敵很容易,5 u. L7 [" t' K/ q
就以遊戲程式設計的觀點來說,
. Z) I6 C$ L4 y" ^一開始我會將人物無敵數值設定為09 o; z2 j, U2 o/ H2 C3 ~5 i j9 l
ex:
+ V7 V2 E7 U. d1 `#define InvisibleInit 0
: Y+ n! F' A; G
. l# b: ^# m U. a8 r8 m0 c$ J然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),. b/ M+ D0 {+ {$ H
呼叫設定函數
& a/ M% s5 a Z- xex:3 A. B8 Z( \( T' x
BYTE InviIniVal(EVENT event,BYTE SetVal)8 F( K3 e8 N2 F$ ]) K+ j
{4 g6 T8 [! ?/ `3 C
//Deal event ...
' p# o8 I: `) x0 p- |. T9 ]: C
+ C& ?; d( H8 y1 [//Deal InitVal
5 h6 T K" l8 qBYTE ret = 0;# U- [" ~) ^7 u. m" A4 l
SetVal+=InvisibleInit;
- _& k/ F5 M! ?2 \4 k# i9 d4 Bret += SetVal ;* [& B& W: j; L" y! M
return ret;0 k) ^5 p: U- _( O e/ H6 e$ M' R0 k
} ! \6 S1 ]+ |7 n# @
* L# b2 ?- b+ [8 e1 K
最後關切的函數當然是遞減函數:5 ^( S1 ?5 Q2 P) u9 P% u
ex:
- _7 ^" R# p! ?+ P; ?* ^" _BYTE DecInviVal(BYTE *InviVal)
1 j7 v- b/ B W4 C{
% M3 @7 G# s3 `9 d! e1 h) e fcout<<*InviVal<<endl;2 J7 K4 E; K& I1 V5 _
(*InviVal)--; //*InviVal -= DecVal;
- q# i; u' q# @9 u, c. Z. @& ncout<<*InviVal<<endl;: u2 L8 I: v6 D! E! D, h7 I: A/ `
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
4 }2 I; J6 `; `( V9 w" \return *InviVal;# W) g1 u+ S/ [% {0 `$ `5 N3 [5 j
}
& X# K% C% g% X( x1 L
' ]1 h+ _9 [/ o針對以上觀念,改遊戲就很簡單, t& i6 ^; ^" l& l" Q" o7 q
一開始我們先初始化數值,輸入'?',
0 A8 ?$ @: L8 T( h接著開始無敵時,輸入'+',& d) j; x o# S r
接著我們知道無敵時間會開始變動,
$ K/ E& k% T& E* Z以上例來說時間開始減少,每隔一段時間輸入'-',
9 I9 Q ^. z: [, q; \0 w4 d" e$ _ n最後沒有無敵效果了,輸入'!' 或是 '0'。
- f2 X) {# L' |' P3 k; f& E1 `
) |; x- D: _8 _記憶體地址經由演算法篩選後,只會剩下幾個,
& j, m) S& e2 \' Y" [try 一下,你要的地址就出現了。
9 [4 H* t: F$ w3 P4 b
& F& o; H! E) w" y& iP.S.以上程式已經Run過,沒有問題。
6 ^* N; H0 R+ k8 u5 v( R8 f$ T: o
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|