Ejemplo n.º 1
0
        void OpenBank(BasePlayer player, BaseEntity targArg)
        {
            Subscribe(nameof(CanNetworkTo));
            Subscribe(nameof(OnEntityTakeDamage));
            //Subscribe(nameof(OnItemAddedToContainer));
            var    pos = new Vector3(player.transform.position.x, player.transform.position.y - 1, player.transform.position.z);
            string box = GetBox(player);

            int slots = GetSlots(player);

            var view = GameManager.server.CreateEntity(box, pos) as StorageContainer;

            view.GetComponent <DestroyOnGroundMissing> ().enabled = false;
            view.GetComponent <GroundWatch> ().enabled            = false;

            if (!view)
            {
                return;
            }
            view.limitNetworking    = true;
            view.transform.position = pos;

            player.EndLooting();
            if (targArg is BasePlayer)
            {
                BasePlayer    target  = targArg as BasePlayer;
                BankProfile   profile = banks [target.userID];
                ItemContainer bank    = profile.GetContainer(target, slots);
                if (!containers.ContainsKey(bank))
                {
                    containers.Add(bank, player.userID);
                }
                view.enableSaving = false;
                view.Spawn();
                view.inventory = bank;

                profile.open = true;
                onlinePlayers [player].View   = view;
                onlinePlayers [player].Target = target;

                timer.In(0.1f, delegate() {
                    view.PlayerOpenLoot(player);
                });
            }
        }