komashchenko
Идиот
- Сообщения
- 916
- Реакции
- 2,570
Пример проверки показан на CSGO, но на CSS так же.
Поскольку трассировкой это сделать нельзя, воспользуемся функцией с помощью которой проверяется может ли бот видеть точку, а именно IsLineBlockedBySmoke.
Поскольку трассировкой это сделать нельзя, воспользуемся функцией с помощью которой проверяется может ли бот видеть точку, а именно IsLineBlockedBySmoke.
PHP:
#include sdktools
stock bool LineGoesThroughSmoke(float from[3], float to[3])
{
static Address TheBots;
static Handle CBotManager_IsLineBlockedBySmoke;
static int OS;
if(OS == 0)
{
Handle hGameConf = LoadGameConfigFile("LineGoesThroughSmoke.games");
if(!hGameConf)
{
SetFailState("Could not read LineGoesThroughSmoke.games.txt");
return false;
}
OS = GameConfGetOffset(hGameConf, "OS");
TheBots = GameConfGetAddress(hGameConf, "TheBots");
if(!TheBots)
{
CloseHandle(hGameConf);
SetFailState("TheBots == null");
return false;
}
StartPrepSDKCall(SDKCall_Raw);
PrepSDKCall_SetFromConf(hGameConf, SDKConf_Signature, "CBotManager::IsLineBlockedBySmoke");
PrepSDKCall_AddParameter(SDKType_Vector, SDKPass_Pointer);
PrepSDKCall_AddParameter(SDKType_Vector, SDKPass_Pointer);
if(OS == 1) PrepSDKCall_AddParameter(SDKType_Float, SDKPass_Plain);
PrepSDKCall_SetReturnInfo(SDKType_Bool, SDKPass_Plain);
if(!(CBotManager_IsLineBlockedBySmoke = EndPrepSDKCall()))
{
CloseHandle(hGameConf);
SetFailState("Failed to get CBotManager::IsLineBlockedBySmoke function");
return false;
}
CloseHandle(hGameConf);
}
if(OS == 1) return SDKCall(CBotManager_IsLineBlockedBySmoke, TheBots, from, to, 1.0);
return SDKCall(CBotManager_IsLineBlockedBySmoke, TheBots, from, to);
}