Callbacks for revived, givenup.
This commit is contained in:
parent
d890dcd1f0
commit
b66e3b686e
|
@ -19,7 +19,7 @@
|
|||
PlayerConnected = 50,
|
||||
PlayerDisconnected = 51,
|
||||
OnPlayerTypedMessage = 52,
|
||||
OnPlayerKilledAnotherPlayer = 53,
|
||||
OnAPlayerDownedAnotherPlayer = 53,
|
||||
OnPlayerJoining = 54,
|
||||
SavePlayerStats = 55,
|
||||
OnPlayerAskingToChangeRole = 56,
|
||||
|
@ -36,5 +36,7 @@
|
|||
NotifyNewRoundState = 67,
|
||||
OnPlayerAskingToChangeTeam = 68,
|
||||
GameTick = 69,
|
||||
OnPlayerGivenUp = 70,
|
||||
OnPlayerRevivedAnother = 71,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ using BattleBitAPI.Networking;
|
|||
using BattleBitAPI.Server;
|
||||
using System.Net;
|
||||
using System.Numerics;
|
||||
using System.Windows.Markup;
|
||||
|
||||
namespace BattleBitAPI
|
||||
{
|
||||
|
@ -15,9 +16,38 @@ namespace BattleBitAPI
|
|||
public string Name => mInternal.Name;
|
||||
public IPAddress IP => mInternal.IP;
|
||||
public GameServer<TPlayer> GameServer => mInternal.GameServer;
|
||||
public GameRole Role => mInternal.Role;
|
||||
public Team Team => mInternal.Team;
|
||||
public Squads Squad => mInternal.Squad;
|
||||
public GameRole Role
|
||||
{
|
||||
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 int PingMs => mInternal.PingMs;
|
||||
|
||||
|
@ -27,9 +57,13 @@ namespace BattleBitAPI
|
|||
public bool IsDown => mInternal.HP == 0f;
|
||||
public bool IsDead => mInternal.HP == -1f;
|
||||
|
||||
public Vector3 Position => mInternal.Position;
|
||||
public PlayerStand Standing => mInternal.Standing;
|
||||
public LeaningSide Leaning => mInternal.Leaning;
|
||||
public Vector3 Position
|
||||
{
|
||||
get => mInternal.Position;
|
||||
set => Teleport(value);
|
||||
}
|
||||
public PlayerStand StandingState => mInternal.Standing;
|
||||
public LeaningSide LeaningState => mInternal.Leaning;
|
||||
public LoadoutIndex CurrentLoadoutIndex => mInternal.CurrentLoadoutIndex;
|
||||
public bool InVehicle => mInternal.InVehicle;
|
||||
public bool IsBleeding => mInternal.IsBleeding;
|
||||
|
@ -49,6 +83,22 @@ namespace BattleBitAPI
|
|||
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()
|
||||
{
|
||||
|
@ -96,6 +146,10 @@ namespace BattleBitAPI
|
|||
{
|
||||
this.GameServer.KickFromSquad(this);
|
||||
}
|
||||
public void JoinSquad(Squads targetSquad)
|
||||
{
|
||||
this.GameServer.JoinSquad(this, targetSquad);
|
||||
}
|
||||
public void DisbandTheSquad()
|
||||
{
|
||||
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);
|
||||
}
|
||||
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)
|
||||
{
|
||||
ExecuteCommand("squaddisband " + steamID);
|
||||
|
|
|
@ -701,6 +701,15 @@ namespace BattleBitAPI.Server
|
|||
|
||||
if (exist)
|
||||
{
|
||||
var @internal = mInstanceDatabase.GetPlayerInternals(steamID);
|
||||
if (@internal.HP > -1f)
|
||||
{
|
||||
@internal.OnDie();
|
||||
|
||||
player.OnDied();
|
||||
server.OnPlayerDied((TPlayer)player);
|
||||
}
|
||||
|
||||
player.OnDisconnected();
|
||||
server.OnPlayerDisconnected((TPlayer)player);
|
||||
}
|
||||
|
@ -740,7 +749,7 @@ namespace BattleBitAPI.Server
|
|||
}
|
||||
break;
|
||||
}
|
||||
case NetworkCommuncation.OnPlayerKilledAnotherPlayer:
|
||||
case NetworkCommuncation.OnAPlayerDownedAnotherPlayer:
|
||||
{
|
||||
if (stream.CanRead(8 + 12 + 8 + 12 + 2 + 1 + 1))
|
||||
{
|
||||
|
@ -770,7 +779,8 @@ namespace BattleBitAPI.Server
|
|||
KillerTool = tool,
|
||||
};
|
||||
|
||||
server.OnAPlayerKilledAnotherPlayer(args);
|
||||
victimClient.OnDowned();
|
||||
server.OnAPlayerDownedAnotherPlayer(args);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1141,6 +1151,38 @@ namespace BattleBitAPI.Server
|
|||
}
|
||||
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 MyGameServer : GameServer<MyPlayer>
|
||||
{
|
||||
|
@ -25,7 +26,34 @@ class MyGameServer : GameServer<MyPlayer>
|
|||
{
|
||||
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