|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
4 e9 u2 S$ }+ @% z$ f- U9 Y主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
9 m! ]3 B5 t0 F* g4 A& Z' f3 s
. T; F y$ F% l% [- R5 k/ j# ?其實修改無敵很容易,3 T a' [+ S. t0 I- ?! J
就以遊戲程式設計的觀點來說,
' P( ?. f/ B- u/ ]* V' L, f) j; n一開始我會將人物無敵數值設定為0
^: O% d Y8 K$ ^" L' d) `; N* Gex:
) Z& U6 p1 {, J( I#define InvisibleInit 0
& i6 s: M( u, |
* X6 E& F( c* F& W; C然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),( G+ t! Y' J8 V+ I; g% S( \
呼叫設定函數: i) m( @" \# T$ I$ `
ex:
! Y7 n9 p& _/ N( D( ~BYTE InviIniVal(EVENT event,BYTE SetVal)
- u. h7 T; t0 l+ F; B$ h{& [" _# ?' e3 r
//Deal event .... Y: @$ O& Y/ Z$ O$ i
- d4 R4 g3 c) z) m5 N9 r* I//Deal InitVal& t: o3 o, O6 {9 r, N& w* b8 i
BYTE ret = 0;: w y4 [$ h9 x! R6 s
SetVal+=InvisibleInit;
e- Y; ]2 w' Z: kret += SetVal ;3 ^: g0 R+ R0 n; g$ u2 u; U, c
return ret;( z$ {) B8 A5 M k
}
) b6 B' O6 B+ E$ Q2 t$ L
+ l& H7 f% P5 P* @6 L最後關切的函數當然是遞減函數:- M1 f. X4 |+ t8 [. L! D" }7 q
ex:' J" P3 v+ F- y, y
BYTE DecInviVal(BYTE *InviVal)
% f y$ {& }4 s E( p& R1 i{
7 ~, }% u* \& _cout<<*InviVal<<endl;1 n; D3 r6 |! ~& V. h
(*InviVal)--; //*InviVal -= DecVal;
1 o8 ~ o7 ]8 \) ~5 Q# fcout<<*InviVal<<endl;$ W7 h+ N' z/ F: `) n* h: _# ^1 b3 k
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
& U. h$ V1 i1 T( ?) B1 |return *InviVal;+ |* B9 [4 }; Q0 d0 m
}
1 H. V4 X% E( |1 [1 g2 ]) I
+ K2 H/ W0 N9 d% V針對以上觀念,改遊戲就很簡單,
4 H* o' \) e- `( r& X& W' ~一開始我們先初始化數值,輸入'?',
8 x9 t$ Y- Q* P$ M6 G5 n接著開始無敵時,輸入'+',
- I0 y& i4 {0 @/ H5 n& L6 c: s接著我們知道無敵時間會開始變動,9 F1 T& X; e* a. P
以上例來說時間開始減少,每隔一段時間輸入'-',
2 r% t. k5 L. p+ \( y, ~最後沒有無敵效果了,輸入'!' 或是 '0'。( M3 D& m3 `- l: e/ y9 L
9 N; Y! s" Y( @6 G) C" A! E0 R記憶體地址經由演算法篩選後,只會剩下幾個,
9 u+ t. i3 n$ L( W/ Q+ c- x; Q0 B1 t2 ntry 一下,你要的地址就出現了。+ I" b9 L4 Y* O h0 P* L
9 a `2 `7 g1 E; Q, W* QP.S.以上程式已經Run過,沒有問題。7 N( r6 A m! H1 F o5 `9 o. e
1 U; d& q* v( P* W
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|