public bool SetVehicle(ServerVehicle a_vehicle) { if (Time.time > m_interactVehicleTime) { m_vehicle = a_vehicle; m_interactVehicleTime = Time.time + 1f; if (m_char != null) { m_char.collider.enabled = (null == m_vehicle); } return(true); } return(false); }
public void OnCarCommand(ServerPlayer player, string model = null) { if (string.IsNullOrWhiteSpace(model)) { player.Notify("Du musst ein Fahrzeug angeben!, NotificationType.Error"); return; } if (!uint.TryParse(model, out uint hash)) { hash = Alt.Hash(model); } var pos = player.Position + new Position(3, 0, 0); try { _ = new ServerVehicle(hash, pos, player.Rotation); } catch (Exception ex) { player.Notify(ex.Message, NotificationType.Error); } }
private void CalculateXpAndKarma(Transform a_victim, float a_weaponDamage) { if (!(null != a_victim) || !(0f < a_weaponDamage)) { return; } ServerNpc serverNpc = (a_victim.gameObject.layer != 9) ? null : a_victim.GetComponent <ServerNpc>(); if (null == serverNpc) { if (a_victim.gameObject.layer == 13) { ServerPlayer serverPlayer = null; ControlledChar component = a_victim.GetComponent <ControlledChar>(); serverPlayer = ((!(null != component)) ? null : component.GetServerPlayer()); if (serverPlayer == null || serverPlayer.IsSaint()) { return; } if (8f < serverPlayer.m_karma) { float num = a_weaponDamage * 0.5f * (serverPlayer.m_karma / 200f); if (IsSaint()) { num = Mathf.Max(2.5f, num); } ChangeKarmaBy(0f - num); } else if (IsSaint()) { ChangeKarmaBy(-2.5f); } } else if (a_victim.gameObject.layer == 19) { ServerBuilding component2 = a_victim.GetComponent <ServerBuilding>(); if (null != component2 && m_pid != component2.GetOwnerId() && IsSaint()) { ChangeKarmaBy(-2.5f); } } else { if (a_victim.gameObject.layer != 11) { return; } ServerVehicle component3 = a_victim.GetComponent <ServerVehicle>(); if (null != component3 && 0 < component3.GetPassengerCount()) { float num2 = a_weaponDamage * 0.25f; if (IsSaint()) { num2 = Mathf.Max(2.5f, num2); } ChangeKarmaBy(0f - num2); } } return; } int handItem = serverNpc.GetHandItem(); float num3 = Mathf.Min(serverNpc.GetLastHealth(), a_weaponDamage); float num4 = num3 * 0.2f + Items.GetWeaponXpMultiplier(handItem) * (num3 * 0.01f); if (!(0f < num4)) { return; } bool flag = true; for (int i = 0; i < m_killXp.Count; i++) { KillXp killXp = m_killXp[i]; if (killXp.player == null) { KillXp killXp2 = m_killXp[i]; if (serverNpc == killXp2.npc) { KillXp value = m_killXp[i]; value.xp += num4; value.deletetime = Time.time + 20f; m_killXp[i] = value; flag = false; break; } } } if (flag) { KillXp item = new KillXp(null, serverNpc, num4, Time.time + 20f); m_killXp.Add(item); } }
void api_onPlayerEnterVehicle(ServerPlayer player, ServerVehicle vehicle) { }