[RemoteEvent("spawn")]
public void ClientEvent_Spawn(Player player, int id)
{
int where = -1;
try
{
NAPI.Entity.SetEntityDimension(player, 0);
Dimensions.DismissPrivateDimension(player);
Players[player].IsSpawned = true;
Players[player].IsAlive = true;
if (!VehicleManager.Vehicles.ContainsKey(Players[player].LastVeh)) Players[player].LastVeh = "";
if (Players[player].Unmute > 0)
{
if (!player.HasData("MUTE_TIMER"))
{
player.SetData("MUTE_TIMER", Timers.StartTask(1000, () => Admin.timer_mute(player)));
player.SetSharedData("voice.muted", true);
Trigger.ClientEvent(player, "voice.mute");
}
else Log.Write($"ClientSpawn MuteTime (MUTE) worked avoid", nLog.Type.Warn);
}
if (Players[player].ArrestTime != 0)
{
if (!player.HasData("ARREST_TIMER"))
{
player.SetData("ARREST_TIMER", Timers.StartTask(1000, () => Fractions.FractionCommands.arrestTimer(player)));
NAPI.Entity.SetEntityPosition(player, Fractions.Police.policeCheckpoints[4]);
NAPI.Entity.SetEntityPosition(player, Fractions.Sheriff.sheriffCheckpoints[4]);
}
else Log.Write($"ClientSpawn ArrestTime (KPZ) worked avoid", nLog.Type.Warn);
}
else if (Players[player].DemorganTime != 0)
{
if (!player.HasData("ARREST_TIMER"))
{
player.SetData("ARREST_TIMER", Timers.StartTask(1000, () => Admin.timer_demorgan(player)));
Weapons.RemoveAll(player, true);
NAPI.Entity.SetEntityPosition(player, Admin.DemorganPosition + new Vector3(0, 0, 1.5));
NAPI.Entity.SetEntityDimension(player, 1337);
}
else Log.Write($"ClientSpawn ArrestTime (DEMORGAN) worked avoid", nLog.Type.Warn);
}
else
{
switch (id)
{
case 0:
NAPI.Entity.SetEntityPosition(player, Players[player].SpawnPos);
Customization.ApplyCharacter(player);
if (Players[player].FractionID > 0) Fractions.Manager.Load(player, Players[player].FractionID, Players[player].FractionLVL);
Houses.House house = Houses.HouseManager.GetHouse(player);
if (house != null)
{
Houses.Garage garage = Houses.GarageManager.Garages[house.GarageID];
if (!string.IsNullOrEmpty(Players[player].LastVeh) && !string.IsNullOrEmpty(VehicleManager.Vehicles[Players[player].LastVeh].Position))
{
Vector3 position = JsonConvert.DeserializeObject<Vector3>(VehicleManager.Vehicles[Players[player].LastVeh].Position);
Vector3 rotation = JsonConvert.DeserializeObject<Vector3>(VehicleManager.Vehicles[Players[player].LastVeh].Rotation);
garage.SpawnCarAtPosition(player, Players[player].LastVeh, position, rotation);
Players[player].LastVeh = "";
}
}
break;
case 1:
int frac = Players[player].FractionID;
NAPI.Entity.SetEntityPosition(player, Fractions.Manager.FractionSpawns[frac]);
nInventory.ClearWithoutClothes(player);
Customization.ApplyCharacter(player);
if (Players[player].FractionID > 0) Fractions.Manager.Load(player, Players[player].FractionID, Players[player].FractionLVL);
house = Houses.HouseManager.GetHouse(player);
if (house != null)
{
Houses.Garage garage = Houses.GarageManager.Garages[house.GarageID];
if (!string.IsNullOrEmpty(Players[player].LastVeh) && !string.IsNullOrEmpty(VehicleManager.Vehicles[Players[player].LastVeh].Position))
{
VehicleManager.Vehicles[Players[player].LastVeh].Position = null;
VehicleManager.Save(Players[player].LastVeh);
garage.SendVehicleIntoGarage(Players[player].LastVeh);
Players[player].LastVeh = "";
}
}
break;
case 2:
house = Houses.HouseManager.GetHouse(player);
if (house != null)
{
NAPI.Entity.SetEntityPosition(player, house.Position + new Vector3(0, 0, 1.5));
nInventory.ClearWithoutClothes(player);
}
else if (Players[player].HotelID != -1)
{
NAPI.Entity.SetEntityPosition(player, Houses.Hotel.HotelEnters[Players[player].HotelID] + new Vector3(0, 0, 1.12));
}
else
{
NAPI.Entity.SetEntityPosition(player, Players[player].SpawnPos);
}
Customization.ApplyCharacter(player);
if (Players[player].FractionID > 0) Fractions.Manager.Load(player, Players[player].FractionID, Players[player].FractionLVL);
if (house != null)
{
Houses.Garage garage = Houses.GarageManager.Garages[house.GarageID];
if (!string.IsNullOrEmpty(Players[player].LastVeh) && !string.IsNullOrEmpty(VehicleManager.Vehicles[Players[player].LastVeh].Position))
{
VehicleManager.Vehicles[Players[player].LastVeh].Position = null;
VehicleManager.Save(Players[player].LastVeh);
garage.SendVehicleIntoGarage(Players[player].LastVeh);
Players[player].LastVeh = "";
}
}
break;
}
}
Trigger.ClientEvent(player, "acpos");
Trigger.ClientEvent(player, "ready");
Trigger.ClientEvent(player, "redset", Accounts[player].RedBucks);
player.SetData("spmode", false);
player.SetSharedData("InDeath", false);
NAPI.Task.Run(() =>
{
if (Players[player].AdminLVL > 0)
{
ReportSys.onAdminLoad(player);
}
if (Players[player].FractionID == 15)
{
Trigger.ClientEvent(player, "enableadvert", true);
Fractions.LSNews.onLSNPlayerLoad(player);
}
});
}
catch (Exception e) { Log.Write($"ClientEvent_Spawn/{where}: " + e.Message, nLog.Type.Error); }
}