|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
7 i n, Z8 S8 a+ u: u$ Q9 D& w主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 5 c: `; l2 L% a I
0 C% v# {' x' @9 M: Y; g3 J; U
其實修改無敵很容易,! N" k0 s, i$ v# a# C
就以遊戲程式設計的觀點來說,
9 P1 k. A' w. P5 A% O# e$ Y/ p一開始我會將人物無敵數值設定為01 Z4 E: r/ w& a$ h: g0 C1 V
ex: 9 A# E9 d5 R( _" O, u
#define InvisibleInit 0
1 L, ~, z4 e" J" s( ~
# `4 P: m; E0 }, h2 U然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
4 C: i' B- e& f呼叫設定函數
3 N& A U$ |2 A7 c0 o! e+ uex:
# d6 t5 Z* c- G: U; L+ bBYTE InviIniVal(EVENT event,BYTE SetVal)
8 ?# D% P/ _+ Z4 M{
3 x: {9 Y0 q! ^" ]* @) ~" j//Deal event ...
+ d6 Z9 W4 u% b2 F8 ?& [( p
+ m( B& v: f" O& X( x9 i! `//Deal InitVal! G& w4 C( I/ z. Q F
BYTE ret = 0;
) \; a {& A2 }4 b0 L _/ f! B" ~( _SetVal+=InvisibleInit;( x2 U/ w; ^# c& _0 R* L$ A
ret += SetVal ;$ Q" x4 N; i# E2 q$ W
return ret;
& w% k: k+ K `! J7 F' [( Z+ \}
# h7 \3 E& x4 O$ U2 n8 |$ q$ M- [8 X1 j! {' g+ _9 Y
最後關切的函數當然是遞減函數:
6 O4 w1 V/ k, j8 t* y- p& Oex:1 L& q& O2 n! M, [1 ~; D
BYTE DecInviVal(BYTE *InviVal)
6 ]7 Q- r4 }0 b0 r- b{
, Z! U$ J1 h. n% Ccout<<*InviVal<<endl;
, z- |4 f( x% N0 H(*InviVal)--; //*InviVal -= DecVal;9 {. c C! M, v9 F
cout<<*InviVal<<endl;
i% o7 t& E5 i) o7 `" P. Q(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
8 W3 J7 b1 Z; |0 areturn *InviVal;6 h4 N& b" o3 P' C3 }2 V# a- q
}+ S e G% @1 T8 u
, {* I, X# W3 `2 R針對以上觀念,改遊戲就很簡單,) s& P& G+ U6 t7 z$ _) A
一開始我們先初始化數值,輸入'?',# j5 N! X3 s/ ^6 P8 `) @
接著開始無敵時,輸入'+',
9 O3 n& V6 l3 q9 }接著我們知道無敵時間會開始變動,- i( ]" w* p( s I+ ]: ^0 C
以上例來說時間開始減少,每隔一段時間輸入'-',6 S* P) {! ]6 O/ w, C% C9 I0 w
最後沒有無敵效果了,輸入'!' 或是 '0'。
( _% v. c6 W T; e+ ^7 `
# O2 h! n1 V! I8 Z* {5 Q: O記憶體地址經由演算法篩選後,只會剩下幾個,$ M5 T& e6 m" _% l. T: y8 m
try 一下,你要的地址就出現了。+ }1 z) z; X2 f
5 j3 K S' t7 n+ g
P.S.以上程式已經Run過,沒有問題。" Y8 |9 J* _1 H* s4 l+ K& @1 e5 V
/ W0 i- P/ v! k8 K V& P3 j
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|