[TUTORIAL] Spectator Mode For V3 Source

Joined
Aug 20, 2015
Messages
224
Reaction score
61
Like Undead Brasil -_-

Search :
void CameraHUD :: SetFPSCamera(r3dCamera &Cam )

Change :
//#if ndef FINAL_BUILD if(d_spectator_fov->GetFloat() > 0.0f)
GameFOV = d_spectator_fov->GetFloat();
else
//#endif

Search:
void CameraHUD :: ProcessFPSCamera()

ALL REPLACE
//#if ndef FINAL_BUILD FPS_Acceleration.Assign(0, 0, 0);


float glb_MouseSens = 0.5f; // in range (0.1 - 1.0)
float glb_MouseSensAdj = 1.0f; // in range (0.1 - 1.0)




enablemouselook = (Mouse->IsPressed(r3dMouse::mRightButton)) && !g_imgui_LockRbr;




// if (!enablemouselook && !d_force_mouse_movement_editor->GetBool()) return;




//
// Mouse controls are here
//
int mMX=Mouse->m_MouseMoveX, mMY=Mouse->m_MouseMoveY;


FPS_vViewOrig.x += float(-mMX) * glb_MouseSensAdj;
FPS_vViewOrig.y += float(-mMY) * glb_MouseSensAdj;


if(Gamepad->IsConnected()) // overwrite mouse
{
float X, Y;
Gamepad->GetRightThumb(X, Y);
FPS_vViewOrig.x += float(-X) * glb_MouseSensAdj * r_gamepad_view_sens->GetFloat();
FPS_vViewOrig.y += float(Y) * glb_MouseSensAdj * r_gamepad_view_sens->GetFloat() * (g_vertical_look->GetBool()?-1.0f:1.0f);
}


// Player can't look too high!
if(FPS_vViewOrig.y > 85) FPS_vViewOrig.y = 85;
if(FPS_vViewOrig.y < -85) FPS_vViewOrig.y = -85;


FPS_ViewAngle = FPS_vViewOrig; // + FPS_vViewDistortion;


if(FPS_ViewAngle.y > 360 ) FPS_ViewAngle.y = FPS_ViewAngle.y - 360;
if(FPS_ViewAngle.y < 0 ) FPS_ViewAngle.y = FPS_ViewAngle.y + 360;




D3DXMATRIX mr;


D3DXMatrixIdentity(&mr);
D3DXMatrixRotationYawPitchRoll(&mr, R3D_DEG2RAD(-FPS_ViewAngle.x), R3D_DEG2RAD(-FPS_ViewAngle.y), 0);


FPS_vVision = r3dVector(mr._31, mr._32, mr._33);


D3DXMatrixIdentity(&mr);
D3DXMatrixRotationYawPitchRoll(&mr, R3D_DEG2RAD(-FPS_ViewAngle.x), 0, 0);
FPS_vRight = r3dVector(mr._11, mr._12, mr._13);
FPS_vUp = r3dVector(0, 1, 0);
FPS_vForw = r3dVector(mr._31, mr._32, mr._33);


FPS_vForw.Normalize();
FPS_vRight.Normalize();
FPS_vVision.Normalize();


if (CameraMode == hud_TPSCamera)
{
ProcessTPSCamera();
return;
}


//extern float __EditorWalkSpeed;
float __EditorWalkSpeed = 6.0f; //DelpaNZ Spectator
float fSpeed = __EditorWalkSpeed;


//float fSpeed = r_editor_move_speed->GetFloat();


float mult = 1;
if(Keyboard->IsPressed(kbsLeftShift)) mult = 64.0f; //64.0f;


if(Keyboard->IsPressed(kbsW)) FPS_Acceleration.Z = fSpeed;
if(Keyboard->IsPressed(kbsS)) FPS_Acceleration.Z = -fSpeed * 0.7f;
if(Keyboard->IsPressed(kbsA)) FPS_Acceleration.X = -fSpeed * 0.7f;
if(Keyboard->IsPressed(kbsD)) FPS_Acceleration.X = fSpeed * 0.7f;
if(Keyboard->IsPressed(kbsQ)) FPS_Position.Y += SRV_WORLD_SCALE(1.0f)* r3dGetFrameTime() * mult;
if(Keyboard->IsPressed(kbsE)) FPS_Position.Y -= SRV_WORLD_SCALE(1.0f)* r3dGetFrameTime() * mult;


if(Gamepad->IsConnected())
{
float RX, RY, TL, TR;
Gamepad->GetLeftThumb(RX, RY);
Gamepad->GetTrigger(TL, TR);


if(RY>0.01f)
FPS_Acceleration.Z += RY*r_gamepad_move_speed->GetFloat();
else if(RY<-0.01f)
FPS_Acceleration.Z += RY*r_gamepad_move_speed->GetFloat();
if(RX>0.01f)
FPS_Acceleration.X += RX*r_gamepad_move_speed->GetFloat();
else if(RX<-0.01f)
FPS_Acceleration.X += RX*r_gamepad_move_speed->GetFloat();
FPS_Position.Y += r3dGetFrameTime() * TR * r_gamepad_move_speed->GetFloat();
FPS_Position.Y -= r3dGetFrameTime() * TL * r_gamepad_move_speed->GetFloat();
}


FPS_Position += FPS_vVision * FPS_Acceleration.Z * r3dGetFrameTime() * mult;
FPS_Position += FPS_vRight * FPS_Acceleration.X * r3dGetFrameTime() *mult;


//if (FPS_Position.Y < terra_GetH(FPS_Position)) FPS_Position.Y = terra_GetH(FPS_Position);


if(Keyboard->WasPressed(kbsF6))
{
r3dPoint3D PP = FPS_Position + FPS_vVision*60.0f;


r3dOutToLog("POINT at %f %f %f\n", PP.X, PP.Y, PP.Z);


GameObject *Car = srv_CreateGameObject("obj_Phys", "Data\\Models\\Objects\\Box01.sco", PP);
}


//#endif
}

Search :
void TPSGameHUD :: SetCameraPure ( r3dCamera &Cam)

Change :
if(d_video_spectator_mode->GetBool() || d_observer_mode->GetBool()) {
r3dPoint3D CamPos = FPS_Position;
CamPos.Y += 1.0f;
r3dPoint3D ViewPos = CamPos + FPS_vVision*10.0f;


//Cam.FOV = r_video_fov->GetFloat();
Cam.SetPosition( CamPos );
Cam.PointTo(ViewPos);


//LevelDOF = r_video_DOF_enable->GetBool();
_NEAR_DOF = 1;
_FAR_DOF = 1;
//DepthOfField_NearStart = r_video_nearDOF_start->GetFloat();
//DepthOfField_NearEnd = r_video_nearDOF_end->GetFloat();
//DepthOfField_FarStart = r_video_farDOF_start->GetFloat();
//DepthOfField_FarEnd = r_video_farDOF_end->GetFloat();

return;
}

Search :
void TPSGameHUD :: Process()


Change :
//----------------------------------------------------------------void TPSGameHUD :: Process() //SPECZ DELPANZ
//----------------------------------------------------------------
{
if( g_cursor_mode->GetInt() )
{
imgui_Update();
imgui2_Update();
}


{
r3dSetAsyncLoading( 1 ) ;
}


obj_Player* pl = gClientLogic().localPlayer_;
if(!pl) return;


//#if ndef FINAL_BUILD DELPAN
if (gUserProfile.ProfileData.isDevAccount) {
}
bool allow_specator_mode = true;


/*#else
bool allow_specator_mode = gUserProfile.CustomerID==1415858 && (gClientLogic().m_gameInfo.gameServerId==134216 || gClientLogic().m_gameInfo.gameServerId==148646); //MMZ
#endif */

Go Vars.h

Search :
d_show_muzzle


Replace :
REG_VAR( d_show_muzzle, 0, 0 );REG_VAR( d_map_force_load, "", 0 ); // map
REG_VAR( d_gfxlog_filter, true, 0 ); // scaleform log messages filter
REG_VAR( d_disable_render_hud, false, 0 );
REG_VAR( d_do_ragdoll, false, 0 );
REG_VAR( d_show_checker_texture, 0, 0 );
REG_VAR( d_visualize_tex_density, 0, 0 );
REG_VAR( d_disable_editor_gui, 0, 0 );
REG_VAR( d_force_mouse_movement_editor, false, 0 );
REG_VAR( d_dev_show_player_names, true, 0 );
REG_VAR( d_dev_do_not_show_player_id, false, 0 );
REG_VAR( d_enable_no_clip, false, 0 );
REG_VAR( d_enable_dev_flycam, true, 0 );
REG_VAR( d_enable_super_jump, 0, 0 );
REG_VAR( d_debug_show_lockbox_owner, false, 0 );

like Delete #if - #endif :|

For FRAUDE;) :junglejane:
 
Spectator mode is working in normal player.

To Fix ;

Search

if (gUserProfile.ProfileData.isDevAccount) {
}
bool allow_specator_mode = true;

Add below

if(Keyboard->WasPressed(kbsF8) && allow_specator_mode && gUserProfile.ProfileData.isDevAccount)


As follows

if (gUserProfile.ProfileData.isDevAccount) {
}
bool allow_specator_mode = true;
if(Keyboard->WasPressed(kbsF8) && allow_specator_mode && gUserProfile.ProfileData.isDevAccount)
{
//bool allow_specator_mode = true;
d_video_spectator_mode->SetBool(!d_video_spectator_mode->GetBool());
static float DOF_NS=0, DOF_NE=0, DOF_FS=0, DOF_FE=0;
static int DOF_N=0, DOF_F=0, DOF_ENABLE=0;
if(d_video_spectator_mode->GetBool())
{
FPS_vViewOrig.Assign(pl->ViewAngle);
// save
DOF_NS=DepthOfField_NearStart;
DOF_NE=DepthOfField_NearEnd;
DOF_FS=DepthOfField_FarStart;
DOF_FE=DepthOfField_FarEnd;
DOF_N=_NEAR_DOF;
DOF_F=_FAR_DOF;
DOF_ENABLE=LevelDOF;
}
else
{
// restore
DepthOfField_NearStart=DOF_NS;
DepthOfField_NearEnd=DOF_NE;
DepthOfField_FarStart=DOF_FS;
DepthOfField_FarEnd=DOF_FE;
_NEAR_DOF=DOF_N;
_FAR_DOF=DOF_F;
LevelDOF=DOF_ENABLE;
}
}
 
Back