Keyten Posted April 19, 2015 Posted April 19, 2015 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
Didz Posted April 20, 2015 Posted April 20, 2015 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
Onysfx Posted April 20, 2015 Posted April 20, 2015 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.
Scooper Posted April 20, 2015 Posted April 20, 2015 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 small2) 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).
Keyten Posted May 10, 2015 Author Posted May 10, 2015 https://github.com/Razish/japp/commit/ac33e2856c01d30b4ad1f9088a2dc94ec565b5e9 Raz0r and Exmirai like this
Pande Posted May 11, 2015 Posted May 11, 2015 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.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now