|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 # y" v3 }" h! E% m8 L
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 7 {% `& \. a" T/ b* W/ a
' W( b: P/ ^4 @$ v- u; R9 H其實修改無敵很容易,/ d9 }2 H9 ?& n9 N, p6 C7 U& s
就以遊戲程式設計的觀點來說,
& R4 M0 [- ]0 I0 j# @7 {一開始我會將人物無敵數值設定為0) A6 d9 H6 e+ d- i6 V& L/ D7 h' [
ex: & ]. S% Z4 Q9 [, `! v7 b
#define InvisibleInit 0 f8 }3 Q: _4 R6 Y$ ~! f$ N
% Z$ ]2 K& {2 B! U) z7 z
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞)," y x& q- n8 [; Z1 Q
呼叫設定函數( f# c2 S# k! d) P/ Y
ex:
0 l* z$ F7 G! G" `% a aBYTE InviIniVal(EVENT event,BYTE SetVal)
. u& N4 W8 b) Z! s: W8 [{, v. Z" E% } R$ K; g3 b- v. l% }
//Deal event ...
- s/ ?4 W1 V: Y# j
6 p+ W& O2 g p6 t; `$ s6 a//Deal InitVal$ \. y" M+ F* |! W. f5 m- V5 \% X
BYTE ret = 0;$ ?/ x, _6 z0 [& s5 ]
SetVal+=InvisibleInit;9 j1 L7 [ ~7 `# N
ret += SetVal ;& K3 r: |/ k0 k, _
return ret;5 _4 O, \' d! O$ R- T
}
+ h/ a; ~7 l7 w/ p" O$ R
. e& u1 S. Q& V9 n/ i) {& x最後關切的函數當然是遞減函數:2 r) f1 S; t) e7 q. r3 S% L4 b8 G
ex:
5 s6 H H3 S9 L) B+ O, ?* z/ cBYTE DecInviVal(BYTE *InviVal)5 c; I0 Q/ c Y5 l, v( J
{& B& }4 U7 L7 G+ B) s& ]- U5 l8 X
cout<<*InviVal<<endl;( \8 q5 V$ g$ J" T9 F* R) z
(*InviVal)--; //*InviVal -= DecVal;
0 Y" l2 M. G# }1 i1 ncout<<*InviVal<<endl;
/ f% b* A9 x5 {) U, I(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;9 V/ W5 R, n( W: P# J; u' }: B
return *InviVal;
$ T$ e5 e/ R9 F: u}) |1 F3 K3 g! B& R/ Q! s4 p# c
7 }$ c, Q0 D. b& P, ^* h針對以上觀念,改遊戲就很簡單,* T* Y3 b ^- P4 x' x$ h$ {
一開始我們先初始化數值,輸入'?',# q3 |% s- `, E4 b/ a9 I
接著開始無敵時,輸入'+',$ \* h! y% \/ p9 {7 D+ |0 y
接著我們知道無敵時間會開始變動,
2 \7 N Z3 C! r" \以上例來說時間開始減少,每隔一段時間輸入'-',
4 N, A& G* F A) b* p最後沒有無敵效果了,輸入'!' 或是 '0'。
( Y2 y4 O; q" Y3 u% x
8 F" ]6 G) R8 H' U0 S記憶體地址經由演算法篩選後,只會剩下幾個,
8 L, J! H& ~5 ptry 一下,你要的地址就出現了。
* B8 ^2 P9 P. M# K# o' q5 U
1 l5 P, k, Q N u) A8 RP.S.以上程式已經Run過,沒有問題。8 t( [4 ^9 y" d+ _1 y
1 e. z7 R7 O+ h- M, L- b
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|