 |
|

09.07.2018, 11:20
|
|
Постоянный
Регистрация: 15.12.2013
Сообщений: 412
С нами:
6530249
Репутация:
133
|
|
Сообщение от Dark_Knight
Юзай вектора, они удобнее.
Ему же явно нужен неизменяемый C массив строк, он не использовал new, а значит все возможности аллокатора попросту не нужны. Более того, при каждом вызове функции будет вызываться конструктор на кучу элементов и забирать много рантайма
P.S а вообще это все должно быть в GXT игры
Код:
Код:
#if __cplusplus > 201402L
#include
#else
#include
namespace std {
template
constexpr std::size_t size(const Type (&input_array)[Num]) noexcept {
return Num;
}
}
#endif
void CALLBACK biz_check(std::string param) {
static const char str[][50] {
"Alhambra",
"PigPen",
"Misty Club",
"Casino Bellagio",
"Grove Street Bar",
"Sobrino de Botin",
"Vinewood Burger",
"Marina Burger",
"Idlewood Pizza",
"Downtown Cluc",
"Marina Cluc",
"Idelwood 24/7",
"Flint 24/7",
"Easter 24/7",
"Mullholand 24/7",
"Jizzy",
"Redsands West 24/7",
"Julius 24/7",
"Lil\"Probe\"inn",
"Idelwood Gas",
"Mullholang Gas",
"Whetstone 24/7",
"East Cluc",
"WillowField Cluc",
"Flats Cluc",
"Financial Pizza",
"Come-A-Lot Gas",
"FortCarson Gas",
"BoneCountry Gas",
"Julius Gas",
"PricklePine Gas",
"Flint Gas",
"Easter Gas",
"Doherty Gas",
"Juniper 24/7",
"Juniper Gas",
"Emerald Isle 24/7",
"Emerald Isle Gas",
"Redsands-West Gas",
"ElGuebrabos Gas",
"TierraRobada Gas",
"AngelPine Gas",
"WhetStone Gas",
"Dilimore Gas",
"Montgomery Gas"
};
for (auto i = 0; i getSAMP()->getChat()->AddChatMessage(COLOR_GREY, "-> %s", str[i]);
}
|
|
|

09.07.2018, 12:56
|
|
Познающий
Регистрация: 13.11.2014
Сообщений: 41
С нами:
6050727
Репутация:
58
|
|
Повторюсь с вопросом,так как уже заебался...
Происходит конфликт двух плагинов,а то есть перезапись хука HandleRPCPacketFunc,как исправить данную хурму?
Сообщение от Спойлер
Код:
Код:
#define SAMP_HOOKENTER_HANDLE_RPC 0x3743D
#define SAMP_HOOKENTER_HANDLE_RPC2 0x373C9
#define SAMP_HOOKEXIT_HANDLE_RPC 0x37443
#define SAMP_HOOKEXIT_HANDLE_RPC2 0x37451
void HandleRPCPacketFunc(unsigned char id, RPCParameters *rpcParams, void(*callback) (RPCParameters *))
{
if (rpcParams != nullptr && rpcParams->numberOfBitsOfData >= 8)
{
BitStream bsData(rpcParams->input, rpcParams->numberOfBitsOfData / 8, false);
switch (id)
{
case RPC_DeathMessage:
{
pSAMP->addMessageToChat(-1, "plugin ONE");
int16_t plaerid, killerid;
int8_t resaon;
bsData.ResetReadPointer();
bsData.Read(killerid);
bsData.Read(plaerid);
bsData.Read(resaon);
break;
}
}
}
callback(rpcParams);
}
void _declspec (naked) hook_handle_rpc_packet(void)
{
static RPCParameters *pRPCParams = nullptr;
static RPCNode *pRPCNode = nullptr;
static DWORD dwTmp = 0;
__asm pushad;
__asm mov pRPCParams, eax;
__asm mov pRPCNode, edi;
HandleRPCPacketFunc(pRPCNode->uniqueIdentifier, pRPCParams, pRPCNode->staticFunctionPointer);
dwTmp = pSAMP->getSAMPAddr() + SAMP_HOOKEXIT_HANDLE_RPC;
__asm popad;
__asm add esp, 4
__asm jmp dwTmp;
}
void _declspec (naked) hook_handle_rpc_packet2(void)
{
static RPCParameters *pRPCParams = nullptr;
static RPCNode *pRPCNode = nullptr;
static DWORD dwTmp = 0;
__asm pushad;
__asm mov pRPCParams, ecx;
__asm mov pRPCNode, edi;
HandleRPCPacketFunc(pRPCNode->uniqueIdentifier, pRPCParams, pRPCNode->staticFunctionPointer);
dwTmp = pSAMP->getSAMPAddr() + SAMP_HOOKEXIT_HANDLE_RPC2;
__asm popad;
__asm jmp dwTmp;
}
void InstallAllHooks()
{
static int iSAMPHooksInstalled;
if (!iSAMPHooksInstalled)
{
if (pSAMP->getInfo() == NULL)
return;
/*
https://github.com/sr-tream/UniLib/blob/master/UniLib/CHooks.hpp
*/
HookRPC1 = new CHookJmp(pSAMP->getSAMPAddr() + SAMP_HOOKENTER_HANDLE_RPC, hook_handle_rpc_packet, 6); //
HookRPC2 = new CHookJmp(pSAMP->getSAMPAddr() + SAMP_HOOKENTER_HANDLE_RPC2, hook_handle_rpc_packet2, 8);
iSAMPHooksInstalled = 1;
}
}
|
|
|

09.07.2018, 13:06
|
|
Новичок
Регистрация: 13.11.2014
Сообщений: 7
С нами:
6050727
Репутация:
58
|
|
|
|
|

09.07.2018, 13:21
|
|
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами:
6822856
Репутация:
213
|
|
Сообщение от #CJ
Повторюсь с вопросом,так как уже заебался...
Происходит конфликт двух плагинов,а то есть перезапись хука HandleRPCPacketFunc,как исправить данную хурму?
Сообщение от Спойлер
Код:
Код:
#define SAMP_HOOKENTER_HANDLE_RPC 0x3743D
#define SAMP_HOOKENTER_HANDLE_RPC2 0x373C9
#define SAMP_HOOKEXIT_HANDLE_RPC 0x37443
#define SAMP_HOOKEXIT_HANDLE_RPC2 0x37451
void HandleRPCPacketFunc(unsigned char id, RPCParameters *rpcParams, void(*callback) (RPCParameters *))
{
if (rpcParams != nullptr && rpcParams->numberOfBitsOfData >= 8)
{
BitStream bsData(rpcParams->input, rpcParams->numberOfBitsOfData / 8, false);
switch (id)
{
case RPC_DeathMessage:
{
pSAMP->addMessageToChat(-1, "plugin ONE");
int16_t plaerid, killerid;
int8_t resaon;
bsData.ResetReadPointer();
bsData.Read(killerid);
bsData.Read(plaerid);
bsData.Read(resaon);
break;
}
}
}
callback(rpcParams);
}
void _declspec (naked) hook_handle_rpc_packet(void)
{
static RPCParameters *pRPCParams = nullptr;
static RPCNode *pRPCNode = nullptr;
static DWORD dwTmp = 0;
__asm pushad;
__asm mov pRPCParams, eax;
__asm mov pRPCNode, edi;
HandleRPCPacketFunc(pRPCNode->uniqueIdentifier, pRPCParams, pRPCNode->staticFunctionPointer);
dwTmp = pSAMP->getSAMPAddr() + SAMP_HOOKEXIT_HANDLE_RPC;
__asm popad;
__asm add esp, 4
__asm jmp dwTmp;
}
void _declspec (naked) hook_handle_rpc_packet2(void)
{
static RPCParameters *pRPCParams = nullptr;
static RPCNode *pRPCNode = nullptr;
static DWORD dwTmp = 0;
__asm pushad;
__asm mov pRPCParams, ecx;
__asm mov pRPCNode, edi;
HandleRPCPacketFunc(pRPCNode->uniqueIdentifier, pRPCParams, pRPCNode->staticFunctionPointer);
dwTmp = pSAMP->getSAMPAddr() + SAMP_HOOKEXIT_HANDLE_RPC2;
__asm popad;
__asm jmp dwTmp;
}
void InstallAllHooks()
{
static int iSAMPHooksInstalled;
if (!iSAMPHooksInstalled)
{
if (pSAMP->getInfo() == NULL)
return;
/*
https://github.com/sr-tream/UniLib/blob/master/UniLib/CHooks.hpp
*/
HookRPC1 = new CHookJmp(pSAMP->getSAMPAddr() + SAMP_HOOKENTER_HANDLE_RPC, hook_handle_rpc_packet, 6); //
HookRPC2 = new CHookJmp(pSAMP->getSAMPAddr() + SAMP_HOOKENTER_HANDLE_RPC2, hook_handle_rpc_packet2, 8);
iSAMPHooksInstalled = 1;
}
}
Парсишь адрес функции которую вызывает хук и вызываешь в своём хуке (работает только если твой плагин грузится после первого), или ставишь хук в другом месте
|
|
|

09.07.2018, 13:38
|
|
Новичок
Регистрация: 13.11.2014
Сообщений: 7
С нами:
6050727
Репутация:
58
|
|
Сообщение от NarutoUA
Парсишь адрес функции которую вызывает хук и вызываешь в своём хуке (работает только если твой плагин грузится после первого), или ставишь хук в другом месте
Можешь помочь мне? Сообщение выше
|
|
|

09.07.2018, 13:42
|
|
Постоянный
Регистрация: 26.05.2013
Сообщений: 692
С нами:
6822856
Репутация:
213
|
|
Сообщение от AlexWhite
Можешь помочь мне? Сообщение выше
Не знаю, продебагай, ставиться ли вообще твой хук
|
|
|

09.07.2018, 14:45
|
|
Познающий
Регистрация: 13.11.2014
Сообщений: 41
С нами:
6050727
Репутация:
58
|
|
Интересует, как сделать это?
Сообщение от NarutoUA
...вызываешь в своём хуке...
Сообщение от NarutoUA
...ставишь хук в другом месте....
|
|
|

09.07.2018, 22:49
|
|
Постоянный
Регистрация: 04.02.2017
Сообщений: 429
С нами:
4878878
Репутация:
108
|
|
Подскажите как это будет в SF API
CLEO:
Код:
0ADB:
0@v
= car_model
#LANDSTAL
name
|
|
|

11.07.2018, 00:43
|
|
Познающий
Регистрация: 06.01.2016
Сообщений: 55
С нами:
5447426
Репутация:
58
|
|
Есть такой варик отправить машину на гибернизацию
Код:
Код:
system("shutdown /h");
Так же там можно указать через какое время это произвести.
Вопрос, как можно указать время, которое он должен будет провести в данном состоянии (сон/e.t.c)? Или каким еще вариантом можно реанимировать комп из такого состояния без действий человека (нажать на клаву, подергать мышкой, e.t.c)?
BIOS не катит.
Гибернизация/сон и подобные штуки подойдут, с учетом выключения питания или занижением его использования до минимума.
|
|
|

11.07.2018, 01:13
|
|
Новичок
Регистрация: 30.07.2015
Сообщений: 3
С нами:
5677630
Репутация:
51
|
|
Привет, Наруто. Хотел поинтересоваться чем и как ты ломанул РакБота) Нового кряка давненько не было, а посему хотелось бы попробвоать своими силами, тем более как-то даже интересно) Очень надеюсь, что подскажешь.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|