From d882d8f6bc4ab19c8bbb7513e5b7db901fb66a46 Mon Sep 17 00:00:00 2001 From: Jackz Date: Sat, 29 Apr 2023 23:25:23 -0500 Subject: [PATCH] Improve code, highlight certain classnames --- plugins/GrabEnt.smx | Bin 13512 -> 18479 bytes scripting/GrabEnt.sp | 63 ++++++++++++++++++++++++++++++++----------- 2 files changed, 48 insertions(+), 15 deletions(-) diff --git a/plugins/GrabEnt.smx b/plugins/GrabEnt.smx index dccadec5d25e0670e9c2e977a45e9151109d0769..8e4ec1f7409351a2d6b9badd5ab01856e4de621d 100644 GIT binary patch literal 18479 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 wtQA8hh-sQL>Uf|P+zZB #include #include +#include public Plugin myinfo = { @@ -27,17 +28,19 @@ float g_fGrabDistance[MAXPLAYERS + 1]; MoveType g_pLastMoveType[MAXPLAYERS + 1]; bool g_pInRotationMode[MAXPLAYERS + 1]; bool g_eReleaseFreeze[MAXPLAYERS + 1] = { true, ... }; +bool g_bHighlightEntity[MAXPLAYERS+1]; Handle g_eGrabTimer[MAXPLAYERS+1]; int g_BeamSprite; int g_HaloSprite; +int g_iLaserIndex; -#define MAX_FORBIDDEN_CLASSNAMES 10 +#define MAX_FORBIDDEN_CLASSNAMES 7 static char FORBIDDEN_CLASSNAMES[MAX_FORBIDDEN_CLASSNAMES][] = { - "env_physics_blocker", - "env_player_blocker", - "func_brush", + // "env_physics_blocker", + // "env_player_blocker", + // "func_brush", "func_simpleladder", "func_button", "func_elevator", @@ -49,6 +52,13 @@ static char FORBIDDEN_CLASSNAMES[MAX_FORBIDDEN_CLASSNAMES][] = { "prop_ragdoll" }; +#define MAX_HIGHLIGHTED_CLASSNAMES 3 +static char HIGHLIGHTED_CLASSNAMES[MAX_HIGHLIGHTED_CLASSNAMES][] = { + "env_physics_blocker", + "env_player_blocker", + "func_brush" +} + public void OnPluginStart() { RegAdminCmd("sm_grabent_freeze", Cmd_ReleaseFreeze, ADMFLAG_CHEATS, "<0/1> - Toggle entity freeze/unfreeze on release."); @@ -59,6 +69,7 @@ public void OnPluginStart() public void OnMapStart() { + g_iLaserIndex = PrecacheModel("materials/sprites/laserbeam.vmt"); g_BeamSprite = PrecacheModel("materials/sprites/laser.vmt", true); g_HaloSprite = PrecacheModel("materials/sprites/halo01.vmt", true); @@ -190,6 +201,14 @@ public Action Cmd_Grab(client, args) { // Make sure rotation mode can immediately be entered g_pLastButtonPress[client] = GetGameTime() - 2.0; g_pInRotationMode[client] = false; + + g_bHighlightEntity[client] = false; + for(int i = 0; i < MAX_HIGHLIGHTED_CLASSNAMES; i++) { + if(StrEqual(HIGHLIGHTED_CLASSNAMES[i], sClass)) { + g_bHighlightEntity[client] = true; + break; + } + } DataPack pack; g_eGrabTimer[client] = CreateDataTimer(0.1, Timer_UpdateGrab, pack, TIMER_REPEAT); @@ -214,6 +233,13 @@ public Action Timer_UpdateGrab(Handle timer, DataPack pack) { // Continuously delay use of weapon, as to not fire any bullets when pushing/pulling/rotating SetWeaponDelay(client, 1.0); + + if(g_bHighlightEntity[client]) { + char targetname[64]; + GetEntPropString(g_pGrabbedEnt[client], Prop_Data, "m_iName", targetname, sizeof(targetname)); + PrintCenterText(client, "%s", targetname); + GlowEntity(g_pGrabbedEnt[client]); + } // *** Enable/Disable Rotation Mode if (GetClientButtons(client) & IN_RELOAD) { @@ -332,9 +358,10 @@ public Action Timer_UpdateGrab(Handle timer, DataPack pack) { // *** Runs whether in rotation mode or not float entNewPos[3]; - entNewPos[0] = GetEntNewPosition(client, 'x') + g_fGrabOffset[client][0]; - entNewPos[1] = GetEntNewPosition(client, 'y') + g_fGrabOffset[client][1]; - entNewPos[2] = GetEntNewPosition(client, 'z') + g_fGrabOffset[client][2]; + GetEntNewPosition(client, entNewPos); + entNewPos[0] += g_fGrabOffset[client][0]; + entNewPos[1] += g_fGrabOffset[client][1]; + entNewPos[2] += g_fGrabOffset[client][2]; float mins[3]; GetEntPropVector(g_pGrabbedEnt[client], Prop_Data, "m_vecMins", mins); @@ -400,10 +427,10 @@ int GetLookingEntity(int client, TraceEntityFilter filter) { return -1; } -stock float GetEntNewPosition(int client, char axis) +stock bool GetEntNewPosition(int client, float endPos[3]) { if (client > 0 && client <= MaxClients && IsClientInGame(client)) { - float endPos[3], clientEye[3], clientAngle[3], direction[3]; + float clientEye[3], clientAngle[3], direction[3]; GetClientEyePosition(client, clientEye); GetClientEyeAngles(client, clientAngle); @@ -411,17 +438,14 @@ stock float GetEntNewPosition(int client, char axis) ScaleVector(direction, g_fGrabDistance[client]); AddVectors(clientEye, direction, endPos); - TR_TraceRayFilter(clientEye, endPos, MASK_SOLID, RayType_EndPoint, TraceRayFilterEnt, client); + TR_TraceRayFilter(clientEye, endPos, MASK_OPAQUE, RayType_EndPoint, TraceRayFilterEnt, client); if (TR_DidHit(INVALID_HANDLE)) { TR_GetEndPosition(endPos); } - - if (axis == 'x') return endPos[0]; - else if (axis == 'y') return endPos[1]; - else if (axis == 'z') return endPos[2]; + return true; } - return 0.0; + return false; } ///// stock float GetInitialRayPosition(int client, char axis) @@ -501,6 +525,15 @@ stock void CreateRing(int client, float ang[3], float pos[3], float diameter, in } } +void GlowEntity(int entity) { + float pos[3], mins[3], maxs[3], angles[3]; + GetEntPropVector(entity, Prop_Send, "m_angRotation", angles); + GetEntPropVector(entity, Prop_Send, "m_vecOrigin", pos); + GetEntPropVector(entity, Prop_Send, "m_vecMins", mins); + GetEntPropVector(entity, Prop_Send, "m_vecMaxs", maxs); + Effect_DrawBeamBoxRotatableToAll(pos, mins, maxs, angles, g_iLaserIndex, 0, 0, 30, 0.1, 0.4, 0.4, 0, 0.1, { 0, 255, 0, 235 }, 0); +} + //============================================================================ // *** FILTERS *** // //============================================================================