|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
! ~# `, Q+ d- O: h! v0 p6 m主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
6 t" O& X7 v: l) F5 y! P! P
: ^0 K8 c: P9 D( v5 o1 F. j2 S其實修改無敵很容易,
6 s2 L1 Y; E8 g就以遊戲程式設計的觀點來說,
' N! V1 o7 `! l7 {. N% D4 q一開始我會將人物無敵數值設定為0
1 g" a1 C3 f/ t) u; @ex:
2 {& u! u9 l9 k& V#define InvisibleInit 06 F( ]" @ D( o! O; X* y. T
: n3 _( V" n$ Q' T2 a然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),9 @6 Q/ u0 U d. `
呼叫設定函數
! V0 F* X7 R# ^" vex:; }8 {' e7 g7 h6 y: W3 g
BYTE InviIniVal(EVENT event,BYTE SetVal) r! F( O2 I6 o$ `
{& A, P! e/ y5 e5 f' P) R
//Deal event ...
; i6 V$ w/ N* @/ P2 |$ {
: R4 F. |& C& i% Q//Deal InitVal- }+ n- m4 M, B. C2 E: |" v7 l ^6 H
BYTE ret = 0;
W" b, x1 q( ^5 }SetVal+=InvisibleInit;. A `4 m1 U9 `5 I+ P% _+ A$ m! M
ret += SetVal ;
1 O: q( @4 H' o) ~4 }' Zreturn ret;! y6 L# y4 F7 W
} 3 U! r$ q* o' [- f) K) v
* d6 H$ W$ b9 M# s最後關切的函數當然是遞減函數:
9 g; G8 r4 P3 y9 l3 g6 Dex:+ R g# i Y2 d: n* D
BYTE DecInviVal(BYTE *InviVal)
9 N' j. g5 S( Q{
( A* J, x0 F: L+ Z8 h3 l gcout<<*InviVal<<endl;
A. U! O& Y7 @$ ](*InviVal)--; //*InviVal -= DecVal;
& l0 k# ^* i: Zcout<<*InviVal<<endl;8 t9 B) G+ @# T6 d: F y. l
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;3 \8 K+ M: `3 m
return *InviVal;+ S3 Y; `% w. e! W+ o' e
}5 G0 [2 W. v! w$ m; {
8 j7 k" |3 D$ _+ W針對以上觀念,改遊戲就很簡單,- U7 B' \* L# }0 X; V0 x
一開始我們先初始化數值,輸入'?',& d5 @) B5 P' {: x) `2 I3 s
接著開始無敵時,輸入'+',
& B& Y' S d8 D( V' n接著我們知道無敵時間會開始變動,% H9 }, s' g, \
以上例來說時間開始減少,每隔一段時間輸入'-',2 r- X$ _9 P1 I0 d: Q/ o- o
最後沒有無敵效果了,輸入'!' 或是 '0'。
1 d% m7 s P0 J5 B( \6 Y; c) \! Z+ C( c Q' D( L1 M& p
記憶體地址經由演算法篩選後,只會剩下幾個,' D7 p3 }5 T5 `- c
try 一下,你要的地址就出現了。' [1 q' G+ Z" p( |9 U% }3 S6 j
; c* U+ A# ~$ e1 XP.S.以上程式已經Run過,沒有問題。
4 ~# G# [+ I9 Z) z# n, p2 H% a& u& z) o6 z) o' Z
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|