[Release] I'I Source (Fixed Up 5017 Source)

11/24/2011 19:27 drakejoe67#1
Illusion'Illustrations - Source [5017]
I've seen many idiots using broken corrupted epic bugged 5017 around that can be hacked on, login freezes occur and so on. It lacks too much feature and there's major bugs like items and monsters walking around on walls and stuff where you can't actually stand on.

I've used the Re-United CO's source, which is basically same as StealsServPack1.0 / hybrid and fixed bugs and made it into something people can actually use.

Illusion'Illustrations Source Revision 1.0.1b
- [Only registered and activated users can see links. Click Here To Register...]
- SQL file is uploaded on the thread

What I've done on it:
  1. Fixed login freeze to the point of stable (not yet tested but same method as on AstaCo, but it worked, no longer freezes)
  2. Coded in some anti-hack measures. Such as changing in Shop.dat trading and editing client sided stuff.
  3. Server is now using both SQL and INI, account and characters are INI
  4. Removing all timers and make them work on 2 global timers. (used to be over 1000)
  5. Loot Items are now protected
  6. Monster drops are easier to configure since they're in 1 new class
  7. NPC Dialogues are moved to a independant class and works together no longer split apart. //Ya need to code your own NPC dialogues I removed almost all of them. Because too lazy to put them together. There's a example up there, anyway if you want help with making NPC's dialogues then I can help, just ask post NPC UID, what it says and what it can do here. and I'll post a code for it
  8. Console now has a chat log system and command system.
  9. Now loads DMaps for monsters and dropped items, so they don't walk/drop on unwalkable places.
There will be no tutorial for this. All you need to know is that you need to copy your "map" folder from Client and put it inside "map" folder in "bin\release\".

As for client for this source you can find it from many places. Use search or go to thread with links to all kinds of clients.

Ah well use it however you want.
11/24/2011 21:09 BaussHacker#2
And the mysql is still same crap?
And sockets?

Because those were the major problems in LOTF.
11/24/2011 21:12 drakejoe67#3
Quote:
Originally Posted by BaussHacker View Post
And the mysql is still same crap?
And sockets?

Because those were the major problems in LOTF.
As I see no problem when I'm having 10 people spamming login in and out while saving for each time.

Then I'm just thinking of what you're saying .. the point now?

It's like Yuki said, he always kept on saying sockets and MySQL is crap. Yeah I know that, I let him code on AstaCo doing those for 2 weeks but didn't exactly get anybetter.

So, what's point in trying to change sockets just cause they're crap, while they aren't doing much disadvantage to the source/server itself.
11/24/2011 21:59 BaussHacker#4
Quote:
Originally Posted by drakejoe67 View Post
As I see no problem when I'm having 10 people spamming login in and out while saving for each time.

Then I'm just thinking of what you're saying .. the point now?

It's like Yuki said, he always kept on saying sockets and MySQL is crap. Yeah I know that, I let him code on AstaCo doing those for 2 weeks but didn't exactly get anybetter.

So, what's point in trying to change sockets just cause they're crap, while they aren't doing much disadvantage to the source/server itself.
Remove the socket system, make your own. Problem solved.

Switch the mysql with one from another source, where is proper eg. Impulse source. Problem solved.

:)
11/24/2011 23:53 -virTuaL#5
Quote:
Originally Posted by BaussHacker View Post
Remove the socket system, make your own. Problem solved.

Switch the mysql with one from another source, where is proper eg. Impulse source. Problem solved.

:)
Packethandling?
11/24/2011 23:58 pro4never#6
Quote:
Originally Posted by BaussHacker View Post
Remove the socket system, make your own. Problem solved.

Switch the mysql with one from another source, where is proper eg. Impulse source. Problem solved.

:)
The released base Impulse source iirc has a rather poorly handled sql system...

I could be wrong but I seem to remember that it was using an old version of the sql handler which has some threading bottlenecks.
11/25/2011 07:12 BaussHacker#7
Quote:
Originally Posted by pro4never View Post
The released base Impulse source iirc has a rather poorly handled sql system...

I could be wrong but I seem to remember that it was using an old version of the sql handler which has some threading bottlenecks.
No idea, then Immune's or yours. :)
11/25/2011 08:35 pro4never#8
Quote:
Originally Posted by BaussHacker View Post
No idea, then Immune's or yours. :)
I really hope I'm not talking out my ass right now but I'm trying to remember who did what..


The sql wrapper included in impulse's base source is literally just immune sql wrapper turned into a dll with some rather poor threading.. I'm like 90 percent it's the same system that immune had in his exodus release. Obviously impulse has improved that wrapper over time and made it functional (if not trinity would be slowing to a halt rather easily lol) but still...

The concept behind immune/impulse's sql wrappers is awesome it's just how you implement it that can be a bit shit. Same thing goes for all the database code in the old CoEmu sources. The theory is perfectly fine... if you handle it correctly (although not ideal to be opening/closing connections all the time). The issue was more that people simply were not doing things properly and the server was clogging up with database updates, connections weren't being closed properly, etc.

Like just about anything in programming, there are ideal ways of doing things and poor ways of doing the exact same thing... but if you don't implement them correctly they will all suck.
11/25/2011 15:06 -impulse-#9
The idea of such wrapper for mysql handling is mine. I inspired this handler from SubSonic. I've seen how SubSonic works and I really loved how you do cmd.Insert(...).Insert(...)... or cmd.Update(...).Update(...)... that's why I really wrote this wrapper.

The wrapper doesn't come with features like bottlenecks, threading issues(no threading functions were used)... there wasn't really big problems with the wrapper. The only problems that were part of the wrapper is the reader not working as it should for some types (bool from what I remember), the reader doesn't include readblob(byte array)... and yes the connections doesn't close as they should as I was claiming at the time of release (if I did claim such thing), a bug that's not even caused because of the wrapper, more because of using something without reading the manual. (if u ever saw a mysql error, notice how all the time it says: "Check the manual for this error" or something like that, and I agree with the programmer who wrote that... that dude's got my K)


About lotf and my thoughts:
The problem with lotf is NOT in:
-The socket system
-Handling system (other than splitting the buffers in packets)
-Cryptographer

Problems with lotf:
-Mysql poorly handled (I myself barely managed to handle mysql after a lot trial and error with Trinity and after a while I got it to work good enough to support more than 500 players for over a few days)
-Player-server-side handling (stamina, xp count, etc)

If you manage to fix the mysql, your server will be abe to run without stop for days... once you get the threading system to work good enough you will lose the lag.
11/25/2011 16:48 drakejoe67#10
Quote:
Originally Posted by BaussHacker View Post
Remove the socket system, make your own. Problem solved.

Switch the mysql with one from another source, where is proper eg. Impulse source. Problem solved.

:)
Thought I clearly stated, there is no problem to solve. Why should I change something out that is not even worth a lot of advantages and better stability.
11/25/2011 18:20 LetterX#11
It's 2011. Why is a 3.5 year old shitty source still being worked on?
11/25/2011 19:19 pro4never#12
Quote:
Originally Posted by -impulse- View Post
The idea of such wrapper for mysql handling is mine. I inspired this handler from SubSonic. I've seen how SubSonic works and I really loved how you do cmd.Insert(...).Insert(...)... or cmd.Update(...).Update(...)... that's why I really wrote this wrapper.

The wrapper doesn't come with features like bottlenecks, threading issues(no threading functions were used)... there wasn't really big problems with the wrapper. The only problems that were part of the wrapper is the reader not working as it should for some types (bool from what I remember), the reader doesn't include readblob(byte array)... and yes the connections doesn't close as they should as I was claiming at the time of release (if I did claim such thing), a bug that's not even caused because of the wrapper, more because of using something without reading the manual. (if u ever saw a mysql error, notice how all the time it says: "Check the manual for this error" or something like that, and I agree with the programmer who wrote that... that dude's got my K)


About lotf and my thoughts:
The problem with lotf is NOT in:
-The socket system
-Handling system (other than splitting the buffers in packets)
-Cryptographer

Problems with lotf:
-Mysql poorly handled (I myself barely managed to handle mysql after a lot trial and error with Trinity and after a while I got it to work good enough to support more than 500 players for over a few days)
-Player-server-side handling (stamina, xp count, etc)

If you manage to fix the mysql, your server will be abe to run without stop for days... once you get the threading system to work good enough you will lose the lag.
Thanks for clearing up some stuff for people.

I think I must have seen a bad version of your recompiled wrapper then cause I remember there being a really poor threading/collection system (I think it was two lists or queues which were processed by two handling threads except they were not switching back and forth between collections properly.

Hard to keep track of who did what when so many people send me random bits of code that I have no idea where they came from ^^

Quote:
Originally Posted by LetterX View Post
It's 2011. Why is a 3.5 year old shitty source still being worked on?

Completely agreed... I mean at least with Elite COEmu there was some real progress made on the base (not a perfect source by any means but it's still leaps and bounds over original coEmu releases. There's just so many BETTER sources that could be worked on (hell even ncos would be a better waste of time then original lotf imo)
11/30/2011 15:40 BaussHacker#13
Sockets has literally nothing to do with the source itself, except connections, if it have then ... o_o
12/03/2011 17:49 JobvdH#14
Try to add disguise and mana then you're on a little way for a little fix.
12/14/2011 09:19 JobvdH#15
I never said fixed up, I said a little fix, nd with a little fix I mean things that haven't been done to make it complete