Skip to content

Commit 1da327d

Browse files
Fix(Bot Control , NoClipBomb)
When Player control bots events can work fine now. noclip can plant bomb in bombsite.
1 parent d098fd9 commit 1da327d

10 files changed

+30
-46
lines changed

FunBulletTeleport.cs

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,27 +15,17 @@ public override void Fun(FunMatchPlugin plugin)
1515
plugin.RegisterEventHandler <EventBulletImpact>(EventBulletImpactHandler = (@event, info) =>
1616
{
1717
if (Enabled == false) return HookResult.Stop;
18-
CCSPlayerPawn? pawn = @event.Userid!.PlayerPawn.Get();
1918
Vector Position = new Vector(@event.X,@event.Y,@event.Z);
20-
if (pawn == null) return HookResult.Continue;
21-
pawn.Teleport(Position);
19+
var oringin = @event.Userid!.OriginalControllerOfCurrentPawn.Get()!;
20+
var oringinpawn = oringin.PlayerPawn.Get();
21+
if (oringinpawn is null) return HookResult.Continue;
22+
oringinpawn!.Teleport(Position);
2223
return HookResult.Continue;
2324
});
2425
}
2526

2627
public override void RegisterCommand(FunMatchPlugin plugin)
2728
{
28-
/*
29-
plugin.AddCommand("fun_bullet_teleport", "Start bullet teleport", (player, info) =>
30-
{
31-
this.Fun(plugin);
32-
this.DisPlayHelp();
33-
});
34-
plugin.AddCommand("!fun_bullet_teleport", "Stop bullet teleport", (player, info) =>
35-
{
36-
this.EndFun(plugin);
37-
});
38-
*/
3929
}
4030
public override void EndFun(FunMatchPlugin plugin)
4131
{

FunHealTeammates.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,9 @@ public override void Fun(FunMatchPlugin plugin)
6464
var Allplayers = Utilities.GetPlayers();
6565
foreach (var p in Allplayers)
6666
{
67-
if (p.UserId is null || (int)p.UserId < 0 || !p.PawnIsAlive || p.PlayerPawn is null) continue;
67+
if (p.UserId is null || (int)p.UserId < 0 || !p.PawnIsAlive || p.OriginalControllerOfCurrentPawn is null) continue;
6868
//if (p.IsBot) continue;
69-
var pawn = p.PlayerPawn.Get();
69+
var pawn = p.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
7070
playerTimersDict.TryAdd((int)p.UserId,plugin.AddTimer(BurnAfterSecond,() => BurnPlayer(pawn!),TimerFlags.REPEAT));
7171
pawn!.LastFriendlyFireDamageReductionRatio = 0.0f;
7272
}
@@ -78,7 +78,7 @@ public override void Fun(FunMatchPlugin plugin)
7878

7979
if (Enabled == false) return HookResult.Stop;
8080
Timer ?playerTimer;
81-
CCSPlayerPawn ?pawn = @event.Userid!.PlayerPawn.Get();
81+
CCSPlayerPawn ?pawn = @event.Userid!.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
8282
if (pawn is null) return HookResult.Continue;
8383
playerTimer = plugin.AddTimer(BurnAfterSecond,() => BurnPlayer(pawn!),TimerFlags.REPEAT);
8484
playerTimersDict.TryAdd((int)@event.Userid.UserId!,playerTimer);
@@ -104,7 +104,7 @@ public override void Fun(FunMatchPlugin plugin)
104104
if (@event.Attacker is null && @event.Userid is null) return HookResult.Continue;
105105
if (@event.Attacker == @event.Userid) return HookResult.Continue;
106106
if (@event.Attacker!.Team != @event.Userid!.Team) return HookResult.Continue;
107-
CCSPlayerPawn pawn = @event.Userid.PlayerPawn.Get()!;
107+
CCSPlayerPawn pawn = @event.Userid.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get()!;
108108
pawn.Health += HealValue;
109109
if (pawn.Health >= 100) pawn.Health = 100;
110110
Utilities.SetStateChanged(pawn, "CBaseEntity", "m_iHealth");

FunHealthRaid.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public override void EndFun(FunMatchPlugin plugin)
2121
plugin.DeregisterEventHandler(EventPlayerHurtHandler!);
2222
foreach (var p in Allplayers)
2323
{
24-
CCSPlayerPawn? pawn = p.PlayerPawn.Get();
24+
CCSPlayerPawn? pawn = p.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
2525
pawn!.MaxHealth = 100;
2626
pawn!.Health = 100;
2727
Utilities.SetStateChanged(pawn, "CBaseEntity", "m_iMaxHealth");
@@ -36,7 +36,7 @@ public override void Fun(FunMatchPlugin plugin)
3636
var Allplayers = Utilities.GetPlayers();
3737
foreach (var p in Allplayers)
3838
{
39-
CCSPlayerPawn? pawn = p.PlayerPawn.Get();
39+
CCSPlayerPawn? pawn = p.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
4040
p.GiveNamedItem(CsItem.Kevlar);
4141
p.GiveNamedItem(CsItem.KevlarHelmet);
4242
pawn!.MaxHealth = initHP;
@@ -51,7 +51,7 @@ public override void Fun(FunMatchPlugin plugin)
5151
if (@event.Userid is null || @event.Attacker is null) return HookResult.Continue;
5252
if (@event.Userid == @event.Attacker) return HookResult.Continue;
5353
if (@event.Userid.Team == @event.Attacker.Team) return HookResult.Continue;;
54-
var attacker = @event.Attacker.PlayerPawn.Get();
54+
var attacker = @event.Attacker.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
5555
var damage = @event.DmgHealth * RaidScale;
5656
if (damage > maxRaid) damage = maxRaid;
5757
Server.NextFrame(() =>

FunHighHP.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public override void EndFun(FunMatchPlugin plugin)
3434
Allplayers = Utilities.GetPlayers();
3535
foreach (var p in Allplayers)
3636
{
37-
CCSPlayerPawn? pawn = p.PlayerPawn.Get();
37+
CCSPlayerPawn? pawn = p.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
3838
pawn!.MaxHealth = 100;
3939
pawn!.Health = 100;
4040
pawn!.ArmorValue = 100;

FunJumpOrDie.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public override void Fun(FunMatchPlugin plugin)
4040
{
4141
if (p.UserId is null || (int)p.UserId < 0 || !p.PawnIsAlive || p.PlayerPawn is null) continue;
4242
//if (p.IsBot) continue;
43-
CCSPlayerPawn ?pawn = p.PlayerPawn.Get();
43+
CCSPlayerPawn ?pawn = p.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
4444
if (pawn is null) continue;
4545
playerTimer playerTimer = new();
4646
playerTimer.timer = plugin.AddTimer(BurnAfterSecond,() => BurnPlayer(pawn),TimerFlags.REPEAT);
@@ -66,7 +66,7 @@ public override void Fun(FunMatchPlugin plugin)
6666

6767
if (Enabled == false) return HookResult.Stop;
6868
playerTimer playerTimer = new();
69-
CCSPlayerPawn ?pawn = @event.Userid!.PlayerPawn.Get();
69+
CCSPlayerPawn ?pawn = @event.Userid!.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
7070
if (pawn is null) return HookResult.Continue;
7171
playerTimer.timer = plugin.AddTimer(BurnAfterSecond,() => BurnPlayer(pawn),TimerFlags.REPEAT);
7272
playerTimersDict.TryAdd((int)@event.Userid.UserId!,playerTimer);
@@ -79,7 +79,7 @@ public override void Fun(FunMatchPlugin plugin)
7979
if (@event is null) return HookResult.Continue;
8080
if (@event.Userid is null) return HookResult.Continue;
8181
if (@event.Userid.UserId is null) return HookResult.Continue;
82-
var pawn = @event.Userid.PlayerPawn.Get();
82+
var pawn = @event.Userid.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
8383
if (pawn is null) return HookResult.Continue;
8484
playerTimer? playerTimer = new();
8585
if (playerTimersDict.ContainsKey((int)@event.Userid.UserId))

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.3";
13+
public override string ModuleVersion => "1.0.4";
1414
public override void Load(bool hotReload)
1515
{
1616
Console.WriteLine("Fun Match Plugin Load!");

FunNoClip.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,11 @@ private void SetNoclip()
4646
Allplayers = Utilities.GetPlayers();
4747
foreach (var p in Allplayers)
4848
{
49-
//if (p.IsBot) continue;
49+
if (p.IsBot) continue;
50+
if (p.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get()!.IsDefusing || p.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get()!.InBombZone)
51+
{
52+
continue;
53+
}
5054
p.ExecuteClientCommandFromServer("noclip 1");
5155
}
5256
IsNoClipON = true;
@@ -58,7 +62,7 @@ private void SetNoclip()
5862
Allplayers = Utilities.GetPlayers();
5963
foreach (var p in Allplayers)
6064
{
61-
//if (p.IsBot) continue;
65+
if (p.IsBot) continue;
6266
p.ExecuteClientCommandFromServer("noclip 0");
6367
}
6468
IsNoClipON = false;

FunPlayerShootExChange.cs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ public override void Fun(FunMatchPlugin plugin)
2323
if (@event.Userid is null) return HookResult.Continue;
2424

2525
if (@event.Userid == @event.Attacker) return HookResult.Continue;
26-
var attacker = @event.Attacker.PlayerPawn.Get();
27-
var victim = @event.Userid.PlayerPawn.Get();
26+
var attacker = @event.Attacker.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
27+
var victim = @event.Userid.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
2828
Vector PositionAttacker = new Vector(attacker!.AbsOrigin!.X,attacker.AbsOrigin.Y,attacker.AbsOrigin.Z);
2929
Vector PositionVictim = new Vector(victim!.AbsOrigin!.X,victim.AbsOrigin.Y,victim.AbsOrigin.Z);
3030
Server.NextFrame(() =>
@@ -38,17 +38,7 @@ public override void Fun(FunMatchPlugin plugin)
3838
}
3939
public override void RegisterCommand(FunMatchPlugin plugin)
4040
{
41-
/*
42-
plugin.AddCommand("fun_shoot_exchange", "Start shoot exchange", (player, info) =>
43-
{
44-
this.Fun(plugin);
45-
this.DisPlayHelp();
46-
});
47-
plugin.AddCommand("!fun_shoot_exchange", "Stop shoot exchange", (player, info) =>
48-
{
49-
this.EndFun(plugin);
50-
});
51-
*/
41+
5242
}
5343
public override void EndFun(FunMatchPlugin plugin)
5444
{

FunToTheMoon.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public override void Fun(FunMatchPlugin plugin)
2222
{
2323
if (Enabled == false) return HookResult.Stop;
2424
if (@event.Userid is null) return HookResult.Continue;
25-
var pawn = @event.Userid.PlayerPawn.Get();
25+
var pawn = @event.Userid.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
2626
Vector bulletPosition = new Vector(@event.X,@event.Y,@event.Z);
2727
Vector playerPosition = pawn!.AbsOrigin!;
2828
double V2 = Math.Pow(playerPosition.X-bulletPosition.X,2) + Math.Pow(playerPosition.Y-bulletPosition.Y,2) + Math.Pow(playerPosition.Z-bulletPosition.Z,2);
@@ -43,8 +43,8 @@ public override void Fun(FunMatchPlugin plugin)
4343

4444
if (@event.Userid == @event.Attacker) return HookResult.Continue;
4545

46-
var attacker = @event.Attacker.PlayerPawn.Get();
47-
var victim = @event.Userid.PlayerPawn.Get();
46+
var attacker = @event.Attacker.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
47+
var victim = @event.Userid.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
4848
Vector PositionAttacker = new Vector(attacker!.AbsOrigin!.X,attacker.AbsOrigin.Y,attacker.AbsOrigin.Z);
4949
Vector PositionVictim = new Vector(victim!.AbsOrigin!.X,victim.AbsOrigin.Y,victim.AbsOrigin.Z);
5050

FunWNoStop.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public override void Fun(FunMatchPlugin plugin)
6767

6868
if (Enabled == false) return HookResult.Stop;
6969
Timer ?playerTimer;
70-
CCSPlayerPawn ?pawn = @event.Userid!.PlayerPawn.Get();
70+
CCSPlayerPawn ?pawn = @event.Userid!.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
7171
if (pawn is null) return HookResult.Continue;
7272
if (@event.Userid.UserId is null) {Console.WriteLine("null userid"); return HookResult.Continue;}
7373
int playerid = (int)@event.Userid.UserId;
@@ -87,7 +87,7 @@ public void CheckPlayerForward(int id)
8787
}
8888
if (!player.Buttons.HasFlag(PlayerButtons.Forward) || player.Buttons.HasFlag(PlayerButtons.Back) || player.Buttons.HasFlag(PlayerButtons.Duck) || player.Buttons.HasFlag(PlayerButtons.Walk))
8989
{
90-
CCSPlayerPawn ? pawn = player.PlayerPawn.Get();
90+
CCSPlayerPawn ? pawn = player.OriginalControllerOfCurrentPawn.Get()!.PlayerPawn.Get();
9191
BurnPlayer(pawn!);
9292
}
9393
}

0 commit comments

Comments
 (0)