Callbacks for revived, givenup.
This commit is contained in:
parent
d890dcd1f0
commit
b66e3b686e
|
@ -19,7 +19,7 @@
|
||||||
PlayerConnected = 50,
|
PlayerConnected = 50,
|
||||||
PlayerDisconnected = 51,
|
PlayerDisconnected = 51,
|
||||||
OnPlayerTypedMessage = 52,
|
OnPlayerTypedMessage = 52,
|
||||||
OnPlayerKilledAnotherPlayer = 53,
|
OnAPlayerDownedAnotherPlayer = 53,
|
||||||
OnPlayerJoining = 54,
|
OnPlayerJoining = 54,
|
||||||
SavePlayerStats = 55,
|
SavePlayerStats = 55,
|
||||||
OnPlayerAskingToChangeRole = 56,
|
OnPlayerAskingToChangeRole = 56,
|
||||||
|
@ -36,5 +36,7 @@
|
||||||
NotifyNewRoundState = 67,
|
NotifyNewRoundState = 67,
|
||||||
OnPlayerAskingToChangeTeam = 68,
|
OnPlayerAskingToChangeTeam = 68,
|
||||||
GameTick = 69,
|
GameTick = 69,
|
||||||
|
OnPlayerGivenUp = 70,
|
||||||
|
OnPlayerRevivedAnother = 71,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ using BattleBitAPI.Networking;
|
||||||
using BattleBitAPI.Server;
|
using BattleBitAPI.Server;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
|
using System.Windows.Markup;
|
||||||
|
|
||||||
namespace BattleBitAPI
|
namespace BattleBitAPI
|
||||||
{
|
{
|
||||||
|
@ -15,9 +16,38 @@ namespace BattleBitAPI
|
||||||
public string Name => mInternal.Name;
|
public string Name => mInternal.Name;
|
||||||
public IPAddress IP => mInternal.IP;
|
public IPAddress IP => mInternal.IP;
|
||||||
public GameServer<TPlayer> GameServer => mInternal.GameServer;
|
public GameServer<TPlayer> GameServer => mInternal.GameServer;
|
||||||
public GameRole Role => mInternal.Role;
|
public GameRole Role
|
||||||
public Team Team => mInternal.Team;
|
{
|
||||||
public Squads Squad => mInternal.Squad;
|
get => mInternal.Role;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (value == mInternal.Role)
|
||||||
|
return;
|
||||||
|
SetNewRole(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public Team Team
|
||||||
|
{
|
||||||
|
get => mInternal.Team;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (mInternal.Team != value)
|
||||||
|
ChangeTeam(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public Squads Squad
|
||||||
|
{
|
||||||
|
get => mInternal.Squad;
|
||||||
|
set
|
||||||
|
{
|
||||||
|
if (value == mInternal.Squad)
|
||||||
|
return;
|
||||||
|
if (value == Squads.NoSquad)
|
||||||
|
KickFromSquad();
|
||||||
|
else
|
||||||
|
JoinSquad(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
public bool InSquad => mInternal.Squad != Squads.NoSquad;
|
public bool InSquad => mInternal.Squad != Squads.NoSquad;
|
||||||
public int PingMs => mInternal.PingMs;
|
public int PingMs => mInternal.PingMs;
|
||||||
|
|
||||||
|
@ -27,9 +57,13 @@ namespace BattleBitAPI
|
||||||
public bool IsDown => mInternal.HP == 0f;
|
public bool IsDown => mInternal.HP == 0f;
|
||||||
public bool IsDead => mInternal.HP == -1f;
|
public bool IsDead => mInternal.HP == -1f;
|
||||||
|
|
||||||
public Vector3 Position => mInternal.Position;
|
public Vector3 Position
|
||||||
public PlayerStand Standing => mInternal.Standing;
|
{
|
||||||
public LeaningSide Leaning => mInternal.Leaning;
|
get => mInternal.Position;
|
||||||
|
set => Teleport(value);
|
||||||
|
}
|
||||||
|
public PlayerStand StandingState => mInternal.Standing;
|
||||||
|
public LeaningSide LeaningState => mInternal.Leaning;
|
||||||
public LoadoutIndex CurrentLoadoutIndex => mInternal.CurrentLoadoutIndex;
|
public LoadoutIndex CurrentLoadoutIndex => mInternal.CurrentLoadoutIndex;
|
||||||
public bool InVehicle => mInternal.InVehicle;
|
public bool InVehicle => mInternal.InVehicle;
|
||||||
public bool IsBleeding => mInternal.IsBleeding;
|
public bool IsBleeding => mInternal.IsBleeding;
|
||||||
|
@ -49,6 +83,22 @@ namespace BattleBitAPI
|
||||||
public virtual async Task OnSpawned()
|
public virtual async Task OnSpawned()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public virtual async Task OnDowned()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public virtual async Task OnGivenUp()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public virtual async Task OnRevivedByAnotherPlayer()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public virtual async Task OnRevivedAnotherPlayer()
|
||||||
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
public virtual async Task OnDied()
|
public virtual async Task OnDied()
|
||||||
{
|
{
|
||||||
|
@ -96,6 +146,10 @@ namespace BattleBitAPI
|
||||||
{
|
{
|
||||||
this.GameServer.KickFromSquad(this);
|
this.GameServer.KickFromSquad(this);
|
||||||
}
|
}
|
||||||
|
public void JoinSquad(Squads targetSquad)
|
||||||
|
{
|
||||||
|
this.GameServer.JoinSquad(this, targetSquad);
|
||||||
|
}
|
||||||
public void DisbandTheSquad()
|
public void DisbandTheSquad()
|
||||||
{
|
{
|
||||||
this.GameServer.DisbandPlayerCurrentSquad(this);
|
this.GameServer.DisbandPlayerCurrentSquad(this);
|
||||||
|
|
|
@ -307,7 +307,15 @@ namespace BattleBitAPI.Server
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
public virtual async Task OnAPlayerKilledAnotherPlayer(OnPlayerKillArguments<TPlayer> args)
|
public virtual async Task OnPlayerGivenUp(TPlayer player)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public virtual async Task OnAPlayerDownedAnotherPlayer(OnPlayerKillArguments<TPlayer> args)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
public virtual async Task OnAPlayerRevivedAnotherPlayer(TPlayer from,TPlayer to)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -439,6 +447,14 @@ namespace BattleBitAPI.Server
|
||||||
{
|
{
|
||||||
KickFromSquad(player.SteamID);
|
KickFromSquad(player.SteamID);
|
||||||
}
|
}
|
||||||
|
public void JoinSquad(ulong steamID, Squads targetSquad)
|
||||||
|
{
|
||||||
|
ExecuteCommand("setsquad " + steamID + " " + ((int)targetSquad));
|
||||||
|
}
|
||||||
|
public void JoinSquad(Player<TPlayer> player, Squads targetSquad)
|
||||||
|
{
|
||||||
|
JoinSquad(player.SteamID, targetSquad);
|
||||||
|
}
|
||||||
public void DisbandPlayerSquad(ulong steamID)
|
public void DisbandPlayerSquad(ulong steamID)
|
||||||
{
|
{
|
||||||
ExecuteCommand("squaddisband " + steamID);
|
ExecuteCommand("squaddisband " + steamID);
|
||||||
|
|
|
@ -701,6 +701,15 @@ namespace BattleBitAPI.Server
|
||||||
|
|
||||||
if (exist)
|
if (exist)
|
||||||
{
|
{
|
||||||
|
var @internal = mInstanceDatabase.GetPlayerInternals(steamID);
|
||||||
|
if (@internal.HP > -1f)
|
||||||
|
{
|
||||||
|
@internal.OnDie();
|
||||||
|
|
||||||
|
player.OnDied();
|
||||||
|
server.OnPlayerDied((TPlayer)player);
|
||||||
|
}
|
||||||
|
|
||||||
player.OnDisconnected();
|
player.OnDisconnected();
|
||||||
server.OnPlayerDisconnected((TPlayer)player);
|
server.OnPlayerDisconnected((TPlayer)player);
|
||||||
}
|
}
|
||||||
|
@ -740,7 +749,7 @@ namespace BattleBitAPI.Server
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case NetworkCommuncation.OnPlayerKilledAnotherPlayer:
|
case NetworkCommuncation.OnAPlayerDownedAnotherPlayer:
|
||||||
{
|
{
|
||||||
if (stream.CanRead(8 + 12 + 8 + 12 + 2 + 1 + 1))
|
if (stream.CanRead(8 + 12 + 8 + 12 + 2 + 1 + 1))
|
||||||
{
|
{
|
||||||
|
@ -770,7 +779,8 @@ namespace BattleBitAPI.Server
|
||||||
KillerTool = tool,
|
KillerTool = tool,
|
||||||
};
|
};
|
||||||
|
|
||||||
server.OnAPlayerKilledAnotherPlayer(args);
|
victimClient.OnDowned();
|
||||||
|
server.OnAPlayerDownedAnotherPlayer(args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1141,6 +1151,38 @@ namespace BattleBitAPI.Server
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case NetworkCommuncation.OnPlayerGivenUp:
|
||||||
|
{
|
||||||
|
if (stream.CanRead(8))
|
||||||
|
{
|
||||||
|
ulong steamID = stream.ReadUInt64();
|
||||||
|
if (resources.TryGetPlayer(steamID, out var client))
|
||||||
|
{
|
||||||
|
client.OnGivenUp();
|
||||||
|
server.OnPlayerGivenUp((TPlayer)client);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case NetworkCommuncation.OnPlayerRevivedAnother:
|
||||||
|
{
|
||||||
|
if (stream.CanRead(8 + 8))
|
||||||
|
{
|
||||||
|
ulong from = stream.ReadUInt64();
|
||||||
|
ulong to = stream.ReadUInt64();
|
||||||
|
if (resources.TryGetPlayer(to, out var toClient))
|
||||||
|
{
|
||||||
|
toClient.OnRevivedByAnotherPlayer();
|
||||||
|
|
||||||
|
if (resources.TryGetPlayer(from, out var fromClient))
|
||||||
|
{
|
||||||
|
fromClient.OnRevivedAnotherPlayer();
|
||||||
|
server.OnAPlayerRevivedAnotherPlayer((TPlayer)fromClient, (TPlayer)toClient);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
30
Program.cs
30
Program.cs
|
@ -18,6 +18,7 @@ class Program
|
||||||
}
|
}
|
||||||
class MyPlayer : Player<MyPlayer>
|
class MyPlayer : Player<MyPlayer>
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
class MyGameServer : GameServer<MyPlayer>
|
class MyGameServer : GameServer<MyPlayer>
|
||||||
{
|
{
|
||||||
|
@ -25,7 +26,34 @@ class MyGameServer : GameServer<MyPlayer>
|
||||||
{
|
{
|
||||||
ForceStartGame();
|
ForceStartGame();
|
||||||
}
|
}
|
||||||
public override async Task OnPlayerJoiningToServer(ulong steamID, PlayerJoiningArguments args)
|
|
||||||
|
|
||||||
|
public override async Task OnPlayerConnected(MyPlayer player)
|
||||||
{
|
{
|
||||||
|
await Console.Out.WriteLineAsync("Connected: "+player);
|
||||||
|
}
|
||||||
|
public override async Task OnPlayerSpawned(MyPlayer player)
|
||||||
|
{
|
||||||
|
await Console.Out.WriteLineAsync("Spawned: " + player);
|
||||||
|
}
|
||||||
|
public override async Task OnAPlayerDownedAnotherPlayer(OnPlayerKillArguments<MyPlayer> args)
|
||||||
|
{
|
||||||
|
await Console.Out.WriteLineAsync("Downed: " + args.Victim);
|
||||||
|
}
|
||||||
|
public override async Task OnPlayerGivenUp(MyPlayer player)
|
||||||
|
{
|
||||||
|
await Console.Out.WriteLineAsync("Giveup: " + player);
|
||||||
|
}
|
||||||
|
public override async Task OnPlayerDied(MyPlayer player)
|
||||||
|
{
|
||||||
|
await Console.Out.WriteLineAsync("Died: " + player);
|
||||||
|
}
|
||||||
|
public override async Task OnAPlayerRevivedAnotherPlayer(MyPlayer from, MyPlayer to)
|
||||||
|
{
|
||||||
|
await Console.Out.WriteLineAsync(from+" revived "+to);
|
||||||
|
}
|
||||||
|
public override async Task OnPlayerDisconnected(MyPlayer player)
|
||||||
|
{
|
||||||
|
await Console.Out.WriteLineAsync("Disconnected: " + player);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue