Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
alex_good_kaban

Trader покупка товара из контейнера находящегося в инвентаре

Есть артефакты на сервере, у которых прописана трата его HP когда его держишь в руках через CheckArtefact. Чтоб они не тратились когда находятся в персонаже есть определенные контейнеры в которых их переносят. Появился вопрос продажи артефактов именно из контейнера. 
Вот из того что смог накидать .Артефакты после этого начинают продаваться с контейнера, но не удаляются из него. Подскажите что еще нужно дописать, чтоб артефакт удалялся после продажи.
 

modded class TraderMenu extends UIScriptedMenu
{
    override bool isInPlayerInventory(string itemClassname, int amount) // duplicate
    {
        PlayerBase m_Player = g_Game.GetPlayer();
        itemClassname.ToLower();
        
        bool isMagazine = false;
        if (amount == -3)
            isMagazine = true;

        bool isWeapon = false;
        if (amount == -4)
            isWeapon = true;

        bool isSteak = false;
        if (amount == -5)
            isSteak = true;

        array<EntityAI> itemsArray = new array<EntityAI>;        
        m_Player.GetInventory().EnumerateInventory(InventoryTraversalType.PREORDER, itemsArray);
        
        //TraderMessage.PlayerWhite("--------------");

        ItemBase item;        
        for (int i = 0; i < itemsArray.Count(); i++)
        {
            Class.CastTo(item, itemsArray.Get(i));
            string itemPlayerClassname = "";

            if (!item)
                continue;

            if (item.IsRuined())
                continue;

            if ( isAttached(item) && item.!IsInherited(ArtifactBase) )
                continue;

            itemPlayerClassname = item.GetType();
            itemPlayerClassname.ToLower();

            //TraderMessage.PlayerWhite("I: " + itemPlayerClassname + " == " + itemClassname);

            if(itemPlayerClassname == itemClassname && ((getItemAmount(item) >= amount && !isMagazine && !isWeapon && !isSteak) || isMagazine || isWeapon || (isSteak && (getItemAmount(item) >= GetItemMaxQuantity(itemPlayerClassname) * 0.5))))
            {
                return true;
            }
        }
        
        return false;
    }
}
modded class DayZPlayerImplement
{
    override bool isInPlayerInventory(string itemClassname, int amount)
    {
        if ( itemClassname.Contains("art_") )
            return true;
        
        return super.isInPlayerInventory(itemClassname, amount)
    }
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

Нет ответов на вопрос

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.

Поддержка