An open source effort to make episode 5 servers compatible with episode 6 clients

i found a modification in dbAgent at address 00407942 that was causing the bugs i tried to fix in v1.2.2.17. the file has been replaced. v1.3.2.20 should resolve all issues with the item mall and filesystem issues with dll import.
 
Hey, if it's not a big problem, maybe you can also include the client side compiled libraries on the workflows page? For the same reasons as the server side ones.
Since more people are consistently using the files, this can make things a lot easier for them.
 
Hey, if it's not a big problem, maybe you can also include the client side compiled libraries on the workflows page? For the same reasons as the server side ones.
Since more people are consistently using the files, this can make things a lot easier for them.
i'm still hunting a ghost in the client (nothing to worry about), so maybe after that.
 
@Bowie @Garret

After some time here I am again. I hope this message find you well.

In this opportunity, my question is about a more superficial issue.

A few days ago one of the players asked me why when equipping a skin the face of the character was changed by the default face, to which to tell the truth I did not know how to answer so I did the test and indeed it is a "problem" that happens.

I'm using the last version of both dlls compiled for an EP6.4 server+client.

Is this a known behavior?

Regards!
 
Last edited:
After some time here I am again. I hope this message find you well.

In this opportunity, my question is about a more superficial issue.

A few days ago one of the players asked me why when equipping a skin the face of the character was changed by the default face, to which to tell the truth I did not know how to answer so I did the test and indeed it is a "problem" that happens.

I'm using the last version of both dlls compiled for an EP6.4 server+client.

Is this a known behavior?
Hey, this is how costumes have always worked. This is because you define also a face to use in the DualLayerClothes.SData , by default on most servers all costumes uses the first one.
You can edit what face every costume shows, but it have little uses.
 
Who knew that version 1.38 could not be compiled
This is an error message:

1709269917678.png
 
that's a C++ 23 feature. maybe the SDK isn't on your machine.
 
Last edited:
i added a ps_game version that should fully support level 80 (exp, status, etc.).


please see the following threads:

wiki:
 
hi, i would like to release command manager extension with an example, its handles the /mmake command for ps_game.

C++:
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <include/main.h>
#include <include/util.h>
#include <iostream>
#include <sstream>
#include <vector>
#include <include/shaiya/include/CWorld.h>
#include <include/shaiya/include/CZone.h>

using namespace shaiya;

namespace command_manager
{
    std::string output;

    int execute(const char* input, int cmd_case) {
        std::istringstream stream(input);
        std::vector<std::string> args;

        std::string temp;
        stream >> temp;
        while (stream >> temp) {
            args.push_back(temp);
        }

        switch (cmd_case) {
        case 69:
        {
            auto map = std::stoi(args.at(0));
            auto mobId = std::stoi(args.at(1));
            auto count = std::stoi(args.at(2));
            auto x = std::stof(args.at(3));
            auto y = std::stof(args.at(4));
            auto z = std::stof(args.at(5));

            SVector position = { x, y, z };
            shaiya::CZone::MobGen(CWorld::GetZone(map), mobId, count, &position);

            std::stringstream output_format;
            output_format << "Mob:" << mobId << " respawned at Map:" << map;
            output = output_format.str();
            return 0;   
          
        }
            return 0;
        default:
            break;
        }

        return 1;
    }
}


LPCSTR cmd_mmake = "/mmake";

unsigned u0x4F5BE0 = 0x4F5BE0;//SConsole::AddCommand
void __declspec(naked) naked_0x409459() {
    __asm {

        push 0x0
        push - 0x1
        push 0x6 // param count
        push cmd_mmake
        push 69 // switch case
        mov ecx, esi
        call u0x4F5BE0

        originalcode :
        pop esi
        retn
    }
}

unsigned u0x409498 = 0x409498; // The address to return to for an unsuccessfully handled command.
unsigned u0x40B3D4 = 0x40B3D4; // The address to return to for a successful command.
void __declspec(naked) naked_0x40948F()
{
    __asm
    {
        pushad

        sub ebx,0x4024
        push eax // switch case
        push ebx // input
        call command_manager::execute
        add esp,8

        test eax, eax
        popad
        je write_output

        originalcode :
        cmp eax, 0x44
        ja default_case
        jmp u0x409498

        write_output:
        push command_manager::output
        push edi
        call sprintf
        add esp, 8

        default_case :     
        jmp u0x40B3D4
    }
}

void hook::command_manager()
{
    //CServerApp::InitConsoleCommand
    util::detour((void*)0x409459, naked_0x409459, 5);
    //CServerApp::OnConsoleCommand
    util::detour((void*)0x40948F, naked_0x40948F, 9);
}
 
Last edited by a moderator:
The method is very good. cheers。
Can I add you Discord?
I am willing to pay a fee for you to help me add more admin commands
 
Can you help me add a command for /nmake . it’s make NPC
you can find the functions inside the source code and let's not fill this article with comments, if u have questions add discord: lothbrok7676

static void NpcCreate(CZone* zone/*ecx*/, int npcType, int npcId, SVector* pos/*edi*/);
 
you can find the functions inside the source code and let's not fill this article with comments, if u have questions add discord: lothbrok7676
yes, ,thankyou lothbrok 。I found this code,

Bowie​

is really a genius
 
Since you closed the issue on Github, I'm writing here
i see you are adding/removing a skin and something in another custom slot. this library doesn't support those slots, so i'm gonna close this for now.

I didn't add a different slot, please don't make a decision without asking, the slot attached is the wing, but this is not the problem, I could do this with the costume in the video, so the problem is valid for the wing, costume and pet, I didn't write to you for a different slot

You can corrupt the statistics by changing the armor as in the video and the scary thing is that these statistics are valid and this is a danger for a server that is currently using your code.
 
Back
Top