|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
1 \/ F, ?& t# k主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 , k& H( d/ _5 P
% B+ t0 _. D9 v1 Q" j, C( e D
其實修改無敵很容易,/ {9 @- G; ]9 p, V7 [
就以遊戲程式設計的觀點來說,
- D7 B3 Q I2 A3 ~一開始我會將人物無敵數值設定為07 T! f+ } _3 R+ [$ s0 u+ @* r( W
ex:
7 q% j. a" x' V" N9 ~! G#define InvisibleInit 0
! d+ @1 y9 S# {
$ ^* x6 h) Z+ v# a; u4 u" }! T然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
0 }$ F: L! \& C4 I% [8 P( G% B呼叫設定函數" H* j6 Z% h* _) |6 A& K P: u
ex:: P/ K* s$ i3 j' n- e. ~
BYTE InviIniVal(EVENT event,BYTE SetVal)5 } B' D, K9 G5 F2 h
{, p( [. ^% C0 Q9 K, C. [7 v
//Deal event ...9 \8 g) c; q; F. _9 g2 e4 x' C: n
8 @+ I" c7 }4 @2 e//Deal InitVal
$ j4 t O& R- p& n7 _BYTE ret = 0;5 p- g& y6 `0 A; o6 G. s2 Z/ @
SetVal+=InvisibleInit;
$ a; Q+ L+ r4 A# Xret += SetVal ;0 J. J9 i5 \4 d; a: W. L9 ]1 `
return ret;5 b2 T3 I% D0 h' a% U1 g z
}
+ Y$ O- T& b& ]: z
9 q7 l) I% D X/ M# G. u2 {最後關切的函數當然是遞減函數:
4 Z1 g9 w0 U: o- ?% Eex:
# U3 T; [2 E8 d/ k9 r0 U+ b: TBYTE DecInviVal(BYTE *InviVal)
; `" ~0 O5 T% A) U+ M: n6 Q{2 h% V- B- O3 T1 T; O
cout<<*InviVal<<endl;( Z2 B) s0 Q. Z. I3 B& p s
(*InviVal)--; //*InviVal -= DecVal;
% a/ L6 M: J4 m8 Vcout<<*InviVal<<endl;
0 D/ u; z; S; c(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
/ H( V6 W) n$ b6 J* @* G* {4 [return *InviVal;8 Q6 N6 J: m: O( L$ _. H
}( d% m+ L$ h, B) V
1 g9 p$ G$ F6 V0 U9 _9 {4 {1 m% K
針對以上觀念,改遊戲就很簡單,
( g/ [0 z& D! u' e) Z一開始我們先初始化數值,輸入'?',5 [4 r9 |2 Z2 b& D. l6 z" m! M* D
接著開始無敵時,輸入'+',5 t5 A% w4 a* P
接著我們知道無敵時間會開始變動,
5 d- {# F2 X" V" D以上例來說時間開始減少,每隔一段時間輸入'-',/ d. v$ U2 e7 j
最後沒有無敵效果了,輸入'!' 或是 '0'。
& C A1 f7 g# t1 J2 B9 Q
M$ ]" U2 f2 }' E: |$ Y# U+ }記憶體地址經由演算法篩選後,只會剩下幾個," G+ ?- x+ ~& y/ r8 S. A/ h
try 一下,你要的地址就出現了。0 B1 c" O) Q y: e9 f8 E# }+ {6 J
+ `& L, B9 @3 a' Q9 H$ a* [+ DP.S.以上程式已經Run過,沒有問題。
5 a* _5 V7 ?! k* |' M8 b7 u7 A" \2 v) K3 r4 _( [ J2 d% Z3 X' T4 j
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|