Hi,
is there any function / hook to check if the choosen BasePlayer.Spawnpoint is a Bed or a random Spanwpoint?
Check if BasePlayer.SpawnPoint is/was Bed?Solved
nvm, got it with this code:
bool GetClosestOwnedBed(BasePlayer player, out object closestEntity)
{
closestEntity = false;
RaycastHit hit;
if (!UnityEngine.Physics.Raycast(player.eyes.position, -Vector3.up, out hit))
{
return false;
}
else
{
closestEntity = hit.GetEntity();
SleepingBag bag = closestEntity as SleepingBag;
if (closestEntity is SleepingBag && bag.OwnerID == player.userID)
{
return true;
}
else
{
return false;
}
}
}
....some code before here.....
//If Player spawns at his own SleepingBag => do nothing
object entity;
int processed = 0;
if (GetClosestOwnedBed(player, out entity))
{
return;
}
//If Player spawns random => Change Spawnpoint to "Faction HQ Spawn"
else
{
foreach (var spawn in factionData.FactionSpawns.Where(kvp => kvp.Value.FactionID == faction))
{
var x = factionData.FactionSpawns[spawn.Key].x;
var y = factionData.FactionSpawns[spawn.Key].y;
var z = factionData.FactionSpawns[spawn.Key].z;
MovePlayerPosition(player, new Vector3(x, y, z));
if (++processed == 1) break;
}
}
....some code after here..... Locked automatically