LunaLua Module Manager (FINALLY OUT!!)

General discussion about Super Mario Bros. X.

Moderator: Userbase Moderators

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

LunaLua Module Manager (FINALLY OUT!!)

Postby Axiom » Tue Aug 04, 2015 9:27 am

Image
(credit to Wohlstand for the original LunaLua icon, which i merged with the mushroom)
LunaLua Module Manager

It's finally out! I've teased it forever on IRC and here it is, yet another manager application from the man, the myth, the not so legend.

As I started to tinker around with LunaLua, I began to realise the power of "API Scripts" that Kevsoft had created. They were powerful indeed, but could be a pain for the average user to have to manager. Thus, the LunaLua Module Manager was born! A simple application to install and update the API scripts that LunaLua uses. Plus, it'll update your LunaLua too!

The application is also compatible with Linux and is built using Gtk and compiled against Mono, hence the requirement for both runtimes on Windows.

Screenshots:
Spoiler: show
Image
Image
Image
Image
Image
Downloads:
Windows: Download the Installer
Linux: Download this zip, script installer coming soon!
OS X: OS X users..I'm begging you! Build this application from source, test it, debug it. I have no clue if this even works on OS X so please, help me make it work ;)
Source: GitHub

Enjoy! If you have any issues..
-If you have auto bug reporting turned on, I will get an email with the bug report info and stack trace.
-You can use Menu>Bug Report to collect the needed information and paste it here.
-You can also manually submit a bug report and I will get an email the same way.
-Or, go onto the source code site (GitHub) and report an issue there so I can feel more accomplished about myself :)

Quill
Rydia
Rydia
Posts: 812
Joined: Tue Dec 03, 2013 12:51 pm
Contact:

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby Quill » Tue Aug 04, 2015 10:57 am

thank mr axiom

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby Axiom » Tue Aug 04, 2015 3:20 pm

eheheheh i goofed
there's still some slight bugs, so updates have been pushed.

if you're unable to update i'm sorry: i've updated the installer with the latest compoenents, you may need to reinstall
i'm sorry please don't boycott i'm only one human please.

Quill
Rydia
Rydia
Posts: 812
Joined: Tue Dec 03, 2013 12:51 pm
Contact:

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby Quill » Tue Aug 04, 2015 3:47 pm

you've gone one step too far you're banned

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby Axiom » Tue Aug 04, 2015 3:52 pm

Quill wrote:you've gone one step too far you're banned
god dammit not again

buddyroach
Swooper
Swooper
Posts: 68
Joined: Sun Jul 19, 2015 1:48 pm
Flair: Glitch420
Contact:

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby buddyroach » Sun Aug 09, 2015 12:43 pm

Can someone just make video tutorials on how to write Lunalua code?

Mable
Luigi
Luigi
Posts: 5806
Joined: Sat Dec 21, 2013 4:23 am
Contact:

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby Mable » Sun Aug 09, 2015 12:49 pm

buddyroach wrote:Can someone just make video tutorials on how to write Lunalua code?
http://www.smbxgame.com/forums/v ... =69&t=6973 just ask here

Marina
Cecil
Cecil
Posts: 2380
Joined: Sun May 25, 2014 7:01 am
Flair: everything's still romantic, right?
Pronouns: she/her/they/them

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby Marina » Sun Aug 09, 2015 1:04 pm

Axiom, doing the lords work since 2010.

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby Axiom » Sun Aug 09, 2015 4:33 pm

buddyroach wrote:Can someone just make video tutorials on how to write Lunalua code?
that's not a bad idea
Marina wrote:Axiom, doing the lords work since 2010.
<3

buddyroach
Swooper
Swooper
Posts: 68
Joined: Sun Jul 19, 2015 1:48 pm
Flair: Glitch420
Contact:

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby buddyroach » Sun Aug 09, 2015 9:28 pm

Axiom, is that you in the picture with the dog?

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby Axiom » Sun Aug 09, 2015 9:45 pm

no, why?

buddyroach
Swooper
Swooper
Posts: 68
Joined: Sun Jul 19, 2015 1:48 pm
Flair: Glitch420
Contact:

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby buddyroach » Sun Aug 09, 2015 9:57 pm

just wondering.
i am trying to make a new powerup with lunalua.
i got this: NPCMemSet,13,0xE2,5,0,0,w
but how would i make it to where the player doesnt receive damage when he is ducking? even from a attack from the side from a koopa shell speeding at him?

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby Axiom » Mon Aug 10, 2015 7:41 am

That is not LunaLua, that is LunaDll's assembly like language. Lua looks closer to Visual Basic.

Anyway, this is not the place to ask this. I would like to keep this thread dedicated to the module manager but if I find anything, I may update this post.

I found something to get you started. In Lua is a functional language, like I said its syntax looks similar to say Visual Basic.

The first thing you want is a reference to Player 1.

Code: Select all

local player1 = Player(1);
This gets you your reference. You can access it by the player1 variable name.
Next, we need to override a function. LunaLua has a function called "onLoop" that is called once every 65 ticks (once every frame basically) so to override that, we just remake the function

Code: Select all

function onLoop()

end
Next, we need to check if the player is holding the down button.

Code: Select all

if(player1.downKeyPressing()) then

end
And that's a start, from there I will research invisibility and such. You'd also want to probably check the player's powerup too. This is done on an index basis. So whatever powerup you replaced, that will be the index you check. Something like this.

Code: Select all

function onLoop()
     if(player1.downKeyPressing()) then
          if(player1.powerup == 1) then
              --then finally do our invisibility.
          end
     end
end
NOTE: I used 1 as an example which I believe is just the standard mushroom/big Mario so you will need to experiment. Check out this page for the full reference on the player class.

EDIT 2: I actually got a full working example up. I tried to get a video but apparently Debian doesn't have any decent screen recorders..

Code: Select all

local player1 = Player();

function onLoop()
  Text.print(tostring(player1.powerup), 0, 0);
  Text.print(player1.downKeyPressing, 0, 32);
  Text.print(tostring(mem(0x00B2C8C0, FIELD_WORD)), 0, 64);
  if(player1.downKeyPressing) then
    if(player1.powerup == 2) then
      mem(0x00B2C8C0, FIELD_WORD, 0xFFFF);
    end
  else
    mem(0x00B2C8C0, FIELD_WORD, 0);
  end
end
Put this in your lunadll.lua file which goes in your level's custom graphics folder.

buddyroach
Swooper
Swooper
Posts: 68
Joined: Sun Jul 19, 2015 1:48 pm
Flair: Glitch420
Contact:

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby buddyroach » Tue Aug 11, 2015 2:49 am

but this code: NPCMemSet,13,0xE2,5,0,0,w
works in the modded LunaLua version of SMBX.
it makes a new powerup that shoots shells.

and thanks for the starter tips. this is something i wish to add to my knowledge.

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby Axiom » Tue Aug 11, 2015 8:03 am

buddyroach wrote:but this code: NPCMemSet,13,0xE2,5,0,0,w
works in the modded LunaLua version of SMBX.
it makes a new powerup that shoots shells.

and thanks for the starter tips. this is something i wish to add to my knowledge.
Yes it does, however this is not Lua. That's LunaDll's old autocode. While yes, it does work, you wouldn't be able to mix it with Lua code. You should actually probably start learning Lua anyway since this is where SMBX modding/scripting is going and it's very close to your native visual basic.
http://engine.wohlnet.ru/pgewiki/Category:LunaLua_API

buddyroach
Swooper
Swooper
Posts: 68
Joined: Sun Jul 19, 2015 1:48 pm
Flair: Glitch420
Contact:

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby buddyroach » Wed Aug 12, 2015 12:43 am

uhm. i am confused.

Code: Select all

local player1 = Player();

function onLoop()
  Text.print(tostring(player1.powerup), 0, 0);
  Text.print(player1.downKeyPressing, 0, 32);
  Text.print(tostring(mem(0x00B2C8C0, FIELD_WORD)), 0, 64);
  if(player1.downKeyPressing) then
    if(player1.powerup == 6) then
            mem(0x00B2C8C0, FIELD_WORD, 0xFFFF);
                end
                elseif(player1.speedx > 0) then
                 if player1.XKeyPressing then
                player1.speedx = 0
              end
            end
          end
  else
    mem(0x00B2C8C0, FIELD_WORD, 0);
end
end
i am trying to make it to where the player comes to a hault IF they are pressing down and IF their horizontal speed is greater than 0.
I wish there was a better program to write this code like VB which can catch your mistakes on the fly rather than just relying on a text editor.
That would be a good program to make. Anyway, I was doing this to see if I could understand how this works. In the end, I don't want the player to stop.
I want the player to keep moving as long as the down button is pressed.
First, I wanted the player to keep moving in the direction they are moving when the down button is pressed as long as its pressed but stop when its no longer pressed. Then I want the graphic of the player to change to some frames of animation. Also, I want it to not bounce of bricks and breakable blocks but instead break them and keep on plowing through. I am trying to make a turtle shell power up. Well, its a powerup that does more but that is one of the features. But instead of bouncing off of bricks when it breaks them, it just keeps plowing through.



XXXX::::XXXXX::: I will try to think of a better way to explain this then I will come back.

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby Axiom » Wed Aug 12, 2015 8:56 am

Couple of things..

1. Can we please keep this thread about the Module Manager?
2. You should try out Notepad++. It's nowhere close to VIsual Studio, but it has syntax highlighting and keeps the tabs even and stuff. Can't go wrong for free.
3. I think you may have gotten some of the fields wrong. I think player.XKeyPressing is actually a function not a field, so it would end in (). But please discuss this over in the LunaLua thread.

Axiom
Phanto
Phanto
Posts: 1471
Joined: Tue Dec 24, 2013 2:23 pm

Re: LunaLua Module Manager (FINALLY OUT!!)

Postby Axiom » Wed Aug 12, 2015 10:00 am

I'm double posting for a very specific reason.

So as it turns out, there's more glitches in the Module Manager than I thought. I fixed everything that I could, but the bugs are beyond what I can do at this point. The bugs now lie in Mono/Gtk#'s hands.

Truth be told, this project was an experiment from the start. As soon as I thought I had gotten a hold of Gtk's differences from Winforms (what I use as the buttons, listviews, etc.) for all my other programs, I got too comfortable and expected everything to work. Boy, was I mistaken.

Gtk# is a mess. I actually had to manually link libraries on Windows of all platforms. This program works amazingly under Linux, virtually no issues. But under Windows, the platform that .NET is native to, I am experiencing the most issues. Gtk# is not a mature platform, and I thought Mono was but I guess not. So, a sincere apology, the Module Manager is being put on hiatus. The ultimate plan is port the project to C++ using Qt. Until then, I will throw together a quick Winforms versions for Windows users (since that is my major audience). This version should actually work and I should have virtually no issues with it. I am sorry, I will be requesting that this topic be locked until the move to winforms is complete. If you want to keep up, check out my dev topic.

tl;dr mono sucks. never use it for anything beyond command line applications or Linux only C# apps. this has been a PSA from yours truly.

Oh, and one more thing: the program would run fine in the IDE on multiple computers. In the real world outside of the IDE, it would crash without any notice. Pretty amazing framework right?


Return to “General”

Who is online

Users browsing this forum: Barkrowler [Bot], Petal [Bot] and 4 guests

SMWCentralTalkhausMario Fan Games GalaxyKafukaMarioWikiSMBXEquipoEstelari