|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
' a: @) ?3 q8 t* @' l3 c+ D- Z主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ; D6 z$ U: O. o; N4 ~1 h& H, q# D
) V }+ R% F! S# p( E( Q- J其實修改無敵很容易,
+ [; k/ A& G. o& k) r* c就以遊戲程式設計的觀點來說,
# m6 e! G) f5 \5 f: ]4 t) s一開始我會將人物無敵數值設定為0: K6 u" \' }! s8 _' |/ q5 P, y0 E
ex: 3 R8 X5 d i# B/ ~) O
#define InvisibleInit 06 d& }3 m: K$ C6 [
3 F" j* v% j; o: g" [3 \ Y3 R' }1 {+ c然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
$ Z* u y+ B8 ~# x7 c呼叫設定函數. |$ q: y0 T- N5 j' o
ex:
$ ]% S4 p$ n( M" L# R$ XBYTE InviIniVal(EVENT event,BYTE SetVal)0 U0 y2 ? `8 \3 b ~6 ^1 P! g
{
, G* J" v2 i3 p# V& G//Deal event ...
, M% z& x9 R+ K+ O# V% S
( h! _# S) |$ x, Q* z//Deal InitVal
8 o- G' I8 p1 v0 CBYTE ret = 0;4 ?7 Q. h7 h5 }. i* g Y# y
SetVal+=InvisibleInit;( I/ g( G& {$ \- X' B* b
ret += SetVal ;, |$ O. p. N1 v6 A2 }
return ret;
2 O1 h) X8 g- D+ f! V} 0 h* c* L" G. p: g5 m
' B2 N# q2 n4 @: [. [
最後關切的函數當然是遞減函數:
" |4 q' H4 Z3 ~$ g0 P+ zex:9 l: |; c7 p, T1 C R
BYTE DecInviVal(BYTE *InviVal)( v4 P. s9 u% f8 l7 H/ B. L* A
{
* z% m" W& | l1 F5 p. ^. jcout<<*InviVal<<endl;( {# ~% E" Q; u. F
(*InviVal)--; //*InviVal -= DecVal;
2 N* w, a4 F% {. L9 Hcout<<*InviVal<<endl;( W* s$ g7 C' S2 b, ?
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;5 J8 ~* g# w, X
return *InviVal;# }) g- A' ?3 ~6 F9 b
}
- L4 M! ^+ x8 V% J0 D) T6 A
1 v2 f( h! Y. S7 N針對以上觀念,改遊戲就很簡單,: M1 S" K m3 T5 v) @
一開始我們先初始化數值,輸入'?',
; h0 ?6 H Y4 m7 ]接著開始無敵時,輸入'+',
5 s; k( [% I' p5 w. u接著我們知道無敵時間會開始變動,
8 U' e0 i" C. [& G/ ?以上例來說時間開始減少,每隔一段時間輸入'-',+ @# B# N, J- l% C1 O: a
最後沒有無敵效果了,輸入'!' 或是 '0'。- [1 ^) _0 c2 g# a1 p8 n% j1 R8 j
% ?- H+ o; H& c1 D: W
記憶體地址經由演算法篩選後,只會剩下幾個,
/ T. i; `0 ^4 H9 w( etry 一下,你要的地址就出現了。5 `8 A8 I) q) h2 p. z
9 p+ ]; K, k; [8 z* Z) {P.S.以上程式已經Run過,沒有問題。5 c; I& S* H6 |' F2 V
% p) I* f5 g+ s3 X, K+ o) U[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|