public static DeadBody Create(Transform ragdollTransform, Ped ped) { NetStatus.ThrowIfNotOnServer(); GameObject ragdollGameObject = Object.Instantiate(PedManager.Instance.ragdollPrefab); DeadBody deadBody = ragdollGameObject.GetComponentOrThrow <DeadBody>(); Object.Destroy(ragdollGameObject, PedManager.Instance.ragdollLifetime * Random.Range(0.85f, 1.15f)); ragdollGameObject.name = "dead body " + ped.name; ragdollTransform.SetParent(ragdollGameObject.transform); deadBody.m_framesDict = ragdollTransform.GetComponentsInChildren <Frame>() .ToDictionary(f => f.BoneId, f => new BoneInfo(f.transform)); foreach (var pair in deadBody.m_framesDict) { var rb = pair.Value.Rigidbody; if (rb != null) { deadBody.m_rigidBodiesDict.Add(pair.Key, new BoneInfo(rb.transform)); } } deadBody.InitSyncVarsOnServer(ped); NetManager.Spawn(ragdollGameObject); return(deadBody); }
public static Projectile Create( GameObject prefab, Vector3 position, Quaternion rotation, Ped shooterPed) { NetStatus.ThrowIfNotOnServer(); var go = Instantiate(prefab, position, rotation); var projectile = go.GetComponentOrThrow <Projectile>(); if (shooterPed != null) { var projectileCollider = projectile.GetComponentOrThrow <Collider>(); var pedColliders = shooterPed.GetComponentsInChildren <Collider>(); foreach (var pedCollider in pedColliders) { Physics.IgnoreCollision(pedCollider, projectileCollider); } } NetManager.Spawn(go); return(projectile); }
private static void SendChatMessageToPlayerAsServer(Player player, string msg, string sender) { NetStatus.ThrowIfNotOnServer(); var chatSync = player.GetComponent <ChatSync> (); if (chatSync != null) { chatSync.SendChatMsgToClient(player.connectionToClient, msg, sender); } }
public static void SendChatMessageToPlayerAsServer(Player player, string msg, bool useServerNick) { NetStatus.ThrowIfNotOnServer(); msg = ChatManager.ProcessChatMessage(msg, true); if (string.IsNullOrEmpty(msg)) { return; } SendChatMessageToPlayerAsServer(player, msg, useServerNick ? singleton.serverChatNick : ""); }
public static void SendChatMessageToAllPlayersAsServer(string msg, string sender) { NetStatus.ThrowIfNotOnServer(); msg = ChatManager.ProcessChatMessage(msg, true); if (string.IsNullOrEmpty(msg)) { return; } foreach (var player in Player.AllPlayers) { SendChatMessageToPlayerAsServer(player, msg, sender); } if (!NetStatus.IsHost()) { // running as dedicated server // we should invoke the event here, because there is no local player to receive the chat message F.InvokeEventExceptionSafe(onChatMessage, new ChatMessage(msg, sender)); } }
public void ExitVehicle(bool immediate = false) { NetStatus.ThrowIfNotOnServer(); this.GetStateOrLogError <VehicleExitingState> ().ExitVehicle(immediate); }
public void EnterVehicle(Vehicle vehicle, Vehicle.SeatAlignment seatAlignment, bool immediate = false) { NetStatus.ThrowIfNotOnServer(); // find state script, and call it's method this.GetStateOrLogError <VehicleEnteringState>().TryEnterVehicle(vehicle, seatAlignment, immediate); }
internal void SendChatMsgToClient(NetworkConnection conn, string msg, string sender) { NetStatus.ThrowIfNotOnServer(); this.TargetChatMsg(conn, msg, sender); }
public static void SendChatMessageToAllPlayersAsServer(string msg) { NetStatus.ThrowIfNotOnServer(); SendChatMessageToAllPlayersAsServer(msg, singleton.serverChatNick); }