|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 4 s$ T9 u# f, }$ N# M9 U
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
' k8 P0 V( t2 o% x) \& y+ B8 \" m2 i% z* K4 y$ H
其實修改無敵很容易,- j0 w8 H: x! Q3 i
就以遊戲程式設計的觀點來說,7 m+ _) \# o* e) v: i* F' b
一開始我會將人物無敵數值設定為0+ Z9 [, d0 |% `1 T% w3 S' S
ex:
/ \2 e# @- A) J5 L. A' w4 W#define InvisibleInit 0
7 \8 e+ H# j1 r8 e1 s; H: [$ E" e: @: Y- A( M9 d
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),# X( M% h* N/ b
呼叫設定函數3 d I& a$ f# K2 Y
ex:
& d3 A2 z' t$ ?# m5 x. u" F7 MBYTE InviIniVal(EVENT event,BYTE SetVal)
2 w! y2 \+ y, {$ c& W1 M{
$ Y- r* u% l. l* ~//Deal event ...
' [9 e3 m8 r5 J% K$ T/ n
# U" `( B: w. Y, {( p3 z//Deal InitVal* {: G9 i2 \, j, q
BYTE ret = 0;
; ?" r$ |. l, b$ B2 q* d6 QSetVal+=InvisibleInit;; b. z, ]$ A0 S7 k X5 {- V/ _
ret += SetVal ;
0 k" b' g# s- M5 Rreturn ret;
$ o3 s, z: m# K+ B8 l r$ f}
! g3 ^+ q' I$ t2 G1 n- w3 \6 N
& D& [9 G9 X! R$ O最後關切的函數當然是遞減函數:
, J" B7 \$ y! I- \$ P" [ex:! f0 L1 B+ F5 \) Q2 O& [
BYTE DecInviVal(BYTE *InviVal)' s( y1 U5 i" D" ^4 ? z1 t
{
0 _; s4 y# ^% Ycout<<*InviVal<<endl;# R) f9 f& e9 n2 _
(*InviVal)--; //*InviVal -= DecVal;
c% ^) `3 n7 u. lcout<<*InviVal<<endl;) V. c U! w0 }/ ]
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;9 \3 h# o2 I; B+ C! G- ?4 Z+ s0 R
return *InviVal;
* P$ q' i* i* b2 k}
# D G8 g/ A7 ]8 p) r, [' k: ?- S$ Z9 ^
針對以上觀念,改遊戲就很簡單,
/ C4 g! j- v5 {$ y: |+ K( r一開始我們先初始化數值,輸入'?',7 T% V0 ^1 C- H, n6 V( Q- a
接著開始無敵時,輸入'+',6 G% `9 j ^6 Q0 S4 `: K
接著我們知道無敵時間會開始變動,
; B- {5 M( ?5 P3 }) M6 N7 R" z! m! X以上例來說時間開始減少,每隔一段時間輸入'-',; V- A7 H! e# u( V
最後沒有無敵效果了,輸入'!' 或是 '0'。1 f+ \; T/ Z8 K4 j
4 T4 s- x0 ^" z' z0 H! c6 {8 p
記憶體地址經由演算法篩選後,只會剩下幾個,% w7 B7 S" k; ~6 g
try 一下,你要的地址就出現了。
) G" N( M8 m7 Y1 z$ L$ i& s5 ]1 a% C. p( N3 Z# S- K
P.S.以上程式已經Run過,沒有問題。
2 e0 k: T/ V1 z1 i& n8 x
: E) [7 Q$ H! `, p[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|