Цитата (Darkeneez)
В smlib есть такая функция:
stock bool:Client_IsLookingAtWall(client, Float:distance=40.0)
Попробуй побаловаться.
Ничего не вышло !
Код
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
public OnPluginStart()
{
RegConsoleCmd("unblock", unblock);
}
public Action:unblock(client, args) {
if (Client_IsLookingAtWall(client)) {
PrintToChatAll("Застрял");
}
}
stock bool:Client_IsLookingAtWall(client, Float:distance=40.0) {
decl Float:posEye[3], Float:posEyeAngles[3];
new bool:isClientLookingAtWall = false;
GetClientEyePosition(client, posEye);
GetClientEyeAngles(client, posEyeAngles);
posEyeAngles[0] = 0.0;
new Handle:trace = TR_TraceRayFilterEx(posEye, posEyeAngles, CONTENTS_SOLID, RayType_Infinite, _smlib_TraceEntityFilter);
if (TR_DidHit(trace)) {
if (TR_GetEntityIndex(trace) > 0) {
CloseHandle(trace);
return false;
}
decl Float:posEnd[3];
TR_GetEndPosition(posEnd, trace);
if (GetVectorDistance(posEye, posEnd) <= distance) {
isClientLookingAtWall = true;
}
}
CloseHandle(trace);
return isClientLookingAtWall;
}
public bool:_smlib_TraceEntityFilter(entity, contentsMask)
{
return entity == 0;
}