Register FAQ Search Today's Posts Mark Forums Read
Go Back   JazzJackrabbit Community Forums » Open Forums » JCS & Scripting

MLLE - Playing catch-up with DJazz

Reply
 
Thread Tools
P4rr0t

JCF Member

Joined: Nov 2013

Posts: 12

P4rr0t is doing well so far

Jun 28, 2017, 06:42 AM
P4rr0t is offline
Reply With Quote
Quote:
Originally Posted by Violet CLM View Post
It looks like something is probably wrong with one of the directories you specified that you keep games and tilesets in. Check the File>Paths and Filenames menu option, or if MLLE crashes before you get that far, edit MLLE.ini manually.
It works! Problem solved! Thanks!

Jelly Jam

JCF Member

Joined: Oct 2014

Posts: 775

Jelly Jam is doing well so far

Jun 28, 2017, 02:30 PM
Jelly Jam is offline
Reply With Quote
This makes everything easier.
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Aug 11, 2017, 01:39 PM
Violet CLM is offline
Reply With Quote
Quote:
Originally Posted by Violet CLM View Post
MLLE version 2.3 has been uploaded. Some bug fixes, some quality of life improvements, and a lot of new JJ2+ support.

The next major landmark, in theory, is the creation of levels with more than eight layers, but I suspect that'll be difficult to implement so I decided to leave it out of this release.
Now that happened. MLLE is up to 2.4 and you can add and reorder layers to your heart's content. And some other stuff, so check the changelog.txt.
__________________
Old Sep 27, 2017, 07:10 AM
Jelly Jam
This message has been deleted by Jelly Jam. Reason: Odd. Now it works fine again. I have no idea what happened there.
Jelly Jam

JCF Member

Joined: Oct 2014

Posts: 775

Jelly Jam is doing well so far

Oct 3, 2017, 02:53 PM
Jelly Jam is offline
Reply With Quote
Surely there's a lot more to it, but for now maybe you could add UseLayer8Speeds to the JJ2+ Functions. I think lots of level makers use that now.
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Oct 3, 2017, 05:38 PM
Violet CLM is offline
Reply With Quote
jjUseLayer8Speeds has the feel of a property that'll eventually be deprecated in favor of jjLayers[8].useSpeeds or something similar. That and the various textured background properties are being avoided in MLLE until either they become layer properties in angelscript or I become convinced that will never happen.
__________________
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Dec 2, 2017, 07:19 PM
Violet CLM is offline
Reply With Quote
Looks like I didn't mention 2.5 in this thread, but we're up to 2.6 now. Mostly just bug fixes in the last two updates.
__________________
Darkhog

JCF Member

Joined: May 2012

Posts: 227

Darkhog is notorious for his worthless posts

Dec 3, 2017, 02:09 PM
Darkhog is offline
Reply With Quote
Okay, so here goes my layout critique.

While the layout is workable, I think you should keep tileset, animated tiles, layer view and parallax view as separate, but dockable windows, so anyone can arrange them in whatever layout they prefer, including to emulate original JCS layout or put in the tabs if they want it that way.

For example, the way to add animated tiles is so obscure I couldn't really find it. In JCS it's easy: Find empty spot in the animated tiles window, click it and then ctrl+click the tiles for the animation. In MLLE? Hell if I know.

Anyway, that's just my critique. To sum it all up: You shouldn't force certain layout on people, but make it as flexible as it can be so they can customize it the way they prefer.

//edit: A suggestion: How about, for the events that have the associated graphic in it, like enemies, gems, etc., in parallax view the event could be shown as a graphic for that item, so you can see how the level would look like more or less with all items spawned without actually launching the game.

Another thing would be a built-in AngelScript editor with syntax highlighting so you can create and edit associated script for that level. A third-party editor for the Super Mario Bros X that is now bundled with SMBX (long story) does something similar.
__________________
Code:
    .──.
   │O_O │
   ││_╱ │
  ╱╱   │╲
 (|▔╲  │ )
╱'╲_▔ _╱`╲
╲___) (___╱  TUX LOVES YOU.

Last edited by Darkhog; Dec 3, 2017 at 02:26 PM.
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Dec 3, 2017, 02:52 PM
Violet CLM is offline
Reply With Quote
The parallax view style is not changing. Whenever I try JCS again nowadays it is just a severe downgrade in that regard.

Quote:
Originally Posted by Darkhog View Post
How about, for the events that have the associated graphic in it, like enemies, gems, etc., in parallax view the event could be shown as a graphic for that item, so you can see how the level would look like more or less with all items spawned without actually launching the game.
I think WebJCS implements this, or at least DJazz was talking about it... it's never been a high priority for me, though, because I've never found the text event names particularly uninformative. Also it would be an unnecessary, inaccurate distraction if the level someone was working on had a script that replaced an object with something else. Also it would be pretty tedious to assemble all the different sprite sheet images (and note down each individual sprite's coordinates) for the various different games MLLE supports.

Quote:
Another thing would be a built-in AngelScript editor with syntax highlighting so you can create and edit associated script for that level. A third-party editor for the Super Mario Bros X that is now bundled with SMBX (long story) does something similar.
I've thought about this, but Notepad++ is so much better than anything I could embed in MLLE, especially if you get SE's plugin to work. Also I think it's a lot better having the script in a separate window from the level editor, because that way you have maximum flexibility for editing script and layout at the same time. Even if somebody does come up with a much better AngelScript editor than Notepad++, it should be able to be run on its own.
__________________
Darkhog

JCF Member

Joined: May 2012

Posts: 227

Darkhog is notorious for his worthless posts

Dec 3, 2017, 03:14 PM
Darkhog is offline
Reply With Quote
Then how about, regarding AS thing, ability to create an j2las file directly from the MLLE (if it doesn't exist when clicking "Edit level script" option that you could put under JJ2+ menu), then launching it in the default editor? Heck, you could even bundle np++ with the MLLE, along with SE's extension as it is an open-source software, and when "edit script" is clicked just launch bundled np++ instance so everyone would have same or close to the same environment.

Also I like how you dodged animated tiles thing, talking about parallax. And no, it isn't about what you, as the developer finds comfortable, it is what users find comfortable. You may have Parallax set up as a tab for yourself, I don't really care, but some people like to see changes side-by-side, in real time, so they are sure they're putting tiles in the right positions, especially for layers with different scroll speeds.
__________________
Code:
    .──.
   │O_O │
   ││_╱ │
  ╱╱   │╲
 (|▔╲  │ )
╱'╲_▔ _╱`╲
╲___) (___╱  TUX LOVES YOU.
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Dec 3, 2017, 03:29 PM
Violet CLM is offline
Reply With Quote
Quote:
Originally Posted by Darkhog View Post
Then how about, regarding AS thing, ability to create an j2las file directly from the MLLE (if it doesn't exist when clicking "Edit level script" option that you could put under JJ2+ menu), then launching it in the default editor?
This isn't a bad idea. ETA: Implemented in 2.7, now reuploaded to J2O.

Quote:
And no, it isn't about what you, as the developer finds comfortable, it is what users find comfortable. You may have Parallax set up as a tab for yourself, I don't really care, but some people like to see changes side-by-side, in real time, so they are sure they're putting tiles in the right positions, especially for layers with different scroll speeds.
I mean, I am a significant percentage of the use MLLE gets. And being able to see that things are in the right positions is, indeed, what being able to view the level in parallax is for. You may be misunderstanding; the Parallax button isn't a tab, it's just an alternate display mode. You can still edit the current layer when it's enabled.
__________________

Last edited by Violet CLM; Dec 3, 2017 at 08:41 PM.
Darkhog

JCF Member

Joined: May 2012

Posts: 227

Darkhog is notorious for his worthless posts

Dec 4, 2017, 01:43 AM
Darkhog is offline
Reply With Quote
Quote:
Originally Posted by Violet CLM View Post
This isn't a bad idea. ETA: Implemented in 2.7, now reuploaded to J2O.
Thanks. One problem though. MLLE seems to be not able to load 1.24 j2t files, such as Easter99 (in GoG release), which JCS loads fine.


//edit: And I still don't know how to animate tiles in MLLE .
__________________
Code:
    .──.
   │O_O │
   ││_╱ │
  ╱╱   │╲
 (|▔╲  │ )
╱'╲_▔ _╱`╲
╲___) (___╱  TUX LOVES YOU.

Last edited by Darkhog; Dec 4, 2017 at 03:19 AM.
Stijn

Administrator

Joined: Mar 2001

Posts: 6,965

Stijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to beholdStijn is a splendid one to behold

Dec 4, 2017, 05:29 AM
Stijn is offline
Reply With Quote
So set the game version to 1.24. It's one of the menu options, click around a little bit and you'll find it.
Darkhog

JCF Member

Joined: May 2012

Posts: 227

Darkhog is notorious for his worthless posts

Dec 4, 2017, 03:01 PM
Darkhog is offline
Reply With Quote
Ok, I'll lok for it. From the message it looked more like 1.24 support was overlooked (at least for tilesets), but I guess I was wrong.

//edit: Though, in my defense, I have only path to JJ2+ 1.24 set up as I simply don't have other supported games, so it should default to the version I have and completely disregard those I don't (indicated by empty paths). Guess it's something that should be improved.

//edit #2: Got it. I hope it's not something I will have to do for every level or each time I start the program.
__________________
Code:
    .──.
   │O_O │
   ││_╱ │
  ╱╱   │╲
 (|▔╲  │ )
╱'╲_▔ _╱`╲
╲___) (___╱  TUX LOVES YOU.
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Dec 4, 2017, 03:44 PM
Violet CLM is offline
Reply With Quote
In your MLLE.ini, change the "DefaultGame" value from "JJ2" to "TSF"
__________________
Darkhog

JCF Member

Joined: May 2012

Posts: 227

Darkhog is notorious for his worthless posts

Dec 5, 2017, 07:55 AM
Darkhog is offline
Reply With Quote
Yeah, figured that out myself, but it should autodetect and choose first game that has associated path if path wasn't set for the default game (i.e. is empty). Should be an easy fix though.

//edit: Before I forget, could you add a MRU (most recently used) list to the MLLE? So I won't need to click open and scroll through long list of levels to actually locate the level I want if I've opened it recently. A buffer of 4 recent levels would do just fine. I mean, even JCS has it:
__________________
Code:
    .──.
   │O_O │
   ││_╱ │
  ╱╱   │╲
 (|▔╲  │ )
╱'╲_▔ _╱`╲
╲___) (___╱  TUX LOVES YOU.

Last edited by Darkhog; Dec 5, 2017 at 11:30 AM.
Jelly Jam

JCF Member

Joined: Oct 2014

Posts: 775

Jelly Jam is doing well so far

Dec 6, 2017, 03:09 AM
Jelly Jam is offline
Reply With Quote
You're right. I'm guessing that's in the plans?
Darkhog

JCF Member

Joined: May 2012

Posts: 227

Darkhog is notorious for his worthless posts

Dec 6, 2017, 07:42 AM
Darkhog is offline
Reply With Quote
Yeah, I suppose so. Mentioned both of these on the rare chance it isn't. Oh and I've also made a (crappy) mascot for the tool. Probably if I'd spent more time on shading it would've turned out better, but yeah, can't be arsed to do that.


The design was supposed to be something between Servbots (Capcom) and Balrog from Cave Story. I guess it's similar to neither.
__________________
Code:
    .──.
   │O_O │
   ││_╱ │
  ╱╱   │╲
 (|▔╲  │ )
╱'╲_▔ _╱`╲
╲___) (___╱  TUX LOVES YOU.
Jelly Jam

JCF Member

Joined: Oct 2014

Posts: 775

Jelly Jam is doing well so far

Dec 6, 2017, 11:55 AM
Jelly Jam is offline
Reply With Quote
I like what you did with the second L lol
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Dec 7, 2017, 09:39 AM
Violet CLM is offline
Reply With Quote
A list of recently opened levels would not be too hard, no, I've just never gotten around to it. Thanks for the reminder.

btw, if you have a GitHub account, you can also make reports/suggestions here and they'll have the benefit of staring me in the face every time I visit the repository.
__________________
Darkhog

JCF Member

Joined: May 2012

Posts: 227

Darkhog is notorious for his worthless posts

Dec 7, 2017, 12:10 PM
Darkhog is offline
Reply With Quote
Oh, thanks. Forgot it was open-source and didn't know it's on github. Yes, I do have a github account. Will open issues for my suggestions.
__________________
Code:
    .──.
   │O_O │
   ││_╱ │
  ╱╱   │╲
 (|▔╲  │ )
╱'╲_▔ _╱`╲
╲___) (___╱  TUX LOVES YOU.
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Dec 14, 2017, 06:10 PM
Violet CLM is offline
Reply With Quote
Quote:
Originally Posted by Violet CLM View Post
A list of recently opened levels would not be too hard, no, I've just never gotten around to it.
This has been implemented in MLLE 2.8, available now on J2O. Plus a few more fixes for increased stability in certain contexts.
__________________
DoubleGJ

JCF Member

Joined: Sep 2002

Posts: 3,049

DoubleGJ has disabled reputation

Dec 14, 2017, 10:27 PM
DoubleGJ is offline
Reply With Quote
Sweet, I don't know how it happened but MLLE now works normally on my system again! Now all I need is an equivalent of JCS's Animating Tiles window and I can stop using JCS forever
__________________
"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)
Jelly Jam

JCF Member

Joined: Oct 2014

Posts: 775

Jelly Jam is doing well so far

Dec 15, 2017, 05:30 AM
Jelly Jam is offline
Reply With Quote
But I thought people liked it the way it is in MLLE.
Darkhog

JCF Member

Joined: May 2012

Posts: 227

Darkhog is notorious for his worthless posts

Dec 16, 2017, 09:43 AM
Darkhog is offline
Reply With Quote
For the love of sky daddy I can't figure out how to add animated tiles in MLLE and there is no site "HowToMLLE." So that should say something.
__________________
Code:
    .──.
   │O_O │
   ││_╱ │
  ╱╱   │╲
 (|▔╲  │ )
╱'╲_▔ _╱`╲
╲___) (___╱  TUX LOVES YOU.
AvalancheMaster

JCF Member

Joined: Sep 2013

Posts: 89

AvalancheMaster is doing well so far

Jan 4, 2018, 04:40 AM
AvalancheMaster is offline
Reply With Quote
Indeed, neither can I. Can somebody clarify how to open the animations tab?
Slaz

JCF Member

Joined: Aug 2004

Posts: 1,316

Slaz is OFF DA CHARTSlaz is OFF DA CHARTSlaz is OFF DA CHART

Jan 4, 2018, 10:58 AM
Slaz is offline
Reply With Quote
I haven't used MLLE much (yet), but it seems to me the way MLLE displays animated tiles makes more sense, as they're appended as new tiles in the tileset like they've always been. Sure, JCS makes them look more organized, but MLLE actually shows where they are in a setting where the tileset may no longer be a static image.
__________________
Add SlazRabbit on Xbox Live if you want to play some GoW1/2/3/J or Destiny1/2.
Jazz Jackrabbit 2 Forever!!
Civilian Defence Force - Jazz2 Visual Fantasers
AvalancheMaster

JCF Member

Joined: Sep 2013

Posts: 89

AvalancheMaster is doing well so far

Jan 4, 2018, 03:39 PM
AvalancheMaster is offline
Reply With Quote
Quote:
Originally Posted by Slaz View Post
I haven't used MLLE much (yet), but it seems to me the way MLLE displays animated tiles makes more sense, as they're appended as new tiles in the tileset like they've always been. Sure, JCS makes them look more organized, but MLLE actually shows where they are in a setting where the tileset may no longer be a static image.
Care to elaborate on that?
Slaz

JCF Member

Joined: Aug 2004

Posts: 1,316

Slaz is OFF DA CHARTSlaz is OFF DA CHARTSlaz is OFF DA CHART

Jan 7, 2018, 04:41 AM
Slaz is offline
Reply With Quote
Quote:
Originally Posted by AvalancheMaster View Post
Care to elaborate on that?
To create an animation, double-click on the blank tile shown at the end of the tileset, then Ctrl+click on the tiles you want in the animation. Check the animation's settings, and click Save.
__________________
Add SlazRabbit on Xbox Live if you want to play some GoW1/2/3/J or Destiny1/2.
Jazz Jackrabbit 2 Forever!!
Civilian Defence Force - Jazz2 Visual Fantasers
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Jan 7, 2018, 01:42 PM
Violet CLM is offline
Reply With Quote
You can also right-click instead of double-click, and that gives you some more options.
__________________
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Mar 16, 2018, 10:17 AM
Violet CLM is offline
Reply With Quote
MLLE v2.9 has been released, mostly focused on fixing crashes or other bugs, but also you can build tilesets now. Could be nice if you only own 1.23 but want to make a tileset with more than 1020 tiles, or if you've been dreaming of making a new episode for Battery Check, or whatever.
__________________
ShadowGPW

Super Moderator

Joined: Jan 2001

Posts: 2,829

ShadowGPW is a forum legendShadowGPW is a forum legendShadowGPW is a forum legend

Apr 2, 2018, 02:10 PM
ShadowGPW is offline
Reply With Quote
"-By enabling the new "Zooming Above 100%" option in the Preferences
dropdown menu, you can view the level at 200% or 400% size. This is
primarily intended for people with very large resolutions, but might also
be helpful for finding tile bugs."

I am SOOOO happy
__________________
Join clan [GPW]'s discord!
https://discord.gg/ktCcYnv

S.H.A.D.O.W.: (aka Ins0mnia)
Synthetic Hydraulic Android Designed for Observation and Warfare

Mystic Legends
http://www.mysticlegends.org

Follow me on twitter: @Ins0mnia
Follow us on twitter: @Mystic_Legends
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Apr 15, 2018, 06:37 PM
Violet CLM is offline
Reply With Quote
MLLE v2.10 has been released, mostly focused on making little improvements to existing windows or menus. For example, if you've been editing a level's palette inside MLLE and realize you need a more sophisticated tool to finish the job, now you can actually export the level's palette instead of having to recreate all your past edits from scratch.

Also, after six years of being grayed out, the "Package in ZIP file" menu option is now functional and has full AngelScript support. I stress-tested it on HH17, and MLLE automatically built a ZIP with 87 of HH17's 88 files, missing only the episode file, which it had no way of knowing about. (Actually, it found an extra file, Icicle.j2a, which I guess was a past filename for HH17_Icicle.j2a but was still being referenced in HH17_Guardian.j2as.)
__________________
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Aug 30, 2018, 04:12 PM
Violet CLM is offline
Reply With Quote
MLLE v2.11 has been released. It's not a substantial update, but if you've been annoyed at the bug with editing sucker tube parameters, that's fixed now. Also while editing tile images you can copy them to the clipboard, edit them in a different program, then copy them from there and paste them back into MLLE, so that's neat. Also you can find an event by typing its name instead of memorizing where it is in the event tree!
__________________
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Apr 21, 2019, 10:11 PM
Violet CLM is offline
Reply With Quote
MLLE v2.12 has been released, bringing three new features and two bug fixes. If you find yourself coding a lot of custom events and you'd like MLLE to know what they're called, or if you're tired of overwriting events while editing your layer 4 eyecandy, this is good news for you.
__________________
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Aug 23, 2019, 04:20 PM
Violet CLM is offline
Reply With Quote
MLLE v2.13 has been released, with the major new feature being a window that lets you use custom weapons (or reconfigure the default ones, e.g. replacing pepper spray with fireballs) without writing any code. This is by far one of MLLE's most ambitious features, with a huge number of moving pieces and a ridiculous assortment of edge cases that the angelscript files hide away from you, but hopefully everything will work fine?




To use any custom weapons, you'll need to download both the Standard Weapon Interface and the Custom Weapons (MLLE-compatible) pack. Together these two uploads rewrite numerous previously written custom weapons to use a single unified setup interface, which MLLE in turn handles for you.

See the next post for more details (forthcoming...)
__________________

Last edited by Violet CLM; Aug 24, 2019 at 09:49 AM.
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Aug 23, 2019, 04:21 PM
Violet CLM is offline
Reply With Quote
Instructions for using custom weapons and MLLE

Making a level

Editor interface
While editing a JJ2+ level with MLLE, click the "JJ2+ Properties" dropdown menu at the top of the window and select the "Weapons..." option. This will bring up a modal window with a 3×3 grid of the nine weapons used in this level. Each panel in the grid shows, by default: the weapon number, a preview icon of the weapon, and the weapon's name.

The weapon's name is actually a dropdown menu. By clicking on it, you open up the menu to see the rest of the weapons available to you, and selecting any one of them will cause your level to use that weapon instead. For example, if you click the dropdown box in panel 2 and change it from "Bouncer" to "Electro Blaster," then all bullets players shoot in this level with weapon 2 selected will be electro blaster bullets, and all ammo pickups, ammo crates, and powerups for weapon 2 will use electro blaster sprites as well.

If you have downloaded any custom weapons that are compatible with MLLE, they will also appear as options in each panel's main dropdown box, so for example you could change weapon 2 from "Bouncer" to "Laser Blaster" instead. Again, that is all you need to do. (Here are a bunch of custom weapons you can download to start off with.)

Notice that each of the nine weapon panels has a vertical scrollbar on its far right. By scrolling down, you can look at and edit a list of options. All weapons share the following six options:
  1. Maximum: How much ammo of this weapon a player can carry. The cheat codes JJAMMO, JJGUNS, and JJGOD all instantly set each weapon's ammo to this number, and when a player has maximum ammo for a weapon, ammo pickups for that weapon can no longer be collected. The default value of "-1" is special and is interpreted as either 99 or 50 depending on whether you are playing single player, but other values are also accepted. Some weapons are so powerful that you might want to lower their maximum value to maybe 25 or even 1.
  2. Birds: If your level contains any bird cage objects (or if the player uses the JJBIRD cheat code), this property affects whether the birds will be able to fire this bullet type (if the player has it selected) or whether they'll default to weapon 1 instead.
  3. Appears in gun crates: By default, only ammo pickups for weapons 2, 3, 4, 5, and 6 can appear in Gun Crate and Gun Barrel events. This property lets you change that. (No effect for weapon 1, which has no ammo pickup objects.)
  4. Gems lost (normal): This option is only useful in Treasure Hunt levels, where it specifies how many gems a player loses after being hit by a normal bullet of this weapon. If this is not a Treasure Hunt level, you can ignore this option completely.
  5. Gems lost (powerup): Same, but for powered-up bullets.
  6. Availability: Whether players should start with the maximum amount of ammo for this weapon, and whether ammo pickups are necessary. These options are changed very rarely but might be useful for a high-concept level.

Besides those six options, some weapons have additional options that are specific to them only: these appear below the six common options and can also be found by using the panel's scrollbar. Of the nine default weapons, four have weapon-specific options: Bouncer, Ice, TNT, and Gun8. Some custom weapons have weapon-specific options and most do not; the only way to check is to use the scrollbar.

Interacting with MLLE code
Using almost any of MLLE's JJ2+ tools in a level will cause MLLE to write some code to the level's .j2as file, and the Weapons window is no exception to this. As ever, though, the rule is basically this: leave it alone and nothing will go wrong.

The most important of MLLE's interaction with your .j2as file are the following two lines (or similar):
Code:
#include "MLLE-Include-1.5.asc" ///@MLLE-Generated
const bool MLLESetupSuccessful = MLLE::Setup(); ///@MLLE-Generated
MLLE-Include-1.5.asc is a special angelscript library generated by MLLE that interprets all the various JJ2+ properties that MLLE embeds in your .j2l file, and MLLE::Setup() is the function call to run the library. 99% of the time you can (and should) ignore these two lines and let MLLE worry about them. If for whatever reason you want some code to run before the function call, you can use the following pattern instead and nothing should go wrong:
Code:
#include "MLLE-Include-1.5.asc" ///@MLLE-Generated
void onLevelLoad() {
	//do something important
	MLLE::Setup();
}
This changes slightly if you use the Weapons window to use any custom weapons in your level, or even to make significant enough modifications to the default weapons. In that case, those two lines will look more like this:
Code:
#include "MLLE-Include-1.5w.asc" ///@MLLE-Generated
const bool MLLESetupSuccessful = MLLE::Setup(array = {SzmolWeaponPack::MeleeSword::Weapon(), null, SzmolWeaponPack::DischargeGun::Weapon(), SzmolWeaponPack::LockOnMissile::Weapon(), SzmolWeaponPack::AutoTurret::Weapon(), null, SzmolWeaponPack::PetrolBomb::Weapon(), null, null}); ///@MLLE-Generated
Note that the MLLE::Setup function call now takes a single argument: an array initializing each of the nine weapons used in your level. (Or null if you're leaving the default weapon for that slot unchanged.) The angelscript library filename is also changed slightly: MLLE-Include-1.5w.asc is a special version of MLLE-Include-1.5.asc that has a lot of additional code specifically for dealing with custom weapons.

To be continued... documentation currently unfinished at this point.
Making a level: advanced

Making a weapon

Minimum requirements
MLLEWeapons::WeaponInterface
__________________

Last edited by Violet CLM; Aug 23, 2019 at 08:43 PM.
Violet CLM

JCF Éminence Grise

Joined: Mar 2001

Posts: 11,047

Violet CLM has disabled reputation

Mar 28, 2020, 11:23 PM
Violet CLM is offline
Reply With Quote
MLLE v2.14 has been released, and its big new addition is Smart Tiles, which let you create fully tiling walls and stuff just by dragging your cursor around and letting MLLE find the right tiles for you without your needing to so much as look at the tileset. Remember to copy everything from MLLE's "ExtractToJJ2+Folder" folder or this won't work. Some examples of how MLLE's smart tiles can guess what you want to do and place exactly the right tiles for you:





All official tilesets are supported except for Inferno, Haunted House, and Town House, and you can define your own smart tiles for any tileset you please using the built-in editor. When you first click the menu option to add a new smart tile, you'll see a window like this:

Each of the special Assignment tiles in the right-hand image represents a possible way tiles can connect to one another. To get started, click one of the assignments on the right, then click a tile from the tileset image on the left to assign it. Or click multiple times if there are multiple tiles that fit that assignment. In a minute or two the window should look more like this:

Few, if any, tilesets have tiles available for every possible assignment, but that's okay. MLLE will try a series of next-best options to make your tiles come as close as possible to tiling even if the exact necessary tile doesn't actually exist in your tileset. (Every smart tile you create must assign at least one tile to assignment 11, 14, and/or 47, because all the different series of next-best options eventually default to one of those three, and they all default to one another.)

If you hold down F and/or I while clicking a tile to add it to an assignment, it will be flipped horizontally and/or vertically. (For example, Medivo only has slope tiles in one direction, so the other direction needs to use horizontally flipped tiles.)

If you make a mistake, you can right-click a tile from the vertical list on the far right to remove it. Or you can right-click that same tile from the tileset image to remove all copies of that tile from the vertical list. Or you can right-click the assignment to clear the vertical list entirely and start afresh.

The "extra" assignment is a special case. MLLE will never automatically place tiles from it, but tiles assigned to it will count as part of this same smart tile. For example, if you're making a level with Castle, MLLE has no way to guess where you want the tiles with the cannon and cannonballs to go. But if you do place those tiles somewhere manually, the smart tile should place other wall tiles gracefully around them. This is achieved by adding the cannon's floor tiles into the "extra" assignment.

The "Friends" dropdown menu appears when there are multiple smart tiles for the same tileset, and lets you specify that tiles of one smart tile should continue into tiles of another rather than place edge tiles. It's similar to putting that entire other smart tile into the "extra" assignment, although not quite the same. For example, Diamondus's "Caves" smart tile has "Walls" as one of its friends:


But the friends menu is only part of that: the Walls smart tile also needs to know to place right-edge wall tiles with caves behind them instead of transparent pixels. For this you need to use the super-wide button with the plus symbol on it to add one or more Rules to the right-edge wall assignment:


Each of the three rules you can see in that screenshot looks at the tile immediately to the right of the right-edge wall tile, as indicated by the position of the red rectangle in the grid. Depending on whether that tile belongs to another smart tile, or is one of a number of specific other tiles (in this case, tiles that have tree branches in front of caves), different tiles get placed instead of the normal right-edge tiles: specifically, right-edge tiles with tree branches and/or caves behind them.

Editing any of the fields of a rule—e.g. moving the red square—selects that rule: once you do so, left-clicking a tile from the tileset image will add the tile (flipped or otherwise) to that rule instead of to the assignment generally.

Rules are tried in top to bottom order. In this case the "specific tiles" rule is on top because it's the most specific: only if the tile in the red square position is not 666, 667, or 668 does the second rule get evaluated, and only if the second rule is also false does the third rule get evaluated, and so on.

If a rule does not have any result tiles on the right at all, it is treated as an "and" rule instead of a "then" rule. A "then" rule is only accepted if it is true and so are all "and" rules immediately preceding it. For example, depending on what's available in the tileset, you might want to place one tile if there are cave tiles both on the left and on the right; a second tile if there is a cave tile only on the left; and a third tile if there is a cave tile only on the right.

The "X" button on the right side of every rule deletes that rule. The "D" button duplicates it. The "^" and "V" buttons move it up or down in the order.

Rules are the most complicated part of defining smart tiles, and defining smart tiles is the most complicated part of using smart tiles. If you don't want to get involved in defining smart tiles, that's fine: remember, they're already totally available for almost all of the official JJ2 sets! And maybe someone else will make a smart tile definition file for any other tileset you might be wanting to use. Once you get the hang of it, defining smart tiles doesn't take very long, and then they can save you incredible amounts of time once you start actually laying out a level.
__________________
cooba

JCF Veteran

Joined: Jan 2004

Posts: 7,815

cooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of lightcooba is a glorious beacon of light

Mar 29, 2020, 06:43 AM
cooba is offline
Reply With Quote
As my friend from Brazil would have said,

"Hauahauahuahaua holly shit"

EDIT: Here's a video:


Last edited by cooba; Mar 29, 2020 at 12:32 PM.
Superjazz

JCF Member

Joined: Jan 2003

Posts: 976

Superjazz is OFF DA CHARTSuperjazz is OFF DA CHARTSuperjazz is OFF DA CHART

Mar 30, 2020, 08:01 AM
Superjazz is offline
Reply With Quote
!
__________________
Find It Out
SP: https://www.jazz2online.com/downloads/9371/find-it-out-single-player/
MP: http://www.jazz2online.com/J2Ov2/downloads/info.php?levelID=5021
proud2beamerican

JCF Member

Joined: Jan 1970

Posts: 19

proud2beamerican has disabled reputation

Apr 6, 2020, 08:50 PM
proud2beamerican is offline
Reply With Quote
MLLE appears to have some serious problems with scrolling. That happens after zooming in or out, you can't scroll all the way to the end of a layer.

If you change the size of the window itself (maximize it or shrink it) then it goes back to normal again and the scrolling area becomes bigger, allowing you to explore the full size of a layer.

One other problem: When you open a level that has layer 8 set to texture mode with a specific fade color there is no way to check that color. Once you click on the color it always shows black.

Last edited by proud2beamerican; Apr 6, 2020 at 11:26 PM.
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump

All times are GMT -8. The time now is 12:03 PM.