Skip to content

Commit d098fd9

Browse files
Update Noclip Mode
Noclip Now enable in interval seconds
1 parent 69e24eb commit d098fd9

File tree

2 files changed

+40
-10
lines changed

2 files changed

+40
-10
lines changed

FunMatchPlugin.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ namespace FunMatchPlugin;
1010
public class FunMatchPlugin: BasePlugin
1111
{
1212
public override string ModuleName => "Fun Match Plugin";
13-
public override string ModuleVersion => "1.0.0";
13+
public override string ModuleVersion => "1.0.3";
1414
public override void Load(bool hotReload)
1515
{
1616
Console.WriteLine("Fun Match Plugin Load!");

FunNoClip.cs

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,65 @@
44

55
namespace FunMatchPlugin;
66

7+
using CounterStrikeSharp.API.Modules.Timers;
78
public class FunNoClip : FunBaseClass
89
{
910
public override string Decription => "NoClip ON 启用飞行";
1011
private List<CCSPlayerController> Allplayers = new();
1112
public FunNoClip(FunMatchPlugin plugin) : base(plugin){}
13+
private Timer ?NoclipOnTimer = null;
14+
private bool IsNoClipON = false;
15+
public float interval = 2.0f;
16+
1217
public override void Fun(FunMatchPlugin plugin)
1318
{
1419
if (Enabled) return;
1520
Enabled = true;
16-
ConVar.Find("sv_cheats")!.SetValue(Enabled);
17-
Allplayers = Utilities.GetPlayers();
18-
foreach (var p in Allplayers)
19-
{
20-
//if (p.IsBot) continue;
21-
p.ExecuteClientCommandFromServer("noclip 1");
22-
}
21+
IsNoClipON = false;
22+
NoclipOnTimer = plugin.AddTimer(interval,SetNoclip,TimerFlags.REPEAT);
2323
}
2424
public override void EndFun(FunMatchPlugin plugin)
2525
{
2626
Allplayers = Utilities.GetPlayers();
2727
foreach (var p in Allplayers)
2828
{
29-
if (p.IsValid && !p.IsBot)
29+
if (p.IsValid)
3030
{
3131
p.ExecuteClientCommandFromServer("noclip 0");
3232
}
3333
}
3434
Enabled = false;
35-
ConVar.Find("sv_cheats")!.SetValue(Enabled);
35+
IsNoClipON = false;
36+
ConVar.Find("sv_cheats")!.SetValue(false);
3637
Allplayers.Clear();
38+
if (NoclipOnTimer is not null) NoclipOnTimer.Kill();
39+
}
40+
41+
private void SetNoclip()
42+
{
43+
if (IsNoClipON is false)
44+
{
45+
ConVar.Find("sv_cheats")!.SetValue(true);
46+
Allplayers = Utilities.GetPlayers();
47+
foreach (var p in Allplayers)
48+
{
49+
//if (p.IsBot) continue;
50+
p.ExecuteClientCommandFromServer("noclip 1");
51+
}
52+
IsNoClipON = true;
53+
ConVar.Find("sv_cheats")!.SetValue(false);
54+
}
55+
else
56+
{
57+
ConVar.Find("sv_cheats")!.SetValue(true);
58+
Allplayers = Utilities.GetPlayers();
59+
foreach (var p in Allplayers)
60+
{
61+
//if (p.IsBot) continue;
62+
p.ExecuteClientCommandFromServer("noclip 0");
63+
}
64+
IsNoClipON = false;
65+
ConVar.Find("sv_cheats")!.SetValue(false);
66+
}
3767
}
3868
}

0 commit comments

Comments
 (0)