private void OnEntitySpawned(BaseEntity Entity) { if (Entity == null) { return; } if (Entity is BaseHelicopter) { anim = 0; BaseHelicopter helicopter = Entity as BaseHelicopter; baseent.Add(helicopter, Entity); var position = Entity.ServerPosition; baseposition.Remove(helicopter); baseposition.Add(helicopter, position); PatrolHelicopterAI AI = Entity.GetComponent <PatrolHelicopterAI>(); baseai.Add(helicopter, AI); BaseCombatEntity pat = Entity as BaseCombatEntity; basecombat.Add(helicopter, pat); //GenerateMarkers(helicopter); DisplayBannerToAll("spawn"); if (debug == true) { Puts($"BEFORE TIMER - IN BasePosition : {baseposition.Count}"); } // bonus info AfterSpawn(); } }
private void SpawnHelicopter(int num) { bool lifetime = false; if (ConVar.PatrolHelicopter.lifetimeMinutes == 0) { ConVar.PatrolHelicopter.lifetimeMinutes = 1; lifetime = true; } for (int i = 0; i < num; i++) { BaseEntity entity = GameManager.server.CreateEntity("assets/prefabs/npc/patrol helicopter/patrolhelicopter.prefab", new Vector3(), new Quaternion(), true); if (entity) { BaseHelicopter heli = entity.GetComponent <BaseHelicopter>(); entity.Invoke("CS_Helicopter", 3600f); entity.Spawn(); var csHeli = heli.gameObject.AddComponent <CS_Helicopter>(); CSHelicopters.Add(csHeli); csHeli.UIHealth = CSHelicopters.Count - 1; heli.GetComponent <CS_Helicopter>().enabled = true; MoveToArena(entity); _spawnTime.SetValue(entity.GetComponent <PatrolHelicopterAI>(), UnityEngine.Time.realtimeSinceStartup * 10); } } if (lifetime) { timer.Once(5f, () => ConVar.PatrolHelicopter.lifetimeMinutes = 0); } }
private bool CallHeliForPlayer(BasePlayer player) { var playerPos = player.transform.position; float mapWidth = (TerrainMeta.Size.x / 2) - 50f; var heliPos = new Vector3( playerPos.x < 0 ? -mapWidth : mapWidth, 30, playerPos.z < 0 ? -mapWidth : mapWidth ); BaseHelicopter heli = GameManager.server.CreateEntity("assets/prefabs/npc/patrol helicopter/patrolhelicopter.prefab", new Vector3(), new Quaternion(), true) as BaseHelicopter; if (!heli) { return(false); } PatrolHelicopterAI heliAI = heli.GetComponent <PatrolHelicopterAI>(); heli.Spawn(); heli.transform.position = heliPos; var component = heli.gameObject.AddComponent <PersonalHeliComponent>(); component.Init(this, player); foreach (var p in BasePlayer.activePlayerList) { SendReply(p, _("PlayerCalled", p.UserIDString, $"<color=#63ff64>{player.displayName}</color>")); } return(true); }
private IEnumerator SpawnRoundHelicopters() { int helicoptersToSpawn = Mathf.Max(1, Mathf.RoundToInt((float)maxHelicopters * ((float)currentRound / (float)rounds))); for (int i = 0; i < helicoptersToSpawn; i++) { Vector3 destination = _spawnSelectorA.GetSpawnPoint(); Vector2 random = (UnityEngine.Random.insideUnitCircle.normalized * Configuration.MaxTravelDistance); Vector3 position = destination + new Vector3(random.x, 50f, random.y); BaseHelicopter baseHelicopter = GameManager.server.CreateEntity(HELICOPTER_PREFAB, position) as BaseHelicopter; baseHelicopter.enableSaving = false; baseHelicopter.Spawn(); EventHelicopter eventHelicopter = baseHelicopter.gameObject.AddComponent <EventHelicopter>(); eventHelicopter.OnHelicopterSpawned(this, i + 1); eventHelicopter.Entity.health = heliHealth; eventHelicopter.Entity.SendNetworkUpdate(BasePlayer.NetworkQueue.Update); eventHelicopters.Add(eventHelicopter); yield return(CoroutineEx.waitForSeconds(1f)); eventHelicopter.SetPositionDestination(position, destination); } }
public void CreateForDebrisField(BaseHelicopter helicopter) { Vector3 position = helicopter.transform.position; float radius = Instance.Options.Zones.EventZoneRadius; Create(ZoneType.Debris, "Debris Field", helicopter, radius, GetEventEndTime()); }
private void SpawnHelicopter(int num) { bool lifetime = false; if (ConVar.PatrolHelicopter.lifetimeMinutes == 0) { ConVar.PatrolHelicopter.lifetimeMinutes = 1; lifetime = true; } for (int i = 0; i < num; i++) { BaseHelicopter entity = (BaseHelicopter)GameManager.server.CreateEntity("assets/prefabs/npc/patrol helicopter/patrolhelicopter.prefab", new Vector3(), new Quaternion(), true); entity.enableSaving = false; entity.Spawn(); var component = entity.gameObject.AddComponent <CSHelicopter>(); component.SpawnHelicopter(GetDestination(), adjMainRotorHealth, adjTailRotorHealth, adjEngineHealth, adjHeliHealth, adjHeliBulletDamage); CSHelicopters.Add(component); if (entity == null) { Puts("null heli"); } } if (lifetime) { timer.Once(5f, () => ConVar.PatrolHelicopter.lifetimeMinutes = 0); } ConVar.PatrolHelicopter.bulletAccuracy = adjHeliAccuracy; }
void Awake() { helicopter = GetComponent <BaseHelicopter>(); ai = GetComponent <PatrolHelicopterAI>(); heliId = CuiHelper.GetGuid(); isDieing = false; enabled = false; }
private void OnEntitySpawned(BaseHelicopter heli) { if (config.bulletDamage > 0.0) { heli.bulletDamage = config.bulletDamage; } heli.InvokeRepeating(() => FindTargets(heli.myAI), 5, 10); }
private void OnEntityKill(BaseHelicopter heli) { if (!_activeHelis.Remove(heli)) { return; } CheckEvent(); }
private void OnEntitySpawned(BaseHelicopter heli) { if (!CanShowPanel(heli)) { return; } _activeHelis.Add(heli); CheckHelicopter(); }
private bool CanShowPanel(BaseHelicopter heli) { object result = Interface.Call("MagicPanelCanShow", Name, heli); if (result is bool) { return((bool)result); } return(true); }
void Awake() { Helicopter = GetComponent <BaseHelicopter>(); AI = Helicopter.GetComponent <PatrolHelicopterAI>(); Helicopter.maxCratesToSpawn = 0; enabled = true; chopperSurvival.timer.Once(config.HelicopterSettings.CheckDistanceTimer, () => { if (this != null) { CheckDistance(GetComponent <BaseEntity>()); } }); }
void MarkerDisplayingDelete(BaseHelicopter delpatrol) { if (baseradius.ContainsKey(delpatrol) == true) { MapMarkerGenericRadius delmarker; baseradius.TryGetValue(delpatrol, out delmarker); delmarker.Kill(); delmarker.SendUpdate(); if (debug == true) { Puts($"PATROL MAPMARKER KILLED"); } } }
private void Awake() { player = GetComponent <BasePlayer>(); input = player.serverInput; rocketcycletimer = 0.0; reloadtimer = 0.0; isReloading = false; rocketNapalmReploadTime = RocketNapalmReloadTime; rocketMax = RocketMax; hasRockets = true; napalmMax = NapalmMax; hasNapalm = true; rocketDelay = RocketDelay; bulletDamage = BulletDamage; rocketcycle = false; PlayerPOS = player.transform.position + player.eyes.BodyForward() * 3f; string prefab = "assets/prefabs/npc/patrol helicopter/patrolhelicopter.prefab"; helicopterBase = GameManager.server.CreateEntity(prefab); heliAI = helicopterBase.GetComponent <PatrolHelicopterAI>(); heliAI.enabled = false; heliturret = helicopterBase.GetComponent <HelicopterTurret>(); heli = helicopterBase.GetComponent <BaseHelicopter>(); heli.InitalizeWeakspots(); if (!SpawnCrates) { heli.maxCratesToSpawn = 0; } heli.bulletDamage = bulletDamage; heli.spotlightTarget = FindTarget(target); helicopterBase.Spawn(); if (ShowCockpitOverlay) { CockpitOverlay(player); } if (ShowCrosshair) { CrosshairOverlay(player); } helicopterBase.transform.localPosition = PlayerPOS; helicopterBase.transform.rotation = player.eyes.rotation; }
private void OnEntityTakeDamage(BaseHelicopter baseHelicopter, HitInfo hitInfo) { if (baseHelicopter == null || hitInfo == null) { return; } if (baseHelicopter.GetComponent <EventHelicopter>()) { if (EventManager.GetUser(hitInfo.InitiatorPlayer) == null) { EventManager.ClearDamage(hitInfo); } } }
//////////////////////////////////////////////////////////// // HeliCopter Spawn //////////////////////////////////////// //////////////////////////////////////////////////////////// #region Helicopter void OnEntitySpawned(BaseNetworkable entity) { if (entity == null) { return; } //994850627 is the prefabID of a heli. if (entity.prefabID == 994850627) { BaseHelicopter heli = (BaseHelicopter)entity; heli.maxCratesToSpawn = 2; heli.bulletDamage = 10f; typeof(PatrolHelicopterAI).GetField("maxRockets", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue(entity.GetComponent <PatrolHelicopterAI>(), 20); } }
void OnEntitySpawned(BaseHelicopter heli) { if (!configData.alerts.patrolHeli) { return; } NextTick(() => { if (heli == null) { return; } SendMsg(Lang("PatrolHeli", null, GetLocation(heli.transform.position, null, null), GetLocationDest(heli.GetComponentInParent <PatrolHelicopterAI>().destination))); }); }
void OnEntityKill(BaseCombatEntity Entity, HitInfo info) { if (Entity == null) { return; } if (Entity is BaseHelicopter) { BaseHelicopter helicopterkilled = Entity as BaseHelicopter; if (baseent.ContainsKey(helicopterkilled) == true) { DisplayBannerToAll("killed"); MarkerDisplayingDelete(helicopterkilled); baseradius.Remove(helicopterkilled); basemessage.Remove(helicopterkilled); baseposition.Remove(helicopterkilled); baseai.Remove(helicopterkilled); basecombat.Remove(helicopterkilled); baseent.Remove(helicopterkilled); if (baseent.Count == 0) { patrolrefresh.Destroy(); patrolrefresh = null; if (debug == true) { Puts($"PATROL IS NO MORE. TIMER DESTROYED"); } baseradius.Clear(); basemessage.Clear(); baseposition.Clear(); baseai.Clear(); basecombat.Clear(); baseent.Clear(); } } } }
void OnEntitySpawned(BaseNetworkable entity) { if (entity.name.Contains("patrolhelicopter.prefab")) { string thing = entity.PrefabName; switch (thing) { case "patrolhelicopter.prefab": if (SpawnedHeli == true) { BaseHelicopter Chopper = (BaseHelicopter)entity; PrintToChat("<color=Red> [Coptor Tracker]</color> Patrol Helicopter Has Spawned Look Out!!"); SpawnedHeli = false; } else { KillCoptor(entity); } break; } } }
private void OnEntitySpawned(BaseHelicopter heli) { if (!_init) { return; } //Need double for HeliRefuel panel NextTick(() => { NextTick(() => { if (!CanShowPanel(heli)) { return; } _activeHelis.Add(heli); CheckEvent(); }); }); }
void OnEntitySpawned(BaseHelicopter heli) { if (!configData.Alerts.PatrolHeli) { return; } if (heli == null) { return; } var srcPos = heli.transform.position; var destPos = heli.GetComponentInParent <PatrolHelicopterAI>().destination; string msg = Lang("PatrolHeli", null, GetLocation(srcPos, null, null), GetLocationDest(destPos)); Server.Broadcast(msg); if (configData.Misc.LogToConsole) { Puts(msg); } if (configData.Misc.LogToFile) { LogToFile("log", $"[{DateTime.Now.ToString("HH:mm:ss")}] {msg}", this); } }
private void OnEntitySpawned(BaseHelicopter entity) { NextTick(() => { HandleEntity(entity); }); }
private void KillHeli(BaseHelicopter heli) { heli.maxCratesToSpawn = 0; heli.DieInstantly(); }
void AfterSpawn() { if (patrolrefresh == null) { if (debug == true) { Puts($"TIMER IS NULL"); } patrolrefresh = timer.Repeat(5, 0, () => { AfterSpawn(); }); } if (debug == true) { Puts($"VOID AFTERSPAWN"); } // bonus info foreach (var paire in baseent) { if (debug == true) { Puts($"AI COUNT : {baseent.Count}"); } // bonus info BaseEntity Entity2; Entity2 = paire.Value; BaseHelicopter helicopter = paire.Key; PatrolHelicopterAI myAI; baseai.TryGetValue(helicopter, out myAI); BaseCombatEntity patrol; basecombat.TryGetValue(helicopter, out patrol); var position2 = Entity2.ServerPosition; if (debug == true) { Puts($"ENTITY NEW POSITION : {position2} - SPEED {myAI.moveSpeed}"); } baseposition.Remove(helicopter); baseposition.Add(helicopter, position2); if (debug == true) { Puts($"Left Rockets : {myAI.numRocketsLeft}"); } if (debug == true) { Puts($"DESTINATION : {myAI.destination}"); } if (debug == true) { Puts($"SPAWNTIME : {myAI.spawnTime}"); } string names = ""; string message = ""; foreach (BasePlayer player in BasePlayer.activePlayerList) { List <int> distlist = new List <int>(); message = $"\nSpeed : <size=11><color=cyan>{myAI.moveSpeed}</color></size>\nLeft Rockets : <size=11><color=cyan>{myAI.numRocketsLeft}</color></size>"; basemessage.Remove(helicopter); basemessage.Add(helicopter, message); } } GenerateMarkers(); PatrolHUD(); }
public void BeginEvent(BaseHelicopter heli) { Instance.Puts($"Beginning patrol helicopter event, heli at @ {heli.transform.position}"); PatrolHelicopters.Add(heli); }
private bool IsPersonal(BaseHelicopter heli) => InvokePersonal <PersonalHeliComponent, object>(heli?.gameObject, (comp) => true) == null ? false : true;
private void Awake() { Heli = this.GetComponent <BaseHelicopter>(); }
public static bool ExecuteCommand(BasePlayer player, string command) { string[] args = command.Split(' '); if (player == null || args.Length == 0 || !playerInfo.ContainsKey(player.userID)) { return(false); } PlayerInfo info = playerInfo[player.userID]; switch (args[0]) { // Add subscriptions // syntax: subscription <name> <duration in seconds> case "subscription": if (args.Length != 3) { return(false); } info.AddSubscription(Convert.ToString(args[1]), Convert.ToInt32(args[2])); break; // Give item // syntax: give <itemname> [amount] [inventory] case "give": if (args.Length == 1) { return(false); } // Parameters int amount = args.Length == 3 ? Convert.ToInt32(args[2]) : 1; ItemContainer inventory = player.inventory.containerMain; if (args.Length == 4 && Convert.ToString(args[3]) == "belt") { inventory = player.inventory.containerBelt; } else if (args.Length == 4 && Convert.ToString(args[3]) == "wear") { inventory = player.inventory.containerWear; } ItemDefinition definition = ItemManager.FindItemDefinition(Convert.ToString(args[1])); if (definition == null) { return(false); } Item item = ItemManager.CreateByItemID(definition.itemid, amount); if (inventory.itemList.Count >= 24) { item.Drop(player.transform.position, new Vector3(0, 1f, 0)); } else { player.inventory.GiveItem(ItemManager.CreateByItemID(definition.itemid, amount), inventory); } break; // Call the helicopter to the caller // syntax: helicopter case "helicopter": BaseHelicopter helicopter = (BaseHelicopter)GameManager.server.CreateEntity("assets/prefabs/npc/patrol helicopter/patrolhelicopter.prefab", new Vector3(), new Quaternion(), true); if (helicopter == null) { return(false); } var ai = helicopter?.GetComponent <PatrolHelicopterAI>() ?? null; if (ai == null) { return(false); } ai.SetInitialDestination(player.transform.position + new Vector3(0, 25f, 0)); helicopter.Spawn(); break; } return(true); }