|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 . h/ R/ |2 O& F9 ^2 S; L. q! @
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 7 |+ `! X# X$ D: h; `+ r
6 N. z) e7 L7 m% X- x其實修改無敵很容易,) d {( N5 M9 t
就以遊戲程式設計的觀點來說,
4 ?9 D! S/ f* Z3 _3 L; Q$ @3 \6 W一開始我會將人物無敵數值設定為0' t! N* s! k! a+ A5 t1 W
ex:
3 P# g! _5 i0 {& `. a/ j#define InvisibleInit 0; r' X+ e3 v/ \3 _
p! ]1 S- H8 e2 G& T- ^然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),) P5 a; |* l5 U3 {( @: r! [. S6 A
呼叫設定函數3 g7 h- q2 b) o) b$ S" q
ex:
" K% m( i2 {2 U( J4 c: q/ LBYTE InviIniVal(EVENT event,BYTE SetVal)
9 _: |' G5 i0 a) o6 z{
( U/ W/ C2 v2 U3 W( B* P//Deal event ...
8 {8 s1 U4 o* z6 a/ v7 S8 g* L7 p b$ y; q) D8 P
//Deal InitVal# }8 z" m6 f" W m$ u2 `+ g
BYTE ret = 0;6 O# b% k( X" l3 S8 U
SetVal+=InvisibleInit;. u+ z0 X& w! b4 @( D9 z0 k
ret += SetVal ;( ?- N3 {$ e" p% J( g u$ Q
return ret;- \0 O2 e& I, H4 Q# l0 X; a# v
}
% C, M( O' `8 L9 m. x) N0 g1 o5 ^% y9 t( ^. w
最後關切的函數當然是遞減函數:
' B3 R; ^7 M! ]. p1 G0 Rex:
" q& {% @% P% I9 F) tBYTE DecInviVal(BYTE *InviVal)6 R6 J: M( o7 h5 y
{
& t0 A! G/ C; v$ Icout<<*InviVal<<endl;& y$ r, h1 }6 h/ ?! b, m& }0 W+ ?
(*InviVal)--; //*InviVal -= DecVal;
% P3 ^+ z: b/ O' d1 Scout<<*InviVal<<endl;
$ I3 h" F" G8 D0 I6 i* c' D* C(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
. S4 G! E; y3 y0 Q6 `9 J; Xreturn *InviVal;) F) ?! c5 g$ j9 V$ x1 y5 x- ~8 y
}. M* \# w1 F7 I1 R; ?* j7 J: v
8 U2 ~$ p% J/ X0 v2 H" `% n; }針對以上觀念,改遊戲就很簡單,9 y& J7 c. X* U' r0 z2 {
一開始我們先初始化數值,輸入'?',
5 R1 ?4 W, F7 T6 D7 i# p4 B接著開始無敵時,輸入'+',* u$ w" E) G7 f) p1 L
接著我們知道無敵時間會開始變動,
% ^8 I8 [/ `1 C; z以上例來說時間開始減少,每隔一段時間輸入'-',
; X. e2 Y! F2 a' W/ Y8 Q最後沒有無敵效果了,輸入'!' 或是 '0'。: e/ ~/ K) N. a. u/ }6 k @2 G
% u# g' S' ?/ i' l. F, g! ^
記憶體地址經由演算法篩選後,只會剩下幾個,5 o4 y7 w I8 ?: U# W
try 一下,你要的地址就出現了。: A/ Z$ @/ E2 \! ^" @: y5 u
* T: W2 p& f5 K- H1 O& IP.S.以上程式已經Run過,沒有問題。
. R3 Q' B% l7 D; |# \
Z- E% ~' t5 ~/ e[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|