|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
# w7 E' K& l. o# i a! G) U主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
5 q4 d4 V# ^$ f$ R: k+ c8 d m1 n, n" E! b& S6 Q. T
其實修改無敵很容易,
5 N3 d% A' z- D+ ^% C' H. P就以遊戲程式設計的觀點來說,' z: a4 T+ x+ z1 G: X& H, }; U' k
一開始我會將人物無敵數值設定為0( t( V0 N) }8 P. J7 U
ex:
4 X$ H( }6 j# W& s) {5 ?6 r% x, q#define InvisibleInit 0
3 F0 c# `9 H8 I) ?7 W2 p3 d1 `1 a* y6 d
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
: ?; R8 B+ I0 ]4 E( L9 [. ]. S9 N呼叫設定函數
5 T& E" v% x/ y2 jex:' |( \* m1 v) a! h
BYTE InviIniVal(EVENT event,BYTE SetVal)- h9 b6 T, b' R
{
0 U1 M! G- |7 e& A. M( N//Deal event ...8 b% S1 V t2 z; ?; g. T
0 g; a* {" c" E, `! u9 P) d//Deal InitVal& {2 L8 p! A6 N1 U) s! Z; Y
BYTE ret = 0;
% F4 B' h) {# W1 M' K. B4 `' JSetVal+=InvisibleInit;6 \5 d* B$ m6 M# q& X# U
ret += SetVal ;) n( x# A6 C( J p/ M9 n5 V2 R
return ret;* A) y. x6 m$ z2 a4 C* H
} 4 P$ f. t' B- P0 A
7 y- x8 r- _+ e0 W3 o
最後關切的函數當然是遞減函數:4 b6 {# v" |. b7 \7 a/ z
ex:
0 A7 z M3 R9 e9 T7 zBYTE DecInviVal(BYTE *InviVal)6 u& |$ v* |2 d0 w, z
{
6 Q+ a& r5 T' u, L# A0 x. Hcout<<*InviVal<<endl;
4 ^" x' @8 ~0 s% K- G/ L: N6 v(*InviVal)--; //*InviVal -= DecVal;1 P# K" |: F! ] s% @/ X8 r
cout<<*InviVal<<endl;& ]. e$ R1 d) R$ Z0 |6 U; C7 f
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;) P2 U6 F" D) h; m, ~
return *InviVal;! s! \7 j& |5 E4 P% `
}
5 u; h7 k) ~2 ]! M# v" v4 d* G7 _/ _. e" z" A5 k# x1 ]6 ]' S9 F
針對以上觀念,改遊戲就很簡單,
9 ?3 y' y9 c) I( L) N一開始我們先初始化數值,輸入'?',/ I* X' t' n) q# Z; n9 R
接著開始無敵時,輸入'+',# W& \* o7 f. y' N" X; q$ y
接著我們知道無敵時間會開始變動,, o- z( T, S6 a3 D7 [" i0 N4 _- K+ l
以上例來說時間開始減少,每隔一段時間輸入'-',+ x, W: g5 ]" V, Z; D* s9 w* y
最後沒有無敵效果了,輸入'!' 或是 '0'。
. N1 q: e, b9 v( s* f/ {% q+ J- K3 ^) k, d; m$ b( Q4 L9 ]7 `
記憶體地址經由演算法篩選後,只會剩下幾個,7 Q) h+ K1 F$ Q9 l/ @( R$ T4 P V
try 一下,你要的地址就出現了。: w% m2 k, S7 V, M- p
. |9 B3 g! F$ x3 f! GP.S.以上程式已經Run過,沒有問題。# P8 X5 {" c! e& `" ?# o! U
5 e! I7 i3 Q4 u) [+ B
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|