|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 % I) t" U6 S8 E
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
! K& S. y7 s. x$ R$ n) E, K# ^$ c- i, l5 a$ s2 B! ^
其實修改無敵很容易,8 U/ ~6 G2 j, a, S! {& D+ }9 E
就以遊戲程式設計的觀點來說,
" r9 p- g" v- T2 i一開始我會將人物無敵數值設定為0- M9 R3 \. P9 J% R% B3 |; P
ex: % X/ ] ~1 i2 M! [- U2 A
#define InvisibleInit 0
' l4 }$ s U$ l. b" W! W# C; K: s
+ n+ C+ J5 [, Q! X4 [然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),/ I+ Z: t( N1 {3 K- S g
呼叫設定函數' N# s ]3 C: Y5 W3 ?- M
ex:$ ~( w Z1 {( d' N$ t9 U2 Y
BYTE InviIniVal(EVENT event,BYTE SetVal)
1 U. B) o( A0 p9 f& W2 a3 o. D ~{
( [# }$ @0 n& a# ^2 q" S//Deal event ...
/ X( \& d1 N( ?. p. _" X, S' j. L6 I& \4 g2 d l
//Deal InitVal
) E, |3 e" h2 ~" h8 _BYTE ret = 0;
" b) O( ~( n: a# HSetVal+=InvisibleInit;# V( o8 c% \2 C& D
ret += SetVal ;/ {+ G5 @# q( m: R. \7 Z
return ret;
! \( @2 b Q$ C: B7 r} 0 ?6 P2 |9 ^, ~0 ]+ Z/ w
' d4 t! Z7 `/ ^. W3 k I3 z# U5 P最後關切的函數當然是遞減函數:
- c( Q& W9 W' C7 H7 C. ^ex:: d8 U7 X+ u5 s; f
BYTE DecInviVal(BYTE *InviVal)' G/ n1 @$ ~1 `0 ^# F. @4 n2 X1 R, S8 v
{2 E3 `2 R q. W+ E; F5 V
cout<<*InviVal<<endl;
& {# G8 |3 }5 p4 h' t3 W(*InviVal)--; //*InviVal -= DecVal;
9 i' q) U- g" d4 [8 N1 i0 d) lcout<<*InviVal<<endl;5 D; ~# K0 v$ W' O9 L
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
! K5 `9 C/ R1 F9 C: Kreturn *InviVal;
& [, j' u/ A$ ]9 d- F$ m. @: m}
% Z8 [' b$ N- |
% o/ t v) k, m! n! s' @) k5 Q針對以上觀念,改遊戲就很簡單,: l, X* r1 E& J
一開始我們先初始化數值,輸入'?',, p0 d# G8 _1 g/ @# ?0 w1 E" `
接著開始無敵時,輸入'+',( }% Y0 M# G- {- |$ p
接著我們知道無敵時間會開始變動,& h# r( p9 X$ ]$ ]) k
以上例來說時間開始減少,每隔一段時間輸入'-',
7 c7 r! V5 j, B最後沒有無敵效果了,輸入'!' 或是 '0'。
; ~1 w; f8 x$ I2 N; n6 b% e3 W( L$ p' S
記憶體地址經由演算法篩選後,只會剩下幾個,/ O$ z' [! O% A4 b+ Y# D& ^
try 一下,你要的地址就出現了。
6 ?: G; r. ?* Q( [: W/ A1 B
' b# [" u: O2 eP.S.以上程式已經Run過,沒有問題。# x5 o* o- X+ ]0 x2 |7 \" g
7 x) E/ Q$ n) L1 b) |
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|