Dec 6, 2011, 09:40 AM | |
Warps are objects
I really don't want to open a new thread for this, but I can't exactly find anything relevant on the forum. Basically, warps act as objects if and only if ShowAnim is set to 1 (otherwise it acts as an area). That is all.
__________________
<TABLE border=1><TR><TD>Facts: Jazz Sprite Dynamite (JSD) Tileset Extractor Neobeo's Firetruck </TD><TD>Myths: Jazz Creation Station Plus (JCS+) - 10% Coming soon - a dedicated server! - 25% Jazz Sprite Dynamite v2 (JSDv2) - 2% Another generic single-player level - 0%</TD></TR></TABLE> |
Dec 8, 2011, 05:49 AM | |
Wow, so simple yet so amazing.
__________________
"So unless I overwrote my heart with yours, I think not. But I might have." - Violet CLM Two Games Joined releases: Control / Splinter (twin singles) || Ballistic Bunny (EP) || Beyond (maxi-single) || Beyond: Remixed (remix EP) || Inner Monsters OST (mini-album) || Shadows (album) |
Dec 8, 2011, 07:52 AM | |
That's the first thing I checked too.
![]() -Unlike typical warps they aren't ignored when nowall is on. -In SP they actually spawn exactly at (30, -67) from the top-left corner of the warp event, then travel down until they reach a masked pixel, in case of which they stop. Their warping area is a rectangle, starting at approximately (-64, 24) and ending at approximately (0, 80), both relatively to the point the object stopped at. -A loop made of a warp object and a corresponding warp target on the same tile is inescapable. jjk causes a life loss but the death animation doesn't get a chance to be played and therefore you don't die. And as mentioned before, jjnowall won't work. Although obviously, the game over screen will show up if you lose all your lives.
__________________
I am an official JJ2+ programmer and this has been an official JJ2+ statement. |
Dec 8, 2011, 08:33 AM | ||
Quote:
Anyway here's what really happens under the hood: It starts at approximately (15 + x0, -16 - y0), and then the warp area is a circle with center at (-16 - x0, y0) relative to that masked pixel, with radius 32 (but not including boundary). This circle shape probably makes it useful if you want tests with weird shapes. I'm still trying to investigate where (x0, y0) comes from yet, so far knowing nothing other than it tries to load a warp animation but goes wrong -- but I've seen at least 2 possible values: (0, 39), and the one you used which is (15, 51). Edit: I should probably mention that I usually see (15, 51) when using JCS save+run, and (0, 39) if loading from the menu. I'm not sure if this is always the case though.
__________________
<TABLE border=1><TR><TD>Facts: Jazz Sprite Dynamite (JSD) Tileset Extractor Neobeo's Firetruck </TD><TD>Myths: Jazz Creation Station Plus (JCS+) - 10% Coming soon - a dedicated server! - 25% Jazz Sprite Dynamite v2 (JSDv2) - 2% Another generic single-player level - 0%</TD></TR></TABLE> |
Dec 8, 2011, 03:23 PM | |
Ok, so there are at least 3 possible values of (x0, y0), and it's fairly reproducible:
Also, I made a small hack if you want to visualise where the warps are. It basically draws a pixel-perfect circle that represents the warp area, as long as ambient sound with sample 44 is placed somewhere on the level: Code:
Patch JAZZ2.EXE v1.23 at address 0x13018 Old: 8A C8 33 C0 66 8B 43 34 C1 E0 03 0F BE C9 66 8B 90 C0 F9 54 New: 8B 0D B0 F8 54 00 3E 8B 0C CD C4 F9 54 00 0F BF 49 06 EB 19
__________________
<TABLE border=1><TR><TD>Facts: Jazz Sprite Dynamite (JSD) Tileset Extractor Neobeo's Firetruck </TD><TD>Myths: Jazz Creation Station Plus (JCS+) - 10% Coming soon - a dedicated server! - 25% Jazz Sprite Dynamite v2 (JSDv2) - 2% Another generic single-player level - 0%</TD></TR></TABLE> |
Dec 8, 2011, 04:23 PM | |
Putting aside people's bizarre unshared means of editing JJ2 without the original source code, the takeaway message is that nobody should try to do anything with this "discovery" because it's wildly variable?
|
Dec 8, 2011, 04:40 PM | |
Pssh. Ideas already forming in my head.
__________________
drop by my SoundCloud or something if you want, it's my life's pride |
Dec 9, 2011, 10:16 AM | ||
Quote:
![]() |
Dec 20, 2011, 07:35 PM | ||
Quote:
While you're in the level, don't move. Then move after you've gotten bored.
__________________
drop by my SoundCloud or something if you want, it's my life's pride |
Dec 20, 2011, 08:18 PM | |
Well, okay, sure, but that's the familiar case of coin warps with sprites. It's the numbers other than 10, 20, 50, and 100 that are wildly variable, because apparently they work differently depending on how you access the level.
|
Dec 22, 2011, 03:56 PM | |
Very interesting.
![]() |
Aug 30, 2012, 02:57 PM | |
How do you mean? I'd imagine trying to generate them would be like trying to generate bridges: kind of pointless, since they never get destroyed.
|
Sep 1, 2012, 10:36 AM | |
You're revealing so little info about what you want to achieve that it's difficult to help you and I felt really discouraged to it. Let's say I'll try though. First off, Violet is right, warps don't get destroyed so creating a warp generator will give you almost the exact same effect as creating a warp. Another fact is that creating a warp object generator is perfectly possible with use of an MCE (although you will most likely have to edit your JCS.ini a bit). I'll upload an example level if you need one, just ask, it's nothing spectacular though since for aforementioned reasons it simply spawns one warp and does nothing else afterwards. If what you want to achieve is warp objects travelling through a part of the level from time to time you have to use a crate MCE instead, that is, a generator of crates containing warp objects. This also happens to be perfectly possible. If you need help at creating any of these or I didn't answer your question, specify it further. Feel free to move to private messages if you want to avoid discussing ideas in public.
__________________
I am an official JJ2+ programmer and this has been an official JJ2+ statement. |
Sep 2, 2012, 04:42 PM | |
0,0: Generator (Event=32)
1,0: MCE Event (Event=230, Delay Secs=1) 2,0: MCE Event (Event=x, Delay Secs=y, Initial Delay=0, [AddAnotherParameterInJcsDotIni]=1) 0,1: Belt Right 1,1: Belt Left x: Warp ID y: Number of coins needed You'll also need another warp event somewhere in the level requiring the same number of coins so the sprite will get loaded, though it doesn't need to have ShowAnim set to 1. At a guess, the part that's tripping you up is that you need to add another parameter to MCE Event, since its bitfield doesn't stretch far enough to set ShowAnim otherwise. |
Sep 4, 2012, 01:35 PM | |
I'm afraid it wasn't that part, and I don't know what part it was, because sure enough when I tried it again it worked fine. I wish I'd saved the version that didn't work because I have no idea what it was I did wrong, and was very confident in not having done anything wrong, if you hadn't guessed!
|
![]() |
«
Previous Thread
|
Next Thread
»
Thread Tools | |
|
|
All times are GMT -8. The time now is 05:37 AM.
Jazz2Online © 1999-INFINITY (Site Credits). Jazz Jackrabbit, Jazz Jackrabbit 2, Jazz Jackrabbit Advance and all related trademarks and media are ™ and © Epic Games. Lori Jackrabbit is © Dean Dodrill. J2O development powered by Loops of Fury and Chemical Beats. Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Original site design by Ovi Demetrian. DrJones is the puppet master. Eat your lima beans, Johnny.