|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
2 L. Y3 Q8 x" o" i! I9 Q) N主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎 ( m/ V. c1 I' b/ @3 J% Z1 g
) P j1 h2 `! g其實修改無敵很容易,
* S$ E% t. c1 G( U. ]; |1 w) h就以遊戲程式設計的觀點來說,
8 ]. H' d6 b% v. t9 q9 b- e8 [一開始我會將人物無敵數值設定為0 [6 C! d" X# [/ {8 V6 @" L
ex:
1 Q5 c' K& p* b1 F* @2 A#define InvisibleInit 0
# K {8 A- t! G- n' k# R \
r) D5 `% }+ H然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
^9 p9 A1 M$ [" W& @2 n4 N* J8 w呼叫設定函數8 ]: u7 K# e# m% M
ex:
( L3 N2 }1 J, }" t/ F! DBYTE InviIniVal(EVENT event,BYTE SetVal)
A1 W) s+ l) Z{1 |3 i& v8 E0 Y) [- `
//Deal event ...: T, |' y q% Z8 X- S: h
% Y3 O; Z, l4 ]) e
//Deal InitVal" J: P: g/ z8 m( o8 t
BYTE ret = 0;
2 K3 H- N" Q# JSetVal+=InvisibleInit;1 |$ @3 N' }6 |
ret += SetVal ;
_' p' s. d$ x) I' Creturn ret;0 f0 N; a5 ^. c( A& e+ P8 R) S
}
7 R$ |" ?1 W2 Q; b8 h. C/ c8 M1 N0 T% _6 e2 S# S. o3 D
最後關切的函數當然是遞減函數:
3 t% `5 B! T" `, U7 t% b& zex:& b$ w+ [2 i' O$ P, F8 [+ k
BYTE DecInviVal(BYTE *InviVal)0 W2 u( d; Q) l
{' A9 z6 ` x* ^ ?& [* r: v
cout<<*InviVal<<endl;; i3 Q6 O: N( [% K1 o
(*InviVal)--; //*InviVal -= DecVal;" h( s0 X. b0 w) `
cout<<*InviVal<<endl;
9 S0 t# A. l4 O(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;/ R Z9 }" p: q
return *InviVal;
e' `2 m' E* v2 `' G}
, P3 a5 D4 U) Q" e0 A3 ]4 J7 v, [ j) j# c5 j- y, Q* ?: Y
針對以上觀念,改遊戲就很簡單,7 X0 o; w4 D8 {* @* I* y
一開始我們先初始化數值,輸入'?',
, b; ^/ f' u7 L e/ Y接著開始無敵時,輸入'+',& n3 W, t$ o0 V; ?
接著我們知道無敵時間會開始變動,
) o' Q* y% E- R* g% y8 m以上例來說時間開始減少,每隔一段時間輸入'-',
) [6 q9 x& T* N; \8 t. F, U最後沒有無敵效果了,輸入'!' 或是 '0'。! ~# {# {4 I. b0 G
2 ?. U( e! W* }; A3 R1 W
記憶體地址經由演算法篩選後,只會剩下幾個,
; x# o7 R' d$ c- a8 ntry 一下,你要的地址就出現了。/ V; M- J4 Y& a1 ~2 m
0 M' a2 `" {. V, x5 fP.S.以上程式已經Run過,沒有問題。 {$ i5 `# D$ P. i. Q
) k& _2 z4 e$ _0 r/ ^[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|