• This is a read only backup of the old Emudevs forum. If you want to have anything removed, please message me on Discord: KittyKaev

Shard Lua - Old School MMORPG Game Rules!

NotHawthorne

Insane Member
8C0aURd.png

>>> The Shard Ruleset is a set of various Lua scripts and cMaNGOS 3.3.5a core edits that will, when completely finished, rebuild the rules of World of Warcraft from the ground up. As I'm unable to be a server hoster, community administrator, and gamemaster at the same time as developing these systems, I probably won't be hosting a server with them. However, feel free to use them for your own projects, or contribute to the GitHub! I would love to work together with someone who wanted to host a server like this. The inspiration for this project comes from my experiences in games such as Shadowbane and Darkfall. Freedom of choice is an important thing to me in MMORPG's, and I think it's very possible to implement this freedom in World of Warcraft.


-MAJOR FEATURES-

NOTE: The most important scripts rely on the wonderful ElunaGATE AddOn.

Green text means that something is functional, or mostly functional.
Gold text means that the framework in place and/or being worked on actively for that feature, but is not functional.
Red text means that it's something that's either not been started or neglected.​

  • FULL LOOT ON DEATH
    Upon player-caused death, your items will be taken from your inventory (and equipped items) and placed on a vendor (the Loot Ghost) for the killing player to claim.


  • REWORKED CHARACTER PROGRESSION
    When you go to create your character, you may choose one of four archetypes: Fighter, Mage, Thief, and Healer (names subject to change.)
    You will then, as you level up, be able to put points into improving abilities in a certain category, such as Liturgy.
    As you spend points in the Liturgy focus skill, more Liturgy skills become available to learn.

  • Additional Features
    All classes now start with 1,000 Energy, and 80 Mana at level 1.
    Auto-Attacking now costs 50 Energy. If you auto attack with under 50 energy, you'll be pacified for 5 seconds.
    Agility now grants movement speed, and reduces Energy costs.


-SCREENSHOTS-

=Proof of concept "Alternate Advancement" window, fully functional=
mjbUrO6.jpg


=What "Alternate Advancement" has become, two weeks later=
YjMifW9.png


=Character Create Screen=
qRCS7q4.jpg


=Stat Allocation Proof of Concept=
le5RvNL.jpg


=Remade Stat Allocation window, fully functional.=
3tlHlU4.jpg


=Player looting=
tqiHfMk.jpg


-GITHUB-

 
Last edited:

Tommy

Founder
I've decided to shut down my server because I really didn't like dealing with babysitting players, not being able to take the server down for updates without people getting upset, etc.

Wait, what? When are you suppose to listen to players? It's your server, you can do what you want regardless how people feel about it. Just do saveall and close the server, update and start it back up.


Anyway, thanks for the release.
 

NotHawthorne

Insane Member
Wait, what? When are you suppose to listen to players? It's your server, you can do what you want regardless how people feel about it. Just do saveall and close the server, update and start it back up.


Anyway, thanks for the release.

When it comes to a custom experience like this, listening to the players is paramount in my opinion. When a player logs in and can talk to the admin about changes and have their concepts discussed (and, in the case of Alternate Advancement, implemented), that player becomes dedicated. Its a personal relationship. However, I really didn't want to upset anybody or interrupt the fun they were having by tinkering all the time. I realized that, until I make a finished product, where I wouldn't have to do that, I couldn't keep the server up. I do, however, look forward to the day when I'm finally happy with Shard from a developer standpoint.
 

Hyperion

Founder
When it comes to a custom experience like this, listening to the players is paramount in my opinion. When a player logs in and can talk to the admin about changes and have their concepts discussed (and, in the case of Alternate Advancement, implemented), that player becomes dedicated. Its a personal relationship. However, I really didn't want to upset anybody or interrupt the fun they were having by tinkering all the time. I realized that, until I make a finished product, where I wouldn't have to do that, I couldn't keep the server up. I do, however, look forward to the day when I'm finally happy with Shard from a developer standpoint.

It's always good to listen to your players, but when you have a huge amount of them doing it and mostly complaining, you would stop listening to most :p
 

NotHawthorne

Insane Member
It's always good to listen to your players, but when you have a huge amount of them doing it and mostly complaining, you would stop listening to most :p

That's why I can't run the server anymore. I give too much of a crap about the players. Douche-y thing to say, I know, but it feels like that sometimes. I want to make everyone enjoy their time on the server. This one time, apparently a player broke out of the playing area and wanted to get a screenshot of himself in front of Dalaran. One of my ex-GM's teleported him back to the playing area and this had upset him. I talked to him for a while, he was having a bad day, so I showed him around some of the areas I hadn't developed yet that were planned for future content, offered an ear whenever he felt like he needed someone to vent to, et cetera. I want to make everyone happy like that. It upsets me that I can't. :(
 

Kaev

Super Moderator
I rewrote the whole Stat Allocation due to bugs. STR works without bugs now, other Stats aren't implemented yet. :)
 

NotHawthorne

Insane Member
Reformatted, and updated with all of the goings-on. I lost my computer about 4 days ago, so I've had to re-do a few things.
 

Kaev

Super Moderator
I took a look into AIO today. It is so much easier to understand and use and we can do even more fantastic stuff with it. I think i'll rewrite ShardLua in the next days to AIO. You can take a look into it then, NotHawthorne, and decide, if we will use GATE or AIO in the future.
 
Last edited:

NotHawthorne

Insane Member
I took a look into AIO today. It is so much easier to understand and use and we can do even more fantastic stuff with it. I think i'll rewrite ShardLua in the next days to AIO. You can take a look into it then, NotHawthorne, and decide, if we will use GATE or AIO in the future.

I've been writing up new scripts in AIO as well. Namely, working on the look of UI windows. I'll post some indev screenies later. :D
 

Rochet2

Moderator / Eluna Dev
Do check out the one issue on AIO issue tracker.
That is one of the current things not coded in.
However it is possible to access a global variable through functions

I havent tested AIO with writing actual addons much.
That means Im not sure about if its difficult to use in situations where user uses /reload or relogs or so.
Feedback is appreciated if you do use it :) Havent heared of anyone using it and its not released I guess.
 

NotHawthorne

Insane Member
Do check out the one issue on AIO issue tracker.
That is one of the current things not coded in.
However it is possible to access a global variable through functions

I havent tested AIO with writing actual addons much.
That means Im not sure about if its difficult to use in situations where user uses /reload or relogs or so.
Feedback is appreciated if you do use it :) Havent heared of anyone using it and its not released I guess.

I'll look into the feature! Right now, I'm trying to figure out how to make button tooltips show up. Got a neat little frame for the custom menus and such. Re-building my GATE scripts is gonna be lame, but I'm confident that it'll be worth it :D

b7qVEbU.jpg
 

Kaev

Super Moderator
If you understood AIO once, developing isn't that hard anymore.
In the end, it was good to change from GATE to AIO.
Poavtgo.png
 
Last edited:

miaxos

Respected Member
I can't be more agree with you ;). AIO still need some functions, some aren't scripted i think. I hope Rochet will have time to code these functions :).

But be careful when you send frames, in my AIO script, i first coded a frame that was send to just the first. I suggest you to test with two players online doing the tests.

(Sorry about my so bad english xD, I don't speak very often because i don't speak very well the shakespeare's language).
 

Kaev

Super Moderator
I can't be more agree with you ;). AIO still need some functions, some aren't scripted i think. I hope Rochet will have time to code these functions :).

But be careful when you send frames, in my AIO script, i first coded a frame that was send to just the first. I suggest you to test with two players online doing the tests.

(Sorry about my so bad english xD, I don't speak very often because i don't speak very well the shakespeare's language).

I haven't tested it, but it should be send correctly to every player. Tested it after opening it, closing it, relogging and after relog it was still functional. :)
And to be sure, we create the object once at server start and just send it to the player on login. :p
 

Rochet2

Moderator / Eluna Dev
I can't be more agree with you ;). AIO still need some functions, some aren't scripted i think. I hope Rochet will have time to code these functions :).
But be careful when you send frames, in my AIO script, i first coded a frame that was send to just the first. I suggest you to test with two players online doing the tests.

The mistake could have been a problem with your code.
Im fairly sure you hit the double creation of same (name) objects which is not allowed (on server side).
This is what Kaev and NotHawthorne also noticed. This is explained somewhat in the end of the example code.
You need to create the objects once then just send them, like Kaev said.

Could you please give examples of what functions are needed?
ALL functions cant be coded (due to natural limitation of being on server side)
But the ones you need are most likely doable in one way or another. (either implemented or workaround)
One thing that is not coded are the global functions, but you can access those through other means (functions)

When I look at the code, the only functions (for 3.3.5a) that are not coded are:
-- "CreateTitleRegion", -- TODO? How is a title region named?
-- "CreateControlPoint", -- TODO? -- Is this supposed to return something?
-- "GetControlPoints", -- TODO?
-- "CreateAnimation", -- TODO
The other commented out methods are either using a different name or are not doable.

In addition to these there might be functions that do not work. (are there, but need special implementation)
Those should be reported as they are assumed to work.
 

miaxos

Respected Member
Of course it was a mistake of mine. Okay, something like Frame:GetHeight() i think. (If my memory is right) when i changed the frame Height to have an adaptative frame height with my text. (Hard to explain i haven't the right file).
 
Top