Page 1 of 1

Organization DB

Posted: Tue Apr 15, 2008 4:31 pm
by chrrox
I would like to start some structured DB work with all of the other DB mods out there. What I think we should do is sort of assignments. This will help us in several ways.
1.We will be more structured in our work.
2.We will communicate more with each other.
3.We will not have 2 people working on the same thing.
Now I am not trying to force anything on anyone I just think it will make all our lives simpler.
Just let me know what part of the db you are interested in working on and we can update the status at regular intervals so we have a better understanding of everything that is going on.
I will post what I am doing along with some documentation so It is understood how I did what i did and if someone else wants to do something similar they can have a good idea of where to start.
Here is an example. "this is what i am doing."
Table:Spell Related.
Class:Ranger
Whats done.
Table Spells
1.Id's (100%)
I reserved 39,000 - 39,999
there are 163 ranger spells x 6 versions = 978 + a few for master 2 spells and a few aa's and stuff.
and each of these will have several entries in spell data and spell display effects. I chose 39,000 because 39 is the ranger class id so it keeps things simple.
2.version (100%)
3.sub version (100%)
4.Type (1%)
5.cast type (1%)
6.Name (100%)
7.Description (100%)
8.Icon (100%)
9.Icon2 (100%)
10.Icon type (100%)
11.class skill (0%)
12.mastery skill (0%)
13.tier (50%)
14.hp_req - power_upkeep (0%)
15.cast time - recovery (25%)
16.Level (100%)
17.Power requirement - fade message (25%)
18.Lua script - spell visual (25%)
from this you have a basic Idea of where I am currently. I am not suggesting you need to be this detailed I am just showing a detailed example.
One thing I think would be a cool goal is to get all the spells in eq2 with their id's and icons for each class this would give us a great start I think.
Let me know what you guys think if you like it or you think im crayzy lol :)

Posted: Tue Apr 15, 2008 4:38 pm
by John Adams
You're nuts.
I already have a job, where I report my status and attempt to meat deadlines 7 days a week, I can't be interested in turning this into more stress. Sorry.
There definitely is a ton of work to be done on the database, and for the longest time, I was the only one doing anything (aside from alfa's great re-design). Soon as I get some feedback on that, maybe I'll be interested in moving forward in a more organized capacity.

Posted: Tue Apr 15, 2008 4:43 pm
by chrrox
I might of come off the wrong way I don't care about deadlines after all this is a free project and this is done in everyones spare time but it would be cool to know what everyone is working on so we dont do the same thing twice.
You and alfa have done an sweet job
:)

Posted: Tue Apr 15, 2008 4:46 pm
by LethalEncounter
Heh, I am somewhere between John and you. I think it is a great idea, but the problem with our project right now is the lack of people willing to donate their time to making it better. Those of us that do, donate too much and get burned out. Maybe make a post where people can sign up to do small things.
John - the db stuff is your project and you are very instrumental to the emu being in the shape it is today. Trust me, any changes you want to make to the DB is fine with me and I think that so far your changes have been right on the money.

Posted: Wed Apr 16, 2008 11:26 am
by John Adams
No offense meant, chrrox. I know you didn't mean "deadlines", but soon as you put your name next to a task, people might expect actual progress :) I feel I have done a lot, but honestly it was mostly beating on the packetparser + LE regarding the packetparser lol... and trying to do some pre-mature load testing. The real work will come when the new DB design is finished - which, unless I take a vacation or get fired, might take a while.
In short (I hate committing to this lol), I am working on alfa's DB design, tightening it up, changing it all to InnoDB and implementing foreign keys / constraints so hopefully we have a more robust base DB to work from.
My hope is that (even now) we could get some zones spawned, and "hire" some community folks who know the zones perfectly to go clean up the data... fix the spawns locations, verify appearances/equip, getting ready for the quests/waypoints that will eventually come. I've done this at least a dozen times for the Queen's Colony, but due to screwing around constantly, I keep losing my work (I find that I didn't migrate data properly, etc).
In that, I have been working on a command-line exe to push the rawdata to the live DB setting the IDs per the zoneID * 1000 indexing scheme, but ran into a problem with some of the larger zones having 15 copies of the same mob and exceeding 1,000 unique NPCs per zone (in extreme cases). Worse yet, spawngroups and how many get created. Been trying to divine a better way to do all that, but I think what we got will have to work (one spawngroup per NPC, except in placeholder scenarios).
And, I have become more involved in the EVE Emulator project, cuz I just love that game (it's where I got the idea of the FKs and InnoDB... nice DB really). But that aside, my real work load is intense and I do these projects when I have time. So that's why it's been so slow from me lately.
And thanks, LE. You are a real pleasure to work with. I'm glad to be here, helping and making you nuts. :)

Posted: Wed Apr 16, 2008 12:04 pm
by chrrox
There is actually I way to do exactly what you want to do john. If I am understanding the desired outcome properly this can be done using Microsoft excel and the program navicat. would it be helpful if I spawned one of each npc inn a zone and then the people who know the zones can go around spawning more of the mobs. Ill post an sql file of queens colony and let me know what you think of it. I am starting on it as we speak. Ill use your dump on svn for the spawns.

Posted: Wed Apr 16, 2008 3:33 pm
by John Adams
chrrox, thanks, but there's no need for you to do that unless you just want to try it out. My code already takes the raw data and inserts the NPCs into the table with the proper npc id. That is how I spawned every packet we got on my server - if you target the npcs and /spawn details, you'll see what was derived from the rawspawns data.
My problem isn't getting it done, it's keeping it done. I'm saying I always get to where I think I am done, and find that one more thing I could have done better...
fwiw, I use C++, C# and PHP as languages. So far all my spawns are via a PHP script. Works rather well, when the parser finds the appearance data ;) This is why many of my NPCs are "dark". But I am really enjoying experimenting with C#. I just didn't want to do too much since another dev team is doing a complete DB editor...