Mari0MS 1.6.2, aka Watch for Falling GLaDOS
Mari0MS 1.6.2, aka Watch for Falling GLaDOS
Table of Contents
I. Intro
II. Pictures
III. Downloads
IV. Developing
IV-a. Reference
V. Included Mods
VI. Core File Changes
VII. Installation Instructions
I. Intro
I've been following the development of Mari0 since it was just an attempt to make a Super Mario Brothers clone. After it was released, I decided that with my vast knowledge of Lua and Love, I would make an easy way to create mods. And thus, Mari0 Modding System was born.
Here's picture of a mod I made, it adds a few logic gates for more complex puzzles.
II. Pictures
HAVE SOME PRETTY PICTURES
III. Downloads
This is currently on Mari0 1.6, Modding System 1.6.2
The Mari0 Modding System 1.6.2 can be downloaded here: MarioMS_1.6.2.zip
If something's not working, try getting the latest version.
Older Versions
1.6.1
1.4.1
1.3
IV. Developing Mods
Creating mods is relatively easy.
Every mod folder needs to contain a modmain.lua. In this file I recommend you load images and other things. The main purpose is that this is where you call RegisterObject. Doing this creates a new type of entity like the player, bullet bills, goombas, etc. This does everything you would usually need to do when creating a mod, like creating a new table in objects, adding the name to entitylist, and everything else.
As for editing the entities.png in graphics/SMB, that's no longer necessary. Instead, you just create a new entities.png inside of your mod's graphics folder. (This is where you put other graphics, as well.)
The image in the entities.png is not your entity's graphics, it's where it gets the images for the entity picker. Each 17x17 tile should be in the order of when you call RegisterObject for each new type of object.
IV-a. Reference
The functions that you can use (in addition to all the basic ones)
try(function [, errorfunction]) - Runs a function safely, if supplied it will fun errorfunction and pass it the error message
requiredir(directory [, excluded]) - requires all files in a directory in alphabetical order
LoadMods() - Loads all mods, an internal function which you don't need to call.
NewObject(entname, ent) - adds an entity to objects
GetModIndex(entname) - what index the entity's info is stored at
RegisterObject(djghgaklsdhfhdash) - Registers a new type of object, the most important function which I can't fully document right now
and much much more, coming later
V. Included Mods
Logic Gates
Personality Cores
Poison Mushrooms
"Zealous" Plates (2x as powerful as faithplates, FEEL THE FEVER) (also they launch more things for the moment)
A non-working new type of koopa
OTHER STUFF I DON'T FEEL LIKE TYPING UP
VI. Core File Changes
Multiple input links (be careful with this)
Loading Mods (duh)
Drawing mod entities (i.e. you don't have to make your own loop)
Mario Collision callbacks
Some improved/more dynamic physics
-ENTITY.pushable, can it be pushed by Mario? (like boxes and personality cores)
-ENTITY.pushesbutton, if this is true, entities trigger super colliding super buttons
OTHER STUFF I DON'T FEEL LIKE TYPING UP
VII. Installation Instructions
There are two separate pieces to this, the executable (Mari0MS_x.y.z.love) and the mods (folders full of lua files and images).
To play with mods, run the executable by either double clicking on it, or dragging it onto love.exe/a shortcut to love.exe. You need to install Love 0.8.0, which can be download from love2d.org (you don't to get it from love2d.org/builds because 0.8.0 has been released officially)
If you try to play a different version of Mari0 (e.g. the standard one from stabyourself.net), no mods will be loaded from your mods folder. The mods folder is only used by my modded version, so unless you are using a different modloader that uses the same "mods" folder, nothing will happen just from having it there.
To install a mod, you simply drop its folder into your appdata/love/mari0/mods folder, right next to mappacks. There's 99% chance it's not there already, so you'll probably have to make it.
A PICTURE TO MAKE IT EASIER:
Table of Contents
I. Intro
II. Pictures
III. Downloads
IV. Developing
IV-a. Reference
V. Included Mods
VI. Core File Changes
VII. Installation Instructions
I. Intro
I've been following the development of Mari0 since it was just an attempt to make a Super Mario Brothers clone. After it was released, I decided that with my vast knowledge of Lua and Love, I would make an easy way to create mods. And thus, Mari0 Modding System was born.
Here's picture of a mod I made, it adds a few logic gates for more complex puzzles.
II. Pictures
HAVE SOME PRETTY PICTURES
III. Downloads
This is currently on Mari0 1.6, Modding System 1.6.2
The Mari0 Modding System 1.6.2 can be downloaded here: MarioMS_1.6.2.zip
If something's not working, try getting the latest version.
Older Versions
1.6.1
1.4.1
1.3
IV. Developing Mods
Creating mods is relatively easy.
Every mod folder needs to contain a modmain.lua. In this file I recommend you load images and other things. The main purpose is that this is where you call RegisterObject. Doing this creates a new type of entity like the player, bullet bills, goombas, etc. This does everything you would usually need to do when creating a mod, like creating a new table in objects, adding the name to entitylist, and everything else.
As for editing the entities.png in graphics/SMB, that's no longer necessary. Instead, you just create a new entities.png inside of your mod's graphics folder. (This is where you put other graphics, as well.)
The image in the entities.png is not your entity's graphics, it's where it gets the images for the entity picker. Each 17x17 tile should be in the order of when you call RegisterObject for each new type of object.
IV-a. Reference
The functions that you can use (in addition to all the basic ones)
try(function [, errorfunction]) - Runs a function safely, if supplied it will fun errorfunction and pass it the error message
requiredir(directory [, excluded]) - requires all files in a directory in alphabetical order
LoadMods() - Loads all mods, an internal function which you don't need to call.
NewObject(entname, ent) - adds an entity to objects
GetModIndex(entname) - what index the entity's info is stored at
RegisterObject(djghgaklsdhfhdash) - Registers a new type of object, the most important function which I can't fully document right now
and much much more, coming later
V. Included Mods
Logic Gates
Personality Cores
Poison Mushrooms
"Zealous" Plates (2x as powerful as faithplates, FEEL THE FEVER) (also they launch more things for the moment)
A non-working new type of koopa
OTHER STUFF I DON'T FEEL LIKE TYPING UP
VI. Core File Changes
Multiple input links (be careful with this)
Loading Mods (duh)
Drawing mod entities (i.e. you don't have to make your own loop)
Mario Collision callbacks
Some improved/more dynamic physics
-ENTITY.pushable, can it be pushed by Mario? (like boxes and personality cores)
-ENTITY.pushesbutton, if this is true, entities trigger super colliding super buttons
OTHER STUFF I DON'T FEEL LIKE TYPING UP
VII. Installation Instructions
There are two separate pieces to this, the executable (Mari0MS_x.y.z.love) and the mods (folders full of lua files and images).
To play with mods, run the executable by either double clicking on it, or dragging it onto love.exe/a shortcut to love.exe. You need to install Love 0.8.0, which can be download from love2d.org (you don't to get it from love2d.org/builds because 0.8.0 has been released officially)
If you try to play a different version of Mari0 (e.g. the standard one from stabyourself.net), no mods will be loaded from your mods folder. The mods folder is only used by my modded version, so unless you are using a different modloader that uses the same "mods" folder, nothing will happen just from having it there.
To install a mod, you simply drop its folder into your appdata/love/mari0/mods folder, right next to mappacks. There's 99% chance it's not there already, so you'll probably have to make it.
A PICTURE TO MAKE IT EASIER:
Last edited by ZenX2 on 17 Apr 2012, 02:46, edited 17 times in total.
- EntranceJew
- Posts: 93
- Joined: 05 Mar 2012, 05:37
This is really nice, I was actually about to spend today making something similar, with some minor changes to make it so that custom entities would be redistributable with maps. Job well done.
-
- Posts: 12
- Joined: 06 Mar 2012, 15:31
i could port but he need to allow me....Nilsser wrote:mari0 is 1.4 right now it dosent work :(
- EntranceJew
- Posts: 93
- Joined: 05 Mar 2012, 05:37
I went ahead and ported it to Mari0 1.4 so that I could get to work on some mods. Download the source here.
Although, there seems to be a problem with the "AND" gate.
I linked the first AND gate to the first and second buttons, then linked the light to the AND gate.
Then I linked the second AND gate to the third button and the first AND gate, then linked the second light to the second AND gate.
When testing the controls lock up while the music plays until it stops playing music and the LUA error shows up.
I did this whole setup to try and work around a very similar error that occurs when one AND gate is supplied more than two inputs. I'm working on fixing this.
I tested and the map crashes in both my port and the original version for 1.3.
Although, there seems to be a problem with the "AND" gate.
I linked the first AND gate to the first and second buttons, then linked the light to the AND gate.
Then I linked the second AND gate to the third button and the first AND gate, then linked the second light to the second AND gate.
When testing the controls lock up while the music plays until it stops playing music and the LUA error shows up.
I did this whole setup to try and work around a very similar error that occurs when one AND gate is supplied more than two inputs. I'm working on fixing this.
I tested and the map crashes in both my port and the original version for 1.3.
- EntranceJew
- Posts: 93
- Joined: 05 Mar 2012, 05:37
I'm fairly aware. I'm working on modding in an input table system and I'm almost done with it, but there's a pretty weird behavior it has as it stands where something is sending it the input signal when it isn't any of the buttons linked to it.ZenX2 wrote:Wow, thank you for updating it. That will definitely save me some time.
Just a heads up, the logic gate are only supposed to support two inputs. I'll have to add in input-limit feature.
Here's the code for logic gate, still riddled with debug code logicgate.lua and its slightly modified modmain.lua. I have a feeling it involves zero initialized arrays and lua's lack of them.
e: Honk honk, the following paragraph happened because I accidentally assigned it as an input to itself.
The code demonstrates through the console that when an example scenario of 3 buttons on 1 AND gate, that 0 is added as button 1 is pressed. 0 is then forgotten, and 2 is added as button 1 is unpressed. Button 1 is correctly mapped to input 1. Then buttons 2 and 3 are mapped to 3 and 4 respectively. A hackish way to complete this would be to make the AND gate disregard inputs 0 and 2, but even if that was done the moment button 2 or 3 is pressed the AND gate would then be perfectly content with just buttons 1 and 2 being pressed even when button 3 has never been pressed. This highlights the underlying problem that greatly complicates linking logic: entities are not aware of which or how many objects are linked to them until something happens ingame. Since maps are not dynamic they shouldn't have to figure things out in this way.
Update: I made a more functional version of the gate that accepts unlimited number of inputs but it still suffers from the basic drawback that it doesn't know how many inputs it is responsible for and takes them as they come.
Here's the (potentially) corrected script that still has a bunch of debug code in it: logicgate.lua.
The problem before was that there was nothing protecting it from adding itself to its input list and my mouse misfired so that it doubleclicked on the gate while trying to link it to a button, so it created a one-time-only latch for the duration it was triggered after it became aware of its first input (and itself). Fixing that is as simple as adding " and tostring(e)~=tostring(self)" to the line where it checks "if oldinput==false" (or maybe it'd work without one/both the tostring() calls since it is receiving a tostring'd object upon the function being called) The "if[...]==false" was there because I wasn't certain if the "not" operator was working as intended.
THANK YOU!ZenX2 wrote:I made a mod that adds poison mushrooms from SMB2. (The ultrahard japanese one)
It's not completely accurate, as it kills you no matter what, but it's a start. Also, it says stuff
Download
Just extract and drop in your mods folder.
that's what I needed for my project!
viewtopic.php?f=12&t=266
I'll be sure to credit you!
I'll have to edit the text tho.
EDIT:but I might have to make a regular version first tho,
so are you ok with me using that?
-
- Posts: 5
- Joined: 11 Mar 2012, 18:21
Is there an easy way to install mods that are already .love files?
I figure I could just replace a lot of the lua files in the Mari0MS löve file, but I'm not sure which ones i shouldnt change.
I figure I could just replace a lot of the lua files in the Mari0MS löve file, but I'm not sure which ones i shouldnt change.
Please, go ahead and use it. To make it not talk, change line 7 of poisonmushroom/modmain.lua toxXxrenhoekxXx wrote:THANK YOU!ZenX2 wrote:I made a mod that adds poison mushrooms from SMB2. (The ultrahard japanese one)
It's not completely accurate, as it kills you no matter what, but it's a start. Also, it says stuff
Download
Just extract and drop in your mods folder.
that's what I needed for my project!
viewtopic.php?f=12&t=266
I'll be sure to credit you!
I'll have to edit the text tho.
EDIT:but I might have to make a regular version first tho,
so are you ok with me using that?
Code: Select all
NewObject("poisonmushroom", c:new(x-0.5, y-2/16))
thank you :)ZenX2 wrote: Please, go ahead and use it. To make it not talk, change line 7 of poisonmushroom/modmain.lua toCode: Select all
NewObject("poisonmushroom", c:new(x-0.5, y-2/16))
-
- Posts: 40
- Joined: 05 Mar 2012, 13:54
Awesome mods, man. I'm looking forward to incorporating them into my upcoming mappack. With said mods credited to you, of course.
Although, I won't be using all the mods. The logic gates, as useful as they are, slow my computer down a shitload even when just sitting there in my folder, so I've had to remove them. Also, for some reason the laser detectors no longer work. Hope that's something of an easy fix for you, as I've tried and came up empty.
Although, I won't be using all the mods. The logic gates, as useful as they are, slow my computer down a shitload even when just sitting there in my folder, so I've had to remove them. Also, for some reason the laser detectors no longer work. Hope that's something of an easy fix for you, as I've tried and came up empty.
I noticed that they stopped working. I still need to look into it and figure out what's going on :PWanderingTedium wrote:Awesome mods, man. I'm looking forward to incorporating them into my upcoming mappack. With said mods credited to you, of course.
Although, I won't be using all the mods. The logic gates, as useful as they are, slow my computer down a shitload even when just sitting there in my folder, so I've had to remove them. Also, for some reason the laser detectors no longer work. Hope that's something of an easy fix for you, as I've tried and came up empty.
Also, I've been working on triggers and other things for making more intricate maps
I was porting my mod for your loader when I got an error message that graphics/entities.png does not exist under my mod folder. As I'm just changing a function into mario metatable, it is more than obvious I do not need any custom tiles, entities, etc. So what to do? I do not really want to add transparent 1x1 image there.
-
- Posts: 3
- Joined: 15 Mar 2012, 06:27
Mod is amazing!
One question though;
is there ANY way to use what you've made to allow two inputs into a companion cube dropping output? Whenever I link two standing/push buttons, for example, to a block dispenser, it doesn't work because the standing buttons toggle (if you press them once they stay on, if you press them again, they turn off). Is there any way to use a gate to get around this? Or, alternatively, why does this game not include a BUTTON!?! It's frustrating having to tell the user to press each button twice (effectively turning them off, and then on again, so the next button linked to the same dispenser works.)
Have I explained this at all? Sorry for it being so incomprehensible, ha.
Running latest 1.4.1, Windows 7. Just can't get it to work for the block dispenser... Can post a screenshot of what I've set up if needed. Any help would be awesome!
One question though;
is there ANY way to use what you've made to allow two inputs into a companion cube dropping output? Whenever I link two standing/push buttons, for example, to a block dispenser, it doesn't work because the standing buttons toggle (if you press them once they stay on, if you press them again, they turn off). Is there any way to use a gate to get around this? Or, alternatively, why does this game not include a BUTTON!?! It's frustrating having to tell the user to press each button twice (effectively turning them off, and then on again, so the next button linked to the same dispenser works.)
Have I explained this at all? Sorry for it being so incomprehensible, ha.
Running latest 1.4.1, Windows 7. Just can't get it to work for the block dispenser... Can post a screenshot of what I've set up if needed. Any help would be awesome!
The mod is great so far and I look forward to more additions and development! In particular, I really like the idea of having matching sockets for the personality cores. Also, excursion funnels would be an awesome addition to this game.
Much appreciation for your work on this mod!
Much appreciation for your work on this mod!
Hi. Im new to the LOVE coding, and I keep getting the error message "mani.lua:49: You have an outdated version of LOVE! Get 0.8.0 or higher and retry." when trying to use your mod. This doesn't make sense, I just downloaded LOVE off the website. Can anyone help me? (Its at 1.7.2)
Get one with recent date from Here.Nasaghast wrote:Hi. Im new to the LOVE coding, and I keep getting the error message "mani.lua:49: You have an outdated version of LOVE! Get 0.8.0 or higher and retry." when trying to use your mod. This doesn't make sense, I just downloaded LOVE off the website. Can anyone help me? (Its at 1.7.2)
Awesome work, it just seems that sometimes (and quite frequently) the mushroom and cores seems to spit out text so fast it overlaps the old text making it one big unreadable blob. Maybe add a minumum amount of steps or frames since last time it said something?
Sorry about not posting in a few days, I've been busy with tests, my robotics team, and other school things.
@fakeuser: I've fixed that. You won't have to have an entities.png in the next version.
@Frequenter: Fixed in next version.
@sullidan: Thank you!
@Kjulo: Right now it just goes randomly, I'll add that in.
@rokit boy: I wont include the mods I've made in the next version, I'll make them separate downloads.
I'm developing/testing from the project's source, so having the mods inside makes it easier instead of having to have a separate thing open for them in AppData.
Edit: I'll upload the new version soon, it'll be 1.4.2 because I'm too tired to update to 1.6 today.
Also, I'm still unsure of what's up with the laser detectors.
@fakeuser: I've fixed that. You won't have to have an entities.png in the next version.
@Frequenter: Fixed in next version.
@sullidan: Thank you!
@Kjulo: Right now it just goes randomly, I'll add that in.
@rokit boy: I wont include the mods I've made in the next version, I'll make them separate downloads.
I'm developing/testing from the project's source, so having the mods inside makes it easier instead of having to have a separate thing open for them in AppData.
Edit: I'll upload the new version soon, it'll be 1.4.2 because I'm too tired to update to 1.6 today.
Also, I'm still unsure of what's up with the laser detectors.
- EntranceJew
- Posts: 93
- Joined: 05 Mar 2012, 05:37
I'll port what you post tonight to 1.6.ZenX2 wrote:Edit: I'll upload the new version soon, it'll be 1.4.2 because I'm too tired to update to 1.6 today.
Also, I'm still unsure of what's up with the laser detectors.
Okay, box dispensers and lasers are fixed. Expect the new version soon. I'll include my testing mappack (Seen in the picture above) and the mods I've made outside of the .love.
New things:
-Triggers
--Allow you to do stuff when Mario walks into them
-Wheatley Sockets (pretty much buttons that stay on and are only pressed by wheatley)
-Map-specific lua, just have an x-y.lua with your x-y.txt
-Talkity boxes. These were easier to make than I thought they would be.
-Switch entity, toggles on and off when it receives "on" or "toggle", can be made to only trigger once with the right-click menu, and there's also an invisible version. This should make story-event type stuff easier.
I've probably changed plenty in the core files, as well. I think you guys are going to have fun with this.
Edit:
New things:
-Triggers
--Allow you to do stuff when Mario walks into them
-Wheatley Sockets (pretty much buttons that stay on and are only pressed by wheatley)
-Map-specific lua, just have an x-y.lua with your x-y.txt
-Talkity boxes. These were easier to make than I thought they would be.
-Switch entity, toggles on and off when it receives "on" or "toggle", can be made to only trigger once with the right-click menu, and there's also an invisible version. This should make story-event type stuff easier.
I've probably changed plenty in the core files, as well. I think you guys are going to have fun with this.
Edit:
Thanks for the offer, but I think I can handle it. I was expecting lasers to take longer to fix.EntranceJew wrote:I'll port what you post tonight to 1.6.
Mari0MS v1.6.1
Here's the newest version, updated to Mari0 1.6.
Since Maurice added custom music, don't use the music loading thing I made.
I added lots of stuff that allows for more story-oriented levels, so some cool things are bound to be made sooner or later.
The download: MarioMS_1.6.1.zip
Contents:
-Mari0MS_1.6.1.love, the actual mod/game
-mods, a folder full 'o mods that I've made
-sandbox, my testing map. It requires pretty much all the mods from "mods"
Have fun with this!
Here's the newest version, updated to Mari0 1.6.
Since Maurice added custom music, don't use the music loading thing I made.
I added lots of stuff that allows for more story-oriented levels, so some cool things are bound to be made sooner or later.
The download: MarioMS_1.6.1.zip
Contents:
-Mari0MS_1.6.1.love, the actual mod/game
-mods, a folder full 'o mods that I've made
-sandbox, my testing map. It requires pretty much all the mods from "mods"
Have fun with this!
- EntranceJew
- Posts: 93
- Joined: 05 Mar 2012, 05:37
Small thing that is missing from this would be a handler for MarioModGlobalCollide. More as the story develops.
Edit: An unsung potential feature of level-by-level lua includes means level specific variable settings. Meaning that old bullet bill RUN map by pumping up the bullet bill limit, or making a map where gravity is straight up strange and mario runs way faster.
Edit: An unsung potential feature of level-by-level lua includes means level specific variable settings. Meaning that old bullet bill RUN map by pumping up the bullet bill limit, or making a map where gravity is straight up strange and mario runs way faster.
-
- Posts: 40
- Joined: 05 Mar 2012, 13:54
Koopas are messed up?
Are you having problems such as not being able to kick their shells from the left like I'm having?
Are you having problems such as not being able to kick their shells from the left like I'm having?
- EntranceJew
- Posts: 93
- Joined: 05 Mar 2012, 05:37
Unless I'm mistaken, LoadModImage has no way to distinguish what mod is "current", even after defining it in the to-be-included.lua and/or modmain.lua. Just bringing this to your attention since it'd be a neat feature once it got working.
modding.lua LoadModImage
Additionally, I patched in MarioModGlobalCollide for the sake of porting piranha plants over to this system, requiring that it returns true (in order to get the function it's nested in to return false):
mario.lua mario:globalcollide
Image1, Image2
Download red and green piranha plants and their upsidedown variants. They don't overwrite the existing piranha plants because I didn't want to bother with that just yet. Feel free to redistribute or modify whatever code I have, just be mindful that because piranha plant's default method of drawing is buried deeper in the code than its entity file I had to really hack in upside down piranhas. Sideways coming about as soon as I can rotate a quad or I find piranha plant's drawing method and send that a rotation value.
modding.lua LoadModImage
Code: Select all
function LoadModImage(path)
return love.graphics.newImage("mods/"..CurrentMod.."/graphics/"..path)
end
mario.lua mario:globalcollide
Code: Select all
if MarioModGlobalCollide[a] then
if MarioModGlobalCollide[a](self, b) == false then
return true
end
Download red and green piranha plants and their upsidedown variants. They don't overwrite the existing piranha plants because I didn't want to bother with that just yet. Feel free to redistribute or modify whatever code I have, just be mindful that because piranha plant's default method of drawing is buried deeper in the code than its entity file I had to really hack in upside down piranhas. Sideways coming about as soon as I can rotate a quad or I find piranha plant's drawing method and send that a rotation value.
Last edited by EntranceJew on 17 Mar 2012, 13:31, edited 2 times in total.
this is a great tool. im workign on a mod with it (the mod i am making goes with my mappack some people might have seen the snes tileset and mappack. its snes entitys and mario and some other edits in between)
heres progress:
entities: 100% (I believe)
mario: 35%
other stuff: 80%
heres progress:
entities: 100% (I believe)
mario: 35%
other stuff: 80%
- EntranceJew
- Posts: 93
- Joined: 05 Mar 2012, 05:37
As it stands, because no custom entity enemies have a firescore defined (edit: this is wrong, custom enemy entities have code fore firepoints I just missed it. The rest of the post is still relevant if you have a custom enemy mod that does not use the FirePoints mod method) The game will crash during a rainboom due to the code only considering bowser as the exception, everything else is expected to have an entry on firescores. This is the code I applied to deal with enemies not having firescores as it pertains to rainbooms:
mario.lua mario:portaled
A better solution to this would probably be to include a simple table.insert to the respective tables, but since it relies on entity names having a hook to handle it automatically wouldn't be half bad. (edit: Disregard that, I failed to notice the FirePoints mod function.)
I was mucking about in that code because I added in pow blocks, though I can't seem to scrape the earthquake code off of the pinwheel image in the game_draw() function without reimplementing the earthquake code.
mario.lua mario:portaled
Code: Select all
for i, v in pairs(enemies) do
if objects[v] then
for j, w in pairs(objects[v]) do
w:shotted()
if firepoints[v]~=nil then
addpoints(firepoints[v], w.x, w.y)
elseif firepoints[v]==nil then
addpoints(firepoints["goomba"], w.x, w.y)
elseif v=="bowser" then
for i = 1, 6 do
w:shotted()
end
end
end
end
end
I was mucking about in that code because I added in pow blocks, though I can't seem to scrape the earthquake code off of the pinwheel image in the game_draw() function without reimplementing the earthquake code.
Last edited by EntranceJew on 18 Mar 2012, 13:41, edited 2 times in total.
- EntranceJew
- Posts: 93
- Joined: 05 Mar 2012, 05:37
Whoops, I somehow overlooked this even though it was clearly used in your code for the poison mushroom. I guess I shouldn't post and code while on a sleep-deprivation-induced productivity spree.ZenX2 wrote:I may have forgotten to mention this, but the function FirePoints(entname, points) sets up firepoints for an entity.
Edit: One of the mods I'm working on now requires a function that behaves similarly to the collide hook, I need some code embedded in the mario:update method to run some logic, but the problem I'm experiencing in implementing it is that there's several code-points where it might be useful to have a hook (self.animation checks, star timer checks, pre-rotation checks, post-rotation checks, even skipping the rotation check entirely) and I can't quite figure out an elegant way to solve the problem other than:
modding.lua
Code: Select all
MarioModUpdateHooks = {beginning={},animation={},star={},prerot={},postrot={},duringrot={}}
function NewMarioUpdateHook(s, f)
table.insert(MarioModUpdateHooks[s],f)
end
mario.lua mario:update
Code: Select all
for i=1, #MarioModUpdateHooks["beginning"] do
MarioModUpdateHooks["beginning"][i](self)
end
There's a slight problem with having inter-connected mods communicate. A theoretical example of mod communication would be Mod2 having special case code if a variable only defined in Mod1 is at a certain value. That would be a product of a bigger problem of no set mod loading order, I would recommend taking an approach similar to what canI did for his hat loader, he used the dlc/mappack menu to select hats. This could be used to put a little window on the side to enable some configuration options for mods and enable modification of the mod loading order.
How do you make your own talky boxes like in the sandbox map?
Two Things...
1.) I am having the same problem that someone mentioned above, where you can't kick the Koopa shells. Just wanted to get that out there. Edit: It's more than not being able to kick the shells. The Koopas (both red and green) pass through Mario without damaging him, and so do their empty shells. They can be stomped from the top and picked off with fireballs, but their empty shells can't be kicked from either side. They just sit there like solid blocks. Jumping on top of the empty shell, however, will set it into motion. Buzzy Beetle is experiencing the same issue.
The Winged Koopas have no boundaries. They fly all over the map, with no regard for solid tiles. If you stomp one in between a solid tile and a non-solid tile (liquid or gas?) they get stuck between the two tiles.
If a Hammer Brother lands on top of Mario, it will stand on top of him like he's a brick without doing any damage to him.
2.) I reeeeeeeaaaalllly like the idea of the Talkbox mod. When I downloaded the package, though, all there was in the folder was the talkbox.lua file. There are no graphics and there is no modmain.lua.
Do these have fixes in the works?
Thanks again!
- z0mb1
1.) I am having the same problem that someone mentioned above, where you can't kick the Koopa shells. Just wanted to get that out there. Edit: It's more than not being able to kick the shells. The Koopas (both red and green) pass through Mario without damaging him, and so do their empty shells. They can be stomped from the top and picked off with fireballs, but their empty shells can't be kicked from either side. They just sit there like solid blocks. Jumping on top of the empty shell, however, will set it into motion. Buzzy Beetle is experiencing the same issue.
The Winged Koopas have no boundaries. They fly all over the map, with no regard for solid tiles. If you stomp one in between a solid tile and a non-solid tile (liquid or gas?) they get stuck between the two tiles.
If a Hammer Brother lands on top of Mario, it will stand on top of him like he's a brick without doing any damage to him.
2.) I reeeeeeeaaaalllly like the idea of the Talkbox mod. When I downloaded the package, though, all there was in the folder was the talkbox.lua file. There are no graphics and there is no modmain.lua.
Do these have fixes in the works?
Thanks again!
- z0mb1
Last edited by z0mb1 on 22 Mar 2012, 02:18, edited 3 times in total.
This is EXACTLY what I would like to know, also.eraykaan wrote:How you had done like wheatley-talking? (sorry im turkish)
I think I may have made some headway in the Koopa/Beetle issue, but I've hit a stopping point. I think the problem is a combination of something wrong with koopa.lua and mario.lua. Koopa.lua controls the Koopa Troopas, the Koopa Paratroopas and Buzzy Beetle. I copied koopa.lua and mario.lua out of the main Mari0 file and was able to get the Koopas and Buzzy to stabilize a little (they damaged Mario again and their shells were kickable), but then the game blued out after a couple of seconds and I wasn't able to test anymore. If I just swap the mario.lua file and not the koopa.lua file, the enemies pass right through Mario again (and the game blues out after a couple of seconds). If I just swap out the koopa.lua file and not the mario.lua file, the same thing happens. I've gone about as far with this as my troubleshooting skills will allow me (I've only been at this since Sunday). Hopefully someone who knows more about this than me can take this info and run with it.
I tried completely uninstalling and re-downloading MarioMS to see if that fixed the issue. It didn't. I'm gonna try playing around with older versions now to see if that does any good. Hopefully a fix comes soon. I'm working on a fun, puzzle-heavy mod that takes Mario through the Deadlands, Purgatory and Hell that should be a lot of fun once we can get the shell-bearing enemies to function again. Several of the puzzles I set up depend on shells being kicked or portaled into areas at the right time, and this bug has got me stalled.
I tried completely uninstalling and re-downloading MarioMS to see if that fixed the issue. It didn't. I'm gonna try playing around with older versions now to see if that does any good. Hopefully a fix comes soon. I'm working on a fun, puzzle-heavy mod that takes Mario through the Deadlands, Purgatory and Hell that should be a lot of fun once we can get the shell-bearing enemies to function again. Several of the puzzles I set up depend on shells being kicked or portaled into areas at the right time, and this bug has got me stalled.
- RegrettedKarma6
- Posts: 3
- Joined: 04 Feb 2012, 15:17
I know I'll sound like a dumb-ass but how do you load/play the mods.
What are the modded files? i would like to know so i can port it to my .love file, and i don't want to screw anything else up.
you need to have a "1-1.lua" (or one for each level).DjShadFox wrote:Which file should I change if I want to add a new text in the trigger?
ZenX2 wrote:To make talkboxes call OpenTalkBox with a table full of strings as the argument. There's a limit of 35 or so characters per line.