|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 " {5 `8 J. H0 M2 [0 P s
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 8 Z4 c$ }% E( B3 Z. t+ a6 ]0 m% j
1 n0 C6 i, o; [$ g4 q- v其實修改無敵很容易,
: D+ Z* d" b. X4 Q' P0 L) w就以遊戲程式設計的觀點來說,
. ~8 C. G3 H$ _4 Z! X+ u一開始我會將人物無敵數值設定為0
- W/ K+ J6 b' B; I. Y# E- l j2 @ex:
- ~( l/ p7 Y; U' \' a/ P6 N#define InvisibleInit 0
{% I& f5 a' Q# t6 y d* `* _! X" N8 T0 p+ d( \
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),) Q5 z7 d" ?* t% | N: e* l$ @
呼叫設定函數2 [( ^& A9 N/ d; H3 T# r
ex:' A4 B$ q. t T$ ]8 _9 A- Z
BYTE InviIniVal(EVENT event,BYTE SetVal)
; k; }1 Z0 I, P7 a$ l L2 a{
' `" X+ U3 T+ Q5 W//Deal event ...2 M% {& Z4 S/ ` c8 }4 n" S( h; f
1 h- w3 }% ]; E6 Z) I
//Deal InitVal
/ z" `+ J' s* L2 X2 hBYTE ret = 0;. F- k& D6 X. D
SetVal+=InvisibleInit; M% n' ^! T& V7 ?1 U8 s& W/ n8 o! C
ret += SetVal ;7 L% T6 g7 {3 Y
return ret;$ d4 D* b6 N! G/ f( ^
} ) y" [* K' B( Q6 {( `6 h
+ z0 v; p: X* v% ~( ^" o% o
最後關切的函數當然是遞減函數:
& H6 X) F) R. G, lex:
; g5 d3 T( T* Y( V6 x. ~BYTE DecInviVal(BYTE *InviVal). R2 p# I& { Z+ U% q0 I
{9 ?3 K% \) I/ n' S
cout<<*InviVal<<endl;
4 |0 I6 I0 Q8 G$ y' ^4 m% V( I( d- w8 h(*InviVal)--; //*InviVal -= DecVal;
+ `+ ]' ~- `* p u. U# ]8 Gcout<<*InviVal<<endl;
% f* v9 A; C7 d+ }% I7 |' Z(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
! c3 P0 T) f8 T& l( D) ireturn *InviVal;
# O5 m5 y' o, S1 d. ^}6 f9 S O8 n2 [$ n; s; b
! E: r! x% n# } B4 I9 R7 k針對以上觀念,改遊戲就很簡單,
* E6 q; ^* ]) e8 {一開始我們先初始化數值,輸入'?',
) M1 H, \' d+ n$ G/ g接著開始無敵時,輸入'+',8 T! }9 I; e! W& G' S S: i
接著我們知道無敵時間會開始變動,
7 [( Q$ ]2 k7 L4 B+ Y, ~- Z$ B以上例來說時間開始減少,每隔一段時間輸入'-',( |# X* k" m& F0 J: m* `7 h
最後沒有無敵效果了,輸入'!' 或是 '0'。; J: g; S1 g- `$ }3 ]2 {
& l% Y& O. s6 n3 U7 I& Q' G6 h記憶體地址經由演算法篩選後,只會剩下幾個,, e# u6 {2 d) b9 G
try 一下,你要的地址就出現了。" s: y* y( K1 r5 i
( P0 a% l' H2 l) t6 v8 O7 K! O$ z$ D
P.S.以上程式已經Run過,沒有問題。
8 ^# r7 G. G) x _6 D
% p1 _, t$ C2 R8 Q[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|