コード例 #1
0
 static void Postfix(AIUnitSpawn __instance)
 {
     if (Networker.isHost)
     {
         Debug.Log("Setting up new AI.");
         AIManager.setupAIAircraft(__instance.actor);
         Debug.Log("Telling client about newly spawned AI.");
         Actor actor = __instance.actor;
         if (!actor.isPlayer)
         {
             if (actor.name.Contains("Client"))
             {
                 return;
             }
             bool Aggresion = false;
             if (actor.gameObject.GetComponent <UIDNetworker_Sender>() != null)
             {
                 Debug.Log("Try sending ai " + actor.name + " to client.");
                 HPInfo[]            hPInfos2  = null;
                 int[]               cmLoadout = null;
                 UIDNetworker_Sender uidSender = actor.gameObject.GetComponent <UIDNetworker_Sender>();
                 if (actor.role == Actor.Roles.Air)
                 {
                     WeaponManager wm = actor.gameObject.GetComponent <WeaponManager>();
                     if (wm != null)
                     {
                         hPInfos2 = PlaneEquippableManager.generateHpInfoListFromWeaponManager(actor.weaponManager, PlaneEquippableManager.HPInfoListGenerateNetworkType.sender, uidSender.networkUID).ToArray();
                     }
                 }
                 AIUnitSpawn aIUnitSpawn = actor.gameObject.GetComponent <AIUnitSpawn>();
                 if (aIUnitSpawn == null)
                 {
                     Debug.LogWarning("AI unit spawn is null on ai " + actor.name);
                 }
                 else
                 {
                     Aggresion = aIUnitSpawn.engageEnemies;
                 }
                 bool            canBreak = false;
                 PhoneticLetters letters  = new PhoneticLetters();
                 foreach (var Group in VTScenario.current.groups.GetExistingGroups(actor.team))
                 {
                     foreach (var ID in Group.unitIDs)
                     {
                         if (ID == actor.unitSpawn.unitID)
                         {
                             letters  = Group.groupID;
                             canBreak = true;
                             break;
                         }
                     }
                     if (canBreak)
                     {
                         break;
                     }
                 }
                 List <ulong> ids = new List <ulong>();
                 ulong        lastID;
                 SAMLauncher  launcher = actor.gameObject.GetComponentInChildren <SAMLauncher>();
                 if (launcher != null)
                 {
                     foreach (var radar in launcher.lockingRadars)
                     {
                         if (radar.myActor == null)
                         {
                             Debug.LogError("Locking radar on one of the SAM's is literally null.");
                         }
                         if (VTOLVR_Multiplayer.AIDictionaries.reverseAllActors.TryGetValue(radar.myActor, out lastID))
                         {
                             ids.Add(lastID);
                             // Debug.Log("Aded a radar ID");
                         }
                         else
                         {
                             Debug.LogError("Couldn't get a locking radar on one of the SAM's, probably a dictionary problem.");
                         }
                     }
                 }
                 ulong[] irIDS             = new ulong[0];
                 IRSAMNetworker_Sender irs = actor.gameObject.GetComponentInChildren <IRSAMNetworker_Sender>();
                 if (irs != null)
                 {
                     irIDS = irs.irIDs;
                 }
                 Debug.Log("Finally sending AI " + actor.name + " to client all clients.");
                 if (canBreak)
                 {
                     NetworkSenderThread.Instance.SendPacketAsHostToAllClients(new Message_SpawnAIVehicle(actor.name, AIManager.GetUnitNameFromCatalog(actor.unitSpawn.unitName),
                                                                                                          VTMapManager.WorldToGlobalPoint(actor.gameObject.transform.position),
                                                                                                          new Vector3D(actor.gameObject.transform.rotation.eulerAngles), uidSender.networkUID, hPInfos2, cmLoadout, 0.65f, Aggresion, actor.unitSpawn.unitSpawner.unitInstanceID, letters, ids.ToArray(), irIDS),
                                                                               EP2PSend.k_EP2PSendReliable);
                 }
                 else
                 {
                     // Debug.Log("It seems that " + actor.name + " is not in a unit group, sending anyways.");
                     NetworkSenderThread.Instance.SendPacketAsHostToAllClients(new Message_SpawnAIVehicle(actor.name, AIManager.GetUnitNameFromCatalog(actor.unitSpawn.unitName),
                                                                                                          VTMapManager.WorldToGlobalPoint(actor.gameObject.transform.position),
                                                                                                          new Vector3D(actor.gameObject.transform.rotation.eulerAngles), uidSender.networkUID, hPInfos2, cmLoadout, 0.65f, Aggresion, actor.unitSpawn.unitSpawner.unitInstanceID, ids.ToArray(), irIDS),
                                                                               EP2PSend.k_EP2PSendReliable);
                 }
             }
             else
             {
                 Debug.Log("Could not find the UIDNetworker_Sender");
             }
         }
         AIManager.TellClientAboutAI(new Steamworks.CSteamID(0));
     }
 }
コード例 #2
0
    public static void setupAIAircraft(Actor actor)
    {
        if (actor.role == Actor.Roles.Missile || actor.isPlayer)
        {
            return;
        }
        if (actor.name.Contains("Rearm/Refuel"))
        {
            return;
        }
        foreach (AI ai in AIManager.AIVehicles)
        {
            if (ai.actor == actor)
            {
                return;
            }
        }
        if (actor.parentActor == null)
        {
            AIManager.AIVehicles.Add(new AIManager.AI(actor.gameObject, actor.unitSpawn.unitName, actor, Networker.networkUID + 1));
            foreach (Actor child in actor.gameObject.GetComponentsInChildren <Actor>())
            {
                ulong networkUID = Networker.GenerateNetworkUID();
                Debug.Log("Adding UID senders to " + child.name + $", their uID will be {networkUID}.");
                if (!VTOLVR_Multiplayer.AIDictionaries.allActors.ContainsKey(networkUID))
                {
                    VTOLVR_Multiplayer.AIDictionaries.allActors.Add(networkUID, child);
                }
                if (!VTOLVR_Multiplayer.AIDictionaries.reverseAllActors.ContainsKey(child))
                {
                    VTOLVR_Multiplayer.AIDictionaries.reverseAllActors.Add(child, networkUID);
                }
                UIDNetworker_Sender uidSender = child.gameObject.AddComponent <UIDNetworker_Sender>();
                uidSender.networkUID = networkUID;
                Debug.Log("Added UID sender!");

                Debug.Log("Checking for locking radars");
                foreach (LockingRadar radar in child.GetComponentsInChildren <LockingRadar>())
                {
                    if (radar.GetComponent <Actor>() == child)
                    {
                        Debug.Log($"Adding radar sender to object {child.name} as it is the same game object as this actor.");
                        LockingRadarNetworker_Sender lastLockingSender = child.gameObject.AddComponent <LockingRadarNetworker_Sender>();
                        lastLockingSender.networkUID = networkUID;
                        Debug.Log("Added locking radar!");
                    }
                    else if (radar.GetComponentInParent <Actor>() == child)
                    {
                        Debug.Log($"Adding radar sender to object {child.name} as it is a child of this actor.");
                        LockingRadarNetworker_Sender lastLockingSender = child.gameObject.AddComponent <LockingRadarNetworker_Sender>();
                        lastLockingSender.networkUID = networkUID;
                        Debug.Log("Added locking radar!");
                    }
                    else
                    {
                        Debug.Log("This radar is not direct child of this actor, ignoring");
                    }
                }

                Debug.Log("Checking for health");
                if (child.gameObject.GetComponent <Health>() != null)
                {
                    Debug.Log("adding health sender to ai");
                    HealthNetworker_Sender healthNetworker = child.gameObject.AddComponent <HealthNetworker_Sender>();
                    healthNetworker.networkUID = networkUID;
                    Debug.Log("added health sender to ai!");
                }
                else
                {
                    Debug.Log(child.name + " has no health?");
                }

                Debug.Log("checking for movement type");
                if (child.gameObject.GetComponent <ShipMover>() != null)
                {
                    Debug.Log("I am a ship!");
                    ShipNetworker_Sender shipNetworker = child.gameObject.AddComponent <ShipNetworker_Sender>();
                    shipNetworker.networkUID = networkUID;
                }
                else if (child.gameObject.GetComponent <GroundUnitMover>() != null)
                {
                    Debug.Log("I am a ground mover!");
                    if (child.gameObject.GetComponent <Rigidbody>() != null)
                    {
                        GroundNetworker_Sender lastGroundSender = child.gameObject.AddComponent <GroundNetworker_Sender>();
                        lastGroundSender.networkUID = networkUID;
                    }
                }
                else if (child.gameObject.GetComponent <Rigidbody>() != null)
                {
                    Debug.Log("I am physicsy!");
                    RigidbodyNetworker_Sender lastRigidSender = child.gameObject.AddComponent <RigidbodyNetworker_Sender>();
                    lastRigidSender.networkUID = networkUID;
                    //reduced tick rate for ground Units
                    if (child.role == Actor.Roles.Ground)
                    {
                        lastRigidSender.tickRate = 0.01f;
                    }
                    if (child.role == Actor.Roles.GroundArmor)
                    {
                        lastRigidSender.tickRate = 1.0f;
                    }
                }

                Debug.Log("checking if aircraft");
                if (!child.isPlayer && child.role == Actor.Roles.Air)
                {
                    if (child.weaponManager != null)
                    {
                        PlaneEquippableManager.generateHpInfoListFromWeaponManager(child.weaponManager, PlaneEquippableManager.HPInfoListGenerateNetworkType.generate, uidSender.networkUID);
                    }
                    PlaneNetworker_Sender lastPlaneSender = child.gameObject.AddComponent <PlaneNetworker_Sender>();
                    lastPlaneSender.networkUID = networkUID;
                }

                Debug.Log("checking ext lights");
                if (child.gameObject.GetComponentInChildren <ExteriorLightsController>() != null)
                {
                    //ExtNPCLight_Sender extLight = actor.gameObject.AddComponent<ExtNPCLight_Sender>();
                    //extLight.networkUID = networkUID;
                }

                Debug.Log("checking for guns");
                if (child.gameObject.GetComponentsInChildren <Actor>().Count() <= 1)
                {//only run this code on units without subunits
                    ulong turretCount = 0;
                    foreach (ModuleTurret moduleTurret in child.gameObject.GetComponentsInChildren <ModuleTurret>())
                    {
                        TurretNetworker_Sender tSender = moduleTurret.gameObject.AddComponent <TurretNetworker_Sender>();
                        tSender.networkUID = networkUID;
                        tSender.turretID   = turretCount;
                        Debug.Log("Added turret " + turretCount + " to actor " + networkUID + " uid");
                        turretCount++;
                    }
                    ulong gunCount = 0;
                    foreach (GunTurretAI moduleTurret in child.gameObject.GetComponentsInChildren <GunTurretAI>())
                    {
                        AAANetworker_Sender gSender = moduleTurret.gameObject.AddComponent <AAANetworker_Sender>();
                        gSender.networkUID = networkUID;
                        gSender.gunID      = gunCount;
                        Debug.Log("Added gun " + gunCount + " to actor " + networkUID + " uid");
                        gunCount++;
                    }
                }

                Debug.Log("checking for IRSams");
                IRSamLauncher ml = child.gameObject.GetComponentInChildren <IRSamLauncher>();
                if (ml != null)
                {
                    List <ulong>            samIDS = new List <ulong>();
                    MissileNetworker_Sender lastSender;
                    for (int i = 0; i < ml.ml.missiles.Length; i++)
                    {
                        lastSender            = ml.ml.missiles[i].gameObject.AddComponent <MissileNetworker_Sender>();
                        lastSender.networkUID = Networker.GenerateNetworkUID();
                        samIDS.Add(lastSender.networkUID);
                    }
                    child.gameObject.AddComponent <IRSAMNetworker_Sender>().irIDs = samIDS.ToArray();
                }

                Debug.Log("checking for soldier");
                Soldier soldier = child.gameObject.GetComponentInChildren <Soldier>();
                if (soldier != null)
                {
                    if (soldier.soldierType == Soldier.SoldierTypes.IRMANPAD)
                    {
                        List <ulong>            samIDS = new List <ulong>();
                        MissileNetworker_Sender lastSender;
                        for (int i = 0; i < soldier.irMissileLauncher.missiles.Length; i++)
                        {
                            lastSender            = soldier.irMissileLauncher.missiles[i].gameObject.AddComponent <MissileNetworker_Sender>();
                            lastSender.networkUID = Networker.GenerateNetworkUID();
                            samIDS.Add(lastSender.networkUID);
                        }
                        child.gameObject.AddComponent <IRSAMNetworker_Sender>().irIDs = samIDS.ToArray();
                    }
                }

                Debug.Log("checking for airport");
                AirportManager airport = child.gameObject.GetComponent <AirportManager>();
                if (airport != null)
                {
                    AIManager.SetUpCarrier(child.gameObject, networkUID, child.team);
                }
                //if (!child.unitSpawn.unitSpawner.spawned)
                //{
                //    Debug.Log("Actor " + child.name + " isn't spawned yet, still sending.");
                //}
            }
        }
        else
        {
            Debug.Log(actor.name + " has a parent, not giving an uID sender.");
        }
    }
コード例 #3
0
    public static List <Player> players = new List <Player>(); //This is the list of players
    /// <summary>
    /// This runs when the map has finished loading and hopefully
    /// when the player first can interact with the vehicle.
    /// </summary>
    public static IEnumerator MapLoaded()
    {
        Debug.Log("map loading started");
        while (VTMapManager.fetch == null || !VTMapManager.fetch.scenarioReady || FlightSceneManager.instance.switchingScene)
        {
            yield return(null);
        }
        Debug.Log("The map has loaded");
        gameLoaded = true;
        // As a client, when the map has loaded we are going to request a spawn point from the host
        SetPrefabs();

        carrierStart = FlightSceneManager.instance.playerActor.unitSpawn.unitSpawner.linkedToCarrier;

        if (!Networker.isHost)
        {
            FlightSceneManager.instance.playerActor.gameObject.transform.parent = null;
            Debug.Log($"Sending spawn request to host, host id: {Networker.hostID}, client id: {SteamUser.GetSteamID().m_SteamID}");
            Debug.Log("Killing all units currently on the map.");
            List <Actor> allActors = new List <Actor>();
            foreach (var actor in TargetManager.instance.allActors)
            {
                if (!actor.isPlayer)
                {
                    allActors.Add(actor);
                }
            }
            foreach (var actor in allActors)
            {
                TargetManager.instance.UnregisterActor(actor);
                GameObject.Destroy(actor.gameObject);
            }
            VTScenario.current.units.units.Clear();
            VTScenario.current.units.alliedUnits.Clear();
            VTScenario.current.units.enemyUnits.Clear();
            VTScenario.current.groups.DestroyAll();


            if (teamLeftie)
            {
                foreach (AirportManager airportManager in VTMapManager.fetch.airports)
                {
                    if (airportManager.team == Teams.Allied)
                    {
                        airportManager.team = Teams.Enemy;
                    }
                    else
                    if (airportManager.team == Teams.Enemy)
                    {
                        airportManager.team = Teams.Allied;
                    }
                }
            }


            var rearmPoints = GameObject.FindObjectsOfType <ReArmingPoint>();
            //back up option below

            if (teamLeftie)
            {
                foreach (ReArmingPoint rep in rearmPoints)
                {
                    if (rep.team == Teams.Allied)
                    {
                        rep.team      = Teams.Enemy;
                        rep.canArm    = true;
                        rep.canRefuel = true;
                    }
                    else
                    if (rep.team == Teams.Enemy)
                    {
                        rep.team = Teams.Allied;

                        rep.canArm    = true;
                        rep.canRefuel = true;
                    }
                }
            }


            Message_RequestSpawn msg = new Message_RequestSpawn(teamLeftie, SteamUser.GetSteamID().m_SteamID);
            NetworkSenderThread.Instance.SendPacketToSpecificPlayer(Networker.hostID, msg, EP2PSend.k_EP2PSendReliable);

            /*foreach (var actor in TargetManager.instance.allActors)
             * {
             *  VTScenario.current.units.AddSpawner(actor.unitSpawn.unitSpawner);
             * }*/
        }
        else
        {
            Debug.Log("Starting map loaded host routines");
            Networker.hostLoaded = true;
            Networker.hostReady  = true;
            foreach (var actor in TargetManager.instance.allActors)
            {
                AIManager.setupAIAircraft(actor);
            }
            NetworkSenderThread.Instance.SendPacketAsHostToAllClients(new Message_HostLoaded(true), EP2PSend.k_EP2PSendReliable);
            GameObject localVehicle = VTOLAPI.GetPlayersVehicleGameObject();
            if (localVehicle != null)
            {
                GenerateSpawns(localVehicle.transform);
                localUID = Networker.GenerateNetworkUID();
                UIDNetworker_Sender hostSender = localVehicle.AddComponent <UIDNetworker_Sender>();
                hostSender.networkUID = localUID;
                Debug.Log($"The host's uID is {localUID}");


                Transform hostTrans = localVehicle.transform;
                ///uncomment to randomise host spawn//
                ///

                localVehicle.transform.position = hostTrans.position;

                SpawnLocalVehicleAndInformOtherClients(localVehicle, hostTrans.transform.position, hostTrans.transform.rotation, localUID, 0);
            }
            else
            {
                Debug.Log("Local vehicle for host was null");
            }
            if (spawnRequestQueue.Count != 0)
            {
                SpawnRequestQueue();
            }
            Networker.alreadyInGame = true;
        }

        while (AIManager.AIsToSpawnQueue.Count > 0)
        {
            AIManager.SpawnAIVehicle(AIManager.AIsToSpawnQueue.Dequeue());
        }
        SpawnPlayersInPlayerSpawnQueue();


        if (!Networker.isHost)
        {
            // If the player is not the host, they only need a receiver?
            Debug.Log($"Player not the host, adding world data receiver");
            worldData = new GameObject();
            worldData.AddComponent <WorldDataNetworker_Receiver>();
        }
        else
        {
            // If the player is the host, setup the sender so they can send world data
            Debug.Log($"Player is the host, setting up the world data sender");
            worldData = new GameObject();
            worldData.AddComponent <WorldDataNetworker_Sender>();
        }
    }
コード例 #4
0
    /// <summary>
    /// Tell the connected clients about all the vehicles the host has. This code should never be run on a client.
    /// </summary>
    /// <param name="steamID">Pass 0 to tell it to every client.</param>
    public static void TellClientAboutAI(CSteamID steamID)
    {
        if (!Networker.isHost)
        {
            Debug.LogWarning("The client shouldn't be trying to tell everyone about AI");
            return;
        }
        Debug.Log("Trying sending AI's to client " + steamID);
        foreach (var actor in TargetManager.instance.allActors)
        {
            if (actor == null)
            {
                continue;
            }
            if (actor.parentActor != null)
            {
                continue;
            }
            Debug.Log("Trying sending new stage 1");
            if (!actor.isPlayer)
            {
                if (actor.name.Contains("Client [") == false)
                {
                    Debug.Log("Trying sending new stage 2");
                    bool Aggresion = false;
                    if (actor.gameObject.GetComponent <UIDNetworker_Sender>() != null)
                    {
                        Debug.Log("Try sending ai " + actor.name + " to client.");
                        HPInfo[]            hPInfos2  = null;
                        int[]               cmLoadout = null;
                        UIDNetworker_Sender uidSender = actor.gameObject.GetComponent <UIDNetworker_Sender>();
                        List <ulong>        subUIDs   = new List <ulong>();
                        foreach (UIDNetworker_Sender subActor in actor.gameObject.GetComponentsInChildren <UIDNetworker_Sender>())
                        {
                            subUIDs.Add(subActor.networkUID);
                            Debug.Log("Found ID sender with ID " + subActor.networkUID);
                        }

                        if (actor.role == Actor.Roles.Air)
                        {
                            WeaponManager wm = actor.gameObject.GetComponent <WeaponManager>();
                            if (wm != null)
                            {
                                hPInfos2 = PlaneEquippableManager.generateHpInfoListFromWeaponManager(actor.weaponManager, PlaneEquippableManager.HPInfoListGenerateNetworkType.sender, uidSender.networkUID).ToArray();
                            }
                        }
                        AIUnitSpawn aIUnitSpawn = actor.gameObject.GetComponent <AIUnitSpawn>();
                        if (aIUnitSpawn == null)
                        {
                            Debug.LogWarning("AI unit spawn is null on ai " + actor.name);
                        }
                        else
                        {
                            Aggresion = aIUnitSpawn.engageEnemies;
                        }
                        bool            canBreak = false;
                        PhoneticLetters letters  = new PhoneticLetters();
                        foreach (var Group in VTScenario.current.groups.GetExistingGroups(actor.team))
                        {
                            foreach (var ID in Group.unitIDs)
                            {
                                if (aIUnitSpawn != null)
                                {
                                    if (ID == actor.unitSpawn.unitID)
                                    {
                                        letters  = Group.groupID;
                                        canBreak = true;
                                        break;
                                    }
                                }
                            }
                            if (canBreak)
                            {
                                break;
                            }
                        }

                        Debug.LogWarning("passed group stuff");
                        List <ulong> ids = new List <ulong>();
                        ulong        lastID;
                        SAMLauncher  launcher = actor.gameObject.GetComponentInChildren <SAMLauncher>();
                        if (launcher != null)
                        {
                            foreach (var radar in launcher.lockingRadars)
                            {
                                if (radar.myActor == null)
                                {
                                    Debug.LogError("Locking radar on one of the SAM's is literally null.");
                                }
                                if (VTOLVR_Multiplayer.AIDictionaries.reverseAllActors.TryGetValue(radar.myActor, out lastID))
                                {
                                    ids.Add(lastID);
                                    // Debug.Log("Aded a radar ID");
                                }
                                else
                                {
                                    Debug.LogError("Couldn't get a locking radar on one of the SAM's, probably a dictionary problem.");
                                }
                            }
                        }
                        ulong[] irIDS             = new ulong[0];
                        IRSAMNetworker_Sender irs = actor.gameObject.GetComponentInChildren <IRSAMNetworker_Sender>();
                        if (irs != null)
                        {
                            irIDS = irs.irIDs;
                        }
                        bool redfor = false;

                        if (actor.team == Teams.Enemy)
                        {
                            redfor = true;
                        }
                        if (steamID != new CSteamID(0))
                        {
                            Debug.Log("Finally sending AI " + actor.name + " to client " + steamID);
                            Debug.Log("This unit is made from " + subUIDs.Count + " actors! ");
                            if (canBreak)
                            {
                                NetworkSenderThread.Instance.SendPacketToSpecificPlayer(steamID, new Message_SpawnAIVehicle(actor.name, GetUnitNameFromCatalog(actor.unitSpawn.unitName), redfor,
                                                                                                                            VTMapManager.WorldToGlobalPoint(actor.gameObject.transform.position),
                                                                                                                            actor.gameObject.transform.rotation, uidSender.networkUID, subUIDs.ToArray(), hPInfos2, cmLoadout, 0.65f, Aggresion, actor.unitSpawn.unitSpawner.unitInstanceID, letters, ids.ToArray(), irIDS),
                                                                                        EP2PSend.k_EP2PSendReliableWithBuffering);
                            }
                            else
                            {
                                // Debug.Log("It seems that " + actor.name + " is not in a unit group, sending anyways.");
                                NetworkSenderThread.Instance.SendPacketToSpecificPlayer(steamID, new Message_SpawnAIVehicle(actor.name, GetUnitNameFromCatalog(actor.unitSpawn.unitName), redfor,
                                                                                                                            VTMapManager.WorldToGlobalPoint(actor.gameObject.transform.position),
                                                                                                                            actor.gameObject.transform.rotation, uidSender.networkUID, subUIDs.ToArray(), hPInfos2, cmLoadout, 0.65f, Aggresion, actor.unitSpawn.unitSpawner.unitInstanceID, ids.ToArray(), irIDS),
                                                                                        EP2PSend.k_EP2PSendReliableWithBuffering);
                            }
                        }
                        else
                        {
                            Debug.Log("Finally sending AI " + actor.name + " to client all clients.");
                            Debug.Log("This unit is made from " + subUIDs.Count + " actors! ");
                            if (canBreak)
                            {
                                Networker.addToReliableSendBuffer(new Message_SpawnAIVehicle(actor.name, GetUnitNameFromCatalog(actor.unitSpawn.unitName), redfor,
                                                                                             VTMapManager.WorldToGlobalPoint(actor.gameObject.transform.position),
                                                                                             actor.gameObject.transform.rotation, uidSender.networkUID, subUIDs.ToArray(), hPInfos2, cmLoadout, 0.65f, Aggresion, actor.unitSpawn.unitSpawner.unitInstanceID, letters, ids.ToArray(), irIDS));
                            }
                            else
                            {
                                // Debug.Log("It seems that " + actor.name + " is not in a unit group, sending anyways.");
                                Networker.addToReliableSendBuffer(new Message_SpawnAIVehicle(actor.name, GetUnitNameFromCatalog(actor.unitSpawn.unitName), redfor,
                                                                                             VTMapManager.WorldToGlobalPoint(actor.gameObject.transform.position),
                                                                                             actor.gameObject.transform.rotation, uidSender.networkUID, subUIDs.ToArray(), hPInfos2, cmLoadout, 0.65f, Aggresion, actor.unitSpawn.unitSpawner.unitInstanceID, ids.ToArray(), irIDS));
                            }
                        }
                    }
                    else
                    {
                        Debug.Log("Could not find the UIDNetworker_Sender");
                    }
                }
            }
        }
    }