|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
" `9 w) H# b: l% N7 e/ k主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
* e7 s1 i, p5 Y8 e! f0 D2 Q, i3 {
) ^5 t- _ J: M* u! j: U其實修改無敵很容易,
. M' u/ u$ H8 c/ {! O( y1 L, h9 B就以遊戲程式設計的觀點來說,
, h" i( [2 j" \; z. f一開始我會將人物無敵數值設定為0) P# y' u7 G9 U, q& Q- B
ex: % K9 \; ?* A1 f
#define InvisibleInit 07 Z7 Q. e# }8 @2 K
' X6 A A' N* |) b然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
5 G$ D( W2 |- c5 J( x* [" d呼叫設定函數4 k; h# p7 \8 A& M- Z
ex:1 L+ c/ z% a0 w# E' K9 p
BYTE InviIniVal(EVENT event,BYTE SetVal)
( J7 q2 k8 }: U( {1 U{
* G2 |; _0 t2 N: D5 N( m//Deal event .../ d, K$ [- o- V- M3 X7 V
" ]' h$ l& Q% y. ~; I
//Deal InitVal7 j( s3 |" E' w# P; j
BYTE ret = 0;' r) t! y% d3 `1 U8 N+ w! ` k& p
SetVal+=InvisibleInit;- ]* i7 V1 b, a
ret += SetVal ;
! ]* _6 s1 |+ p& s; W3 }1 |return ret;3 N/ `- d# b1 g9 i3 m9 N
} 8 o8 g$ f! h. @
0 b/ H# l8 A+ B1 D
最後關切的函數當然是遞減函數:8 N# c# v8 ^9 X1 e
ex:
: Q$ |, o0 d4 Q% p1 _8 O& TBYTE DecInviVal(BYTE *InviVal)+ G/ b5 H; l1 n! G% k/ T: s
{% t4 }$ K9 }" Q/ i% [) S7 V
cout<<*InviVal<<endl;
7 c/ ~, T4 C0 y2 h3 |5 e% T* P(*InviVal)--; //*InviVal -= DecVal;9 c$ B. {5 ]6 d$ j3 O" v0 j
cout<<*InviVal<<endl;. v; `. ^6 g) W3 [1 j
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;) Z+ w2 H" |" j+ ^/ s, \5 Y
return *InviVal;
# v* h7 \8 F0 d- y}! H; s0 q9 l5 j& D4 F+ ^. j1 X
+ Y1 s) L1 q( {7 P0 e針對以上觀念,改遊戲就很簡單,
- E. ^7 {9 J9 C% u2 W7 L一開始我們先初始化數值,輸入'?',
0 e& |. M4 K' p: ~4 L9 ^- R接著開始無敵時,輸入'+',0 i% l' Z# x0 Y+ p) ^* Y1 b
接著我們知道無敵時間會開始變動,
+ d }- f( q8 N, x6 j. U( Y# _以上例來說時間開始減少,每隔一段時間輸入'-',
3 V2 j, M: x" A8 T最後沒有無敵效果了,輸入'!' 或是 '0'。
: [+ L$ J8 ~. W0 @7 q9 w; l9 f" T7 f! ?7 ^! j* N
記憶體地址經由演算法篩選後,只會剩下幾個,: K4 L* l# g3 k4 J4 _1 ~" G$ v
try 一下,你要的地址就出現了。. V1 Z$ v8 ?% |) _* f& D: L6 d0 W
y8 p% D# R3 @) ^! O
P.S.以上程式已經Run過,沒有問題。 s: E+ H5 u% Q% c
5 R. g I2 j+ Q$ v[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|