Пример #1
0
    public void RPC_SelectedLootItem(RPCMessage msg)
    {
        BasePlayer player  = msg.player;
        uint       itemUID = msg.read.UInt32();

        if (player == null || !player.inventory.loot.IsLooting() || player.inventory.loot.entitySource != this)
        {
            return;
        }
        Item vehicleItem = carOccupant.GetVehicleItem(itemUID);

        if (vehicleItem == null || Interface.CallHook("OnVehicleModuleSelect", vehicleItem, this, player) != null)
        {
            return;
        }
        bool flag = player.inventory.loot.RemoveContainerAt(3);
        BaseVehicleModule    result;
        VehicleModuleStorage vehicleModuleStorage;

        if (TryGetModuleForItem(vehicleItem, out result) && (object)(vehicleModuleStorage = result as VehicleModuleStorage) != null)
        {
            IItemContainerEntity container = vehicleModuleStorage.GetContainer();
            if (!ObjectEx.IsUnityNull(container))
            {
                player.inventory.loot.AddContainer(container.inventory);
                flag = true;
            }
        }
        if (flag)
        {
            player.inventory.loot.SendImmediate();
        }
        Interface.CallHook("OnVehicleModuleSelected", vehicleItem, this, player);
    }
Пример #2
0
 public override void Save(SaveInfo info)
 {
     base.Save(info);
     info.msg.cassette                = Facepunch.Pool.Get <ProtoBuf.Cassette>();
     info.msg.cassette.audioId        = AudioId;
     info.msg.cassette.creatorSteamId = CreatorSteamId;
     info.msg.cassette.preloadAudioId = preloadedAudioId;
     if (!ObjectEx.IsUnityNull(currentCassettePlayer) && BaseEntityEx.IsValid(currentCassettePlayer.ToBaseEntity))
     {
         info.msg.cassette.holder = currentCassettePlayer.ToBaseEntity.net.ID;
     }
 }