[Source] OrpheusMS Repack [v.83]

What do you mean? For the SQL files? The MySQL Server? Database Management Tool? What?

For the SQL files, execute them in the order defined on the Wiki.
For the MySQL server, use if you're on Windows.
If you need a Database Management Tool, try Navicat, or use MySQL Query Browser.
 
Simply attempt to login with your desired username and password, and it'll create your account for you.

Assuming I can get this running and get to the next step, is ther "admin" account info I might need? How do I distinguish between admin/GM and normal player accounts? if its set to autoregister won't the account I make be a player account?
 
Assuming I can get this running and get to the next step, is ther "admin" account info I might need? How do I distinguish between admin/GM and normal player accounts? if its set to autoregister won't the account I make be a player account?

For your .bat error you need to go into your database and execute the sql files present in the server's sql folder. Yes the autoregister will set you as a normal player but all you have to do is log right back out, open your database, go under Accounts and there will be a row called GM. It should be at 0 and all you have to do is set it to 5 to be Admin.
 
What do you mean? For the SQL files? The MySQL Server? Database Management Tool? What?

For the SQL files, execute them in the order defined on the Wiki.
For the MySQL server, use if you're on Windows.
If you need a Database Management Tool, try Navicat, or use MySQL Query Browser.

MySQL Query Browser/ MySQL Workbench is not running when I double clicked it.
 
For your .bat error you need to go into your database and execute the sql files present in the server's sql folder. Yes the autoregister will set you as a normal player but all you have to do is log right back out, open your database, go under Accounts and there will be a row called GM. It should be at 0 and all you have to do is set it to 5 to be Admin.

OMG you spoke to me, I'm not alone. <3 I never know which threads people will actually respond in heh. Ok here comes hopefully my final newb question... Where do I find my database? How can I be sure I made one?

I have followed this guide to the very letter 6 times
http://forum.ragezone.com/f428/setting-server-client-website-version-691153/

executing each of the files listed on this website "https://github.com/aaronweiss74/Orpheus/wiki".

I am missing something obvious i know.


Here are some screenshots to help maybe. The DB I selected was my SLQ db on the right side.
 

Attachments

  • 111 - [Source] OrpheusMS Repack [v.83] - RaGEZONE Forums
    111.webp
    125.4 KB · Views: 67
  • 2222 - [Source] OrpheusMS Repack [v.83] - RaGEZONE Forums
    2222.webp
    61.9 KB · Views: 78
  • 5555 - [Source] OrpheusMS Repack [v.83] - RaGEZONE Forums
    5555.webp
    90.9 KB · Views: 60
  • 6666 - [Source] OrpheusMS Repack [v.83] - RaGEZONE Forums
    6666.webp
    117.3 KB · Views: 65
  • 777 - [Source] OrpheusMS Repack [v.83] - RaGEZONE Forums
    777.webp
    72.2 KB · Views: 64
Last edited:

@Shinmuriel
Yeah you goofed on something small lol. I can tell from the pics you executed these sqls to your "mysql" database. Create a new database called "Orpheus" and reexcute all those sqls while having Orpheus database highlighted. I use sqlyog so I can't give better details on everything.
 
@Shinmuriel
Yeah you goofed on something small lol. I can tell from the pics you executed these sqls to your "mysql" database. Create a new database called "Orpheus" and reexcute all those sqls while having Orpheus database highlighted. I use sqlyog so I can't give better details on everything.

Derp, fantastic, at least I'm on the right track. Now one question comes to mind however... Did I mess anything up by selecting the wrong db when executing those files?

Ok its fairly easy to make a database it seems using mysql browser. Even though you aren't familier with the program I assume the names of the tables would be the same? What should the database look like? I create a "schema" (database folder) but highlighting the folder alone isn't enough to execute the .sql files. If you don't know its cool, I will research it.
 

We should try and keep this thread clean so feel free to send me a PM and I can finish helping you from there. I'm not the greatest at all this but I know the basics. I would assume the box to the left of the Execute is your "Query" Box. While having Orpheus highlighted, you can try pasting your sql data into that and hitting execute to see if it will execute the sql query for you. It's what I do with my program whenever i'm doing tables on the fly.

This is what my tables and stuff looks like in SQLyog

aaronweiss - [Source] OrpheusMS Repack [v.83] - RaGEZONE Forums
 
We should try and keep this thread clean so feel free to send me a PM and I can finish helping you from there. I'm not the greatest at all this but I know the basics. I would assume the box to the left of the Execute is your "Query" Box. While having Orpheus highlighted, you can try pasting your sql data into that and hitting execute to see if it will execute the sql query for you. It's what I do with my program whenever i'm doing tables on the fly.

This is what my tables and stuff looks like in SQLyog

aaronweiss - [Source] OrpheusMS Repack [v.83] - RaGEZONE Forums

Untitled-1 - [Source] OrpheusMS Repack [v.83] - RaGEZONE Forums

(pic from the private message)
 
OK guies, I'll give you a heads up in case other people are fail like me. In the moople story .sql there is apparently a command line at the top that reads

CREATE DATABASE IF NOT EXISTS moopledev;
USE moopledev;

This does not exist in orpheus.sql so the tutorials may lead people astray.

I added the text myself and shazam! I now have a database! I'm not HALF the newb you thought I was, heh.

"When I reflect on the extreme consequences that arise from such small things, I tend to ponder... That there are no small things."
 
I have a new error to work with now! PROGRESS!

2222 - [Source] OrpheusMS Repack [v.83] - RaGEZONE Forums

Here is what my runsv batch I made looks like
Code:
@echo off
@title OrpheusMS Server
set CLASSPATH=.;dist\*
java -Xmx10m -Dwzpath=wz\ net.server.Server
pause[/COLOR]

Here is my serverconstants if it helps (for the sake of completion)

[COLOR="#FF0000"]/*
	This file is part of the OdinMS Maple Story Server
    Copyright (C) 2008 Patrick Huy <[email protected]>
		       Matthias Butz <[email protected]>
		       Jan Christian Meyer <[email protected]>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as
    published by the Free Software Foundation version 3 as published by
    the Free Software Foundation. You may not use, modify or distribute
    this program under any other version of the GNU Affero General Public
    License.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
package constants;

public class ServerConstants {
	public static short VERSION = 83;
	public static String ORPHEUS_VERSION = "5/19/12";
	public static final String SERVER_NAME = "OrpheusMS";
	public static String[] WORLD_NAMES = {"Scania", "Bera", "Broa", "Windia", "Khaini", "Bellocan", "Mardia", "Kradia", "Yellonde", "Demethos", "Galicia", "El Nido", "Zenith", "Arcenia", "Kastia", "Judis", "Plana", "Kalluna", "Stius", "Croa", "Medere"};
	// Orpheus Feature Configuration
	public static final String TIP_NAME = "OrpheusTip"; // Tip Name for automsg
	public static final boolean USE_PARANOIA = true; // use Orpheus' everything logger, Paranoia.
	public static final boolean USE_MTS_AS_FM_WARP = true; // Replace the Meso Trade Shop with a warp to the Free Market.
	public static final boolean HIDE_GMS_ON_LOGIN = true; // Hide GMs upon login.
	public static final boolean MAKE_NPCS_SCRIPTABLE = true; // Makes NPCs scriptable. (Setup in ScriptableNPCConstants)
	public static final boolean BROADCAST_GACHAPON_ITEMS = true; // broadcast gachapon use!
	public static final boolean UNLIMITED_PROJECTILES = false; // have unlimited projectiles (don't lose bullets, throwing stars, arrows)
	public static final boolean ALLOW_INFO_ON_GMS = true; // if false, non-GMs cannot get info on GMs.
	public static final boolean CLEAR_ERROR_LOGS_ON_BOOT = true; // if true, error logs will be cured on boot.
	public static final boolean PAGINATE_HELP = true; // if true, help messages will be displayed in pages.
	public static final short ENTRIES_PER_PAGE = 8; // the number of entries to display on each page.
	public static final int MAX_CHAT_MESSAGE_LENGTH = Byte.MAX_VALUE; // the number of characters allowed in chat messages. (fixes DC hax)
	// Rate Configuration
	public static final byte QUEST_EXP_RATE = 4;
	public static final byte QUEST_MESO_RATE = 3;
	// Login Configuration
	public static final boolean ENABLE_AUTOREGISTER = true; // Confirmed: working.
	public static final int CHANNEL_LOAD = 100; // Players per channel
	public static final long RANKING_INTERVAL = 3600000; // not used if the rankings event is used.
	public static final boolean ENABLE_PIC = false; // False: must use Maple Admin to delete characters.
	// Event Configuration
	public static final boolean PERFECT_PITCH = false;
	public static final boolean FREE_NX = true;
	public static final int NX_COST = 1000000; // 1,000,000
	public static final String EVENTS = "automsg KerningPQ Boats Subway AirPlane elevator rankings"; // there is a rankings event to replace the default rankings tool.
	// IP Configuration
	public static final String HOST = "myipgoeshere";
	// Database Configuration
	public static final boolean DB_USE_COMPILED_VALUES = false;
	public static final String DB_URL = "jdbc:mysql://localhost:3306/Orpheus?autoReconnect=true";
	public static final String DB_USER = "root";
	public static final String DB_PASS = "mypass";
 
Last edited:
Changed "java -Xmx10m " to "java -Xmx250m" and complied. It works.

Thanks guys for being my friend! Tomorrow I will fail at having friends connect, see you soon!
 
Ok I setup the create server batch. Ran the runsv and got this...

I am using the Orpheus (moople?) ini creator to make the runsv file. Below is my world (runsv) file contents.

@echo off
@title OrpheusMS Server
set CLASSPATH=.;dist\*
java -Xmx10m -Dwzpath=wz\ net.server.Server
pause


When I change set CLASSPATH= to dist\orpheus.JAR;dist I get this message -

View attachment 105193

Because when you put dist\* it reads all the files within the DIST folder, which is required to run your BAT file. When you changed it, it was only reading orpheus.jar, which wouldn't work.
 
Ok I have a minor issue.

I logged in just fine. Today my friend made an account and logged in just fine. Everything is great. But then my second friend tried to make an account and it says its not registered. Is there a limit somewhere (seems like I remember seeing something about it) to the number of autoregister accounts? If so where can I change it? Or alternatively, can I make an account in mysql browser?

Second question: I try to change the GM level in my query browser and it seems to reset when I log out of my browser. What are the values for GM 1-5? They start at 0 and go up to 4? Or 0 and go up to 5? I tried setting my account to GM level 4 and level 5 and it reset both times. Again you guys have been great, thanks for any help!

Below is my autoregister java file
Code:
package client;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.security.NoSuchAlgorithmException;
import tools.DatabaseConnection;
import tools.HashCreator;
import tools.MapleLogger;

public class AutoRegister {
	private static final int ACCOUNTS_PER_IP = 4;  <~~~~ what is this?[/COLOR]
	private static boolean success;

	public static boolean wasSuccessful() {
		return success;
	}

	public static boolean getAccountExists(String login) {
		boolean accountExists = false;
		Connection con = DatabaseConnection.getConnection();
		try {
			PreparedStatement ps = con.prepareStatement("SELECT name FROM accounts WHERE name = ?");
			ps.setString(1, login);
			ResultSet rs = ps.executeQuery();
			if (rs.first()) {
				accountExists = true;
			}
		} catch (Exception e) {
		}
		return accountExists;
	}

	public static void createAccount(String login, String pwd, String eip) {
		String sockAddr = eip;
		Connection con;
		try {
			con = DatabaseConnection.getConnection();
		} catch (Exception e) {
			MapleLogger.print(MapleLogger.EXCEPTION_CAUGHT, "There's a problem with automatic registration.\r\n" + e);
			return;
		}
		try {
			PreparedStatement ipc = con.prepareStatement("SELECT lastknownip FROM accounts WHERE lastknownip = ?");
			ipc.setString(1, sockAddr.substring(1, sockAddr.lastIndexOf(':')));
			ResultSet rs = ipc.executeQuery();
			if (rs.first() == false || rs.last() == true && rs.getRow() < ACCOUNTS_PER_IP) {
				try {
					PreparedStatement ps = con.prepareStatement("INSERT INTO accounts (name, password, email, birthday, macs, lastknownip) VALUES (?, ?, ?, ?, ?, ?)");
					ps.setString(1, login);
					ps.setString(2, HashCreator.getHash(pwd));
					ps.setString(3, "[email protected]");
					ps.setString(4, "0000-00-00");
					ps.setString(5, "00-00-00-00-00-00");
					ps.setString(6, sockAddr.substring(1, sockAddr.lastIndexOf(':')));
					ps.executeUpdate();
					ps.close();
					success = true;
				} catch (NoSuchAlgorithmException e) {
					MapleLogger.print(MapleLogger.EXCEPTION_CAUGHT, "There's a problem with automatic registration.\r\n" + e);
					return;
				} catch (SQLException ex) {
					MapleLogger.print(MapleLogger.EXCEPTION_CAUGHT, "There's a problem with automatic registration.\r\n" + ex);
					return;
				}
			}
			ipc.close();
			rs.close();
		} catch (SQLException e) {
			MapleLogger.print(MapleLogger.EXCEPTION_CAUGHT, "There's a problem with automatic registration.\r\n" + e);
		}
	}
 
Last edited:
Accounts Per IP (I'll move that to the ServerConstants actually) is the limit of auto-registered accounts you can make per IP address. It's just to prevent people from accidentally making a ton of accounts. Feel free to raise the limit. There shouldn't be anything wrong with the auto-registration. I've had some ten or so accounts registered on my testing server, and no problems registering more. Can you post your exceptions.log file to ? There may be something else wrong.

As for GM levels, the GM levels go from 0 to 5.
They are as follows:
  • Player - 0
  • Donor - 1
  • Support - 2
  • GM - 3
  • Developer - 4
  • Admin - 5
You'll need to be offline when you set them, and you'll need to set them for both your account, and any already existing characters on your account.
 
I'll get that execeptions file to you asap, still got some people messing around in game. The issue however wasn't with multiple accounts from one IP but rather just with different accounts logging in. My first friend and I logged in fine and autoregistered with no problem but my second client couldn't register. I made an account for him and its ok for the moment.

Can't advance as a mage however. I searched for some stuff on moopledev since this is related and found some folks talking about a grendel fix but I haven't found one yet. People seem to think a gms job advance npc might not be possible. This is all in russian to me though, I'm no programmer. Was hoping maybe there was a command of some kind. The more I look into MoopleDev coding the more skeered I get, seems like many have given up on fairly important issues with no further adieu.

I have the server set to GM server = True and it doesn't seem to let my changes to accounts stick and no GM commands are functional atm. Probably because I'm not a GM, GM's are overrated anyway. Just though there might be a GM command to advance magian class from beginner. Its hard to believe moopledev went on for so long with no magican class working.

Found this on a website for official maplestory gm commands
!job <jobid> Changes your job to the job of <jobid>.

Still got the issue of not being able to make a GM account. Does it have something to do with me setting the game to GM server = true maybe? Has anyone else made a successful GM account yet?

Derp missed this "You'll need to be offline when you set them, and you'll need to set them for both your account, and any already existing characters on your account." Where would I look for the existing characters in my account database? (its a big place in there =/)

I put that file in the pastie area and hit paste, anything else to do or is that is?
 
Last edited:
Nope, you just need to shoot me the link for it now. (For the exceptions.log, that is).
Anyway, you're throwing a lot out, so I'll try to be as brief, yet informative as possible.

Full GMS-like job advancement does not work. I don't believe it has for a long time. Instead, players can use the job advancement npc, Cody. To speak to him, type @cody. He'll be used for both warping and job advancement.

The GM server is kevintjuh93's attempt at making a GMS-like alternative to the GM commands that people use as of current. I highly recommend setting that field to false, and ignoring it's existence entirely, as it's complicated, and offers little to no added benefit for people who don't just want a true GMS-like server.

For the record, I have successfully made a GM account (well, Admin account, actually) without any problem. So, don't worry, I can promise you it works if everything is setup properly. We've reached a point where I've done a pretty good amount of testing, and fixed a good amount of bugs.

Characters are in the table characters, not the accounts table. If you want to make this easier on you, find out your account id from the accounts table and run the following queries with the 1 replaced with your account id (which very well may be 1):
Code:
UPDATE `accounts` SET `gm` = '5' WHERE `id` = '1';
UPDATE `characters` SET `gm` = '5' WHERE `accountid` = '1';
Be sure to do this while you're offline, not while you're already logged in.
 
Fantastic, the query browser can be used to fix... everything heh. I just turned us into mages using the browser and some code from a website for the official game. Got GM accounts to work to BUT...

I am invisible now, how do I turn GM's visble? <3



Heres yourr pastie

 
Back