May 19, 2007, 09:43 AM | |
![]()
Ok, now i understand.
![]() |
May 21, 2007, 12:39 PM | |
LOL, I ran into a... somewhat... big... parameter value scale :/ This may be the clue to my problem with creating water... what is a parameter value like "4" compared to this?
Everyone who has 1.10o JCS: do the following: -Replace event 46 of JCS.ini (you may want to back up the original event 46 by putting ';' in front of it; JCS will ignore that line in the file then) with this: 46=046|046||Unknown1XXX:30|Unknown2:10|Unknown3:10 |Unknown4:10 -Load the level 'Binnen.j2l' in JCS and go to pos (123;93) -Put your pointer on it -Read the status bar ;p For those who don't have 1.10o JCS or are too lazy to reproduce wicked fun: A screenshot! (... a screenshot that only works when my computer is online ;p) EDIT: And I seem to have found a very weird 'BatteryCheck Rule': all events' parameter #3 has the event number as their value.
__________________
Last edited by Jerrythabest; May 21, 2007 at 12:53 PM. |
May 22, 2007, 04:04 AM | |
Well, you are right: on that paramter some values happen to be below zero... though actually that number was not negative
EDIT: and that rule I stated above is only true if you set all event parameter value ranges in jcs.ini to 10... I think the paramter values are only accurate for JCS.ini value ranges of -8 to 8 (which results in ranges from -128 - 127 to 0 - 255 in JCS) as I think these values are stored as a singe byte in the j2l file, and thus only support 256 different possibilities. Stuff looks a lot more 'normal' right now, as I can't find any values above 100 very fast atm and there are no stupid rules ;p EDIT2: actually there is a rule: parameters 1 + 5 and 2 + 6 are always identical, but I think that simply means BC (or 1.10o? don't feel like checking) uses only 4 parameters... I'll just leave 5 and 6 out.
__________________
Last edited by Jerrythabest; May 23, 2007 at 01:01 PM. |
May 22, 2007, 02:50 PM | |
Wait... so let me get this straight:
The parameters of 1 are always identical to the parameters of 5. Same for 2 and 6. Therefor you just don't use 5 or 6? |
May 23, 2007, 06:28 AM | |
BC, definitely.
__________________
Mystic Legends http://www.mysticlegends.org/ The Price of Admission - Hoarfrost Hollow - Sacrosanct - other - stuff |
May 23, 2007, 07:33 AM | ||
Quote:
EDIT: I did: -Removed params 5 and 6 from event 46 in JCS.ini and saved -Loaded BCCS and Binnen.j2l and selected a random event 46 and remembered its values (didn't copypaste it) -Created a new blank level and recreated the previously remembered event 46 in it -Saved the level, closed BCCS and put the params back in JCS.ini -Loaded BCCS and my blank level and checked the event I put there Result: Although I did not (enable me to) specify parameters 5 and 6, they had values identical to parameters 1 and 2 respectively. All 5th and 6th parameters can be taken out of the ini file =) EDIT: Parameter 4 happened to be 'automatically set' too, so I removed that one from the ini file too.
__________________
Last edited by Jerrythabest; May 23, 2007 at 12:44 PM. |
May 23, 2007, 12:46 PM | |
Results of the investigation of Binnen.j2l after some nice hours of work:
--Unique event parameter combinations-- Code:
E# P1 P2 P3 type 1 0 0 0 17 0 0 0 29 0 0 0 33 1 0 0 easy 1 0 0 hard 6 0 0 6 0 0 hard 9 0 0 15 0 0 21 0 0 24 0 0 27 0 0 29 0 0 34 0 0 37 0 0 41 0 0 44 0 0 46 0 0 49 0 0 52 0 0 56 0 0 57 0 0 59 0 0 61 0 0 62 0 0 65 0 0 easy 67 0 0 67 0 0 hard 72 0 0 74 0 0 75 0 0 76 0 0 77 0 0 78 0 0 80 0 0 82 0 0 83 0 0 84 0 0 86 0 0 87 0 0 89 0 0 90 0 0 92 0 0 94 0 0 99 0 0 102 0 0 103 0 0 104 0 0 116 0 0 117 0 0 122 0 0 124 0 0 35 1 0 0 5 0 0 hard 12 0 0 hard 43 0 0 45 0 0 47 0 0 48 0 0 50 0 0 51 0 0 38 -120 33 0 -93 21 0 -55 13 0 -30 21 0 -11 21 0 -8 -13 1 -7 15 0 -6 30 0 -5 31 0 -3 15 0 -3 23 0 -3 31 0 12 17 0 73 15 0 79 23 0 124 31 0 39 34 0 0 72 0 0 73 0 0 76 0 0 79 0 0 99 0 0 117 0 0 120 0 0 121 0 0 122 0 0 123 0 0 124 0 0 125 0 0 41 -87 -70 2 -63 32 0 easy -15 11 3 -12 44 3 67 67 0 hard 110 27 0 42 0 0 0 1 0 0 43 -54 -2 0 -44 92 0 -42 58 0 3 53 0 6 103 0 hard 44 -10 0 75 107 0 77 71 1 77 73 1 78 -85 0 82 72 1 108 -10 0 126 68 1 44 -112 -2 0 67 126 0 hard 46 -128 35 1 -116 20 3 hard -86 43 1 -85 43 0 -80 122 0 -77 74 1 -64 17 1 -63 55 3 -62 25 0 easy -61 25 1 easy -60 65 0 hard -17 122 1 0 28 3 0 49 3 45 91 0 50 75 0 64 17 3 64 26 3 69 63 1 hard 47 -127 -121 -1 hard -63 -121 -6 hard -63 0 -6 hard -58 62 -6 65 -128 -6 hard 77 -96 -1 48 -107 -46 0 -41 -63 0 -40 -59 0 -39 -59 0 -38 -59 0 -37 -59 0 -36 -59 0 -35 -59 0 -34 -59 0 -27 -59 0 -26 -47 0 -24 -45 0 39 -123 0 83 -110 0 50 0 0 0 51 0 0 0 1 0 0 52 0 0 0 53 0 0 0 55 0 0 0 1 0 0 60 0 0 0 61 1 0 0 hard 3 0 0 hard 6 0 0 hard 9 0 0 12 0 0 16 0 0 18 0 0 20 0 0 41 0 0 62 0 0 63 0 0 62 0 0 0 63 0 0 0 65 102 -128 0 Code:
E# Min Max Special notes 1 17 29 33 0 127 high positive 35 0 63 38 1 -128 127 big range 2 -64 63 3 0 1 bool 39 0 127 high positive 41 1 -128 127 big range 2 -128 127 big range 3 0 3 42 0 1 bool 43 1 -128 127 big range 2 -128 127 big range 3 0 1 bool 44 1 -128 127 big range 2 -128 127 big range 46 1 -128 127 big range 2 0 127 high positive 3 0 1 bool 47 1 -128 127 big range 2 -128 127 big range 3 -8 -7 48 1 -128 127 big range 2 -128 127 big range 50 51 0 1 bool 52 53 55 0 1 bool 60 61 0 63 62 63 65 1 0 127 high positive 2 -128 127 big range
__________________
Last edited by Jerrythabest; May 23, 2007 at 01:04 PM. |
May 23, 2007, 06:11 PM | |
I don't even know what all this stuff means but it looks extremely cool.
![]() |
May 24, 2007, 12:44 AM | |||||||||
Ok, I'd like to think I wasn't being a wet blanket, but many of the methods you have been discussing are stepping off the wrong path. So before we begin, I'd like to give a quick tutorial on how JCS.ini utilises bitfields.
Diagram 1.1 Code:
46=046|046||Param1:-8|Param2:-8|Param3:-8 ^ ^ ^ bitfields -----|---------|---------| In the example above, parameter 1 uses 8 bits, parameter 2 uses another 8 bits, and parameter 3 uses yet another 8 bits. That's a total of 24 bits, so in fact 4 bits are being discarded because there is no space to store them. What about the negative sign, you ask? Ok, a bitfield of 8 means it takes up 8 bits, and is an unsigned value (i.e. 0 to 255). But if it is given a negative sign, -8, it also takes up 8 bits but is given a signed value (i.e. -128 to 127). Either way, the number of bits taken by the parameter is 8. As an example, lets take event 192 (gem ring), which is given the parameters Length:5 | Speed:5. So if we gave it a length of 7 and a speed of 1, it would look like the following: Diagram 1.2 Code:
1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 <-------> <-------> <-----------------> length speed unused extra space Diagram 1.3 Code:
1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 <-------------> <-------------> <------ length = 39 speed = 0 overflow Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
That said, that effort has not gone to waste at all! You have correctly stated that events 1, 17, 29, 50, 52, 53, 60, 62 and 63 have no parameters, thus can be kept "unparametered" in JCS.ini. Equally correct is that events 42, 51 and 55 have exactly 1 bool value, which means only one bit is used out of the twenty. Thus they can have a parameter like Param1:1. Also, the results of your previous experiment, while not using the correct bitfields, need not be completely discarded. You could convert the parameters to binary fields and then use analysis to figure out the appropriate bitfields to use for each parameter.
__________________
<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> |
May 24, 2007, 02:03 PM | |
@birdie: as JJ2 doesn't use jcs.ini (only JCS does) I'd say it works fine on JJ2. But maybe JCS saves the file differently if you save it with another ini file... then stuff may be totally messed up, as I know now ;p
@neo: At least, that explains stuff ;p I already realized that I'd have to re-do the whole thing again as event 38's first parameter *could possibly* have some value around 200, though that won't be shown in BCCS because the -8 creates a range of -128 to 127. With your information however, I'm going to remove the parameters of events that clearly have no parameters and of course I'll make the boolean parameters really booleans. This piece of information you gave was just exactly what I needed to finish my work ;p now I can try to fit things in correctly and investigate each parameter one by one ;p I'll need another EDIT: replied to birdie and corrected the 'two hours' thing
__________________
Last edited by Jerrythabest; May 24, 2007 at 02:26 PM. |
May 24, 2007, 02:48 PM | |
@Birdie: Pretty much what jerry said. If you mess up your jcs.ini, then the level will be saved according to the jcs.ini and jazz2 will read it wrongly. Jazz2 stores its parameter bitfields internally rather than referring to a Jazz2.ini or JCS.ini.
__________________
<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> |
May 26, 2007, 12:46 PM | |
Gosh! More progress!
I cleaned up the event list a bit and I'm testing the events one by one now. [Events] section of BCE*.ini: Code:
1 =One Way |One |Way 17=End of level |Level |End 29=Start position |Level |Start 33=Battery holder |Batt |Holder|Global ID: 6|Direction: 1 35=Liferaft |Life |Raft |Water ID: 6 41=Water pump |Water |Pump |Global ID: 6|Full water ID: 6|Empty water ID:6 42=Recharger |Re- |charge|Direction: 1 46=Water |Water | |Water ID: 6|Width (tiles): 5|Height (tiles):5|Filled: 1|Mode: 1 50=Dripping Water |Drip |Water 51=Small enemy |Small |Enemy |Hanging: 1 52=Large enemy |Large |Enemy |Hanging: 1 53=Freddy the dragon |Fred- |dy 55=Monitor |Moni- |tor |Hanging: 1|Direction: 1 56=End boss |End |Boss 60=Extra life |Extra |Life 61=Upgrade Battery holder|Upgr. |Holder|Global ID: 6 62=Battery |Bat- |tery 63=Super battery |Super |Batt 65=Set water colour |Water |Colour|Surface colour:8|Deep colour: 8 66=Button of Death |Death |Button 70=Leaking energy |NRG |Leak 38=Elevator |Ele- |vator |Global ID: 6|2: 3|Direction: 1|Speed: 4|5: 3 39=Elevator stopper |Stop |Elev |Global ID: 6|2: 1 40=Platform |Plat- |form |Global ID: 6|2: 3|Direction: 1|Speed: 3 43=Door |Door | |Global ID: 6|Start low: 1|3: 1|Stop low:1|Speed:3|Stomps:6 44=Stomper |Stom- |per |Global ID: 6|2: 3|3: 3|4: 3|5: 4 47=Belt |Belt | |Global ID: 6|2: 2|3: 4|4: 4|5: 4 48=Transporter |Trans-|porter|Global ID: 6|Height (tiles):4|3: 4|4: 4|x:2 54=Rain |Rain | |1: 1|2: 1|4: 1|8: 1 58=Umbrella |Umbr |ella |Global ID: 6|Tracks: 3|Direction: 1|Speed: 4|5: 3
__________________
Last edited by Jerrythabest; Oct 23, 2007 at 01:43 PM. |
May 27, 2007, 10:48 AM | |
gj Jerrry
__________________
Yes, I am, in fact, ALWAYS the one to blame for everything. And none of your are full of yourself. Good job. Do you like Stijn? Take my poll! ![]() ![]() Windows is not a virus. A virus is small and efficient... Note to Stijn: how am i even getting away with this |
May 27, 2007, 01:21 PM | |
=D thanks.. I'll make sure that post is updated if I found out some things again
![]()
__________________
|
May 28, 2007, 02:29 PM | |
...any progress?
__________________
Yes, I am, in fact, ALWAYS the one to blame for everything. And none of your are full of yourself. Good job. Do you like Stijn? Take my poll! ![]() ![]() Windows is not a virus. A virus is small and efficient... Note to Stijn: how am i even getting away with this |
May 30, 2007, 06:48 AM | |
Not at the moment.. I got very much homework these days and thus there's no time for BCCS. I'll be back working on it next Friday
__________________
|
Jun 1, 2007, 01:22 PM | |
Whoosh, big progress today. Worked out the battery holder upgrade and the water pump and tried to find the correct amount of bits for some events. Some information on the events and their parameters:
Water Water blocks are made with the Water event. You will have to give it an ID and of course you must specify its dimensions. The first boolean, Filled, decides if the water block is 'filled' at the start of the level, so that there is water in there. The second boolean, Mode, allows you to switch bedween two modes: the first one (0) has a diagonal end at the top right corner, the second one (1) has an all-straight vertical right end. The Water event needs the Water Options event somewhere in the level to work. In the Options event, the color of the water (maybe among other settings) is decided. I still have to figure out its parameters, maybe I'll try to do so tomorrow. You can fill an empty water block and you can flush a full water block with a Water pump. For this event to work, you must specify a Global ID and the IDs of the water blocks that must be changed. In this case, the Global ID refers to the Global ID number of a Battery holder. When you put a battery in it, the pump is activated and will fill the water block with the ID you entered for the 'Empty water ID' parameter and will flush the water block with the ID you entered for the 'Full water ID'. This will look like one water block is being filled with water from another. Liferafts can be placed on water by putting them on the place you want them to float on the water and setting their Water ID number to the same value as the water block you want them to float on. It turned out it doesn't matter if the Liferaft event is placed in the level under the water surface, it will automatically be moved to the water surface. Battery holders Battery holders have an ID number. When you put a new battery into the battery holder, all objects on the level that have the same Global ID will be activated. If there is a Battery holder update event in the level with the same Global ID, the Battery holder with that ID will have a small device connected to it which enables the battery holder to take infinite energy from the battery you put in. Eyecandy events It turned out that there are events in the game that only add some eye candy. The monitor event will show a monitor with some person displayed on it. The Leaking energy event will show a small fireworks-like animation now and then. The effect is similar to what you get if you cut a wire while its plug is in the wall (use scissors with plastic on them please, don't die). The Dripping Water doesn't seem to harm you.
__________________
|
Jun 1, 2007, 02:47 PM | ||
Quote:
|
Jun 2, 2007, 12:47 AM | |
Heheh, my dad had to cut a wire once, and before he cut it he put the plug in XD the plastic indeed melted, but I'm glad it didn't melt far enaugh to hurt him. It was an awesome effect, though ;p
__________________
|
Jun 2, 2007, 02:36 AM | |
Oop yes ur right ;p normally I spell it correctly.. I were just still a little bit sleepy I think ;p
This is how I check the event's parameters. I make a list of all used combinations of bits (using the knowledge I got from Neo's post) and then try to pick out the parameters... For the water pump this was rather easy as there was always a battery holder somewhere near that matched the first six bits and there were always two water events near that matched their first six bits with the second or third six bits of the pump... and it happened the one which matched the second six bits was always the water event whose Filled parameter was 1 ;p it's just a huge puzzle, but not impossible. Code:
Occurances of Umbrella (the Rain event has bits 0101): 124862 124 124 124 12 001000 001 010 101 11 101100 111 001 001 11 101100 111 011 000 00 100110 111 110 100 00 010110 011 111 000 00 GlobID Code:
Occurances of Stompers in Rain: 124862 124 124 124 1248 110000 100 001 100 1010 101000 110 001 011 1111 100100 110 010 010 0101 101100 100 001 101 1111 100010 000 011 111 1111 100010 000 010 101 1111 100010 010 011 111 1111 010010 000 001 010 1100 GlobID Code:
Occurances of 043 in Binnen: 124862 124 124 124 12 011111 100 010 001 01 010100 110 111 111 10 110100 101 101 011 00 101100 101 001 001 01 101100 101 110 001 01 011000 001 110 011 00 011100 101 101 010 10 010010 100 001 001 01 011010 110 101 110 00 001101 000 110 111 10 001101 100 110 111 10 110000 001 010 110 00 001010 110 011 101 00 GlobID
__________________
|
Jun 6, 2007, 08:32 AM | |
I found that if you give the water options event (which happens to change nothing else than the color of the water) two parameters of 8 bits, changing the first parameter will only change the water surface and changing the second will only change the rest of the water. Also, setting both parameters to the same value will cause the water to be completely in the same color. Because there are 256 values possible for each parameter, I'd say the value refers directly to a palette entry.
-If there is anyone who could think of another way this parameter is used, please say so. -If you know a way of getting the palette for the Binnen-tileset, then say so as knowing the palette would really help me to check if the water options parameters really refer to palette entries. EDIT: thanks to n0 for reminding me about F12 I got the palette =) Now checking the parameter values EDIT2: checked and I were right.
__________________
Last edited by Jerrythabest; Jun 6, 2007 at 12:17 PM. |
Jun 8, 2007, 02:33 AM | |
-I *was* right, grammar now!
__________________
![]() nonne amicus certus in re incerta cernitur? /)_/)
(^.^) ((")(") |
Jun 8, 2007, 05:10 AM | |
Whoa me has done that wrongly all time to now! Why you not said it?
Oh well, I'm back working on BCCS... now investigating the elevators.
__________________
|
Jun 8, 2007, 06:45 AM | |
I added a parameter '?:1' to each finished event and checked if it worked differently with that parameter set to 1. It turned out the monitors can be horizontally mirrored too =)
__________________
|
Jun 9, 2007, 07:43 PM | |
...and progress?
__________________
Yes, I am, in fact, ALWAYS the one to blame for everything. And none of your are full of yourself. Good job. Do you like Stijn? Take my poll! ![]() ![]() Windows is not a virus. A virus is small and efficient... Note to Stijn: how am i even getting away with this |
Jun 10, 2007, 06:04 AM | |
See post #57. Stuff will get harder now, as I'll need to find out what those parameters do. Some, for example the second and fifth of the umbrella, are behaving very weird IMO, I'm just not sure what they really do.
__________________
|
Jul 2, 2007, 02:47 PM | |
Progress report plz.
__________________
Yes, I am, in fact, ALWAYS the one to blame for everything. And none of your are full of yourself. Good job. Do you like Stijn? Take my poll! ![]() ![]() Windows is not a virus. A virus is small and efficient... Note to Stijn: how am i even getting away with this |
Jul 3, 2007, 06:17 AM | |
No progress because of school. New progress will come soon.
__________________
|
Jul 3, 2007, 07:01 AM | |
are you in summer school or something?
__________________
Yes, I am, in fact, ALWAYS the one to blame for everything. And none of your are full of yourself. Good job. Do you like Stijn? Take my poll! ![]() ![]() Windows is not a virus. A virus is small and efficient... Note to Stijn: how am i even getting away with this |
Jul 3, 2007, 11:24 AM | |
Well, test week until today. Now I'm free
![]()
__________________
|
![]() |
«
Previous Thread
|
Next Thread
»
Thread Tools | |
|
|
All times are GMT -8. The time now is 02:04 PM.
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.