|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 ; B/ `7 _2 f& a/ d% N; k+ B8 f
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 5 p4 O V! R, D/ S0 v( X7 Y
0 S2 j; U# s& X. b5 ~ a
其實修改無敵很容易,, X2 ] _4 K# c+ ^
就以遊戲程式設計的觀點來說,
7 _$ A2 m; z1 x1 P1 ]& u+ `一開始我會將人物無敵數值設定為0
" O# W- \" u; J) q: Z4 ? n- @- h Lex: " X4 y# ]+ M: {4 x) ~# k! A8 J, v/ I
#define InvisibleInit 0
$ v1 H% J# f1 d! [7 g) |* m
# k6 a4 X2 X# i, v+ F1 F8 S( N* X g然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
, A7 G/ C7 R( _/ O% ^: Y呼叫設定函數; [8 D7 {( P' C* r* c: s/ X U8 Z
ex:, F* `, M! x1 C4 k# W# m
BYTE InviIniVal(EVENT event,BYTE SetVal)% T. {( e8 h/ z4 `+ p
{
1 G2 V5 Q" z5 k4 {7 n2 J4 z6 |//Deal event ...
! V' a0 I! B5 P; |* h- Q' F& r5 |1 I+ N; i1 V
//Deal InitVal
/ [+ o: Z* K) Z6 Q+ q3 d( sBYTE ret = 0;( B# g# k% m6 i. i& q
SetVal+=InvisibleInit;
, i/ u: V7 `/ U3 \( B5 M. @ret += SetVal ;
! Y- A! N# E! N8 ^* areturn ret;
6 f9 R8 T5 M2 G) l" \}
* u$ B9 b/ Q9 P% R. \/ T5 n& _% M2 x4 D& a( P) v9 ]) D
最後關切的函數當然是遞減函數:: k+ @0 ^+ `$ K8 a! I' l
ex:
! J: ]% ~6 g$ M' w5 [! SBYTE DecInviVal(BYTE *InviVal)
" d6 T3 O; u; b4 x3 i{4 A6 O$ @3 I; X) w" A
cout<<*InviVal<<endl;2 F; G3 h! {9 y! x8 |
(*InviVal)--; //*InviVal -= DecVal;
- p0 K% k: F3 {5 @1 q: C0 V/ Y% Hcout<<*InviVal<<endl;3 \0 B. W$ C, N6 q/ {
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
/ C) S0 k) E& y% Q N M1 ^0 Yreturn *InviVal;% X0 ?7 |0 Y/ J
}) W, L! b1 h$ `. {/ u
9 E3 A% V. E$ J( Z2 N針對以上觀念,改遊戲就很簡單,' b3 \" r& K# Y" r2 n" S0 h
一開始我們先初始化數值,輸入'?',8 h8 Q. w0 @3 r( f( P
接著開始無敵時,輸入'+',' X7 l9 R; p4 l$ M J" p2 ?
接著我們知道無敵時間會開始變動,* Y$ P' ?3 |4 d) R
以上例來說時間開始減少,每隔一段時間輸入'-',* `8 W/ B( S9 T7 {
最後沒有無敵效果了,輸入'!' 或是 '0'。9 p6 t% U s) y ]4 w
% k# N% v3 `3 N9 q* z記憶體地址經由演算法篩選後,只會剩下幾個,, n1 e7 v6 a* h. c* E2 \$ Y
try 一下,你要的地址就出現了。7 A, e5 e! ^0 y6 R' p: F, i
- S8 @0 q5 W; U/ q6 ]7 fP.S.以上程式已經Run過,沒有問題。
, T5 v* s& `. L- {' V0 O; Y N, [, K, @, m3 F" p
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|