Jump to content

LuaMakermod - is it interesting to someone?


Recommended Posts

Hey, all.

Makermod on JA++ and Lua -- is it interesting to someone?

It would let you use the standart makermod building commands (mplace / mmove / etc) with all the JA++ features (grapple hook, rgb sabers, etc).

Btw, you could use the client lua scripts with these server commands.

 

And possible new features:

 - Advanced animation: moving on Bezier curve, easing functions.

 - Instant mmove / mrotate.

 - Maybe, some parts of physics (velocity, collisions).

 - Timers (like the makermodule's ontimer).

Exmirai likes this
Link to comment

Lua scripting support was one of the core things planned for Makermod 2.0, but it's really unlikely there will be another release of Makermod...
 
The beginnings of a rough Lua implementation was started in the current client plugin for Makermod, but it only has an API for getting and setting cvars currently. (Try doing /lua_do "cvars.name = 'Blahblah'" and /lua_do "print(cvars.name.string)")

 

The plan was to have players be able to write building scripts as Lua files on their computers, and then have these scripts uploaded using a command and executed inside a server-side Lua sandbox (with limits on resource usage).
 
Here's some of the API I came up with 3 years ago: (it matches the current set of commands closely)

 

--[ mm :: Makermod Interface ]--

mmObject mm.place(string name, vec3 origin, vec3 angles)
-- name is required
-- if origin is nil, marked position will be used
-- if angles is nil, [0,0,0] default angles will be used

mmObject mm.placeFX(string name, vec3 origin, vec3 angles, int delay, int random_variance)
-- name is required
-- if origin is nil, marked position will be used
-- if angles is nil, [-90,0,0] default 'up' angle will be used
-- if delay is nil, default jka delay 200 will be used
-- if random_variance is nil, default 0 will be used

mmObject mm.placeSpecialObject(string name, vec3 origin, vec3 angles)
-- name is required
-- if origin is nil, marked position will be used
-- if angles is nil, [0,0,0] default angles will be used



--[ mmObject :: Makermod Objects Interface ]--
-- These methods can only be used by the owner unless noted otherwise by 'unprotected'

-- Get the Player for the owner of the object (or nil if owned by world)
Player mmObject:getOwner() -- unprotected

-- Set the owner of the object to the player (or nil to set to the world)
mmObject:setOwner(Player player)
-- if player is nil, the owner is set to the world

-- Get the entity number for the object
int mmObject:getNumber() -- unprotected

-- Get the group name of the object
string mmObject:getName()

-- Set the group name for the object
mmObject:setName(string name)
-- if name is nil, set empty string

-- Get the model or effect name for the object
string mmObject:getModel() -- unprotected

-- Get the fixed origin for the object
vec3 mmObject:getOrigin() -- unprotected

-- Set the fixed origin for the object
mmObject:setOrigin(vec3 origin)
-- origin is required

-- get the fixed angles for the object
vec3 mmObject:getAngles() -- unprotected

-- set the fixed angles for the object
mmObject:setAngles(vec3 angles)
-- angles is required

-- get the fixed scale for the object
vec mmObject:getScale() -- unprotected

-- set the fixed scale for the object
mmObject:setScale(vec scale)
-- scale is required

-- get the interaction password for the object
string mmObject:getPassword()

-- set the interaction password for the object
mmObject:setPassword(string password)
-- if password is nil, set empty string

-- Move the object by x,y,z units for duration
mmObject:move(vec x, vec y, vec z, int duration)
-- x is required, y is required, z is required
-- if duration is nil, assume 10 seconds
-- duration is in milliseconds

-- Move the object x,y,z units PER SECOND for duration
mmObject:moveClassic(vec x, vec y, vec z, int duration)
-- x is required, y is required, z is required
-- if duration is nil, assume 10 seconds
-- duration is in milliseconds

-- Rotate the object by pitch,yaw,roll for duration
mmObject:rotate(vec pitch, vec yaw, vec roll, int duration)
-- pitch is required, yaw is required, roll is required
-- if duration is nil, assume 3 seconds
-- duration is in milliseconds

mmObject:startRotating() -- unfinished

mmObject:stopRotating() -- unfinished

 

 

 

If people are still playing Makermod, it could be a good thing to look into. cc @Scooper, @spior, @Onysfx

Keyten likes this
Link to comment

Yep, always will still be here. I know TuskenK still plays Makermod from time to time, and he informed me Gareikn got his server up once a few days ago. As for spior, he's uninstalled JKA from what I understand.

 

It would be nice to make Makermod into something more, combining the best aspects of lugor, makermod, and japlus to make an ultimate RP/build/fun mod for everyone. And to prevent it from becoming a pure RP mod, insure that regardless of the admin level, everyone has the ability to place objects.

 

JKA is dying. Ya, well, it's still here and it's been friggen years since I last played makermod. And yet I got a request for the files about a month ago. So clearly there is still interest, regardless of how little.

 

I guess @@Scooper has been busy with other things, would still be nice to see these features coded in one day. If so, I could finally make an RPG adventure purely with Lua in makermod.

Link to comment

I am busy with other things. But there's also a few problems with going back to working on makermod.

1) The community has gotten really small

2) There's a lot of cool things I would like to work on, but I have to do a lot of boring stuff before that.

3) Limited free time and energy, need to choose my projects carefully. And without good incentives, I'm probably not going to work on makermod. (Good incentives being a big community or something really awesome to make in it).

Link to comment
  • 3 weeks later...

JKG has some sorta makermod stuff in it aswell. It uses many of the same commands like /place. Worth a look through the code. Through LUA objects and scripts the placed models can do things like give weapons, ammo, etc.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...