[Sammelthread] Emulator

05/29/2011 17:25 ≡RockiXX≡#46
Quote:
Originally Posted by shadow52 View Post
MySql Server laufen ?
Datenbank erstellt ?
Tabellen importiert ?
Config-Dateien der beiden Server angepasst ?
Edit:
Ist eh unötig das es jetzt jeder "installiert".
Login --> Char erstellen --> Welt betreten = BlackScreen :rolleyes:

wie krieg ich denn den mysql server zum laufen?

wenn ich nämlich den login server starte und dann also die ip+port oben im browser eingebe läd er lange und im loginserver steht das da was passiert
05/29/2011 17:34 DrBong#47
Quote:
Originally Posted by Dansch View Post
wie krieg ich denn den mysql server zum laufen?

wenn ich nämlich den login server starte und dann also die ip+port oben im browser eingebe läd er lange und im loginserver steht das da was passiert
->
Quote:
EDIT: ihr müsst bei einem hoster eine MySQL Datenbank anlegen oder auf eurem pc einen MySQL Server starten und die tabelen in datenbank einfügen
05/29/2011 17:50 ≡RockiXX≡#48
Ich hab jetzt geschaut ich wollt mit Navicat auf [Only registered and activated users can see links. Click Here To Register...]
verbinden aber i-wie haut das nicht hin... er sagt mir immer Unknown MySQL Server Host: [Only registered and activated users can see links. Click Here To Register...] (11004)
05/29/2011 17:58 DrBong#49
Quote:
Originally Posted by Dansch View Post
Ich hab jetzt geschaut ich wollt mit Navicat auf [Only registered and activated users can see links. Click Here To Register...]
verbinden aber i-wie haut das nicht hin... er sagt mir immer Unknown MySQL Server Host: [Only registered and activated users can see links. Click Here To Register...] (11004)
Es ist ja auch kein MySQL Server, sondern nur die dateien die du in einer datenbank einfügen musst..

Lass es am liebsten oder googl was ein mysql server ist
05/29/2011 18:01 shadow52#50
Quote:
Originally Posted by Dansch View Post
Ich hab jetzt geschaut ich wollt mit Navicat auf [Only registered and activated users can see links. Click Here To Register...]
verbinden aber i-wie haut das nicht hin... er sagt mir immer Unknown MySQL Server Host: [Only registered and activated users can see links. Click Here To Register...] (11004)
:facepalm:
Lad dir Xampp runter oder nur das hier --> [Only registered and activated users can see links. Click Here To Register...].
Danach Installierst du ihn etc.
Dann passt du die Daten in dem Emu an!
Jetzt nimmst du Navicat und verbindest zu
host/ip= 127.0.0.1
port=3306
username=root
passwort=*deinpw*

Dann erstellst du eine neue datenbank "lcep2" und importierst die SQL von [Only registered and activated users can see links. Click Here To Register...].
Dann kannst du die 2 Server starten.
Edit:
Wen du es aber nichtmal hinbekommst bzw weißt was ein My-SQL Server ist würd ich es sein lassen mit dem Emu.
05/29/2011 18:03 Schiriki#51
Das ist auch ein SQL File, dass du in der Datenbank ausführen musst, nicht die Datenbank an sich...

Es geht hier aber immer noch nicht um die Files, es geht darum ein Problem zu Lösen.
Für jemanden, der dabei nicht Helfen kann bzw. der es gar nicht erst zum Laufen bekommt ist das ganze eigentlich Sinnlos.
05/29/2011 18:13 DosenFraß#52
okey, um es vllt einfacher zugestallten wäre ein schritt für schritt tut machbar?

es fängt ja schon bei der installation von mysql an...;)
05/29/2011 18:56 doppi77#53
Quote:
Originally Posted by DosenFraß View Post
okey, um es vllt einfacher zugestallten wäre ein schritt für schritt tut machbar?

es fängt ja schon bei der installation von mysql an...;)

Abwarten bis es richtig läuft?

Dieser Thread ist kein HowTo.
05/29/2011 19:05 Aquilis93#54
Project in [Only registered and activated users can see links. Click Here To Register...]
From there you can recruit developers
05/29/2011 19:09 =Warmonger=#55
Quote:
Originally Posted by wizatek View Post
Hi Guys.

Since I'm stuck at a very shitty moment writing my LastChaos EP2 Emulator.
I decided to share what i have so far and maybe someone can pickup and guide me in the right direction.

The client used is the recent 777 client.
U can use [Only registered and activated users can see links. Click Here To Register...] to make the client connect to it. The Nksp.exe is modified to run without Xtrap (thanks to Dotsch_2005), and the Engine.dll is modified to use no encryption on network packets (thanks to dsfgw).
Sadly the real 777 client and server do use encryption. so there is a way around that to sniff the packages after they are decrypted by the client itself.
A example on how to do it can be found [Only registered and activated users can see links. Click Here To Register...] (thanks to dsfgw)

The 777Lastchaos client can be found [Only registered and activated users can see links. Click Here To Register...]
Just install, let it patch, apply my patch. then its ready to connect to the emulator.
Install it once more, let it patch. This is the client to sniff the packets


The server emulator source code can be found [Only registered and activated users can see links. Click Here To Register...].
Its written in C#

The mySQL database can be found [Only registered and activated users can see links. Click Here To Register...]
Be sure to change GameServer.cfg and LoginServer.cfg before u start.

What can be done
- Login
- Make a character
- Set new characters start conditions in config (level,equipment,stats)

Where I'm stuck is.
After selecting the character. Juno will start to load.
When its loaded the screen will stay black like it is waiting for more packets.
Even if i send all the packets that the real server would also send the screen stays black like its waiting for more data. But normally the first packet should already make it show the world without the character or anything.

Another bug : only characters with a 6 letter name will show up. But i probably overseen something stupid.

From the moment the character will be able to go ingame the development will go in fast forward. just this black screen issue needs to be overwon.

Few things:
  • Consider an asynchronous socket system. Currently this only supports the one client, but whenever you do implement multiple clients, you'll find that the more clients you have connecting here, well... let's just say you'll really see the performance degradation.
  • Always assume they're trying to break your code. Meaning, if you expect an integer for input, expect you won't get one and make sure before blindly assuming it is used. The exception handler is great, but shouldn't be relied on - faster to check than have it throw an exception and run along with that. It'll also cease to accept connections after hitting, with this setup.
  • Really reconsider your database access here. Do we need to access the database server every time someone needs to login? A more efficient solution is to load them up before-hand, and regularly update your info (i.e. for account registrations, reset passwords, bans etc).
  • One last thing; your opcode handling. Though this is more evident in the game server (as below), consider at the very least using a switch (a map/dictionary would be faster though). If you absolutely INSIST on using a series of if statements, at the very least don't have it checking against every single opcode out there (after it's identified which one it is). "else if" exists for a reason. :P

As for the game server:
Same applies. With your black screen issue, I'm really.. not surprised. Identify what those packets are used for and what makes them up, and you'll probably find that solution.

PS: With your packet sniffing issue; just hook it there and have it auto-dump. Doing it manually's gotta be painful!
05/29/2011 20:33 dsfgd#56
Some Opcodes
0x06 = Send Character State
0x09 = Send Character Position
0x0A = Send Character InventoryRow
0x16 0x02 = Send Alive
0x24 0x00 = Send Character Stat Points

ALL NPC's, items and characters have an unique GUID, when you send one of these packages, it must have the same guid as the character.

You get a blackscreen, because charid does not match the packages
Your char is id 1, but packages are for id 188899.

I'm not going to help you develope your emulator, you should learn the basics. You need to know what you send and why it is send, to find errors.

And Please, call me Falo, not dsfgd, i'm just to lazy to change the name...... XD
05/29/2011 20:36 Wizatek#57
I updated the source with a few more packets identifyd.


Thanks for the comment Warmonger, i will take those points into consideration as performance and security is not that interesting yet at this point :P


Im busy learning the basics, but i learn them faster while im jumping in the deep.
To be able to know what i send and why i send it, i send the original package and change numbers to see what happens, that way im trying to figure out what wich package does.
I have the 0x09, 0x06, 0x16, 0x24 correct now. 0x0a almost, 0x06, half

0x16 0x02 i seen that it also sends the game time to the client.

So u say if i get those 5 correct i will be able to go ingame ?
05/29/2011 20:45 DosenFraß#58
developed the emulator together?
05/29/2011 21:02 deathcursed#59
Quote:
Originally Posted by dsfgd View Post
Some Opcodes
0x06 = Send Character State
0x09 = Send Character Position
0x0A = Send Character InventoryRow
0x16 0x02 = Send Alive
0x24 0x00 = Send Character Stat Points

ALL NPC's, items and characters have an unique GUID, when you send one of these packages, it must have the same guid as the character.

You get a blackscreen, because charid does not match the packages
Your char is id 1, but packages are for id 188899.

I'm not going to help you develope your emulator, you should learn the basics. You need to know what you send and why it is send, to find errors.

And Please, call me Falo, not dsfgd, i'm just to lazy to change the name...... XD
Arbeitest du persönlich noch am Emulator?
05/29/2011 21:07 dsfgd#60
Quote:
Originally Posted by deathcursed View Post
Arbeitest du persönlich noch am Emulator?
Ich emuliere die 2005er files, ja ich arbeite am emu, aber sowas dauert normalerweise ~1 jahr, erwartet also nichts weltbewegendes.

Nur zur info, bei mir kann man schon npc's verhaun, ich arbeite aber um einiges professioneller, ich decompiler den kompletten gameserver um an die ganzen berechnungen ranzukommen und das ist viel arbeit, zudem kommen bald prüfungen usw....
Ich mache das eher für mich und nicht damit andere ihren spaß haben können, deswegen arbeite ich auch alleine, kann ich mich besser konzentrieren.