mirror of
https://gitlab.com/hashborgir/d2tweaks-rnd2k.git
synced 2024-11-30 12:45:58 +00:00
saving added gems to .boh file working
This commit is contained in:
parent
87d4758efc
commit
78fcd692b2
BIN
D2tweaks.aps
Normal file
BIN
D2tweaks.aps
Normal file
Binary file not shown.
@ -279,6 +279,7 @@
|
|||||||
<ClInclude Include="include\diablo2\utils\screen.h" />
|
<ClInclude Include="include\diablo2\utils\screen.h" />
|
||||||
<ClInclude Include="include\fw\pool.h" />
|
<ClInclude Include="include\fw\pool.h" />
|
||||||
<ClInclude Include="include\fw\singleton.h" />
|
<ClInclude Include="include\fw\singleton.h" />
|
||||||
|
<ClInclude Include="resource.h" />
|
||||||
<ClInclude Include="vendor\D2Template\D2Template.h" />
|
<ClInclude Include="vendor\D2Template\D2Template.h" />
|
||||||
<ClInclude Include="vendor\D2Template\D2TemplateConstants.h" />
|
<ClInclude Include="vendor\D2Template\D2TemplateConstants.h" />
|
||||||
<ClInclude Include="vendor\D2Template\D2TemplateDataTables.h" />
|
<ClInclude Include="vendor\D2Template\D2TemplateDataTables.h" />
|
||||||
|
14
resource.h
Normal file
14
resource.h
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
//{{NO_DEPENDENCIES}}
|
||||||
|
// Microsoft Visual C++ generated include file.
|
||||||
|
// Used by D2tweaks.rc
|
||||||
|
|
||||||
|
// Next default values for new objects
|
||||||
|
//
|
||||||
|
#ifdef APSTUDIO_INVOKED
|
||||||
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
|
#define _APS_NEXT_RESOURCE_VALUE 101
|
||||||
|
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||||
|
#define _APS_NEXT_CONTROL_VALUE 1001
|
||||||
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
|
#endif
|
||||||
|
#endif
|
@ -96,7 +96,7 @@ bool d2_tweaks::server::modules::item_move::handle_packet(diablo2::structures::g
|
|||||||
const auto key = static_cast<common::item_move_cs*>(packet)->item_code;
|
const auto key = static_cast<common::item_move_cs*>(packet)->item_code;
|
||||||
|
|
||||||
// Display key in a message box
|
// Display key in a message box
|
||||||
MessageBox(NULL, key, "Item code", MB_OK | MB_ICONINFORMATION);
|
//MessageBox(NULL, key, "Item code", MB_OK | MB_ICONINFORMATION);
|
||||||
|
|
||||||
const auto item = instance.get_server_unit(game, itemMove->item_guid, diablo2::structures::unit_type_t::UNIT_TYPE_ITEM); //0x4 = item
|
const auto item = instance.get_server_unit(game, itemMove->item_guid, diablo2::structures::unit_type_t::UNIT_TYPE_ITEM); //0x4 = item
|
||||||
const char* itemcode = itemMove->item_code;
|
const char* itemcode = itemMove->item_code;
|
||||||
@ -148,7 +148,8 @@ bool d2_tweaks::server::modules::item_move::handle_packet(diablo2::structures::g
|
|||||||
// Serialize item data into binary file
|
// Serialize item data into binary file
|
||||||
std::string playerName = player->player_data->name;
|
std::string playerName = player->player_data->name;
|
||||||
std::string fileName = "./Save/" + playerName + ".boh";
|
std::string fileName = "./Save/" + playerName + ".boh";
|
||||||
std::ofstream outFile(fileName, std::ios::binary);
|
// Open file in append mode
|
||||||
|
std::ofstream outFile(fileName, std::ios::binary | std::ios::app);
|
||||||
if (!outFile) {
|
if (!outFile) {
|
||||||
std::cerr << "Error opening file: " << fileName << std::endl;
|
std::cerr << "Error opening file: " << fileName << std::endl;
|
||||||
return false;
|
return false;
|
||||||
@ -158,6 +159,7 @@ bool d2_tweaks::server::modules::item_move::handle_packet(diablo2::structures::g
|
|||||||
outFile.close();
|
outFile.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,18 +58,17 @@
|
|||||||
#include <random>
|
#include <random>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <vector>
|
|
||||||
#include <string>
|
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
#include <iomanip> // For std::setw
|
#include <iomanip> // For std::setw
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
#include <string>
|
|
||||||
#include <stdexcept> // For std::invalid_argument
|
#include <stdexcept> // For std::invalid_argument
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <CommCtrl.h> // Include for edit control
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
diablo2::structures::unit* g_item1;
|
diablo2::structures::unit* g_item1;
|
||||||
@ -137,6 +136,12 @@ struct D2InventoryGridInfoStrc
|
|||||||
WORD pad0x16; //0x16
|
WORD pad0x16; //0x16
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Declare a variable to hold the handle to the edit box control
|
||||||
|
HWND g_hEditBox = nullptr;
|
||||||
|
// Declare a variable to store the input text
|
||||||
|
std::vector<char> g_inputText(256, '\0'); // Adjust the size according to your needs
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
LRESULT d2_tweaks::ui::ui_manager::wnd_proc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
LRESULT d2_tweaks::ui::ui_manager::wnd_proc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) {
|
||||||
@ -366,6 +371,19 @@ LRESULT d2_tweaks::ui::ui_manager::wnd_proc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||||||
const auto record = diablo2::d2_common::get_item_record(g_hoverItem->data_record_index);
|
const auto record = diablo2::d2_common::get_item_record(g_hoverItem->data_record_index);
|
||||||
char* normCode = record->string_code;
|
char* normCode = record->string_code;
|
||||||
|
|
||||||
|
if (strncmp(normCode, "ib1", 3) == 0) {
|
||||||
|
|
||||||
|
// display Messagebox with normCode
|
||||||
|
//MessageBoxA(0, normCode, "normCode", 0);
|
||||||
|
|
||||||
|
// we need to accept user input here
|
||||||
|
// we need to get the user input and store it in a variable
|
||||||
|
// we need to use win32 api to get the user input using editbox control, simple inputbox, not using resources.rc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
const auto player = diablo2::d2_client::get_local_player();
|
const auto player = diablo2::d2_client::get_local_player();
|
||||||
auto pInventory = player->inventory;
|
auto pInventory = player->inventory;
|
||||||
|
|
||||||
@ -397,7 +415,7 @@ LRESULT d2_tweaks::ui::ui_manager::wnd_proc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||||||
int rowID;
|
int rowID;
|
||||||
};
|
};
|
||||||
|
|
||||||
std::unordered_map<std::string, GemType> gemTypes = {
|
static std::unordered_map<std::string, GemType> gemTypes = {
|
||||||
{"gcv", {1, 382}}, // Chipped Amethyst
|
{"gcv", {1, 382}}, // Chipped Amethyst
|
||||||
{"gcw", {1, 383}}, // Chipped Diamond
|
{"gcw", {1, 383}}, // Chipped Diamond
|
||||||
{"gcg", {1, 384}}, // Chipped Emerald
|
{"gcg", {1, 384}}, // Chipped Emerald
|
||||||
@ -478,6 +496,7 @@ LRESULT d2_tweaks::ui::ui_manager::wnd_proc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||||||
// Accessing key and value
|
// Accessing key and value
|
||||||
const std::string& _key = gem.first;
|
const std::string& _key = gem.first;
|
||||||
key = gem.first.c_str();
|
key = gem.first.c_str();
|
||||||
|
|
||||||
const GemType& value = gem.second;
|
const GemType& value = gem.second;
|
||||||
if (strncmp(normCode, key, 3) == 0) {
|
if (strncmp(normCode, key, 3) == 0) {
|
||||||
D2PropertyStrc itemProperty = {};
|
D2PropertyStrc itemProperty = {};
|
||||||
@ -488,6 +507,8 @@ LRESULT d2_tweaks::ui::ui_manager::wnd_proc(HWND hWnd, UINT msg, WPARAM wParam,
|
|||||||
diablo2::d2_common::add_property(gemBag, &itemProperty, 0);
|
diablo2::d2_common::add_property(gemBag, &itemProperty, 0);
|
||||||
diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0);
|
diablo2::d2_client::play_sound(record->drop_sound, nullptr, 0, 0, 0);
|
||||||
|
|
||||||
|
//MessageBoxA(0, key, "key", 0);
|
||||||
|
|
||||||
static d2_tweaks::common::item_move_cs packet;
|
static d2_tweaks::common::item_move_cs packet;
|
||||||
packet.item_guid = g_hoverItem->guid;
|
packet.item_guid = g_hoverItem->guid;
|
||||||
packet.item_code = key;
|
packet.item_code = key;
|
||||||
|
Loading…
Reference in New Issue
Block a user