|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
) E& c4 P+ H. Y$ C主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
( ^) ~4 G( J9 f- d+ K
& h4 V* g6 Q6 ~4 ?' D$ U: G其實修改無敵很容易,) q: J/ |( _( J6 k3 I
就以遊戲程式設計的觀點來說,- w5 A ?" @9 A9 \& m
一開始我會將人物無敵數值設定為0
) E, w. k* R6 N+ ~ex:
" F; ]! U8 W: \5 ~#define InvisibleInit 0
- v; p! I0 }. O r* H
1 n( J- w3 I J* n9 A. ] `然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),2 J/ q; D2 S. q: N# ]3 v
呼叫設定函數
8 L. Q2 K' o0 ?3 W, `/ h C4 q+ vex:
+ v' Z& D1 A7 J; L) h. wBYTE InviIniVal(EVENT event,BYTE SetVal)
6 f' e) i3 p- h5 t- F{
! x- r- D/ u" o6 [//Deal event ... e) J5 k) ^' r6 f: l6 |
$ h3 t% H+ O2 t
//Deal InitVal
/ j( P0 x& n$ g& h+ ABYTE ret = 0;6 Q+ `$ a8 M* s6 ]/ b" U8 l) j
SetVal+=InvisibleInit;
0 q' N3 _ R- q' j+ x% U4 ` rret += SetVal ;
; d* d# V% v0 t: S" ?0 ~2 V# preturn ret;7 L$ I! ?8 J5 R$ v! n1 r8 y
}
/ `& D! O% }) ?0 f- C- y; i
" i* p; f- d, K. c: `4 M最後關切的函數當然是遞減函數:$ L8 ~5 l+ k: E
ex:2 m& m" b, A0 d( W+ s1 Z
BYTE DecInviVal(BYTE *InviVal)
4 V4 q! q* z7 o$ b, k. v{$ z, o! l5 c9 d4 G9 t2 `7 C
cout<<*InviVal<<endl;7 K9 H+ ?* z# Q
(*InviVal)--; //*InviVal -= DecVal;
* j3 t: ^4 J4 Jcout<<*InviVal<<endl;
$ U: A% Y+ m% o9 c4 ` Z(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
) ]6 u; }; ?6 m& O9 Q* M2 Areturn *InviVal;
2 Y& V( A3 N0 n' c( l3 S) {}
" S4 @2 o# Q- a# K) m
: j2 s# ?: o# T針對以上觀念,改遊戲就很簡單,
) i6 o% k+ y U2 `; k& W1 ^$ R一開始我們先初始化數值,輸入'?',9 u3 g6 T$ {( K. c8 }" g: Q
接著開始無敵時,輸入'+',9 c/ o& W( ?! t% v
接著我們知道無敵時間會開始變動,# X% y# O5 U; v+ v. Q5 s
以上例來說時間開始減少,每隔一段時間輸入'-',0 g# g& A& J2 ?
最後沒有無敵效果了,輸入'!' 或是 '0'。
3 G ~! `0 ^' h4 {5 t& r1 a- Q# Q' ~# ?1 W/ ~1 X
記憶體地址經由演算法篩選後,只會剩下幾個,( q2 j, k7 d- j2 K$ p1 D
try 一下,你要的地址就出現了。
6 h" t3 N% T" f/ r& ?2 j# |( X" F1 E1 {+ Y$ G7 w! v
P.S.以上程式已經Run過,沒有問題。
+ r0 \) B+ n- C) N! T, _% b- J5 N% j% r/ ?& u
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|