|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 7 ` f, d9 o' I9 r
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
1 ^* _9 l) Z% V4 x9 k0 A9 W" n1 K: f8 L; K/ @& m9 e4 L5 d1 E2 ?
其實修改無敵很容易,0 T$ ^0 G8 b: d0 @0 _
就以遊戲程式設計的觀點來說,
0 o1 F, r& M' d3 @' l; t* k一開始我會將人物無敵數值設定為0
% P$ \0 n# {7 l" ?6 Eex:
1 P" W$ \' h ?/ V#define InvisibleInit 0
. M1 R5 ^/ s2 w4 z$ t& g7 U1 ~1 R1 B5 l$ v7 z2 }# O4 y# z4 j) C
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),! |: n0 D, s; \& v r5 O$ B2 ^ ?2 Z8 A
呼叫設定函數
: D# I. y4 X. ` Wex:
0 }( Q5 `+ {/ l2 CBYTE InviIniVal(EVENT event,BYTE SetVal)7 K& ]. }. h" k
{
4 q0 J1 V9 q a//Deal event ...( p$ L$ V8 E/ w' Q6 j9 U2 j! Q
: U+ j' S- y( @9 t5 L* L
//Deal InitVal
2 H) z, ~6 q9 O& z" e0 vBYTE ret = 0;
2 c0 Q( r8 y5 i5 {! t" uSetVal+=InvisibleInit;
. x+ [9 U5 L8 v7 hret += SetVal ;
/ _1 y* v# {: A W, D# b7 T, Nreturn ret;
( P J, N/ f+ p, k- [7 P: E}
' J' G/ `: _& @) l7 \. |$ O( v, B# P; `
最後關切的函數當然是遞減函數:3 `( A) @) j2 h* l, l( h( A
ex:; a+ F) d, Z1 Q; o' R B* `7 B* x* J: F
BYTE DecInviVal(BYTE *InviVal)
5 I- J; k% ?/ L{
& B6 F. Q$ ]- @- e! W0 Y5 [# K# wcout<<*InviVal<<endl;& Q$ H M+ U! f# G& o& U
(*InviVal)--; //*InviVal -= DecVal; B, {- B5 @9 Z7 j
cout<<*InviVal<<endl;
' a2 g$ f8 t5 H$ Q( |(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;, c0 i$ J& V2 t, Y
return *InviVal;
) r. ]1 N3 k. k i: s8 B}3 L! P" B7 @5 M0 i: D
4 f- w0 `: B1 z. Q針對以上觀念,改遊戲就很簡單,
/ M0 {: ?4 \) r! H+ z一開始我們先初始化數值,輸入'?',
2 U! \# T0 l4 g# L/ C6 j; \接著開始無敵時,輸入'+',
- \+ Q8 c$ A) w9 R5 u4 d! \接著我們知道無敵時間會開始變動,
' I- k/ A" }" J# z+ K以上例來說時間開始減少,每隔一段時間輸入'-',
7 M5 S$ f* h% }7 C' w最後沒有無敵效果了,輸入'!' 或是 '0'。
! q: \) m: i& i: \# }% G0 Z5 e9 u t8 b% M1 n. q$ e. K
記憶體地址經由演算法篩選後,只會剩下幾個,& ?: f; R# a, g1 |& k
try 一下,你要的地址就出現了。
. W! K2 [: {' b( L9 q" M' @4 E+ }. o4 O
P.S.以上程式已經Run過,沒有問題。
4 D; x5 x) n- Q/ M$ _) M* n0 n' O; ~: C/ X
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|