|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
7 x5 ^ }( `+ J8 J2 [主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 * Q {% C: u: [) K
( h& J6 T1 F& A* `5 U$ Z
其實修改無敵很容易,
8 E' ?9 U6 W) z7 V- ?就以遊戲程式設計的觀點來說,% t- R# ^* Y! @$ S) k4 m
一開始我會將人物無敵數值設定為07 ]$ \9 a- `7 b2 b
ex:
% Z- D& ?+ S1 I, O5 h#define InvisibleInit 0$ U8 S8 g/ S+ D, s) y. G6 G5 K
. \# Y d0 r6 L然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
" a }; ] n8 T2 ]) t+ R呼叫設定函數- j4 {( o7 l9 i9 @% ]* g
ex:
0 L: z. }) F( p" _, G G" nBYTE InviIniVal(EVENT event,BYTE SetVal)$ R, g) J4 O& Q7 d7 O4 m8 S
{
4 h( H8 t/ G6 |2 u e//Deal event .../ h8 |% Z) ^ y' i
' c8 t' Z, l+ O- p7 ~
//Deal InitVal
* Y* i: c8 O/ T9 \) D( {; x6 _BYTE ret = 0;3 v1 z) B( o# q" i
SetVal+=InvisibleInit;3 O7 ~! [6 Z+ K/ F, R6 w
ret += SetVal ;
R Z# {$ W6 l' C' g2 qreturn ret;
) E. b, c# l3 V}
1 _% q4 x& d6 u3 @. t: Y% ^
2 E& \, |2 q q2 J* B' j最後關切的函數當然是遞減函數:& q f) w1 ] J! n. F
ex:
# P8 U) y/ Z0 b- y) b0 |5 o* YBYTE DecInviVal(BYTE *InviVal)& d+ ?0 ?/ f |% u3 `8 X
{
% O. v+ T* M8 |9 z5 h* ocout<<*InviVal<<endl;
+ l* K& d3 @ _* K2 U. A5 V) g9 z(*InviVal)--; //*InviVal -= DecVal;0 y D- C4 n# x
cout<<*InviVal<<endl;
$ N4 y7 }8 J3 I/ Z# l6 Q(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
* F5 S4 }. H3 Q$ ?5 xreturn *InviVal;. D k/ Z" y4 G+ I! \7 |
}
{, s& j# N# Y. O5 a* C$ b
' y5 [/ L0 t! U9 ]5 P U2 M1 ^針對以上觀念,改遊戲就很簡單,
2 _# }. j# l8 E3 _" Q一開始我們先初始化數值,輸入'?',
( w e7 d& O$ }! f4 ?接著開始無敵時,輸入'+',. v+ k' T& o2 J
接著我們知道無敵時間會開始變動,$ D$ v& Q7 x1 |1 @0 `* I
以上例來說時間開始減少,每隔一段時間輸入'-',
* s' U7 {. e/ W* m' K2 _最後沒有無敵效果了,輸入'!' 或是 '0'。
7 @" s9 ~) P7 M" Z
! D+ B7 h/ V/ D! g5 k: e7 M% X4 q記憶體地址經由演算法篩選後,只會剩下幾個,- z& A" w7 x1 V; F! ]
try 一下,你要的地址就出現了。7 n$ J% Y. b, z% [5 f
5 Z3 M: b8 E5 ]+ Z# {+ K1 [1 s0 _P.S.以上程式已經Run過,沒有問題。5 W3 `3 P* W' k( n( j" g9 O
) R4 p: Y: C2 F/ R$ }- o
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|