|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 0 D2 n9 C/ v1 U# Y5 |/ d
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 t- m. V9 ?1 P- ~
7 A, X( y f1 U& T0 f# e其實修改無敵很容易,; r7 M3 B1 r" |- z4 `0 `
就以遊戲程式設計的觀點來說,
% ?6 q& _$ U! n4 `, }4 z一開始我會將人物無敵數值設定為0# C5 B4 R6 Y% e/ T
ex:
* z8 n4 @' G; E( f#define InvisibleInit 0( {2 p f- [9 r8 x+ c+ I% a; Q
: u6 |. X, ]4 E# X9 Y5 o- @) [然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
4 B& y. j7 s# F7 _7 O1 L, V$ W呼叫設定函數9 `, X& D& l0 P
ex:; a4 @- h* S0 j0 ^0 F/ I' E! w
BYTE InviIniVal(EVENT event,BYTE SetVal)' | E# o9 U1 ~6 B. [+ E
{
, N% w+ p, r; p' f//Deal event ...
% k4 q/ a k1 s+ o; E& k
4 r; c1 }7 ^4 m//Deal InitVal$ [- \6 S. ]. m. d% I! \/ o) M
BYTE ret = 0;
7 g* B% t' J/ BSetVal+=InvisibleInit;% S* @0 L9 x/ y
ret += SetVal ;! ~7 e. U5 {2 p' c+ x
return ret;
1 B8 V. t9 ^1 D}
% X6 a2 J$ f7 B
3 ~% C2 |' L$ H/ `1 |' W' j最後關切的函數當然是遞減函數:
2 [- p& M9 P+ s0 p: |7 Yex:
3 c, N5 V% ~6 I& n/ JBYTE DecInviVal(BYTE *InviVal). ~* K+ ^* x0 l" Y# d2 b: q
{- v9 Q5 J3 j( r2 k. ^* ?
cout<<*InviVal<<endl;1 O# e! W% F9 m( @* J
(*InviVal)--; //*InviVal -= DecVal;2 ~7 E4 r) U! I" ]. x2 f
cout<<*InviVal<<endl;! M5 G7 o: {+ }6 I
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
j1 z @5 G# J+ U) A0 lreturn *InviVal;
: ]. x. f( W' l" u# N$ C$ d8 I: ~}
; j& h( K- z( f8 f
, b$ O+ C/ T$ t, F+ U. ^9 O針對以上觀念,改遊戲就很簡單,
& g3 `* a: W6 L9 K一開始我們先初始化數值,輸入'?',, f* t3 f f4 Y% L7 B% s
接著開始無敵時,輸入'+',
2 D' K2 e( ~* ~+ S2 f) q接著我們知道無敵時間會開始變動,+ R( _, @6 U: ?7 ~5 N5 Y: A7 [: ?9 {
以上例來說時間開始減少,每隔一段時間輸入'-',
R- h; {0 Z4 Y+ K8 [6 R8 W最後沒有無敵效果了,輸入'!' 或是 '0'。3 l% T M {- C3 F
) g% [6 W% i" C# r @( X1 h記憶體地址經由演算法篩選後,只會剩下幾個,
$ |" p6 y- {9 c+ f+ Vtry 一下,你要的地址就出現了。1 j$ Y8 M! @/ l- A
& i9 c! P. Z2 h2 o& E6 C
P.S.以上程式已經Run過,沒有問題。
' e% G( r$ b+ M+ K" ^% B+ g( x2 c: V! A. \6 ]; C8 _
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|