Example #1
0
        void FillAmmo(PlayerSession player)
        {
            if (!player.IsLoaded || !player.Player.isConnected)
            {
                return;
            }

            NetworkEntityComponentBase netEntity = player.WorldPlayerEntity.GetComponent <NetworkEntityComponentBase>();

            if (netEntity == null)
            {
                return;
            }

            EquippedHandlerBase equippedHandler = netEntity.GetComponent <EquippedHandlerBase>();

            if (equippedHandler == null)
            {
                return;
            }

            EquippedHandlerServer equippedHandlerServer = equippedHandler as EquippedHandlerServer;

            if (equippedHandlerServer == null)
            {
                return;
            }

            ItemInstance equippedItem = equippedHandler.GetEquippedItem();

            if (equippedItem == null)
            {
                return;
            }

            GunItem gunItem = equippedItem.Item as GunItem;
            BowItem bowItem = equippedItem.Item as BowItem;

            if ((bowItem != null || gunItem != null) && equippedHandlerServer != null)
            {
                if (gunItem != null)
                {
                    AutomaticGunItem     aGunItem      = gunItem as AutomaticGunItem;
                    GunItemEquippedState gunEquipState = gunItem.EquippedState(equippedHandler);

                    equippedItem.AuxData = Convert.ToByte(gunItem.GetClipSize());
                    equippedHandlerServer.AuxSync();
                }
                else
                {
                    PlayerInventory inventory = player.WorldPlayerEntity.GetComponent <PlayerInventory>();

                    if (!inventory.HasItem(bowItem.GetAmmoType().ItemId, 1))
                    {
                        GiveItem(player, bowItem.GetAmmoType(), 1);
                    }
                }
            }
        }
Example #2
0
        ////////////////////////////////////////
        ///     Ammo Related
        ////////////////////////////////////////

        /*void OnWeaponFired(IItem item, EquippedHandlerBase handler)
         * {
         * }*/

        void LoadAmmo(PlayerSession player)
        {
            if (!player.IsLoaded)
            {
                return;
            }

            NetworkEntityComponentBase netEntity = player.WorldPlayerEntity.GetComponent <NetworkEntityComponentBase>();

            if (netEntity == null)
            {
                return;
            }

            EquippedHandlerBase equippedHandler = netEntity.GetComponent <EquippedHandlerBase>();

            if (equippedHandler == null)
            {
                return;
            }

            EquippedHandlerServer equippedHandlerServer = equippedHandler as EquippedHandlerServer;

            if (equippedHandlerServer == null)
            {
                return;
            }

            ItemInstance equippedItem = equippedHandler.GetEquippedItem();

            if (equippedItem == null)
            {
                return;
            }

            GunItem gunItem = equippedItem.Item as GunItem;
            BowItem bowItem = equippedItem.Item as BowItem;

            //PrintWarning($"Item: {equippedItem.Item.GetNameKey().Split('/').Last()}");
            //PrintWarning($"Is Gun: {!(gunItem == null)}");

            if ((bowItem != null || gunItem != null) && equippedHandlerServer != null)
            {
                if (gunItem != null)
                {
                    AutomaticGunItem     aGunItem      = gunItem as AutomaticGunItem;
                    GunItemEquippedState gunEquipState = gunItem.EquippedState(equippedHandler);

                    //PrintWarning($"Is Automatic: {!(aGunItem == null)}");
                    //PrintWarning($"Clip Size: {gunItem.GetClipSize().ToString()}");
                    //PrintWarning($"Ammo Count: {equippedItem.AuxData.ToString()}");

                    //if (equippedItem.AuxData <= 1)
                    //{
                    equippedItem.AuxData = Convert.ToByte(gunItem.GetClipSize());
                    equippedHandlerServer.AuxSync();
                    //}
                }
                else
                {
                    PlayerInventory inventory = player.WorldPlayerEntity.GetComponent <PlayerInventory>();

                    //PrintWarning($"Has Ammo: {inventory.HasItem(bowItem.GetAmmoType().ItemId, 1)}");

                    if (!inventory.HasItem(bowItem.GetAmmoType().ItemId, 1))
                    {
                        GiveItem(player, bowItem.GetAmmoType(), 1);
                    }
                }
            }
        }
Example #3
0
        void TradeCommand(PlayerSession session, string cmd, string[] args)
        {
            if ((bool)NoEscapeV2.Call("IsRaid", session))
            {
                return;
            }

            if (args.Length == 0)
            {
                Send(session, "Чтобы добавить предмет в обмен - возьмите в руки и введите: /trade add");
                Send(session, "Чтобы вернуть все предметы введите: /trade back");
                Send(session, "Чтобы предложить обмен введите: /trade to <ник>");
                return;
            }
            PlayerInventory inv   = session.WorldPlayerEntity.GetComponent <PlayerInventory>();
            var             trade = getTrade(session);

            switch (args[0].ToLower())
            {
            case "add":
                if (trade.tradeStag != Trade.NoSend)
                {
                    Send(session, "Нельзя изменить предметы для обмена во время обмена!");
                    return;
                }
                EquippedHandlerServer ehs  = session.WorldPlayerEntity.GetComponent <EquippedHandlerServer>();
                ItemObject            item = ehs.GetEquippedItem();
                inv.RemoveItem(inv.GetSlotIndex(item));
                trade.items.Add(item);
                break;

            case "back":
                if (trade.tradeStag != Trade.NoSend)
                {
                    Send(session, "Нельзя вернуть предметы во время обмена!");
                    return;
                }
                RefaundItems(trade.items, session);
                trade.items.Clear();
                break;

            case "to":
                if (args.Length == 1)
                {
                    Send(session, "Введите ник того - кому вы хотите отправить обмен!");
                    return;
                }
                var toSession = getSession(args[1]);
                if (!AllowedTrade(session, toSession))
                {
                    return;
                }
                var _trade = getTrade(toSession);
                trade.newMember(toSession);
                Send(toSession, "Вам отправил предложение об обмене!");
                break;

            case "a":
            case "accept":
                var membertrade = getFromTrade(session);
                if (membertrade == null)
                {
                    Send(session, "Никто не отправил вам обмен!");
                    return;
                }


                break;

            case "c":
            case "cancel":


                break;

            case "blacklist":

                break;
            }
        }