You last visited: Today at 01:54
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.
12/26/2023, 02:24
#1
elite*gold: 147
Join Date: Oct 2017
Posts: 548
Received Thanks: 882
[Release] VSRO Old Item Mall (NO ASM *****)
Gallery 1
Image galleries require a modern browser with JavaScript enabled. Please make sure that your browser is up to date and/or enable JavaScript to view this gallery.
//0xB034
OTHERS:
RefShopTabGroupData.h
Code:
#pragma once
#include "RefShopTabData.h"
#include <string>
#pragma pack(push, 4)
class CRefShopTabGroupData
{
public:
virtual void Unknown();
unsigned __int32 m_country;
unsigned __int32 m_id;
std::wstring m_codeName128;
std::wstring m_itemName;
std::vector<CRefShopTabData*> m_vRefShopTabData;
};
#pragma pack(pop)
RefShopTabGroupData.h
Code:
#pragma once
#include "SOItemPackage.h"
#include <string>
#pragma pack(push, 4)
class CRefShopTabData
{
virtual void Unknown();
public:
unsigned __int32 m_country;
unsigned __int32 m_id;
std::wstring m_codeName128;
unsigned __int32 m_tabGroupLinkId;
std::wstring m_strId128Tab;
std::vector<CSOItemPackage*> m_vPackageItems;
};
#pragma pack(pop)
RefShopData.h
Code:
#pragma once
#include "RefShopTabGroupData.h"
#include <string>
#pragma pack(push, 4)
class CRefShopdata
{
public:
virtual void Unknown();
unsigned __int32 m_country;
unsigned __int32 m_id;
std::wstring m_codeName128;
std::vector<CRefShopTabGroupData*> m_vRefShopTabGroupData;
};
#pragma pack(pop)
RefScrapOfPackageItemData.h
Code:
#pragma once
class CRefScrapOfPackageItemData {
public:
char pad_0000[0x20];
unsigned __int16 m_quantity;
};
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;
//std::string m_empty; maybe something
};
#pragma pack(pop)
ItemMallGroupData.h
Code:
//
// Created by maximus on 12/25/2023.
//
#pragma once
#include "BSLib/_internal/custom_stl.h"
#include "RefShopdata.h"
#ifndef SRO_DEVKIT_ITEMMALLGROUPDATA_H
#define SRO_DEVKIT_ITEMMALLGROUPDATA_H
#endif//SRO_DEVKIT_ITEMMALLGROUPDATA_H
class CItemMallGroupData {
public:
char pad_0000[8];
std::n_wstring m_wStrGroupName; //0x0008
char pad_0024[6]; //0x0024
std::vector<CRefShopdata*> m_vShopData;
};
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.
12/26/2023, 21:52
#3
elite*gold: 0
Join Date: Jan 2011
Posts: 373
Received Thanks: 71
Thank you for your performance
12/27/2023, 03:37
#4
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!
12/27/2023, 04:34
#5
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
12/27/2023, 07:51
#6
elite*gold: 393
Join Date: Feb 2009
Posts: 681
Received Thanks: 396
Quote:
Originally Posted by
bimbum*
Gallery 1
Image galleries require a modern browser with JavaScript enabled. Please make sure that your browser is up to date and/or enable JavaScript to view this gallery.
//0xB034
OTHERS:
RefShopTabGroupData.h
Code:
#pragma once
#include "RefShopTabData.h"
#include <string>
#pragma pack(push, 4)
class CRefShopTabGroupData
{
public:
virtual void Unknown();
unsigned __int32 m_country;
unsigned __int32 m_id;
std::wstring m_codeName128;
std::wstring m_itemName;
std::vector<CRefShopTabData*> m_vRefShopTabData;
};
#pragma pack(pop)
RefShopTabGroupData.h
Code:
#pragma once
#include "SOItemPackage.h"
#include <string>
#pragma pack(push, 4)
class CRefShopTabData
{
virtual void Unknown();
public:
unsigned __int32 m_country;
unsigned __int32 m_id;
std::wstring m_codeName128;
unsigned __int32 m_tabGroupLinkId;
std::wstring m_strId128Tab;
std::vector<CSOItemPackage*> m_vPackageItems;
};
#pragma pack(pop)
RefShopData.h
Code:
#pragma once
#include "RefShopTabGroupData.h"
#include <string>
#pragma pack(push, 4)
class CRefShopdata
{
public:
virtual void Unknown();
unsigned __int32 m_country;
unsigned __int32 m_id;
std::wstring m_codeName128;
std::vector<CRefShopTabGroupData*> m_vRefShopTabGroupData;
};
#pragma pack(pop)
RefScrapOfPackageItemData.h
Code:
#pragma once
class CRefScrapOfPackageItemData {
public:
char pad_0000[0x20];
unsigned __int16 m_quantity;
};
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;
//std::string m_empty; maybe something
};
#pragma pack(pop)
ItemMallGroupData.h
Code:
//
// Created by maximus on 12/25/2023.
//
#pragma once
#include "BSLib/_internal/custom_stl.h"
#include "RefShopdata.h"
#ifndef SRO_DEVKIT_ITEMMALLGROUPDATA_H
#define SRO_DEVKIT_ITEMMALLGROUPDATA_H
#endif//SRO_DEVKIT_ITEMMALLGROUPDATA_H
class CItemMallGroupData {
public:
char pad_0000[8];
std::n_wstring m_wStrGroupName; //0x0008
char pad_0024[6]; //0x0024
std::vector<CRefShopdata*> m_vShopData;
};
Thank you bro , good job as always ! <3
12/27/2023, 11:44
#7
elite*gold: 0
Join Date: Aug 2013
Posts: 1,491
Received Thanks: 798
Could somebody please help me implement it?
12/27/2023, 17:44
#8
elite*gold: 0
Join Date: Sep 2016
Posts: 128
Received Thanks: 27
thanks you
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
12/27/2023, 18:25
#10
elite*gold: 0
Join Date: Aug 2013
Posts: 1,491
Received Thanks: 798
Quote:
Originally Posted by
1turkvar
hi, thx for share this project. Is there a missing file? IFItemMall.h ? in my opinion
Try this one to see if it works
12/27/2023, 18:35
#11
elite*gold: 0
Join Date: Jul 2020
Posts: 26
Received Thanks: 36
Quote:
Originally Posted by
Judgelemental
Try this one to see if it works
ı tried that, bu ı think there are missing methods. MoveToCenter etc.
12/27/2023, 19:56
#12
elite*gold: 147
Join Date: Oct 2017
Posts: 548
Received Thanks: 882
Quote:
Originally Posted by
1turkvar
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
12/27/2023, 20:01
#13
elite*gold: 0
Join Date: May 2020
Posts: 130
Received Thanks: 51
Quote:
Originally Posted by
bimbum*
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
12/27/2023, 21:23
#14
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
Image galleries require a modern browser with JavaScript enabled. Please make sure that your browser is up to date and/or enable JavaScript to view this gallery.
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)
12/29/2023, 19:08
#15
elite*gold: 30
Join Date: Oct 2010
Posts: 438
Received Thanks: 15
thanks bro
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 .