Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Web Need some info... (CMS)

Joined
Jun 28, 2006
Messages
285
Reaction score
165
So I'm rebuilding a CMS (a real one) for OdinMS servers, building up from a v55 database. I'm using this database as I'm sure 99% of all servers will have the same tables and fields, plus I'll create my own tables specific for the CMS itself, however I'm wondering what sort of other database information in newer versions are standard across the board that cannot be found in a v55 database? Would building based off of the v55 database be my best bet? I already know that I'll be building the site to be flexible regarding passwords, such as:

- md5
- md5 + salt
- sha1
- sha1 + salt
- sha512
- sha512 + salt
- unencrypted

...as I know this has changed numerous times down the development line. My goal is to make the CMS as seamless as possible, making it so it's as simple as copying the CMS files to the www directory of a website, and then running install.php. Install.php will be the script responsible for helping you set up the CMS for the first time, such as MySQL credentials, user password encryption type, name of the server, what the version of the server is (to determine what sort of jobs are available), language of the CMS (if more than English is available to it), if the admin panel is to serve to VPN-only connections, etc...so basically I also need a ton of info to make this a fantastic CMS:

- Each and every version v55 and beyond which includes new job classes (and their job codes and names)
- Character image ranking (holthelper's? script most likely)
- Each and every possible image for the item inventory as displayed in-game (as a similar structure will be in the admin CP, allowing you to add/modify/delete items from an existing character's inventory in any slot you wish)
- Map names, numbers, and images of the mini-map, to be displayed when warping characters to a different map upon next logon, editable in the admin CP.
- if `odinms`.`inventorylog` is actually used beyond v50 (I remember it worked in v50 at least, before OdinMS was actually released publicly)
- Uhhm...I think that's it?

Thanks if you can help me hunt this info down. It's been many, MANY years since I last really did anything for the MS community, so I'm sure I'm very outdated on a lot of this.

I'm not going to make a development thread until I have something tangible to show at least. There's many planned features I'm withholding from this thread that I want to surprise everyone with.
 
<3
Joined
Feb 4, 2011
Messages
481
Reaction score
123


The best I can do for now. I will find the missing ones later.
 
Last edited:
Upvote 0
Joined
Jun 28, 2006
Messages
285
Reaction score
165
That's a nice list, but I also remember GM jobs being 500 and 510 respectively way back then, which means they've changed over time.

...wait, did you type this from memory? Holy poop.
 
Upvote 0
<3
Joined
Feb 4, 2011
Messages
481
Reaction score
123
Haha, I am glad I could help you. It is the least I can do for such a talented web developer. Anywho, fixed up some incorrect ones. 95% of the original list was done by memory. And the other 5% was just noted down somewhere on my desktop. This doesn't include the jobs: Hayato and Kanna (which are to be released in v129 and v130 respectively). I will fetch that for you when they arrive to GMS if you need them.

Also, 500 and 510 were GM jobs before Pirates came in.
 
Upvote 0
Joined
Jun 28, 2006
Messages
285
Reaction score
165
Haha, I am glad I could help you. It is the least I can do for such a talented web developer. Anywho, fixed up some incorrect ones. 95% of the original list was done by memory. And the other 5% was just noted down somewhere on my desktop. This doesn't include the jobs: Hayato and Kanna (which are to be released in v129 and v130 respectively). I will fetch that for you when they arrive to GMS if you need them.

Also, 500 and 510 were GM jobs before Pirates came in.

That would totally be awesome, thanks!
 
Upvote 0
<3
Joined
Feb 4, 2011
Messages
481
Reaction score
123
That would totally be awesome, thanks!

First off, a quick fix on job ID (2004), it is still called as 'Luminous'. But it is basically a beginner version of Luminous (I hope you get what I am saying...)

Actually... a quick research gave me the job IDs (since these jobs were already available JMS). They were a JMS exclusive. Here you go:

4001 Hayato (beginning) - I am unsure if this is correct. This may be translated as something else.
4002 Kanna (beginning) - I am unsure if this is correct. This may be translated as something else.
4100 Hayato (1st job)
4110 Hayato (2nd job)
4111 Hayato (3rd job)
4112 Hayato (4th job)
4200 Kanna (1st job)
4210 Kanna (2nd job)
4211 Kanna (3rd job)
4212 Kanna (4th job)

EDIT: Realized that I missed Cannoneer. Ohnoes! Problem solved:
501 Cannoner (1st job)
530 Cannoneer (2nd job)
531 Cannoneer (3rd job)
532 Cannoneer (4th job)

Quick question: Will this CMS also support SEA? If so, I will see if I can fetch Zenn's job ID for you.
 
Last edited:
Upvote 0
may web.very maple.pls.
Loyal Member
Joined
Aug 12, 2009
Messages
1,810
Reaction score
606
This is from my CMS , supports up to Mihile idk which version that is in
PHP:
private $_jobs = [1000 => 'Noblesse', 1100 => 'Dawn Warrior', 1110 => 'Dawn Warrior 2', 1111 => 'Dawn Warrior 3', 1112 =>  'Dawn Warrior 4', 1200 =>  'Blaze Wizard', 1200 =>  'Blaze Wizard', 1210 =>  'Blaze Wizard 2', 1211 =>  'Blaze Wizard 3', 1212 =>  'Blaze Wizard 3', 1300 =>  'Wind Archer', 1310 =>  'Wind Archer 2', 1311 =>  'Wind Archer 3', 1312 =>  'Wind Archer 4', 1400 =>  'Night Walker', 1410 =>  'Night Walker 2', 1411 =>  'Night Walker 3', 1412 =>  'Night Walker 4', 1500 =>  'Thunder Breaker', 1510 =>  'Thunder Breaker 2', 1511 =>  'Thunder Breaker 3', 1512 =>  'Thunder Breaker', 2001 =>  'Evan', 2200 =>  'Evan', 2210 =>  'Evan', 2211 =>  'Evan', 2212 =>  'Evan', 2213 =>  'Evan', 2214 =>  'Evan', 2215 =>  'Evan', 2216 =>  'Evan', 2217 =>  'Evan', 2218 =>  'Evan', 2000 =>  'Legend', 2100 =>  'Aran 1', 2110 =>  'Aran 2', 2111 =>  'Aran 3', 2112 =>  'Aran 4', 2300 =>  'Mercedes 1', 2310 =>  'Mercedes 2', 2311 =>  'Mercedes 3', 2312 =>  'Mercedes 4', 2003 =>  'Phantom', 2400 =>  'Phantom 1', 2410 =>  'Phantom 2', 2411 =>  'Phantom 3', 2412 =>  'Phantom 4', 3000,'Citizen', 3100 =>  'Dem.Slayer', 3110 =>  'Dem.Slayer', 3111 =>  'Dem.Slayer', 3112 =>  'Dem.Slayer', 3200 =>  'Battle Mage', 3210 =>  'Battle Mage', 3211 =>  'Battle Mage', 3212 =>  'Battle Mage', 3300 =>  'Wild Hunter', 3310 =>  'Wild Hunter', 3311 =>  'Wild Hunter', 3312 =>  'Wild Hunter', 3500 =>  'Mechanic', 3510 =>  'Mechanic', 3511 =>  'Mechanic', 3512 =>  'Mechanic', 900 =>  'GameMaster', 910 =>  'Super GM', 800 =>  'Manager', 500 =>  'Pirate', 510 =>  'Brawler', 520 =>  'Gunslinger', 511 =>  'Marauder', 521 =>  'Outlaw', 512 =>  'Buccaneer', 522 =>  'Corsair', 501 =>  'Cannon shooter 1', 530 =>  'Cannon shooter 2', 531 =>  'Cannon shooter 3', 532 =>  'Cannon shooter 4', 508 =>  'Jett 1', 570 =>  'Jett 2', 571 =>  'Jett 3', 572 =>  'Jett 4', 0 =>  'Beginner', 100 =>  'Warrior', 110 =>  'Fighter', 120 =>  'Page', 130 =>  'Spearman', 111 =>  'Crusader', 121 =>  'White Knight', 131 =>  'Dragon Knight', 112 =>  'Hero', 122 =>  'Paladin', 132 =>  'Dark Knight', 200 =>  'Magician', 210 =>  'Fire/Poison Wizard', 220 =>  'Ice/Lightning Wizard', 230 =>  'Cleric', 211 =>  'Fire/Poison Mage', 221 =>  'Ice/Lightning Mage', 231 =>  'Priest', 212 =>  'Fire/Poison Arch Mage', 222 =>  'Ice/Lightning Arch Mage', 232 =>  'Bishop', 300 =>  'Bowman', 310 =>  'Hunter', 320 =>  'Crossbowman', 311 =>  'Ranger', 321 =>  'Sniper', 312 =>  'Bow Master', 322 =>  'Crossbow Master', 400 =>  'Thief', 410 =>  'Assassin', 420 =>  'Bandit', 411 =>  'Hermit', 421 =>  'Chief Bandit', 412 =>  'Night Lord', 422 =>  'Shadower', 430 =>  'Blade Recruit', 431 =>  'Blade Acolyte', 432 =>  'Blade Specialist', 433 =>  'Blade Lord', 434 =>  'Blade Master', 5100 =>  'Mihile 1', 5110 =>  'Mihile 2', 5111 =>  'Mihile 3', 5112 =>  'Mihile 4'];

my function
PHP:
 private function getJobByID($id) {
                $jID = (int) $id;
                return array_key_exists($jID, $this->_jobs) ? $this->_jobs[$jID] : 'unknown';
        }
 
Upvote 0
<3
Joined
Feb 4, 2011
Messages
481
Reaction score
123
I doubt many servers use anything other than sha1. Adding too many options will be confused for people who own servers (90% of which are idiots).

That is true. Over the year, we've been very consistent. I remember some old sources used MD5, but now everyone uses SHA-1.

This is from my CMS , supports up to Mihile idk which version that is in
PHP:
private $_jobs = [1000 => 'Noblesse', 1100 => 'Dawn Warrior', 1110 => 'Dawn Warrior 2', 1111 => 'Dawn Warrior 3', 1112 =>  'Dawn Warrior 4', 1200 =>  'Blaze Wizard', 1200 =>  'Blaze Wizard', 1210 =>  'Blaze Wizard 2', 1211 =>  'Blaze Wizard 3', 1212 =>  'Blaze Wizard 3', 1300 =>  'Wind Archer', 1310 =>  'Wind Archer 2', 1311 =>  'Wind Archer 3', 1312 =>  'Wind Archer 4', 1400 =>  'Night Walker', 1410 =>  'Night Walker 2', 1411 =>  'Night Walker 3', 1412 =>  'Night Walker 4', 1500 =>  'Thunder Breaker', 1510 =>  'Thunder Breaker 2', 1511 =>  'Thunder Breaker 3', 1512 =>  'Thunder Breaker', 2001 =>  'Evan', 2200 =>  'Evan', 2210 =>  'Evan', 2211 =>  'Evan', 2212 =>  'Evan', 2213 =>  'Evan', 2214 =>  'Evan', 2215 =>  'Evan', 2216 =>  'Evan', 2217 =>  'Evan', 2218 =>  'Evan', 2000 =>  'Legend', 2100 =>  'Aran 1', 2110 =>  'Aran 2', 2111 =>  'Aran 3', 2112 =>  'Aran 4', 2300 =>  'Mercedes 1', 2310 =>  'Mercedes 2', 2311 =>  'Mercedes 3', 2312 =>  'Mercedes 4', 2003 =>  'Phantom', 2400 =>  'Phantom 1', 2410 =>  'Phantom 2', 2411 =>  'Phantom 3', 2412 =>  'Phantom 4', 3000,'Citizen', 3100 =>  'Dem.Slayer', 3110 =>  'Dem.Slayer', 3111 =>  'Dem.Slayer', 3112 =>  'Dem.Slayer', 3200 =>  'Battle Mage', 3210 =>  'Battle Mage', 3211 =>  'Battle Mage', 3212 =>  'Battle Mage', 3300 =>  'Wild Hunter', 3310 =>  'Wild Hunter', 3311 =>  'Wild Hunter', 3312 =>  'Wild Hunter', 3500 =>  'Mechanic', 3510 =>  'Mechanic', 3511 =>  'Mechanic', 3512 =>  'Mechanic', 900 =>  'GameMaster', 910 =>  'Super GM', 800 =>  'Manager', 500 =>  'Pirate', 510 =>  'Brawler', 520 =>  'Gunslinger', 511 =>  'Marauder', 521 =>  'Outlaw', 512 =>  'Buccaneer', 522 =>  'Corsair', 501 =>  'Cannon shooter 1', 530 =>  'Cannon shooter 2', 531 =>  'Cannon shooter 3', 532 =>  'Cannon shooter 4', 508 =>  'Jett 1', 570 =>  'Jett 2', 571 =>  'Jett 3', 572 =>  'Jett 4', 0 =>  'Beginner', 100 =>  'Warrior', 110 =>  'Fighter', 120 =>  'Page', 130 =>  'Spearman', 111 =>  'Crusader', 121 =>  'White Knight', 131 =>  'Dragon Knight', 112 =>  'Hero', 122 =>  'Paladin', 132 =>  'Dark Knight', 200 =>  'Magician', 210 =>  'Fire/Poison Wizard', 220 =>  'Ice/Lightning Wizard', 230 =>  'Cleric', 211 =>  'Fire/Poison Mage', 221 =>  'Ice/Lightning Mage', 231 =>  'Priest', 212 =>  'Fire/Poison Arch Mage', 222 =>  'Ice/Lightning Arch Mage', 232 =>  'Bishop', 300 =>  'Bowman', 310 =>  'Hunter', 320 =>  'Crossbowman', 311 =>  'Ranger', 321 =>  'Sniper', 312 =>  'Bow Master', 322 =>  'Crossbow Master', 400 =>  'Thief', 410 =>  'Assassin', 420 =>  'Bandit', 411 =>  'Hermit', 421 =>  'Chief Bandit', 412 =>  'Night Lord', 422 =>  'Shadower', 430 =>  'Blade Recruit', 431 =>  'Blade Acolyte', 432 =>  'Blade Specialist', 433 =>  'Blade Lord', 434 =>  'Blade Master', 5100 =>  'Mihile 1', 5110 =>  'Mihile 2', 5111 =>  'Mihile 3', 5112 =>  'Mihile 4'];

my function
PHP:
 private function getJobByID($id) {
                $jID = (int) $id;
                return array_key_exists($jID, $this->_jobs) ? $this->_jobs[$jID] : 'unknown';
        }

That would be v117. And my list is far more complete as my memory + wz extraction is a lot more up to date.
 
Upvote 0
Joined
Jun 28, 2006
Messages
285
Reaction score
165
Thanks for all the help!

I'll keep other password types, but make sha1 as the default selection (aka "If you don't know, pick sha1, it's probably correct" sort of thing).
 
Upvote 0
Mythic Archon
Joined
Dec 25, 2011
Messages
723
Reaction score
97
- if `odinms`.`inventorylog` is actually used beyond v50 (I remember it worked in v50 at least, before OdinMS was actually released publicly)

I don't think it is used, if I am not wrong. I haven't seen inventorylog in the database for like a while. I just confirmed it as well, searched through the database, no longer used.

Anyway, good luck with this!

Edit: Also, there is many changes beyond v55, so there are various tables that were added to the database, and not only that, it's formatted differently. There are different names for some tables that were in OdinMS, since we switched to TetraSEA (which turned into Lithium, etc). If you need them, I'd be glad to search for the changes.
 
Upvote 0
<3
Joined
Feb 4, 2011
Messages
481
Reaction score
123
What Liv3 said is completely true. So, I wouldn't recommend building off a v55 source as a base. It is almost obsolete. If you were to create a CMS, and you want support for more 'modern day' sources, I'd really recommend checking the following sources for their SQL: MoopleDEV (GMS), TetraSEA (SEA obviously, but Lithium is based off Tetra, and some may choose to run a Tetra-based server) and Lithium (GMS). But for something more dynamic and newbie friendly, maybe you should ask them for the columns that they have?

PS: Edited my post with the 'Hayato and Kanna job IDs' to include Cannoneer since I noticed that I missed them. That should cover all of them. :)
 
Last edited:
Upvote 0
Back
Top