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!

[VS22] v15

Inactive
Joined
Jan 20, 2009
Messages
1,015
Reaction score
1,830
You can follow this 100% FREE and awesome guide by Groxy101 on how to install vs, sql server and setup these files: Click Here!

Requirements:
  • Visual Studio 2022 Community ( Install Requirements: )
  • SQL Server 2012+

What's included?
  • Source is fully updated to VS22.
  • Game guard has been removed.
  • Boost has been removed.
  • FFLdump has been removed.
  • Lua was updated to 5.3.4
  • CW quest & sound are also working.
Tested On:
  • Visual Studio Community 2022
  • Sql Server 2019 Standard
  • Windows 10 Professional
Some Notes:
  • These files have been tested and appear to be working fine out of the box. I am however not responsible for security fixes, added features and etc. If you want those things then you need to add them yourselves.
Notice:
  • Due to the RANKING_DBF causing crash issues i have decided to delete it by default.
  • You can re-enable all of this by simply defining __GUILDRANK
  • If you re-enable it you will have to add the RANKING_DBF and tables yourself.
Defines:
Code:
//|: ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
/*
                                                            `.-`
                                                       .:/+oo++oo+/:-
                                                    .+sso++++///+++oss+-
                         .                       `./yysooo++o--o+++oosyh+:-..``             ``.-://.
                         shysoo+/:--..--:/++oshdmmmhyso/.-+syhhhs+-.:osyhdmmddhyysoo+////+osyyyhmmmy`
                        sdmmdyo+ooo+++++ooossssyyyhhy/. `:oshddhso:` `:syhossoooo+++++///////ohhydsyy`
                      `sy+sh+syy+/:------::::://::hys/-` .:+osso+/- `-/syh:.::::::--....--/oys//ho//oy.
                     `ys///ss///ss+:-.....---:::`+hhyyss+///+++++//+ssyyhhs `:::--.....-:os+::/so/::/oy:
                    .yo/:::/s+::::+s+:.....--:-  /hhhyyyssoooooooosssyyhhho  `-:--....-+o/---:/s/----:+s+.
                   :s+:----:+s/--..-/o/-...--:`   ohhhyyyyssssysssyyyyhhhs`   `:--..-/o/.....-s/-..`...-/o+-
                 :o+:-..``..-oo-.....-/+/:--::    `shhhhhhhhhyyhhhhyhhhhy`     ::::/+/-..```./o-.````...-://::.
               -++/-...````..:o:.```...-/+///:     `/yhhhhhhyyyyhhhhhhh+.      ://++:--.....-o:......--..``  `.
             :/--------......./+.....--::/+++:       `/yhhhhhhyhhhhhy/`        :++/:::------/+-----.`
            ``       ``..-----:+:-::-.....--:-          .:/yhhhhy/:.           `.````   .-::+/::.`
                          `.-::++::.                       hNmmm.                         `:+-`
                              .:+.                         mmmmo
                                                          `mmmd`
                                                          -mmm+
                                                           yhs
                                                          `hh/
                                                          `hh-
                                                          `yy`
                                                           os.
                                                          :s-
                                                          .o-
                                                           o:
                                                           -+.`-`
                                                            `//so:`
                                                              .++:-`
                                                               .o+:-`
                                                                os+/
                                                                 -/-
*/
//|: ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-

#define    NEUZ_TITLE    "[VS22] Ketchup V15"                //: Window title of the client.
#define    NEUZ_BHASH    "sunkist"                            //: String to boot the client.
#define    NEUZ_IPSET    "127.0.0.1"                            //: Ip of the server, must match AccountServer.ini & LoginServer.ini.
#define    NEUZ_CPORT    "5400"                                //: Cache port, must match CacheServer.ini.
#define    NEUZ_PHASH    "kikugalanet"                        //: Md5 password salt.
#define    NEUZ_MSGVR    "20100412"                            //: Ver of the server, must match AccountServer.ini & LoginServer.ini.

//|: ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-

#define WEB_FIRST_PAGE    "http://mycoolflyff.com/index.html"
#define SERVER_ROOT        "/RESCLIENT/"
#define PATCHSEVER_URL    "patcher.mycoolflyff.com"
#define HOME_LINK        "http://mycoolflyff.com/"
#define REGISTER_LINK    "http://mycoolflyff.com/register.html"

//|: ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-

#define COLOR_ADMINISTRATOR     0xFFFF4500                //: Name coloring of admin characters.
#define    TITLE_ADMINISTRATOR        "[Admin]"                //: Title for admin characters.

#define COLOR_GAMEMASTER        0xFFFF4500                //: Name coloring of gm characters.
#define    TITLE_GAMEMASTER        "[Gm]"                    //: Title for gm characters.

enum { ENCHANT_TIME = 1 };                                //: Adjust the time of upgrading.

//|: ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
Download:
Password: Lodelight

Source updates will always happen on Github only, so download the original package above and carry the source over from github!!
 
Last edited by a moderator:
Initiate Mage
Joined
Mar 13, 2022
Messages
48
Reaction score
3
Hello sir, do you have tutorials regarding how to make the patcher works specifically for this server file? I have my own website and I don't know how.
 
Junior Spellweaver
Joined
Mar 24, 2021
Messages
149
Reaction score
25
Hello Ketchup i got a question about the ranking database if it's posible to add a normal ranking database in sql with no crash issues after i re-enabled it?


--I getting bother about this redline when the server is online after i re-enable it
/*

- Due to the RANKING_DBF causing crash issues i have decided to delete it by default.
- You can re-enable all of this by simply defining __GUILDRANK

- If you re-enable it you will have to add the RANKING_DBF and tables yourself.

*/
 
Inactive
Joined
Jan 20, 2009
Messages
1,015
Reaction score
1,830
Hello Ketchup i got a question about the ranking database if it's posible to add a normal ranking database in sql with no crash issues after i re-enabled it?


--I getting bother about this redline when the server is online after i re-enable it
/*

- Due to the RANKING_DBF causing crash issues i have decided to delete it by default.
- You can re-enable all of this by simply defining __GUILDRANK

- If you re-enable it you will have to add the RANKING_DBF and tables yourself.

*/

Sure, if you fix the crash lol.
 
Inactive
Joined
Jan 20, 2009
Messages
1,015
Reaction score
1,830
Updated

Quick Update:
  • Some of the useless logging in my V18 has also been removed now in the V15.
  • Staff titles and coloring was added to kCommon.h
  • Upgrading rates was also added to kCommon.h
  • Fixed a bug with the guild warehouse not being the correct size, thanks tmlp
A big thanks to those who contribute fixes and make me aware of things. Also shout-out to all my obsessive fans who sit in private discords talking about me daily.

There won't be anymore updates for this V15 and you can download the latest / last update in my original post.
 
Initiate Mage
Joined
Apr 24, 2014
Messages
28
Reaction score
8
lol how about the K18.3? it has the same issue when you re-enable the ranking database?

I've looked at the code and tbh I don't see how it can crash.
Basically you need a way (be it via a SQL agent job, I would guess that's how they did on official servers) to call MAKE_RANKING_STR procedure, then have the database server run the RANKING_STR procedure (it's already built in, but it's only called upon database server startup or through a dedicated packet that admin can fire through a GM command). This procedures allows the database server to store the guild rankings in memory.

The aformentioned crash could come from a poorly designed MAKE_RANKING_STR usage, everytime it is called it creates 8 "relations " (called R1,R2...R8) that each represent how guild are going to be compared on a specific criteria (there are 8 criterias). Several calls to it insert new lines everytime, nothing is updated. Maybe the RANKING_STR procedure could have issues with too many lines.

I don't know how those we were run back then on official servers, but if you clean the RANKING_TBL before running MAKE_RANKING_STR, no crash should ever happen really. And even if it crashes, it would be really easy to fix, you would just have to debug the database server with the RANKING_TBL in that causing-crash state in worst case scenario.

I've tested the guild rankings recently and had no issues whatsoever with it.
 
Last edited:
Junior Spellweaver
Joined
Mar 24, 2021
Messages
149
Reaction score
25
I've looked at the code and tbh I don't see how it can crash.
Basically you need a way (be it via a SQL agent job, I would guess that's how they did on official servers) to call MAKE_RANKING_STR procedure, then have the database server run the RANKING_STR procedure (it's already built in, but it's only called upon database server startup or through a dedicated packet that admin can fire through a GM command). This procedures allows the database server to store the guild rankings in memory.

The aformentioned crash could come from a poorly designed MAKE_RANKING_STR usage, everytime it is called it creates 8 "relations " (called R1,R2...R8) that each represent how guild are going to be compared on a specific criteria (there are 8 criterias). Several calls to it insert new lines everytime, nothing is updated. Maybe the RANKING_STR procedure could have issues with too many lines.

I don't know how those we were run back then on official servers, but if you clean the RANKING_TBL before running MAKE_RANKING_STR, no crash should ever happen really. And even if it crashes, it would be really easy to fix, you would just have to debug the database server with the RANKING_TBL in that causing-crash state in worst case scenario.

I've tested the guild rankings recently and had no issues whatsoever with it.


i've try to enable __GUILDRANK and add ranking_dbf in sql and run the program server so far there's no crashing issues after i run it is that means the files was ok? i just enable __GUILDRANK and add ranking database on sql
 
Inactive
Joined
Jan 20, 2009
Messages
1,015
Reaction score
1,830
i've try to enable __GUILDRANK and add ranking_dbf in sql and run the program server so far there's no crashing issues after i run it is that means the files was ok? i just enable __GUILDRANK and add ranking database on sql

If it's working fine for you then it's probably fine.
The main issue was with my 18 so i just removed it from both.

However your like the only person that really seems to care about this as most people just use their websites for guild ranking anyways lol.
 
Initiate Mage
Joined
Apr 24, 2014
Messages
28
Reaction score
8
i've try to enable __GUILDRANK and add ranking_dbf in sql and run the program server so far there's no crashing issues after i run it is that means the files was ok? i just enable __GUILDRANK and add ranking database on sql

If database server starts without issues, it means it's querying the RANKING_DBF database properly. However, as I said, to actually have the ranking in-games, you need to run the stored procedure called MAKE_RANKING_STR. Then for it to update in-game, database server must call the RANKING_STR procedure, which is either done on startup or via a dedicated packet that admins can send through a GM command (/GuildRanking is the command if I recall correctly).
Beware that the v15 client released by Ketchup also has the guild ranking button selections removed, you'll have to add them back to the NPC.
 
Initiate Mage
Joined
Dec 4, 2022
Messages
32
Reaction score
1
Hi im just starting out, and after reviewing a bunch of post and testing something out, it appears that it is best to use a clean source. and based on the recommendation i find in other threads v15 is good for starters, decided to start with this one.

i just want to know if anyone used this source as their base and released it live?

did it have like dupe,inject,etc hacks encounters?

thanks~!
 
Inactive
Joined
Jan 20, 2009
Messages
1,015
Reaction score
1,830
Hi im just starting out, and after reviewing a bunch of post and testing something out, it appears that it is best to use a clean source. and based on the recommendation i find in other threads v15 is good for starters, decided to start with this one.

i just want to know if anyone used this source as their base and released it live?

did it have like dupe,inject,etc hacks encounters?

thanks~!

It is made clear in my original post these files contain no security fixes. So yes you can dupe on them, inject and etc.

You should really re-read the original post.
 
Inactive
Joined
Jan 20, 2009
Messages
1,015
Reaction score
1,830
Github for the source only has been added & the source is still included in the normal download to.

Also put it on a new link with a new password.

My original post has been updated.
 
Initiate Mage
Joined
Jan 26, 2023
Messages
5
Reaction score
2
Noticed a few things, while comparing sources. Thank you very much for your hard work <3
/e Seems to be the case for all of your released sources, i've just checked them for it.

WndShop.cpp
Code:
for( ; i < MAX_VENDOR_INVENTORY_TAB; i++ )

to 

for( i = 0; i < MAX_VENDOR_INVENTORY_TAB; i++ )


MoverActEvent.cpp
Code:
BOOL CMover::SubLootDropNotMob( CItem *pItem )
{
    BOOL bSuccess = TRUE;
#ifdef __WORLDSERVER
    CItemBase* pItemBase = pItem->m_pItemBase;
    
    bSuccess    = CreateItem( pItemBase );


to

BOOL CMover::SubLootDropNotMob( CItem *pItem )
{
    BOOL bSuccess = TRUE;
#ifdef __WORLDSERVER
    if (pItem == NULL)
        return FALSE;

    CItemBase* pItemBase = pItem->m_pItemBase;
    
    if (pItemBase == NULL)
        return FALSE;

    bSuccess    = CreateItem( pItemBase );
 
Last edited:
Inactive
Joined
Jan 20, 2009
Messages
1,015
Reaction score
1,830
Int i = NULL; NULL is a define for / from c and it is equal to 0. I is created before being used.

A for loop takes three components, initialization, check, and advancement. Because I is set, there needs to be no initialization in the first for-loop. After, I gets reset but isn't redefined because the variable i is already in scope.

Also the second second one you have point out is not a bug. It's a custom edit made by others. This can be also confirmed by downloading the original VS2003 source where it shows this is not really there.

As seen here:

Iv'e also attached the official VS2003 V15 MoverActEvent.cpp if you wish to see it for yourself.

Thanks for reporting nonetheless :thumbup1:
 
Initiate Mage
Joined
Sep 8, 2011
Messages
67
Reaction score
252
Int i = NULL; NULL is a define for / from c and it is equal to 0. I is created before being used.

A for loop takes three components, initialization, check, and advancement. Because I is set, there needs to be no initialization in the first for-loop. After, I gets reset but isn't redefined because the variable i is already in scope.

Also the second one you have point out is not a bug. It's a custom edit made by others. This can be also confirmed by downloading the original VS2003 source where it shows this is not really there.

As seen here:

Iv'e also attached the official VS2003 V15 MoverActEvent.cpp if you wish to see it for yourself.

Thanks for reporting nonetheless :thumbup1:

I would also like to point out that the second one isn't even a "fix" and if someone is crashing because of a pItem or pItemBase being nullptr at that specific point is suffering from other issues like memory corruption. The pItem pointer is accessed in the previous function without a check, and generally the pItemBase from a drop is tied to the drop's lifespan. (CItem).
 
Last edited:
Back
Top