Add ThirdEye door toggle and decoy ring config
This commit is contained in:
parent
38a7cb8c5c
commit
5c65f4ac71
8 changed files with 47 additions and 4 deletions
|
|
@ -10,6 +10,8 @@ using RayTraceAPI;
|
|||
using src.player.skills;
|
||||
using src.utils;
|
||||
using System.Collections.Concurrent;
|
||||
using System.ComponentModel.Design;
|
||||
using System.Security.Principal;
|
||||
using System.Text.RegularExpressions;
|
||||
using static CounterStrikeSharp.API.Core.Listeners;
|
||||
using static src.jRandomSkills;
|
||||
|
|
@ -738,7 +740,15 @@ namespace src.player
|
|||
if (entity == null || !entity.IsValid) return;
|
||||
|
||||
string designer = entity.DesignerName;
|
||||
if (designer.Contains("door") || designer.Contains("button") || designer.Contains("weapon") || designer.Contains("blocker")) return;
|
||||
|
||||
if (designer.Contains("door"))
|
||||
{
|
||||
if (playerInfo.Skill == Skills.ThirdEye && !ThirdEye.IsOrginalCamera(player))
|
||||
SkillUtils.ToogleDoor(entity, pawn);
|
||||
return;
|
||||
}
|
||||
|
||||
if (designer.Contains("button") || designer.Contains("weapon") || designer.Contains("blocker")) return;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
using CounterStrikeSharp.API;
|
||||
using CounterStrikeSharp.API.Core;
|
||||
using CounterStrikeSharp.API.Modules.Entities;
|
||||
using CounterStrikeSharp.API.Modules.Utils;
|
||||
using System.Drawing;
|
||||
using System.Collections.Concurrent;
|
||||
using src.utils;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Drawing;
|
||||
|
||||
namespace src.player.skills
|
||||
{
|
||||
|
|
@ -44,6 +45,19 @@ namespace src.player.skills
|
|||
cameras.TryRemove(player.Index, out _);
|
||||
}
|
||||
|
||||
public static bool IsOrginalCamera(CCSPlayerController player)
|
||||
{
|
||||
if (player == null || !player.IsValid) return true;
|
||||
|
||||
var pawn = player.PlayerPawn?.Value;
|
||||
if (pawn == null || !pawn.IsValid) return true;
|
||||
|
||||
if (cameras.TryGetValue(player.Index, out var cameraInfo) && cameraInfo.Item1 != 0)
|
||||
return pawn?.CameraServices?.ViewEntity.Raw == cameraInfo.Item1;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void OnTick()
|
||||
{
|
||||
foreach (var player in PlayerManager.GetTickPlayers())
|
||||
|
|
|
|||
|
|
@ -107,6 +107,7 @@ namespace src.utils
|
|||
public string DisableHUDOnDeathPermission { get; set; }
|
||||
public bool DisableSkillsOnRoundEnd { get; set; }
|
||||
public int? CurseSkillPerPlayer { get; set; }
|
||||
public bool ShowDecoyRing { get; set; }
|
||||
public WeaponPools Weapons { get; set; }
|
||||
public LanguageSystem LanguageSystem { get; set; }
|
||||
public HtmlHudCustomisation HtmlHudCustomisation { get; set; }
|
||||
|
|
@ -139,6 +140,7 @@ namespace src.utils
|
|||
DisableHUDOnDeathPermission = "@jRandomSkills/death";
|
||||
DisableSkillsOnRoundEnd = false;
|
||||
CurseSkillPerPlayer = null;
|
||||
ShowDecoyRing = true;
|
||||
|
||||
Weapons = new WeaponPools
|
||||
{
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ namespace src.utils
|
|||
|
||||
public static void Show(Skills skill, uint id, Vector center, float radius)
|
||||
{
|
||||
if (radius <= 0) return;
|
||||
if (radius <= 0 || !Config.LoadedConfig.ShowDecoyRing) return;
|
||||
|
||||
string key = MakeKey(skill, id);
|
||||
var ring = new Ring();
|
||||
|
|
|
|||
|
|
@ -1099,6 +1099,22 @@ namespace src.utils
|
|||
manager.OpenMainMenu(player, menu);
|
||||
}
|
||||
|
||||
public static void ToogleDoor(CBaseEntity entity, CBasePlayerPawn pawn)
|
||||
{
|
||||
if (pawn == null || !pawn.IsValid) return;
|
||||
if (entity == null || !entity.IsValid) return;
|
||||
if (!entity.DesignerName.Contains("door")) return;
|
||||
|
||||
var door = new CPropDoorRotating(entity.Handle);
|
||||
if (door == null || !door.IsValid) return;
|
||||
|
||||
if (door.DoorState == DoorState_t.DOOR_STATE_CLOSED || door.DoorState == DoorState_t.DOOR_STATE_CLOSING)
|
||||
door.AcceptInput("use", pawn, door, "!activator");
|
||||
|
||||
else if (door.DoorState == DoorState_t.DOOR_STATE_OPEN || door.DoorState == DoorState_t.DOOR_STATE_OPENING)
|
||||
door.AcceptInput("close");
|
||||
}
|
||||
|
||||
public static void SetTeamScores(short ctScore, short tScore, RoundEndReason roundEndReason)
|
||||
{
|
||||
if (jRandomSkills.Instance == null || jRandomSkills.Instance.GameRules == null) return;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -22,6 +22,7 @@
|
|||
"DisableHUDOnDeathPermission": "@jRandomSkills/death",
|
||||
"DisableSkillsOnRoundEnd": false,
|
||||
"CurseSkillPerPlayer": null,
|
||||
"ShowDecoyRing": true,
|
||||
"Weapons": {
|
||||
"Rifle": [
|
||||
"weapon_ak47",
|
||||
|
|
|
|||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue