|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 
" g. [ i, G$ ?2 ]# X$ P0 k1 Q r主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
0 L: o! A: t/ u2 J$ C9 ~# {8 I: ^# N5 v
其實修改無敵很容易,
, k' B, u4 ~0 l就以遊戲程式設計的觀點來說,
# ^7 Q6 s4 J; V% P9 G. z9 [3 w一開始我會將人物無敵數值設定為0
2 `4 _# \/ `! |; g' s! o4 bex:
% q8 _6 j0 V$ k4 g#define InvisibleInit 08 l8 J5 G: o& E$ ]9 k. a3 s
# S. L6 q e# T4 U0 B m2 @! K, P" o7 G
然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),: M' @2 m1 a3 h! N! G) Q# G$ I5 s
呼叫設定函數
# T3 p: c, F A9 ^6 p5 }- c2 T- q0 rex:
" r! { g# i8 l u$ Q/ tBYTE InviIniVal(EVENT event,BYTE SetVal). s2 f6 |. K/ d" l
{
2 M5 p- X. r8 o6 c; F `; C0 t//Deal event ...
# d/ t$ a" `5 S3 }2 b* S( C) j# n& p5 K8 j
//Deal InitVal
' u+ V- w7 R9 Y7 c0 YBYTE ret = 0;; x. p* u& ^1 V l; u; {* h$ I
SetVal+=InvisibleInit;5 u9 O( ~ g2 W3 q b
ret += SetVal ;
5 ^7 d3 n( R% Y, x% @0 preturn ret;
$ F6 k* \2 O: y* I} 0 r8 V( l8 q, B5 V+ ?
' c" ]/ S9 y, R0 @4 I; b最後關切的函數當然是遞減函數:) D/ P/ @& |$ _! F" q
ex:0 p, X" X* {/ f+ L" a! a& a
BYTE DecInviVal(BYTE *InviVal). ~9 {- F9 }: P: S
{
+ ^' x4 S i$ j: s/ kcout<<*InviVal<<endl;
7 Z. ~' Y) ~; Q(*InviVal)--; //*InviVal -= DecVal;
& K: l1 h/ E. M% M! U4 ucout<<*InviVal<<endl;2 e+ G0 L5 x+ R2 M$ c5 M( i3 a
(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;9 S; t( @$ h1 F8 X
return *InviVal;9 \' ?) C2 K+ t6 o$ q7 `
}
3 ?; }( m; M* B; l: ^# Y. \5 T! X! P) s9 V5 |5 I
針對以上觀念,改遊戲就很簡單,% s5 [& [& _% f) `& G
一開始我們先初始化數值,輸入'?',
, b: {4 i$ f9 Y( f接著開始無敵時,輸入'+',
% r. X" v9 j% V% J9 f9 z, \接著我們知道無敵時間會開始變動,
4 x; h# s3 d X8 j& z以上例來說時間開始減少,每隔一段時間輸入'-',
* D& n5 \/ V% a" v4 J1 {最後沒有無敵效果了,輸入'!' 或是 '0'。
. a4 U$ G5 }( M8 M/ g9 q
* X& r3 {0 |; i, F記憶體地址經由演算法篩選後,只會剩下幾個,
( U1 W0 v' L3 f- a; r T% Stry 一下,你要的地址就出現了。1 x" ?& z3 z* e1 R2 F$ j: Q( K
; P8 Q9 R" a1 ~1 l8 y& {
P.S.以上程式已經Run過,沒有問題。
! V3 a. @9 i7 }& L+ E1 p: A/ T2 z5 J$ A& |# D2 a/ {
[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|