public void WeaponSet_Result(Packet packet) { Message_WeaponSet_Result message = (Message_WeaponSet_Result)((PacketSingle)packet).message; if (message.UID != networkUID) { return; } List <string> hpLoadoutNames = new List <string>(); for (int i = 0; i < message.hpLoadout.Length; i++) { hpLoadoutNames.Add(message.hpLoadout[i].hpName); } Loadout loadout = new Loadout(); loadout.hpLoadout = hpLoadoutNames.ToArray(); loadout.cmLoadout = message.cmLoadout; loadout.normalizedFuel = message.normalizedFuel; weaponManager.EquipWeapons(loadout); for (int i = 0; i < cmManager.countermeasures.Count; i++) { //There should only ever be two counter measures. //So the second array in message should be fine. cmManager.countermeasures[i].count = message.cmLoadout[i]; } fuelTank.startingFuel = loadout.normalizedFuel; fuelTank.SetNormFuel(loadout.normalizedFuel); }
public void WeaponSet_Result(Packet packet) { Message_WeaponSet_Result message = (Message_WeaponSet_Result)((PacketSingle)packet).message; if (message.UID != networkUID) { return; } if (Networker.isHost && packet.networkUID != networkUID) { //Debug.Log("Generating UIDS for any missiles the new vehicle has"); for (int i = 0; i < message.hpLoadout.Length; i++) { for (int j = 0; j < message.hpLoadout[i].missileUIDS.Length; j++) { if (message.hpLoadout[i].missileUIDS[j] != 0) { //Storing the old one ulong clientsUID = message.hpLoadout[i].missileUIDS[j]; //Generating a new global UID for that missile message.hpLoadout[i].missileUIDS[j] = Networker.GenerateNetworkUID(); //Sending it back to that client NetworkSenderThread.Instance.SendPacketToSpecificPlayer(PlayerManager.GetPlayerCSteamID(message.UID), new Message_RequestNetworkUID(clientsUID, message.hpLoadout[i].missileUIDS[j]), EP2PSend.k_EP2PSendReliable); } } } } PlaneEquippableManager.SetLoadout(gameObject, networkUID, message.normalizedFuel, message.hpLoadout, message.cmLoadout); noAmmo = false; if (Networker.isHost) { NetworkSenderThread.Instance.SendPacketAsHostToAllButOneSpecificClient(PlayerManager.GetPlayerCSteamID(message.UID), message, Steamworks.EP2PSend.k_EP2PSendReliable); } }
public void Rearm() { Debug.Log("Rearm!"); GameObject vehicle = VTOLAPI.GetPlayersVehicleGameObject(); WeaponManager wm = vehicle.GetComponentInChildren <WeaponManager>(); CountermeasureManager cm = vehicle.GetComponentInChildren <CountermeasureManager>(); Message_WeaponSet_Result rearm = new Message_WeaponSet_Result( PlaneEquippableManager.generateHpInfoListFromWeaponManager(wm, PlaneEquippableManager.HPInfoListGenerateNetworkType.generate, PlayerManager.localUID).ToArray(), PlaneEquippableManager.generateCounterMeasuresFromCmManager(cm).ToArray(), PlaneEquippableManager.generateLocalFuelValue(), PlayerManager.localUID); if (Networker.isHost) { NetworkSenderThread.Instance.SendPacketAsHostToAllClients(rearm, Steamworks.EP2PSend.k_EP2PSendReliable); } else { NetworkSenderThread.Instance.SendPacketToSpecificPlayer(Networker.hostID, rearm, Steamworks.EP2PSend.k_EP2PSendReliable); } }