• Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами Публичной оферты Проекта NetZONA.org: https://netzona.org/help/public-offer/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с условиями и правилами использования Ваших файлов cookie на Проекте NetZONA.org: https://netzona.org/help/cookies/

  • Приветствуем на сайте, Гость! Обязательно ознакомьтесь с Политикой конфиденциальности Проекта NetZONA.org: https://netzona.org/pages/privacy-policy/

  • Ответы на основные вопросы: https://netzona.org/threads/populjarnye-voprosy-i-otvety-na-nix.6122/

  • Приветствуем на сайте, Гость! Приобрести (купить) Информационную услугу (в том числе группу "Проверенный") на Проекте NetZONA.org: https://netzona.org/account/upgrades

Проблема NS 1.1 После обновления перестал работать крафт

  • Автор темы Автор темы Scoot
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.

Scoot

Пользователь
Регистрация
12 Мар 2015
Сообщения
200
Реакции
0
Баллы
27
Вот после обновления, при попытке что-то скрафтить на верстаке: ингредиенты исчезают, а вещь не создается. В консоле сервера такая вот ошибка:
2017-09-08-2-.png

Спрашивается, как исправить подобное недоразумение?
Код функции:
Код:
function RECIPES:Register( tbl )
    if !tbl.CanCraft then
        function tbl:CanCraft( player )
            for k, v in pairs( self.items ) do
                if !player:HasItem( k, v ) then
                    player.notify("You have no materials to craft this.")
                    return false                   
                end
            end
            for k, v in pairs( self.requiredattrib ) do
                if (player:getChar():getAttrib(k) == nil) then
                player:getChar():setAttrib(k, 0)
                end
           
                if (player:getChar():getAttrib(k) < v) then
                    player.notify("You must have more attribs to craft this.")
                    return false           
                end
            end
            return true
        end
    end
    if !tbl.ProcessCraftItems then
        function tbl:ProcessCraftItems( player )

            player:EmitSound( "hgn/crussaria/items/itm_ammo_down.wav" )
            for k, v in pairs( self.items ) do
                for i = 1, v do
                    player:getChar():getInv():hasItem( k ):remove()
                end
            end
            for k, v in pairs( self.updateattrib ) do
                player:getChar():updateAttrib(k, v)
            end
            for k, v in pairs( self.result ) do
               
                if (!player:getChar():getInv():add(k, v)) then
                    netstream.Start(client, "vendorAdd", uniqueID)
                end
            player:notifyLocalized( "donecrafting", self.name )

        end
    end
    self.recipes[ tbl.uid ] = tbl
end
end
 
Репозиторий чесната является стабильным, а в репу ребела добавляются последние изменения. Если это ошибка в коде, то в репе ребела обычно сразу вносятся правки, иначе это уже изменения в коде, которые требуют переписывания аддонов
 
Репозиторий чесната является стабильным, а в репу ребела добавляются последние изменения. Если это ошибка в коде, то в репе ребела обычно сразу вносятся правки, иначе это уже изменения в коде, которые требуют переписывания аддонов
И как тогда фиксить крафт?
 
У меня видоизмененый плагин от Алекса Бибы, там фунция аттрибута для крафта и точки, где можно крафтить. Дефолтный плагин отстой.
 
Код:
player:getChar():getInv():hasItem( k ):remove()
Попробуй заменить k на v, может он заработает. Смысл в том, что функция получает флаг, вместо таблицы предмета. Также можно сделать проверку что выводит функция player:getChar():getInv():hasItem( k )
 
Попробуй заменить k на v, может он заработает. Смысл в том, что функция получает флаг, вместо таблицы предмета. Также можно сделать проверку что выводит функция player:getChar():getInv():hasItem( k )
А как это проверить?
 
Вывод переменной в консоль
А какая для этого требуется команда? И продолжу тему поломок, не сохраняются настройки дверей и ломаются силовые поля, две их половинки просто сжимаются вместе после рестарта
 
Статус
В этой теме нельзя размещать новые ответы.
Главная Регистрация
Назад
Сверху