|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 1 ~0 s) A& U S: P3 e; K3 X1 z
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ( a% s8 l+ a4 W
- H* O. Z/ Q0 Z" c
其實修改無敵很容易,
4 X* x ]3 j0 o' U$ W1 `6 _1 ^就以遊戲程式設計的觀點來說,6 O: u# _/ L9 E2 |/ K2 M
一開始我會將人物無敵數值設定為0
1 t0 N) R* G" G3 }1 U) pex: ( R7 A y% {- X) d3 z
#define InvisibleInit 0' ^, A' o3 Z6 Y* b4 \
3 N+ {& ~1 _7 ] x
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),1 U( c1 n! j6 [- |5 f0 Y/ j
呼叫設定函數, i1 H( Q6 }# ~) v' S0 \6 a
ex:
# n+ b% m# t7 ]( F9 [ x( p/ `0 }BYTE InviIniVal(EVENT event,BYTE SetVal): n n" D+ J; e! y" ]
{2 \# l/ M. X% T7 K4 B
//Deal event ...! o$ g, k5 M/ a0 \) S
: w: z, d; ]* v
//Deal InitVal
& p2 H4 n4 {# N! _+ ?: f& XBYTE ret = 0;, o& O( Y$ r: D/ Z6 }% C% n
SetVal+=InvisibleInit;
2 }5 \' V. @0 P1 [: z/ Aret += SetVal ;- [0 L1 _+ n" c8 [
return ret;/ o; T2 f9 K- v2 g& Y6 |
} & @8 X' z; T, l' R1 l8 l- G3 N! W3 `: F
2 O- q0 P3 @% y最後關切的函數當然是遞減函數:* x5 K& B- g& O, k5 M5 }: j& U
ex:1 Q: u! s8 M; V6 Q. A7 T" l
BYTE DecInviVal(BYTE *InviVal)
4 n# w4 `$ T- |/ |9 K! n{
! i( ?& f* Y5 }' T1 t dcout<<*InviVal<<endl;
! D+ \% E2 n U! x: X# y" [& ~1 i7 |(*InviVal)--; //*InviVal -= DecVal;8 I( ^. M+ A+ Z+ q; y% Z4 G" w
cout<<*InviVal<<endl;
9 n$ J# k- ~8 B% J8 W3 @(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;/ p! s4 g" K! z. l
return *InviVal;
& J0 C9 l" ?, a7 j}
; X2 p+ g: Q8 g& i! N7 [& o' w- U! _: m3 O/ m! t! a' F, x
針對以上觀念,改遊戲就很簡單,, h6 C4 n+ a, t& o" m1 |
一開始我們先初始化數值,輸入'?',
5 S) y; V/ r* L0 L6 @# V1 |3 O接著開始無敵時,輸入'+',- s2 _6 y& ?% b H; o% v
接著我們知道無敵時間會開始變動,
( M9 c6 Z2 N* R% S5 b7 g7 ^( `- n以上例來說時間開始減少,每隔一段時間輸入'-',& i" y. P: b" A9 A9 f4 _+ k" [
最後沒有無敵效果了,輸入'!' 或是 '0'。' R+ J; @6 R& C( e4 o) \6 @: a/ |+ H: z
* M( n: I0 X: S# q& @: }
記憶體地址經由演算法篩選後,只會剩下幾個,
$ M: y; e6 P. X+ r" B# @5 w/ Wtry 一下,你要的地址就出現了。
: W. d! y- S: i* b' P" d i1 j \% z$ ?; J' ?1 T0 S! k
P.S.以上程式已經Run過,沒有問題。' r3 _" [* }+ X2 @
% h0 Z5 w# w9 h+ H[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|