|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 $ j+ t( \9 l4 M' {4 l
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
8 g, o* `5 G6 c6 q" B; V
4 ~" @8 q( ]0 \' @4 B其實修改無敵很容易,
) O/ ?# U, t9 W! q1 E就以遊戲程式設計的觀點來說,
! A5 ~9 s* K" R4 ?6 L9 {一開始我會將人物無敵數值設定為0/ O% K2 y1 i6 p. p
ex:
9 M2 P$ ~6 W; p4 e" e! L. S# N#define InvisibleInit 0
# ^0 \7 N$ D1 a0 d9 j1 o# v" i1 q. ?; D- `; o* G0 g$ K
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),4 p/ s7 n1 Y2 n6 O
呼叫設定函數
! Y$ _% a2 ^" Fex:; B `5 {) b: l' J
BYTE InviIniVal(EVENT event,BYTE SetVal)
! {9 a9 m# o+ S{
4 o2 q9 H- T. f/ ^7 }+ ~9 u//Deal event .../ y+ T/ \& ~5 u$ d2 \4 ~& p
( m6 m4 n& e7 ~& T! h, q. O//Deal InitVal
5 w. u! z: Y+ j- V0 Q* NBYTE ret = 0; `0 r8 i4 X: s
SetVal+=InvisibleInit;8 R9 i8 F/ [9 k$ _
ret += SetVal ;% I( A( q; W' x2 {
return ret; L* E" N& h1 `9 B) e
}
; |6 s* A! a! [2 g3 v4 k3 b. E5 B) @' @$ S) W3 L3 O
最後關切的函數當然是遞減函數: h D% N) g$ I9 q% X
ex:
- Z' O8 ]" q* w4 _% |BYTE DecInviVal(BYTE *InviVal)4 L% M' f$ N S8 [
{% x- }. X4 A, @/ r
cout<<*InviVal<<endl;: U3 V) r# U. z+ m& O& _
(*InviVal)--; //*InviVal -= DecVal;! h2 d0 b! F8 n' K2 } X/ l
cout<<*InviVal<<endl;5 U) J& l4 |$ M" a9 Q( G# D
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
' A* Z, y$ n9 dreturn *InviVal;2 {3 C, L7 `3 ]
}3 G! X4 }- T' D
* H" K* ]/ R8 a
針對以上觀念,改遊戲就很簡單,
: R3 Y6 h1 s$ [+ [) n. d2 e一開始我們先初始化數值,輸入'?',8 F# `( G [6 K+ ?9 M
接著開始無敵時,輸入'+',2 u/ f& G5 _7 ^
接著我們知道無敵時間會開始變動,
% k0 C, [1 a0 |3 M以上例來說時間開始減少,每隔一段時間輸入'-',: D% M3 `' `2 T& \6 p. [
最後沒有無敵效果了,輸入'!' 或是 '0'。+ z3 W$ F8 q. j7 V
& V Y) Q/ J( z( ]5 O! Q2 l記憶體地址經由演算法篩選後,只會剩下幾個,3 r" }; U) V" q! r
try 一下,你要的地址就出現了。- q# u* H* o* i3 s; P0 f7 Z
# r) ~ k+ E4 G) l" G. D4 g
P.S.以上程式已經Run過,沒有問題。! X8 P0 w7 X6 y
4 n/ W0 T# g: G l[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|