Register for your free account! | Forgot your password?

Go Back   elitepvpers > Popular Games > Silkroad Online > SRO Private Server > SRO PServer Guides & Releases
You last visited: Today at 01:54

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release] VSRO Old Item Mall (NO ASM SHITS)

Discussion on [Release] VSRO Old Item Mall (NO ASM SHITS) within the SRO PServer Guides & Releases forum part of the SRO Private Server category.

Reply
 
Old   #1
 
bimbum*'s Avatar
 
elite*gold: 147
Join Date: Oct 2017
Posts: 548
Received Thanks: 882
[Release] VSRO Old Item Mall (NO ASM *****)

Gallery 1









//0xB034






OTHERS:
bimbum* is offline  
Thanks
24 Users
Old 12/26/2023, 11:05   #2
 
elite*gold: 0
Join Date: May 2020
Posts: 130
Received Thanks: 51
Biggest release in many years

If anyone could make a video tutorial on how to implement it would be appreciated.
Emerald Garden SRO is offline  
Old 12/26/2023, 21:52   #3
 
denise456's Avatar
 
elite*gold: 0
Join Date: Jan 2011
Posts: 373
Received Thanks: 71
Thank you for your performance
denise456 is offline  
Old 12/27/2023, 03:37   #4


 
notHype*'s Avatar
 
elite*gold: 2
Join Date: Feb 2018
Posts: 596
Received Thanks: 502
No server side ASM/RE, no weird filter workarounds, no need to even modify media interface as the dll handles it. This is just perrrrfect thank you so much!
notHype* is offline  
Thanks
1 User
Old 12/27/2023, 04:34   #5
 
bimbum*'s Avatar
 
elite*gold: 147
Join Date: Oct 2017
Posts: 548
Received Thanks: 882
Actually, the code assumes that you have ItemMall Section registered.
so you will have to remove the def check for the new item mall my bad forgot to mention that at thread

Code:
Section = NewItemMall,"0,0,0,0","0"
{
	GDR_RENEWAL_ITEM_MALL:CIFNewItemMall
	{
		ClientRect=RECT,"0,0,0,0"
		Color=COLOR,"255,255,255,255"
		DDJ=STRING,"interface\\frame\\mall_wnd_"
		FontColor=COLOR,"255,255,255,255"
		FontIndex=INTEGER,"0"
		HAlign=INTEGER,"1"
		ID=INTEGER,"167"
		Rect=RECT,"0,0,800,600"
		Style=INTEGER,"0"
		SubSection=STRING,""
		Text=STRING,"UIIT_STT_SILKMALL"
		UV_LB=POINT,"0,1"
		UV_LT=POINT,"0,0"
		UV_RB=POINT,"1,1"
		UV_RT=POINT,"1,0"
		VAlign=INTEGER,"0"
	}
}

Section = ItemMall,"0,0,0,0","0"
{
	GDR_ITEM_MALL:CIFItemMall
	{
		ClientRect=RECT,"0,0,0,0"
		Color=COLOR,"255,255,255,255"
		DDJ=STRING,"interface\\frame\\mframe_wnd_"
		FontColor=COLOR,"255,255,255,255"
		FontIndex=INTEGER,"0"
		HAlign=INTEGER,"1"
		ID=INTEGER,"50"
		Rect=RECT,"0,0,800,600"
		Style=INTEGER,"0"
		SubSection=STRING,""
		Text=STRING,"UIIT_STT_SILKMALL"
		UV_LB=POINT,"0,1"
		UV_LT=POINT,"0,0"
		UV_RB=POINT,"1,1"
		UV_RT=POINT,"1,0"
		VAlign=INTEGER,"0"
	}
}
if someone doesn't want to edit ginterface at media, you can just find the list of sections at client and replace NewItemMall by ItemMall and thats it
bimbum* is offline  
Thanks
1 User
Old 12/27/2023, 07:51   #6
 
nemo08's Avatar
 
elite*gold: 393
Join Date: Feb 2009
Posts: 681
Received Thanks: 396
Quote:
Originally Posted by bimbum* View Post
Gallery 1









//0xB034






OTHERS:
Thank you bro , good job as always ! <3
nemo08 is offline  
Thanks
1 User
Old 12/27/2023, 11:44   #7
 
Judgelemental's Avatar
 
elite*gold: 0
Join Date: Aug 2013
Posts: 1,491
Received Thanks: 798
Could somebody please help me implement it?
Judgelemental is offline  
Old 12/27/2023, 17:44   #8
 
T0o0P's Avatar
 
elite*gold: 0
Join Date: Sep 2016
Posts: 128
Received Thanks: 27
thanks you
T0o0P is offline  
Old 12/27/2023, 17:44   #9
 
elite*gold: 0
Join Date: Jul 2020
Posts: 26
Received Thanks: 36
hi, thx for share this project. Is there a missing file? IFItemMall.h ? in my opinion
1turkvar is offline  
Old 12/27/2023, 18:25   #10
 
Judgelemental's Avatar
 
elite*gold: 0
Join Date: Aug 2013
Posts: 1,491
Received Thanks: 798
Quote:
Originally Posted by 1turkvar View Post
hi, thx for share this project. Is there a missing file? IFItemMall.h ? in my opinion
Try this one to see if it works
Judgelemental is offline  
Old 12/27/2023, 18:35   #11
 
elite*gold: 0
Join Date: Jul 2020
Posts: 26
Received Thanks: 36
Quote:
Originally Posted by Judgelemental View Post
Try this one to see if it works
ı tried that, bu ı think there are missing methods. MoveToCenter etc.
1turkvar is offline  
Old 12/27/2023, 19:56   #12
 
bimbum*'s Avatar
 
elite*gold: 147
Join Date: Oct 2017
Posts: 548
Received Thanks: 882
Quote:
Originally Posted by 1turkvar View Post
hi, thx for share this project. Is there a missing file? IFItemMall.h ? in my opinion
such things you must figure it out by the cpp files, anyways once i finish the patches planned for it (reserved items, etc...) i will add it to mr florian's latest devkit and upload it
bimbum* is offline  
Thanks
2 Users
Old 12/27/2023, 20:01   #13
 
elite*gold: 0
Join Date: May 2020
Posts: 130
Received Thanks: 51
Quote:
Originally Posted by bimbum* View Post
such things you must figure it out by the cpp files, anyways once i finish the patches planned for it (reserved items, etc...) i will add it to mr florian's latest devkit and upload it
Please please please make it easy for old-school noobs like me to understand and implement
Emerald Garden SRO is offline  
Old 12/27/2023, 21:23   #14
 
bimbum*'s Avatar
 
elite*gold: 147
Join Date: Oct 2017
Posts: 548
Received Thanks: 882
////// PART 2 /////// Reserved items
that was more challenging since it had some kind of memory leaks, and message box wasn't working properly.

Gallery 1
Code:
HOOK_ORIGINAL_MEMBER(0x007D0460, &CIFItemMallZzim::OnBuyAll_BtnClick);
void CIFItemMallZzim::OnBuyAll_BtnClick() {
    CIFItemMall* pItemMall = g_pCGInterface->GetItemMall();

    m_pMessageBox = pItemMall->m_pMessageBox;

    if(!pItemMall->m_bIsMessageBoxCreated) {
        m_pMessageBox->SetMessageBoxParent(this);

        BringToFront();

        g_pCGInterface->sub_79A620();

        pItemMall->m_bIsMessageBoxCreated = true;

        int nTotalSilkPrice = 0;

        std::list<SReservedItemMallData>::const_iterator  it = g_pCGInterface->m_lstReservedItemMallData.begin();
        for(; it != g_pCGInterface->m_lstReservedItemMallData.end(); ++it) {
            nTotalSilkPrice += (*it).pItemMallData->m_pSOPackageItem->GetPackageItemData()->m_nSilkPrice;
        }

        m_pMessageBox->CreateMessageBox(2);
        m_pMessageBox->ShowGWnd(true);
        m_pMessageBox->SetMessageBoxStyle(15);

        CIFStatic* pPriceStatic = m_pMessageBox->GetWindowByUniqueId<CIFStatic>(2);
        pPriceStatic->SetTextFormatted(L"%d",nTotalSilkPrice);
        pPriceStatic->m_FontTexture.SetColor(0xFFFFD953);
        pPriceStatic->MoveGWnd(pPriceStatic->GetPos().x - 30, pPriceStatic->GetPos().y + 4);
    }
}

Code:
HOOK_ORIGINAL_MEMBER(0x007D0350, &CIFItemMallZzim::OnBuyAllCallBack);
void CIFItemMallZzim::OnBuyAllCallBack() {
    std::list<SReservedItemMallData>::const_iterator it = g_pCGInterface->m_lstReservedItemMallData.begin();

    if(it != g_pCGInterface->m_lstReservedItemMallData.end()) {
        int nRealIndex = g_pCGInterface->GetRealItemIndex(it->pItemMallData->m_usShopId, it->pItemMallData->m_btTab,
                                          it->pItemMallData->m_pSOPackageItem);

        std::n_string strCodeName = TO_NSTRING(it->pItemMallData->m_pSOPackageItem->GetPackageItemData()->m_codeName128).c_str();

        CStringData *data = new CStringData();

        data->str = strCodeName;

        g_pCInterfaceNetSender->BuyItemMallItem(
            it->pItemMallData->m_pSOPackageItem->GetPackageItemData()->m_id,
            it->pItemMallData->m_usShopId,
            it->pItemMallData->m_btTab,
            nRealIndex,
            1,
            0,
            0,
            0,
            *data);

        if (!g_pCGInterface->m_lstReservedItemMallData.empty()) {
            g_pCGInterface->m_lstReservedItemMallData.pop_front();
        }

        RefreshReservedItems();
    }
}

void CIFItemMallZzim::RefreshReservedItems() {
    reinterpret_cast<int(__thiscall *)(CIFItemMallZzim *, int)>(0x007D0EA0)(this, 0);
}

Code:
CIFItemMall *CGInterface::GetItemMall() {
    return m_IRM.GetResObj<CIFItemMall>(50, 1);
}

//REPEATED FUNCTION //TODO CREATE A SUB FUNCTION FOR BOTH OF THEM
HOOK_ORIGINAL_MEMBER(0x007978A0, &CGInterface::OnReservedItemBuy);
bool CGInterface::OnReservedItemBuy(int a2, int a3, BYTE a4, BYTE a5, __int64 a6, int a7, int a8, __int64 a9, SOldItemMallData sOldItemMallData) {
    int nRealIndex = GetRealItemIndex(a3, a4,
                                      sOldItemMallData.pItemMallData->m_pSOPackageItem);

    std::n_string strCodeName = TO_NSTRING(sOldItemMallData.pItemMallData->m_pSOPackageItem->GetPackageItemData()->m_codeName128).c_str();

    CStringData *data = new CStringData();

    data->str = strCodeName;

    g_pCInterfaceNetSender->BuyItemMallItem(
        sOldItemMallData.pItemMallData->m_pSOPackageItem->GetPackageItemData()->m_id,
        a3,
        a4,
        nRealIndex,
        1,
        0,
        0,
        0,
        *data);

    if (!m_lstReservedItemMallData.empty()) {
        m_lstReservedItemMallData.pop_front();
    }

    sOldItemMallData.pMallZzim->RefreshReservedItems();

    delete &sOldItemMallData;

    return 1;
}

#endif
Code:
    int m_silk_point;                                //0x04B4
public:
    std::list<SReservedItemMallData> m_lstReservedItemMallData; //0x04B8
private:
    char pad_0x04C4[0x40];                           //0x04B8
public:
    DWORD N0000268B;       //0x0504
IFItemMall.h

Code:
//
// Created by maximus on 12/24/2023.
//

#ifndef SRO_DEVKIT_IFITEMMALL_H
#define SRO_DEVKIT_IFITEMMALL_H


#include "IFMainFrame.h"
#include "IFMessageBox.h"

class CIFItemMall : public CIFMainFrame {
    GFX_DECLARE_DYNAMIC_EXISTING(CIFItemMall, 0xEEC2E8)
public:
    void SetBuyItemCount(int nItemCount);

    int GetBuyItemCount() const;

    undefined1 OnCloseWnd_IMPL();

    int sub_7C0490(int a2, int a3);
private:
    char pad_07BC[0x58];    //0x07BC
public:
    CIFMessageBox* m_pMessageBox; //0x0814
    bool m_bIsMessageBoxCreated; //0x0818
private:
    char pad_0819[0x03]; //0x0819
    int m_nBuyItemCount;    //0x081C
};


#endif//SRO_DEVKIT_IFITEMMALL_H
IFItemMallZzim.h
Code:
//
// Created by maximus on 12/27/2023.
//
#pragma once

#ifndef SRO_DEVKIT_IFITEMMALLZZIM_H
#define SRO_DEVKIT_IFITEMMALLZZIM_H


#include "IFWnd.h"
#include "IFItemMall.h"
#include "remodel/MemberFunctionHook.h"
class CIFItemMallZzim : public CIFWnd {
    GFX_DECLARE_DYNAMIC_EXISTING(CIFItemMallZzim, 0xEEC4A8)
public:
    void OnBuyAll_BtnClick();
    void RefreshReservedItems();
    void OnBuyAllCallBack();

private:
    char pad_036C[0xBC];
    CIFMessageBox* m_pMessageBox; //0x0428
};


#endif//SRO_DEVKIT_IFITEMMALLZZIM_H
0xB034
Code:
#ifdef CONFIG_OLD_ITEM_MALL
        //87EF26
        if (btType == 0x18) {
            UINT16 usShopGroupId = msg.Read<UINT16>();
            BYTE btGroupIndex = msg.Read<BYTE>();
            BYTE btTabIndex = msg.Read<BYTE>();
            BYTE btSlotIndex = msg.Read<BYTE>();
            BYTE btSlotsCount = msg.Read<BYTE>();

            std::vector<BYTE> vSlots;

            for (int i = 0; i < btSlotsCount; i++) {
                BYTE btSlot = msg.Read<BYTE>();
                vSlots.push_back(btSlot);
            }

            UINT16 usQuantity = msg.Read<UINT16>();

            CSOItemPackage *pSOItemPackage = g_CGlobalDataManager->GetSOPackageByShopData(usShopGroupId, btGroupIndex, btTabIndex, btSlotIndex);

            int nQuantity = pSOItemPackage->GetPackageItemData()->m_vScrapData[0]->m_quantity;

            if (pSOItemPackage &&
                pSOItemPackage->GetSOItem()) {
                for (int i = 0; i < vSlots.size(); i++) {
                    g_pCGInterface->GetMainPopup()->GetInventory()->FakePick(pSOItemPackage->GetSOItem()->m_refObjItemId, vSlots[i],
                                                                             nQuantity > 0 ? nQuantity : 1);
                }
            }

            if (g_pCGInterface->GetItemMall()->GetBuyItemCount() > 0) {
                g_pCGInterface->GetItemMall()->SetBuyItemCount(g_pCGInterface->GetItemMall()->GetBuyItemCount() - 1);
            }

            msg.FlushRemaining();
            return;
        }
#endif
Util.cpp
Code:
    vftableHook(0x0D9B9CC, 12, addr_from_this(&CIFMessageBox::OnUpdate_IMPL));
Code:
void CIFMessageBox::OnUpdate_IMPL() {
    switch (m_nMessageBoxStyleType) {
        case 15:
            if(GetParentControl()->IsSame(GFX_RUNTIME_CLASS(CIFItemMall)))
                return;
            break;
    }
    reinterpret_cast<void(__thiscall *)(CIFMessageBox *)>(0x0063d340)(this);
}
Code:
    int m_nMessageBoxStyleType; //0x08D4
Code:
void CIFMessageBox::SetMessageBoxStyle(int Id) {
    reinterpret_cast<void(__thiscall *)(CIFMessageBox *, int)>(0x0063EA80)(this, Id);
}

void CIFMessageBox::CreateMessageBox(int Id) {
    reinterpret_cast<void(__thiscall *)(CIFMessageBox *, int)>(0x00643C20)(this, Id);
}

void CIFMessageBox::SetMessageBoxParent(CIFWnd *pWnd) {
    reinterpret_cast<void(__thiscall *)(CIFMessageBox *, CIFWnd *)>(0x0063B5B0)(this, pWnd);
}

void CIFMessageBox::OnUpdate_IMPL() {
    switch (m_nMessageBoxStyleType) {
        case 15:
            if(GetParentControl()->IsSame(GFX_RUNTIME_CLASS(CIFItemMall)))
                return;
            break;
    }
    reinterpret_cast<void(__thiscall *)(CIFMessageBox *)>(0x0063d340)(this);
}
RefPackageItemData.h
Code:
#pragma once

#include "BSLib/_internal/custom_stl.h"
#include "RefScrapOfPackageItemData.h"

#pragma pack(push,4)
class CRefPackageItemData
{
public:
    virtual void Unknown();

    char gap[4];
    unsigned __int32 m_id;
    char gap1[4];
    std::n_wstring m_codeName128;
    unsigned __int16 m_saleTag;
    std::wstring m_expandTerm;
    std::wstring m_nameStrId;
    std::wstring m_descStrId;
    std::string m_assocFileIcon;
    char pad_00A0[28];
    std::vector<CRefScrapOfPackageItemData *> m_vScrapData; //0x00BC
    char pad_00CC[0x14];
    int m_nSilkPrice;
    //std::string m_empty; maybe something
};
#pragma pack(pop)
bimbum* is offline  
Thanks
8 Users
Old 12/29/2023, 19:08   #15

 
elite*gold: 30
Join Date: Oct 2010
Posts: 438
Received Thanks: 15
thanks bro
okulyolu is offline  
Reply


Similar Threads Similar Threads
[Mall] Item Mall Problem
02/01/2013 - SRO Private Server - 0 Replies
when buying items in ITEM MALL = dc but have item in inv after log in again we want fix it
WarRock Direct3D [16.05.2012] ( ASM Bullets, ASM, OPK / SVP , ASM UNL AMMO )
05/17/2012 - WarRock Hacks, Bots, Cheats & Exploits - 8 Replies
Direct3D Hook 85% Credits to BlackLegend - helping me alot. Viva la Revolución http://www.abload.de/img/wr31lmaex.png http://www.abload.de/img/wr3253bzf.png Virustotal ( Packed / Compressed ) Click
2.9|Incredible-Hax VIP| Fully Bypassed Hack|ASM|RadarGPS;MAPGPS;WTW|&lots of more ASM
09/02/2011 - WarRock Hacks, Bots, Cheats & Exploits - 14 Replies
http://www.bilderkiste.org/show/original/313149758 4796/PublicHack.png This hack is now packed, and unpacking is not working ;) This hack is public and free for a little time! :D http://ind01.bilderkiste.org/3131497451181/Hack.p ng Virustotal (packed with Themida) Download
|||KingClem Public D3D | Full ASM Bypassed| Enough ASM Functions! | BIg Public! | |||
08/03/2011 - WarRock Hacks, Bots, Cheats & Exploits - 27 Replies
Screenshot: http://kingclem.co.de/uploads/screen.png Crediting: -KingClem™ -KitoKid -Cracken



All times are GMT +2. The time now is 01:54.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.