签到天数: 2180 天 [LV.Master]伴坛终老
|

楼主 |
发表于 2009-3-10 19:58:26
|
显示全部楼层
Console lessons level 3 : invulnerability and timers 4 g" w0 v) \6 J% s, P
: P' {( W8 U& h2 ~" C: p. U% ^
作者:Tux 文章来源:http://rainemu.swishparty.co.uk/msgboard/yabbse/index.php
' d$ n) V' X, ~ n3 ~) V5 ?# i+ B+ D& O- _* ^' J
This one is possible mainly because of the explanations from Stephh about how it works.
8 ^: Z9 ?/ M+ p C- x3 ]( L/ f% J) k3 @- ^, j# L
You probably noticed by now that almost every arcade game makes your character to blink when it first appears, and while it blinks it is invulnerable... This is the secret of invulnerability : while it works, there is a counter in ram which goes down to 0, and once it reaches 0 you are vulnerable again, so the idea is to use a script which will be called for each frame to prevent the counter from reaching 0.( b/ G, p5 V! C' k+ [4 u
9 n, F8 N5 ?' r5 j0 D8 I4 x, P) G* y
It's a lilttle tricky in mslug because of the little animation when the player 1st appears in the level. For the 1st level, it starts to blink while it is still in the air, then stops blinking for a short time (it is vulnerable at this point), and then starts blinking again when reaching the floor. In fact the counter is set to a high value 3 times during this animation if I am not mistaken !
2 i# B7 I& _" n( Z0 aIt's easier to loose a life and then start the search for the 2nd life because the counter is initialised only once then...9 l. |! ^: r, }* {* I- f) K. q
So : as soon as you see the player is starting to appear, go in pause mode (p key). Then call the console to take a first snapshot of the ram (using its key, default is tilde), and then exit immediately from the console. Press the space bar while still in pause mode, and the game will run exactly 1 frame. Do that until you see the player character has changed its color. It shows the invulnerability counter just changed. You can then type :
+ I, Y. x, U5 b# F% P0 n7 isearch <
: ?! U! ~* L0 c O9 E; HIt will give you a lot of results of course, there are a lot of things which change at every frame in mslug. So you can repeat the same process a few times, calling the console every time the character changes on screen and type "search <", until the results shrink.8 y+ q7 o# _6 t; g
Then once it has stopped to blink, you can type :* r( [& v, }7 }0 C( K+ I! t+ T
search 0
) j4 \3 a" n1 [/ `" zbecause then the counter should be at 0.3 x" y8 c1 Q: A- ?6 x& v6 ~. w
) I. K' G& D) e% O
In the end, you should have only 2 or 3 results if you made enough searches.- ^0 B9 l7 j3 b2 a+ \) A
To test this, just poke a big value inside. Since the value goes down by 1 for every frame, if you put 180 inside you will be invincible for 3s (60 frames/s). You should find quite quickly that $1004a5 works great for that.: A+ h& E4 [* f1 F) S
Notice that you have a different invulnerability when you are in the tank. In this case, $1005e5 is the address you want.
" Q r8 A$ H- H+ b6 O$ ]Of course all these cheats will be installed in the next release... ! s0 H/ O. d% C% o7 b: z
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|