This commit is contained in:
lenheart
2024-07-22 19:26:56 +08:00
parent 945562c2b9
commit 48f5ee8c62
150 changed files with 826 additions and 1058 deletions

View File

@@ -335,7 +335,7 @@ int Controller::hook_PacketDispatcher_doDispatch(PacketDispatcher *a1, CUser *us
return Ret;
}
// 组队
// 组队 创建和加入
else if (packet_id == 10)
{
std::lock_guard<std::recursive_mutex> lock(SqMtx);
@@ -355,6 +355,79 @@ int Controller::hook_PacketDispatcher_doDispatch(PacketDispatcher *a1, CUser *us
if (!R)
return 0;
}
// 组队 同意组队和同意加入
else if (packet_id == 11)
{
int Ret = Get()->old_PacketDispatcher_doDispatch(a1, user, packet_class, packet_id, packet_src, packet_len, a7, a8);
std::lock_guard<std::recursive_mutex> lock(SqMtx);
// 执行虚拟机Main函数
SQInteger top = sq_gettop(v); // saves the stack size before the call
sq_pushroottable(v); // pushes the global table
sq_pushstring(v, _SC("Cb_userpartyagree"), -1);
if (SQ_SUCCEEDED(sq_get(v, -2)))
{ // gets the fie123oo' from the global table
sq_pushroottable(v); // push the 'this' (in this case is the global table)
sq_pushuserpointer(v, user);
sq_call(v, 2, SQTrue, SQFalse); // calls the function
}
sq_settop(v, top); // restores the original stack size
return Ret;
}
// 组队 退出队伍
else if (packet_id == 13)
{
int Ret = Get()->old_PacketDispatcher_doDispatch(a1, user, packet_class, packet_id, packet_src, packet_len, a7, a8);
std::lock_guard<std::recursive_mutex> lock(SqMtx);
// 执行虚拟机Main函数
SQInteger top = sq_gettop(v); // saves the stack size before the call
sq_pushroottable(v); // pushes the global table
sq_pushstring(v, _SC("Cb_userpartyexit"), -1);
if (SQ_SUCCEEDED(sq_get(v, -2)))
{ // gets the fie123oo' from the global table
sq_pushroottable(v); // push the 'this' (in this case is the global table)
sq_pushuserpointer(v, user);
sq_call(v, 2, SQTrue, SQFalse); // calls the function
}
sq_settop(v, top); // restores the original stack size
return Ret;
}
// 组队 踢出队伍
else if (packet_id == 14)
{
int Ret = Get()->old_PacketDispatcher_doDispatch(a1, user, packet_class, packet_id, packet_src, packet_len, a7, a8);
std::lock_guard<std::recursive_mutex> lock(SqMtx);
// 执行虚拟机Main函数
SQInteger top = sq_gettop(v); // saves the stack size before the call
sq_pushroottable(v); // pushes the global table
sq_pushstring(v, _SC("Cb_userpartykick"), -1);
if (SQ_SUCCEEDED(sq_get(v, -2)))
{ // gets the fie123oo' from the global table
sq_pushroottable(v); // push the 'this' (in this case is the global table)
sq_pushuserpointer(v, user);
sq_call(v, 2, SQTrue, SQFalse); // calls the function
}
sq_settop(v, top); // restores the original stack size
return Ret;
}
// 组队 委任队长
else if (packet_id == 124)
{
int Ret = Get()->old_PacketDispatcher_doDispatch(a1, user, packet_class, packet_id, packet_src, packet_len, a7, a8);
std::lock_guard<std::recursive_mutex> lock(SqMtx);
// 执行虚拟机Main函数
SQInteger top = sq_gettop(v); // saves the stack size before the call
sq_pushroottable(v); // pushes the global table
sq_pushstring(v, _SC("Cb_userpartygivemaster"), -1);
if (SQ_SUCCEEDED(sq_get(v, -2)))
{ // gets the fie123oo' from the global table
sq_pushroottable(v); // push the 'this' (in this case is the global table)
sq_pushuserpointer(v, user);
sq_call(v, 2, SQTrue, SQFalse); // calls the function
}
sq_settop(v, top); // restores the original stack size
return Ret;
}
// 下线
else if (packet_id == 3)
{

View File

@@ -778,11 +778,11 @@ void Lenheart()
if (!checkGame("df_game_r"))
{
// int a = 1;
// void *buf = malloc(4);
// CMem::WriteBytes(buf, &a, 4);
// unsigned int nMaxGrade = 100;
// bGMMode = 1;
int a = 1;
void *buf = malloc(4);
CMem::WriteBytes(buf, &a, 4);
unsigned int nMaxGrade = 90;
bGMMode = 1;
// max_level = nMaxGrade;
@@ -803,21 +803,21 @@ void Lenheart()
// CMem::WriteUChar(MAIN_OFFSET(0x31C128), 0x7E);
// CMem::WriteUChar(MAIN_OFFSET(0x31C129), 0x06);
// CMem::WriteUChar(MAIN_OFFSET(0x547005), nMaxGrade);
// CMem::WriteUChar(MAIN_OFFSET(0x61AF55), nMaxGrade);
// CMem::WriteUChar(MAIN_OFFSET(0x61B0F3), nMaxGrade);
// CMem::WriteUChar(MAIN_OFFSET(0x61DD28), nMaxGrade - 1);
// CMem::WriteUChar(MAIN_OFFSET(0x61E86A), nMaxGrade);
// CMem::WriteUChar(MAIN_OFFSET(0x61EE9C), nMaxGrade - 1);
// CMem::WriteUChar(MAIN_OFFSET(0x6224A8), nMaxGrade - 1);
// CMem::WriteUChar(MAIN_OFFSET(0x622929), nMaxGrade);
// CMem::WriteUChar(MAIN_OFFSET(0x641D4B), nMaxGrade - 1);
// CMem::WriteUChar(MAIN_OFFSET(0x647ECE), nMaxGrade);
// CMem::WriteUChar(MAIN_OFFSET(0x647EDA), nMaxGrade);
// CMem::WriteUChar(MAIN_OFFSET(0x647F82), nMaxGrade);
// CMem::WriteUChar(MAIN_OFFSET(0x647F88), nMaxGrade);
// CMem::WriteUChar(MAIN_OFFSET(0x66521D), nMaxGrade);
// CMem::WriteUChar(MAIN_OFFSET(0x665223), nMaxGrade);
CMem::WriteUChar(MAIN_OFFSET(0x547005), nMaxGrade);
CMem::WriteUChar(MAIN_OFFSET(0x61AF55), nMaxGrade);
CMem::WriteUChar(MAIN_OFFSET(0x61B0F3), nMaxGrade);
CMem::WriteUChar(MAIN_OFFSET(0x61DD28), nMaxGrade - 1);
CMem::WriteUChar(MAIN_OFFSET(0x61E86A), nMaxGrade);
CMem::WriteUChar(MAIN_OFFSET(0x61EE9C), nMaxGrade - 1);
CMem::WriteUChar(MAIN_OFFSET(0x6224A8), nMaxGrade - 1);
CMem::WriteUChar(MAIN_OFFSET(0x622929), nMaxGrade);
CMem::WriteUChar(MAIN_OFFSET(0x641D4B), nMaxGrade - 1);
CMem::WriteUChar(MAIN_OFFSET(0x647ECE), nMaxGrade);
CMem::WriteUChar(MAIN_OFFSET(0x647EDA), nMaxGrade);
CMem::WriteUChar(MAIN_OFFSET(0x647F82), nMaxGrade);
CMem::WriteUChar(MAIN_OFFSET(0x647F88), nMaxGrade);
CMem::WriteUChar(MAIN_OFFSET(0x66521D), nMaxGrade);
CMem::WriteUChar(MAIN_OFFSET(0x665223), nMaxGrade);
// SUBHOOK_SETUP(addServerHackCnt);
// SUBHOOK_SETUP(put_header);
// SUBHOOK_SETUP(IsCurCharacVisible);
@@ -869,23 +869,23 @@ void Lenheart()
->init();
// SUBHOOK_SETUP(isSocketAvatar);
// if (nMaxGrade > 70)
// {
// // 以下需要扩充类大小, 修改偏移
// CMem::WriteUInt(MAIN_OFFSET(0x87162 + 3), 0xB678 + nMaxGrade * 4 + nMaxGrade * 12);
// // CDataManager::set_reward_sp
// CMem::WriteUInt(MAIN_OFFSET(0x318C26 + 2), 10836 + 840);
// CMem::WriteUChar(MAIN_OFFSET(0x318C3B), nMaxGrade);
// CMem::WriteUInt(MAIN_OFFSET(0x318C68 + 2), 10836 + 840);
// CMem::WriteUChar(MAIN_OFFSET(0x318C79), nMaxGrade);
// // CDataManager::GetSpAtLevelUp
// CMem::WriteUChar(MAIN_OFFSET(0x318CC4), nMaxGrade);
// CMem::WriteUInt(MAIN_OFFSET(0x318CD4 + 2), 10836 + 840);
// }
// CMem::WriteUChar(MAIN_OFFSET(0x61B8F6), nMaxGrade);
// CMem::WriteUChar(MAIN_OFFSET(0x622659), nMaxGrade);
// CMem::WriteUChar(MAIN_OFFSET(0x622941), nMaxGrade);
// CMem::WriteUChar(MAIN_OFFSET(0x622941), nMaxGrade);
if (nMaxGrade > 70)
{
// 以下需要扩充类大小, 修改偏移
CMem::WriteUInt(MAIN_OFFSET(0x87162 + 3), 0xB678 + nMaxGrade * 4 + nMaxGrade * 12);
// CDataManager::set_reward_sp
CMem::WriteUInt(MAIN_OFFSET(0x318C26 + 2), 10836 + 840);
CMem::WriteUChar(MAIN_OFFSET(0x318C3B), nMaxGrade);
CMem::WriteUInt(MAIN_OFFSET(0x318C68 + 2), 10836 + 840);
CMem::WriteUChar(MAIN_OFFSET(0x318C79), nMaxGrade);
// CDataManager::GetSpAtLevelUp
CMem::WriteUChar(MAIN_OFFSET(0x318CC4), nMaxGrade);
CMem::WriteUInt(MAIN_OFFSET(0x318CD4 + 2), 10836 + 840);
}
CMem::WriteUChar(MAIN_OFFSET(0x61B8F6), nMaxGrade);
CMem::WriteUChar(MAIN_OFFSET(0x622659), nMaxGrade);
CMem::WriteUChar(MAIN_OFFSET(0x622941), nMaxGrade);
CMem::WriteUChar(MAIN_OFFSET(0x622941), nMaxGrade);
}
}

View File

@@ -9,7 +9,7 @@
#include <chrono>
#include "SqrReqScript.hpp"
#define WEBSCRIPT true;
// #define WEBSCRIPT true;
using asio::ip::tcp;