AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting (https://forums.alliedmods.net/forumdisplay.php?f=107)
-   -   TR_TraceRayFilter Help - Move beam relative to player angle (https://forums.alliedmods.net/showthread.php?t=325044)

scorpius2k1 06-06-2020 10:59

TR_TraceRayFilter Help - Move beam relative to player angle
 
If you run this code, 4 colored beams show surrounding you like a box. Right now, the box just moves with you which is only half of the idea. What I am trying to do is have each beam also rotate in the same direction if you move your mouse left or right. In other words, we should always have the same color beams showing in the same position relative to the player if they turn. The "box" should always be facing the same way as the player is turning. I am unsure how to go about this.

Using GetClientEyeAngles(client, fAngles), and then using the fAngles[1] vector seem to accomplish that movement, just not sure how to work it into the rest of the code to do what I want.

Thanks for any help! :bacon!:

PHP Code:

#include <sourcemod>
#include <sdktools>


int beammdl;
float g_fCmdWait[MAXPLAYERS+1];

public 
OnMapStart() {
    
beammdl PrecacheModel("materials/sprites/laserbeam.vmt"true); 
}

public 
Action OnPlayerRunCmd(int clientintbuttonsintimpulsefloat vel[3], float angles[3], intweaponintsubtypeintcmdnuminttickcountintseedint mouse[2]) {
    if(
g_fCmdWait[client] > GetGameTime()) { return Plugin_Continue; }

    
DrawBox(client);
    
g_fCmdWait[client] = GetGameTime() + 0.1;

    return 
Plugin_Continue;
}

DrawBox(client) {
    
decl Float:fBeamStart[3];
    
decl Float:fBeamEnd[3];
    
decl Float:fAngles[3];
    
decl iColor[4];
    
    
GetClientAbsOrigin(clientfBeamStart);
    
GetClientEyeAngles(clientfAngles);

    
fBeamStart[0] += 16.0;
    
fBeamStart[1] += 16.0;
    
    
fAngles[0] = -90.0;
    
    
iColor[0] = 255;
    
iColor[1] = 0;
    
iColor[2] = 0;
    
iColor[3] = 255;

    for(
int i<= 3i++) {
        switch (
i) {
            case 
1: { 
                
fBeamStart[0] -= 32.0;
                
iColor[0] = 0;
                
iColor[1] = 255;
                
iColor[2] = 0;
            }
            case 
2: { 
                
fBeamStart[1] -= 32.0;
                
iColor[0] = 0;
                
iColor[1] = 255;
                
iColor[2] = 255;
            }
            case 
3: { 
                
fBeamStart[0] += 32.0;
                
iColor[0] = 255;
                
iColor[1] = 255;
                
iColor[2] = 0;        
            }
        }

        
TR_TraceRayFilter(fBeamStartfAnglesMASK_SHOTRayType_InfiniteTraceEntityFilterclient);
        
TR_GetEndPosition(fBeamEnd);

        
TE_SetupBeamPoints(fBeamStartfBeamEndbeammdl0000.11.01.010.0iColor1); 
        
TE_SendToAll();
    }
}

public 
bool TraceEntityFilter(int entityint maskany data){
    if (
entity == data)
        return 
false;
    return 
true;




All times are GMT -4. The time now is 03:28.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.