private static bool Prefix(RagdollManager __instance, ref Vector3 pos, ref Quaternion rot, ref int classId, ref PlayerStats.HitInfo ragdollInfo, ref bool allowRecall, ref string ownerID, ref string ownerNick, ref int playerId) { var ev = new SpawningRagdollEventArgs( ragdollInfo.PlayerId == 0 ? null : API.Features.Player.Get(ragdollInfo.PlayerId), API.Features.Player.Get(__instance.gameObject), pos, rot, (RoleType)classId, ragdollInfo, allowRecall, ownerID, ownerNick, playerId); Player.OnSpawningRagdoll(ev); pos = ev.Position; rot = ev.Rotation; classId = (int)ev.RoleType; ragdollInfo = ev.HitInformations; allowRecall = ev.IsRecallAllowed; ownerID = ev.DissonanceId; ownerNick = ev.PlayerNickname; playerId = ev.PlayerId; return(ev.IsAllowed); }
internal void OnSpawningRagdoll(SpawningRagdollEventArgs ev) { if (IsLobby) { ev.IsAllowed = false; } }
public void OnSpawningRagdoll(SpawningRagdollEventArgs ev) { if (!Singleton.Config.IsEnabled) { return; } else { { RoomType[] _roomTypes = { RoomType.Hcz106, RoomType.Hcz939, RoomType.HczCrossing, RoomType.HczCurve, }; if (ev.HitInformations.GetDamageType() == DamageTypes.Pocket) { System.Random rnd = new System.Random(); int _value = rnd.Next(0, _roomTypes.Length); foreach (Room room in Map.Rooms) { if (room.Type == _roomTypes[_value]) { float posx = room.Position.x; float posy = room.Position.y + 2; float posz = room.Position.z; ev.Position = new Vector3(posx, posy, posz); Log.Debug($"{ev.PlayerNickname} as {ev.Owner.Role} died by 106 (nerd), Their corpse teleported to: {posx}, {posy}, {posz}", Singleton.Config.Debug); } } } } } }
internal void OnSpawnRagdoll(SpawningRagdollEventArgs ev) { if (!config.Ragdoll.canCreateRagdollGlobal && !config.Ragdoll.canCreateRagdoll[ev.RoleType]) { ev.IsAllowed = false; } }
private static bool Prefix(RagdollManager __instance, ref Vector3 pos, ref Quaternion rot, ref Vector3 velocity, ref int classId, ref PlayerStats.HitInfo ragdollInfo, ref bool allowRecall, ref string ownerID, ref string ownerNick, ref int playerId) { try { var ev = new SpawningRagdollEventArgs( ragdollInfo.PlayerId == 0 ? null : API.Features.Player.Get(ragdollInfo.PlayerId), API.Features.Player.Get(__instance.gameObject), pos, rot, velocity, (RoleType)classId, ragdollInfo, allowRecall, ownerID, ownerNick, playerId); Player.OnSpawningRagdoll(ev); pos = ev.Position; rot = ev.Rotation; velocity = ev.Velocity; classId = (int)ev.RoleType; ragdollInfo = ev.HitInformations; allowRecall = ev.IsRecallAllowed; ownerID = ev.DissonanceId; ownerNick = ev.PlayerNickname; playerId = ev.PlayerId; return(ev.IsAllowed); } catch (Exception e) { Exiled.API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.SpawningRagdoll: {e}\n{e.StackTrace}"); return(true); } }
public void OnSpawningRagdoll(SpawningRagdollEventArgs ev) { if (!API.IsSerpent(ev.Owner)) { return; } ev.IsAllowed = false; RagdollInfo info = new RagdollInfo(Server.Host.ReferenceHub, ev.DamageHandlerBase, ev.Role, ev.Position, ev.Rotation, ev.Nickname, ev.CreationTime); new Exiled.API.Features.Ragdoll(info, true); }
private static bool Prefix(RagdollManager __instance, ref Vector3 pos, ref Quaternion rot, ref Vector3 velocity, ref int classId, ref PlayerStats.HitInfo ragdollInfo, ref bool allowRecall, ref string ownerID, ref string ownerNick, ref int playerId) { try { var ev = new SpawningRagdollEventArgs( ragdollInfo.PlayerId == 0 ? null : API.Features.Player.Get(ragdollInfo.PlayerId), API.Features.Player.Get(playerId), pos, rot, velocity, (RoleType)classId, ragdollInfo, allowRecall, ownerID, ownerNick, playerId); Player.OnSpawningRagdoll(ev); pos = ev.Position; rot = ev.Rotation; velocity = ev.Velocity; classId = (int)ev.RoleType; ragdollInfo = ev.HitInformations; allowRecall = ev.IsRecallAllowed; ownerID = ev.DissonanceId; ownerNick = ev.PlayerNickname; playerId = ev.PlayerId; if (!ev.IsAllowed) { return(false); } Role role = __instance.hub.characterClassManager.Classes.SafeGet(classId); if (role.model_ragdoll == null) { return(false); } GameObject gameObject = UnityEngine.Object.Instantiate(role.model_ragdoll, pos + role.ragdoll_offset.position, Quaternion.Euler(rot.eulerAngles + role.ragdoll_offset.rotation)); Ragdoll component = gameObject.GetComponent <Ragdoll>(); component.Networkowner = new Ragdoll.Info(ownerID, ownerNick, ragdollInfo, role, playerId); component.NetworkallowRecall = allowRecall; component.NetworkPlayerVelo = velocity; Exiled.API.Features.Ragdoll ragdoll = new Exiled.API.Features.Ragdoll(component); Mirror.NetworkServer.Spawn(ragdoll.GameObject); Exiled.API.Features.Map.RagdollsValue.Add(ragdoll); return(false); } catch (Exception e) { Exiled.API.Features.Log.Error($"Exiled.Events.Patches.Events.Player.SpawningRagdoll: {e}\n{e.StackTrace}"); return(true); } }
public void OnSpawningRagdoll(SpawningRagdollEventArgs ev) { //This is made to help TypicalIllusion for his plugin. //This does not actually executes. RoomType[] _roomTypes = { RoomType.Hcz106, RoomType.Hcz939, RoomType.HczChkpA, RoomType.HczChkpB, RoomType.HczCrossing, RoomType.HczCurve, RoomType.HczEzCheckpoint }; if (ev.HitInformations.GetDamageType() == DamageTypes.Pocket) { System.Random rnd = new System.Random(); int _value = rnd.Next(0, _roomTypes.Length); foreach (Room room in Map.Rooms) { if (room.Type == _roomTypes[_value]) { float posx = room.Position.x; float posy = room.Position.y + 2; float posz = room.Position.z; ev.Position = new Vector3(posx, posy, posz); Exiled.API.Features.Log.Debug($"{ev.PlayerNickname} as {ev.Owner.Role} died by 106, Corpse teleported to: {posx}, {posy}, {posz}"); } } } }
/// <summary> /// Invoked before spawning a player's ragdoll. /// </summary> /// <param name="ev">The <see cref="SpawningRagdollEventArgs"/> instance.</param> public static void OnSpawningRagdoll(SpawningRagdollEventArgs ev) => SpawningRagdoll.InvokeSafely(ev);