Jump to content

Petition + database schema


Recommended Posts

This is my very first bigger share, so be patient please, I’m not so skilled like others are :)

This is complete tutorial how to install PetitionD server and how to configure it. The server is from NCSoft, I haven’t changed anything. The database is my own work, because standard database schema is for old petition server, which doesn’t work with C4 retail. So I had to make totally different database schema, compatible with this client.

So let’s start with database:

 

PART I – DATABASE

Everything is tested on MS SQL server 2005, I was too lazy to looking for 2000 and installing it.

1. Create empty database for petition (in my examples it is call called ‘petition’)

http://aralyon.ratafak.net/peti/1a.jpg

http://aralyon.ratafak.net/peti/1b.jpg

2. Think out connection string – it’s string containing all information about connecting to database (Petition server DOESN’T use DSN like other parts of L2 server)

There are 2 ways how to connect

a) Windows authentication

You authenticate to mssql with your windows username and password - the connection string is

SERVER=[i](Server name)[/i];DATABASE=[i](Database name)[/i];Integrated security=true

EXAMPLE: SERVER=.;DATABASE=petition;Integrated security=true

b) Classic authetification using SQL login (recommended) and password

SERVER=[i](Server name)[/i];DATABASE=[i](Database name)[/i];UID=[i]User name[/i];PWD=[i]Password[/i]

EXAMPLE: SERVER=hades;DATABASE=petidb;UID=sysdev;PWD=tltmxparoqkftlf1234!

3. Open db_schema\petition_schema.sql in MSSQL Management studio (or Query Analyzer in MSSQL2000)

4. Write connection string to INSERT INTO statement, as shown below:

http://aralyon.ratafak.net/peti/1c.jpg

5. Set current database to your petition database in toolbar

http://aralyon.ratafak.net/peti/1d.jpg

6. Execute it, it should return no error

 

PART II – SERVER

1) Choose mode - you can use it like service (originally) or (with my loader) like console program.

2) Installing service - skip if you want to use it like console program

Use InstallUtil from .NET installation directory (I think that it is explained somewhere in other topic.

Syntax is: InstallUtil.exe c:\yourL2server\PetitionD\PetitionD.exe

Some informations about it -

3) Make encrypted connection string:

1) Write your connection string from step 1.2 to a text file (e.g. connstr.txt)

2) Encrypt it with DES.exe
many thanks to Digital
- write name of the text file with connection string to field "File to encrypt" and then click on "Encrypt" button. It should show you a "Done" message and create .enc file (e.g. connstr.txt.enc)

3) it contains encrypted connection string.

4) Edit PetitionD.exe.config (for service version) or PetitionConsole.exe.config (for console version). Configuration options are in format <add key="Name" value="Value"></add>

Description of configuration file:

GmServicePort - port for connecting from GM client

WorldServicePort - port for connection from gameserver, it must be the same as [PetitionD] - port in l2server.ini

NoticeServicePort - I don't know yet, I'll have a look later

AuthIp - Ip address of AuthD (It needs auth to authenticate GM client)

AuthPort - admin port of AuthD

AuthConnCount - size of connection pool

LogDirectory - directory to store log files

EnableQuota, MaxQuota - Quote about number of petitions from one player, leave it off, because it isn't done yet

RunMode - can be "test" or "normal", it is highly recommended to set it on "normal"

DumpPacket - enables dumping packets to log file (I recommend to disable, it is for debugging purposes only)

ServerStatusRefreshInterval - ???

DatabaseConnString - encrypted connection string - you MUST change it to corrent values, otherwise it doesnt work!

DatabaseConnName - leave it, it is name of the connection string in NCDBA7

DatabaseConnCount,DatabaseConnTimeout - leave it

MaxActivePetition - maximum number of petitions

MinimumGmClientBuildNumber - minimum version of GM client

EnableGmStatusDump - ???

EnableAssignment - ???

MaxAssignmentPerGm - ???

EnableOnlineCheck - ???

 

So it is everyting, now petition server is configured. you can start console version with PetitionConsole.exe and service version in service manager in control panel.

It is not still fully tested, but I hope there is no more bugs. If you find anything, please write it to this topic or send me icq or msn message

 

There is one big problem related to it - It looks like external gm client is needed, because the only method which can get petition into state 3 (petition after submitting is in state 2) is called from gm client listener handler (=invoked by gm client).

But gm client supplied with server doesnt work, probably it is intended to use with old petitionD.

I wrote one, it is here - http://www.postpacific.com/forums/showthread.php?p=66313. GMs can't do nearly anything with submitted petition with L2 client, you have to use GM client. The only builder command related to petition (which I know what it si doing is //force_peti <charname> <petition content> which forces player to submit a petition.

Security notice - for security reasons restrict database access for petition server, there might be security issues, it is unlikely,but it is possible.

 

Enjoy it :)

 

Download: http://aralyon.ratafak.net/peti/PetitionD.rar

- password: postpacifik

- it includes all files and tools described in this topic

 

GM Petition client:

forum thread - http://www.postpacific.com/forums/showthread.php?p=66313

direct download - http://aralyon.ratafak.net/peti/gmclient.rar

 

Do you have problems with submitting petitions with UnexpectedCategory error?

 

 

Link to comment
Share on other sites

  • 4 months later...
  • 1 year later...
Guest
This topic is now closed to further replies.


×
×
  • Create New...