So I kinda put off studying tonight for midterms and did some more stuff.
Queue System:
-Wrote my own queue dll as a new data structure to handle things in a specified order but to still allow removal of data part way through.
Item Floor:
-Applied this system to drop/loot/item timeout so that items will not remove when picked up (as they did before) but also remove effectively from the timeout queue (before I was doing bools to see if I should let them pick it up/display it until it was finally removed. Waste of calculations!)
Spawning:
-Mobs respawn. May apply a queueing system to this as well so that they don't respawn nearly instantly as they do now.
Spawns:
-Full spawn on server start
-Respawn on death
-No spawning on other mobs
-No spawning on invalid dmap locations
-Random spawn spread
-Command to add spawns while server is running
Attack:
-Basic melee Client>monster
-Monsters take damage
-Monsters die (change in attack type)
-Monsters despawn (currently 2 seconds after death. YAY QUEUES!)
Also considering both AI and server object handling. I'm really tempted to do area queries (NOT quad tree!) and it wouldn't take much re-writing at this point... so maybe I'll code that soon so that we can stop with the distance calculations.
Thinking I may attempt to write a proper ai server soon before monsters get coded. If not I'll need to code seperate AI for every type of npc entity (mobs, bosses, bots, etc)... would be simpler to have one generic ai processor that handles them all so that it's separate from game server.
We'll see.
Midterms in a day or so. After that I'll have more time to code.
<edit>
So I also discovered something semi interesting today...
Status effects can be applied to monsters exactly the same way as players. While this may seem obvious it does open up some intriguing possibilities..
EG: Flying dragon
Custom status effects for various things to do with monsters.
My current thinking is that if I do decide to code a proper AI server and integrate it with bosses then I can do all sorts of cool things including charging up various spells, status effects (flying, shielded, etc based on world conditions)
So lets say I make a instanced 'raid' where you must run through a large number of difficult 'mini bosses' and then face a ninja boss. The ninja boss may have fatal strike active and will mix his movements between jumping, fatal striking and walking. Destroying certain tnpc structures on the map may lower his ability to use certain skills or temporarily lower his defenses.
Or lets say a dragon which will fly for 5-10 seconds and use a fiery air attack... You can't attack when it's flying so whenever it starts flying you need to move the hell out of the way to avoid being scorched by the attacks.
This could add some interesting elements to boss fights where they are not simply "get the best gear and tank the mob till it's dead". Teamwork and tactics would be required to effectively complete these forms of challenges.
Queue System:
-Wrote my own queue dll as a new data structure to handle things in a specified order but to still allow removal of data part way through.
Item Floor:
-Applied this system to drop/loot/item timeout so that items will not remove when picked up (as they did before) but also remove effectively from the timeout queue (before I was doing bools to see if I should let them pick it up/display it until it was finally removed. Waste of calculations!)
Spawning:
-Mobs respawn. May apply a queueing system to this as well so that they don't respawn nearly instantly as they do now.
Spawns:
-Full spawn on server start
-Respawn on death
-No spawning on other mobs
-No spawning on invalid dmap locations
-Random spawn spread
-Command to add spawns while server is running
Attack:
-Basic melee Client>monster
-Monsters take damage
-Monsters die (change in attack type)
-Monsters despawn (currently 2 seconds after death. YAY QUEUES!)
Also considering both AI and server object handling. I'm really tempted to do area queries (NOT quad tree!) and it wouldn't take much re-writing at this point... so maybe I'll code that soon so that we can stop with the distance calculations.
Thinking I may attempt to write a proper ai server soon before monsters get coded. If not I'll need to code seperate AI for every type of npc entity (mobs, bosses, bots, etc)... would be simpler to have one generic ai processor that handles them all so that it's separate from game server.
We'll see.
Midterms in a day or so. After that I'll have more time to code.
<edit>
So I also discovered something semi interesting today...
Status effects can be applied to monsters exactly the same way as players. While this may seem obvious it does open up some intriguing possibilities..
EG: Flying dragon
Custom status effects for various things to do with monsters.
My current thinking is that if I do decide to code a proper AI server and integrate it with bosses then I can do all sorts of cool things including charging up various spells, status effects (flying, shielded, etc based on world conditions)
So lets say I make a instanced 'raid' where you must run through a large number of difficult 'mini bosses' and then face a ninja boss. The ninja boss may have fatal strike active and will mix his movements between jumping, fatal striking and walking. Destroying certain tnpc structures on the map may lower his ability to use certain skills or temporarily lower his defenses.
Or lets say a dragon which will fly for 5-10 seconds and use a fiery air attack... You can't attack when it's flying so whenever it starts flying you need to move the hell out of the way to avoid being scorched by the attacks.
This could add some interesting elements to boss fights where they are not simply "get the best gear and tank the mob till it's dead". Teamwork and tactics would be required to effectively complete these forms of challenges.