|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
5 F! B. F* ?/ f# M9 p主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
. H. y& K4 S" o! a: R: G8 |( ?8 W( x* X7 Z" u$ d* K
其實修改無敵很容易,
1 W2 Y; h' S+ z1 L) n7 z' @就以遊戲程式設計的觀點來說,. m' d+ W. U$ M* L6 {# q v* h( r
一開始我會將人物無敵數值設定為0
) y& x4 z. j u" d- Nex: 4 Y6 ~+ }, f' P, ~! u( E. K% P
#define InvisibleInit 0+ V# B9 }$ q6 M. W
5 ~2 M2 }; X0 T& Y/ M& b然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
# }% @# X4 y/ i呼叫設定函數
$ P, T6 Y3 I& Sex:
& o7 M, A5 B* P- P+ h1 nBYTE InviIniVal(EVENT event,BYTE SetVal)0 A K Y- Z8 M5 Q0 Q- O l% r' k6 e
{1 A$ c1 ^( D8 m& D0 u
//Deal event ...4 j7 p. o+ m# N D2 B$ ?
4 L, w- b$ z, a+ M! T//Deal InitVal5 E2 h3 q3 F$ w- F, z
BYTE ret = 0;+ z7 |- L; d% F
SetVal+=InvisibleInit;
) K# W& K% B2 [5 Sret += SetVal ;
+ g; {! E) p; K rreturn ret;' U/ W% l+ B, \; P- ]; C
}
. F( q! N/ I- [( ], o8 W+ f# M( I( l2 w. R
最後關切的函數當然是遞減函數:
4 r+ j6 `# [) f2 O0 j9 oex:, l& ]+ U7 s: Z
BYTE DecInviVal(BYTE *InviVal)
* m2 d/ [, e) p2 u, ]+ S2 k{
1 w$ o) i9 V/ c" hcout<<*InviVal<<endl;
& }, i1 R3 E+ H( l7 J) W(*InviVal)--; //*InviVal -= DecVal;
! V) s @- f9 d! u$ `cout<<*InviVal<<endl;4 }# v: a. o/ O! V) [# z
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
J2 i9 ], j0 a: S; o* u% Vreturn *InviVal;
) R: V- b- Q! I; _4 j}; g7 u' [' N- F7 U
' ~7 N, g3 y/ R K; f' q
針對以上觀念,改遊戲就很簡單,
7 ^2 A6 @, U/ H" Z5 P% T一開始我們先初始化數值,輸入'?'," {) u* E" O# q4 E
接著開始無敵時,輸入'+',
- Z; f8 o8 H# J, m! p接著我們知道無敵時間會開始變動,. d8 V7 s+ `9 B9 T4 l$ Q, v8 v1 k9 \1 k
以上例來說時間開始減少,每隔一段時間輸入'-',+ G7 X1 `, u3 G
最後沒有無敵效果了,輸入'!' 或是 '0'。
; O# r V1 N. d* P+ b
" D# `$ |4 u/ ?% l記憶體地址經由演算法篩選後,只會剩下幾個,
0 E$ x3 L$ M' g6 a- @try 一下,你要的地址就出現了。
1 @9 A3 P$ Z9 `0 L# `6 [7 M' Y$ e! f. Q/ L+ W! y
P.S.以上程式已經Run過,沒有問題。# [1 J9 ?% M2 h& s' `
; w5 o- T) j) ~# F
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|