150 lines
4.3 KiB
C++
150 lines
4.3 KiB
C++
// pch.h: 这是预编译标头文件。
|
||
// 下方列出的文件仅编译一次,提高了将来生成的生成性能。
|
||
// 这还将影响 IntelliSense 性能,包括代码完成和许多代码浏览功能。
|
||
// 但是,如果此处列出的文件中的任何一个在生成之间有更新,它们全部都将被重新编译。
|
||
// 请勿在此处添加要频繁更新的文件,这将使得性能优势无效。
|
||
|
||
#ifndef PCH_H
|
||
#define PCH_H
|
||
|
||
// 添加要在此处预编译的标头
|
||
#include "framework.h"
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
//-------------------------------------------------------------------------------------------Squirrel
|
||
|
||
// Push 根表
|
||
typedef int(SqPushRootT)(uint32_t v);
|
||
static SqPushRootT* SQPushRootTable = (SqPushRootT*)0x1358C50;
|
||
// Push 函数名
|
||
typedef int(realSqPushString)(uint32_t v, const wchar_t* funcName, int a);
|
||
static realSqPushString* RealSqPushString = (realSqPushString*)0x1358A60;
|
||
// Push 函数绑定闭包
|
||
typedef int(realSqNewClosure)(uint32_t v, void* funcAddr, int a);
|
||
static realSqNewClosure* RealSqNewClosure = (realSqNewClosure*)0x135B850;
|
||
// New槽
|
||
typedef int(SqNewSlot)(uint32_t v, int a, bool b);
|
||
static SqNewSlot* SQNewSlot = (SqNewSlot*)0x135AA80;
|
||
// 平栈
|
||
typedef int(SqPopTop)(uint32_t v);
|
||
static SqPopTop* SQPopTop = (SqPopTop*)0x1358FF0;
|
||
//GetInt
|
||
typedef int(SqGetIntFunc)(uint32_t v, uint32_t stackIndex, int* sint);
|
||
static SqGetIntFunc* SQGetInt = (SqGetIntFunc*)0x1358D70;
|
||
//GetFloat
|
||
typedef int(SqGetFloatFunc)(uint32_t v, uint32_t stackIndex, float* sfloat);
|
||
static SqGetFloatFunc* SQGetFloat = (SqGetFloatFunc*)0x1358DD0;
|
||
//GetBool
|
||
typedef int(SqGetBoolFunc)(uint32_t v, uint32_t stackIndex, bool* sbool);
|
||
static SqGetBoolFunc* SQGetBool = (SqGetBoolFunc*)0x1358E30;
|
||
//GetString
|
||
typedef int(SqGetStringFunc)(uint32_t v, uint32_t stackIndex, wchar_t** sstring);
|
||
static SqGetStringFunc* SQGetString = (SqGetStringFunc*)0x1358E70;
|
||
//GetUserdata
|
||
typedef int(SqGetUserdataFunc)(uint32_t v, uint32_t stackIndex, DWORD* up, DWORD* up1);
|
||
static SqGetUserdataFunc* SQGetUserdata = (SqGetUserdataFunc*)0x1358EC0;
|
||
//GetObjtypetag
|
||
typedef int(SqGetObjtypetagFunc)(uint32_t v, DWORD* up);
|
||
static SqGetObjtypetagFunc* SQGetObjtypetag = (SqGetObjtypetagFunc*)0x1358F20;
|
||
|
||
//获取Squirrel v 基址
|
||
inline uint32_t GetSqVm();
|
||
|
||
//新增nut接口funcName绑定C语言函数funcAddr
|
||
void RegisterNutApi(const wchar_t* funcName, void* funcAddr, uint32_t v = NULL);
|
||
|
||
//注册Nut函数
|
||
void RegisterNut();
|
||
|
||
//新增Nut接口绑定C函数 返回值必须为 SQInteger
|
||
// 示例如下
|
||
/*
|
||
static SQInteger math_abs(HSQUIRRELVM v)
|
||
{
|
||
SQInteger n;
|
||
const SQChar* str;
|
||
|
||
//获取nut脚本传来的第一个参数, 索引为2
|
||
//索引为1的参数是this指针
|
||
//sq_getinteger(v, 2, &n);
|
||
|
||
//获取字符串
|
||
//sq_getstring(v, 2, &str);
|
||
|
||
|
||
//返回一个整数给nut脚本
|
||
//sq_pushinteger(v, (SQInteger)(n));
|
||
|
||
//返回一个字符串给nut脚本 参数3为大小?
|
||
sq_pushstring(v, str, 5);
|
||
|
||
//return 1 表示该函数有返回值传给nut脚本
|
||
return 1;
|
||
}
|
||
*/
|
||
//-------------------------------------------------------------------------------------------Squirrel
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
//获取EXE使用头 号位数据
|
||
int GetExeNutWrtNum(int Pos);
|
||
|
||
//写EXE使用头 号位数据
|
||
void SetExeNutWrtNum(int Pos, int num);
|
||
|
||
//获取Nut头 号位数据
|
||
int GetNutArrNum(int Nut头地址, int Pos);
|
||
|
||
//写Nut头 号位数据
|
||
void SetNutArrNum(int Nut头地址, int Pos, int num);
|
||
|
||
//读内存偏移地址
|
||
int GetHook(int Addr, std::string 地址);
|
||
|
||
|
||
//发包函数 地址
|
||
typedef DWORD SendPacks();
|
||
static SendPacks* _SendPacks = (SendPacks*)0x1127EC0;
|
||
|
||
//发包Class this地址
|
||
typedef DWORD SendClass;
|
||
static SendClass* _SendClass = (SendClass*)0x1AEB6E4;
|
||
|
||
//发包类型 地址
|
||
typedef int(__fastcall* SendPacksType)(DWORD thisc, int Seat, int Parm);
|
||
static SendPacksType _SendpacksType = (SendPacksType)0x1127D60;
|
||
|
||
//发包参数 BYTE
|
||
typedef int(__fastcall* SendPacksByte)(DWORD thisc, int Seat, int Parm);
|
||
static SendPacksByte _SendPacksByte = (SendPacksByte)0x1128550;
|
||
|
||
//发包参数 WORD
|
||
typedef int(__fastcall* SendPacksWORD)(DWORD thisc, int Seat, int Parm);
|
||
static SendPacksWORD _SendPacksWord = (SendPacksWORD)0x1128580;
|
||
|
||
//发包参数 DWORD
|
||
typedef int(__fastcall* SendPacksDWORD)(DWORD thisc, int Seat, int Parm);
|
||
static SendPacksDWORD _SendPacksDWord = (SendPacksDWORD)0x11285B0;
|
||
|
||
#endif //PCH_H
|