|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
' E; i. \( Z) l- G# H主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
" g- _# L' Q2 z- C# w, G+ V+ F, o9 L. Y
其實修改無敵很容易,
6 R( ?4 X& F+ n% d+ l; I+ [; V; A. Q就以遊戲程式設計的觀點來說,/ Y3 B, a6 A3 R: N
一開始我會將人物無敵數值設定為05 i! c* B- @, y& Y
ex:
* H1 P$ t+ s; p" P9 Y#define InvisibleInit 04 F/ w$ T( {5 Q, j
; t3 Q- V" B& d, w+ z
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
# A* G* |5 f' r. W' P呼叫設定函數
# y9 ] ~& a# Q+ _$ N Oex:" I/ K7 t& m" {2 b
BYTE InviIniVal(EVENT event,BYTE SetVal)/ g5 `3 U' l0 s* C& p e" x
{
- r2 g" j/ v2 m4 Q1 h! Y6 n3 w//Deal event ...1 T* t7 { z, [* l3 [: g U: k8 ?
+ o, a5 I; X" T! t2 Y
//Deal InitVal
" p5 s! n! G6 p! _+ }4 G3 jBYTE ret = 0;
! V' l- |" @$ i7 Z4 USetVal+=InvisibleInit;
! m8 Z% @ |. `3 l; G, sret += SetVal ;# ]- C$ c+ \ i6 e8 Q. v! \
return ret;& ]. i& n. e, C5 I1 N/ `
}
L& z% s/ l) X) K; A8 c, G& j; V+ f" r* v2 a+ T2 ]
最後關切的函數當然是遞減函數:
0 F4 q& L {9 s$ p3 P2 x% B) Cex:
4 m1 Q# J3 o( m( J9 C+ H$ JBYTE DecInviVal(BYTE *InviVal)
0 e3 [. r( G l3 [0 {8 Z{
7 j, i* T% G' x8 B7 Icout<<*InviVal<<endl;: ~2 U" D5 a, V5 F8 ~3 A2 c0 Y2 ?0 B
(*InviVal)--; //*InviVal -= DecVal;0 Z' ^3 a5 L. Q! v8 Y
cout<<*InviVal<<endl;7 ~8 V+ U6 U( q4 O' O, S, W
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;$ }$ n3 g! ^8 P, f% K' N$ \& u
return *InviVal;
0 O3 |0 ~: I" f$ l1 a I5 q/ w}6 A# \$ T0 V! I5 R2 T
- w! b$ E# @/ V1 w( W' ?$ L. h針對以上觀念,改遊戲就很簡單,
9 O6 W0 h C- v一開始我們先初始化數值,輸入'?',
! j( l+ r0 L* \' `: a; B2 a接著開始無敵時,輸入'+',
* U2 D( ^# j) e( ~接著我們知道無敵時間會開始變動,: T( V; c& p( o# p$ O# z
以上例來說時間開始減少,每隔一段時間輸入'-',
5 t& q& ?' n/ P! ^! u最後沒有無敵效果了,輸入'!' 或是 '0'。
" W" `% x8 j# |0 h' S8 O
) M0 @( i: y1 D, k, p: P2 `記憶體地址經由演算法篩選後,只會剩下幾個,& u! I- M9 S6 ^% }/ I( E
try 一下,你要的地址就出現了。/ d* b$ e* U: q2 ~5 s2 ?; S+ Y& R
% j! D; i3 v) I$ y! A3 Y3 E" ?) [
P.S.以上程式已經Run過,沒有問題。+ @4 u7 i- J$ g. Y- v
: h" {4 s# T" a# K0 |, V) o3 }[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|