|
|
发表于 2009-7-15 12:21:19
|
显示全部楼层
原帖由 kidrock 于 2009-7-14 22:07 发表 ( v: [& R/ M' D% [. v
主要我是个初学者,最多会修改数字,关于无敌状态这种根本不会,现学的话。。。 。。。我是恐龙,进化不了那种,哎
4 D0 N7 J8 @3 a5 z3 S. `0 @4 c+ S2 E
其實修改無敵很容易,
3 D+ l, A8 e; e/ p6 y( p1 p' y就以遊戲程式設計的觀點來說,
, O& j, Z8 ~8 C一開始我會將人物無敵數值設定為09 Y: o8 J5 w8 r0 Y& F/ G2 j, e( ^
ex: : \4 }+ f5 v) y. h
#define InvisibleInit 02 v$ N) c1 e, T2 k
1 E$ e6 D/ C+ V然後當觸發特定事件,例如受到敵方攻擊(物件碰撞),
0 u$ q$ E7 K3 _# |呼叫設定函數6 c g) _$ p+ J7 V
ex:
4 ]3 W# V* P) ^; B$ xBYTE InviIniVal(EVENT event,BYTE SetVal)( y% g! T' E6 V% `- ~4 T8 G% s8 m
{9 M! a, Y( J- f" d
//Deal event ...# j* A) `/ s* d3 A4 _0 y
; u6 L7 S% R+ Z+ u6 Z# ]( _( V//Deal InitVal8 y8 p& ^% N# [
BYTE ret = 0;$ q9 H# `; X4 c
SetVal+=InvisibleInit;
9 \4 N5 Z8 V% t" Y: s3 t2 ]+ aret += SetVal ;
9 O: ?/ X, N! q- Ireturn ret;
' ~: f6 _: Q) d6 n3 U% a2 V} . S8 ^6 D ]- [( x+ H
% q7 p5 D4 R- n最後關切的函數當然是遞減函數:5 o x$ u5 |) e
ex:
* D: t' P- k8 x/ Z3 b8 p9 FBYTE DecInviVal(BYTE *InviVal)6 h" y' |9 h/ U k/ N8 s
{
! g! L ]$ `7 ocout<<*InviVal<<endl;
4 ]4 C7 ?: A" w* e(*InviVal)--; //*InviVal -= DecVal;# S, G( F" e/ [& D9 o6 x1 I( O. C6 v
cout<<*InviVal<<endl;
8 X7 Z$ }' z- I: \; Z) t2 A(*InviVal > 0) ? DecInviVal(InviVal) : *InviVal=0 ;
% ]- {/ F! P+ A1 i' ireturn *InviVal;
) a6 \3 ]* B* B& Y( m; [- S/ t}' Z8 o+ U: g! ]- d, Y
4 N- [/ \$ ~7 G) J8 G
針對以上觀念,改遊戲就很簡單,
( P3 G0 ~) Y3 I一開始我們先初始化數值,輸入'?',6 x: |: [* @9 n9 E, z, I/ B
接著開始無敵時,輸入'+',
0 [1 k, ]: f9 p' R+ U接著我們知道無敵時間會開始變動,$ i6 x- |4 `; @7 z0 P' [
以上例來說時間開始減少,每隔一段時間輸入'-',5 a! P5 R& U) G' {! F6 |% |' x6 [
最後沒有無敵效果了,輸入'!' 或是 '0'。: ?; c* n, t( p3 W, J. ~2 e
* t* h/ F& @$ o& T/ ]" C記憶體地址經由演算法篩選後,只會剩下幾個,* i; ]" x0 a/ _4 z4 j
try 一下,你要的地址就出現了。
- u n$ E; E, o' t- I" K
6 O& M9 S; k1 E1 @4 @P.S.以上程式已經Run過,沒有問題。" I% l' v$ p6 `# W
1 m: m/ B* c/ b% U# M[ 本帖最后由 krizal 于 2009-7-15 12:43 编辑 ] |
|