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!

[Source] MercenaryCore [Panel Admin + panel Config]

Status
Not open for further replies.
Newbie Spellweaver
Joined
Jul 25, 2010
Messages
39
Reaction score
8
Bonjour,

LoginServer :

Admin Panel : 100%
Config Panel : 100%
Updater : 100%

GameServer :

Admin Panel : 100%
Config Panel : 100%

System Update :


Soon : 0 %

ScreenShot :


zicos77 - [Source] MercenaryCore [Panel Admin + panel Config] - RaGEZONE Forums



Download :




Credit :

Coded :
SystemAce(ZicoS77)

Spécial Thanks:
N4n033, Rekiem,
WarSkill, D0nut,
Jeef, Eln0no,
Frozenx & R3dL!ne


Core WarRock :
CodeDragon, Anksel(toxic),
Kazbah, Supreme,
Buuble, Chrownight &
Tweek

Thanks :

King7,
& Others good coder





Ps : Use Core by tweek (http://forum.ragezone.com/f827/warrock-server-files-db-client-948710/)

Cordialy SystemAce(ZicoS77)​
 
◝(⁰▿⁰)◜Smile◝ (⁰▿⁰)◜
Developer
Joined
May 29, 2007
Messages
2,167
Reaction score
899
The code that tweek released is a copy of the old montana source that has been modified.
 
◝(⁰▿⁰)◜Smile◝ (⁰▿⁰)◜
Developer
Joined
May 29, 2007
Messages
2,167
Reaction score
899
Totally legit way of checking the ban expire date.. (sarcasm). I'll be digging up bad code.
Code:
int StartTime = int.Parse(String.Format("{0:yyMMddHH}", current));

I'll also be able to change my nickname by sending the packet to the server which is kinda funny.

Bad code:
Code:
        ~virtualUser()
        {
            GC.Collect();
        }

It will handle only one packet if multiple ones are received.. There is no packet length check or splitting.
Code:
        private void arrivedData(IAsyncResult iAr)        {
            try
            {
                int DataLength = uSocket.EndReceive(iAr);


                if (DataLength > 1)
                {
                    byte[] packetBuffer = new byte[DataLength];
                    Array.Copy(dataBuffer, 0, packetBuffer, 0, DataLength);


                    /* Decode Packet */
                    for (int I = 0; I < packetBuffer.Length; I++)
                    {
                        packetBuffer[I] = (byte)(packetBuffer[I] ^ 0xC3);
                    }

                    // NO STORING OF THE RECEIVED DATA? WHAT IF INCOMPLETE? OR WHAT IF MULTIPLE PACKETS?
                    PacketHandler pHandler = PacketManager.parsePacket(packetBuffer);


                    if (pHandler != null)
                    {
                        pHandler.Handle(this);
                    }


                    uSocket.BeginReceive(dataBuffer, 0, dataBuffer.Length, SocketFlags.None, new AsyncCallback(arrivedData), null);
                }
                else
                {
                    disconnect();
                }
            }
            catch { disconnect(); }
        }

Another few bad habits inside the game server authentication packet. I managed to login as a different user plus executing the same query twice? Why? Also comparing an integer as string? Why would you do that..
Code:
int UserID = int.Parse(getBlock(0)); // SEND ADMIN ID + ADMIN LOGIN NAME AND GG WP YOU ARE IN
                if (BanManager.isBlocked(UserID) == false)
                {
                    string LoginName = getBlock(2);
                    string[] checkData = DB.runReadRow("SELECT id, username, nickname, password FROM users WHERE id='" + UserID + "'");
                    if (checkData.Length > 0)
                    {
                        if (checkData[0] != UserID.ToString()) User.disconnect(); // BAD
                        if (checkData[1].ToLower() != LoginName.ToLower()) User.disconnect();
                    }
                    else
                        User.disconnect();
                    // SAME QUERY TWICE AFTER LOGIN?
                    string[] UserData = DB.runReadRow("SELECT id, username, nickname, exp, dinar, kills, deaths, premium, premiumExpire, cash, rank, coupons, todaycoupon, pc, clanID, clanrank FROM users WHERE id='" + UserID + "' AND username='" + LoginName + "'");
                    if (UserData.Length > 0)
                    {



LOOOL Best Release :) Thanks Man
Release of a server with bad habits and a lot of common mistakes.. It's not the best release.



This is what I found when I was quickly looking into the source code. My advice, don't use it if you want a secure and stable server. This is way to insecure. Kinda funny actually that they never fixed the authentication bug.
 
◝(⁰▿⁰)◜Smile◝ (⁰▿⁰)◜
Developer
Joined
May 29, 2007
Messages
2,167
Reaction score
899
I dont change code (Just add interface graphic)
Well, why did you re-name the emulator if you only implemented the form?
 
Newbie Spellweaver
Joined
Jul 25, 2010
Messages
39
Reaction score
8
I have add credit in form (Core WarRock :
CodeDragon, Anksel(toxic),
Kazbah, Supreme,
Buuble, Chrownight &
Tweek)
 
Status
Not open for further replies.
Back
Top