ФРПГ На форум Мой ПДА
Меню зоны
Вход в зону
Турист



СТАЛКЕР!
Я всегда рад видеть
еще одну живую душу!
Но я нез наю кто ты?



---

Список Сталкеров
У Костра



Последний пост Самые популярные темы Самые активные Последний файл
  • Ваши страницы Вконтакте (логины в Skype)
  • У Костра
  • САНЧАСТЬ
  • Любимая музыка
  • Общий канал
  • Бaр "Синий орел"
  • Рейды Наемников
  • Игра "Я тебя забаню"
  • Считалка
  • Лагерь новичков
  • Звездочет
  • Квартет
  • Джагер
  • Miami_Killer
  • gromgold
  • [Моды]
    НАРОДНАЯ СОЛЯНКА 2016 (1)
    [Моды]
    Объединённый Пак 2 (1)

    Страница 1 из 11
    Форум » База по Модостроению » Скриптинг Lua » Скриптеры никогда не делайте так
    Скриптеры никогда не делайте так
    gromgoldДата: Четверг, 11/05/2017, 13:43:12 | Сообщение # 1
    Глава ЧН [Гл.Администратор]
    Ранг: Повелитель Зоны
    Сообщений: 1988 Репа: « »
    Хочу поделиться советом, как избежать ошибки, приводящей к вылету (на которую сам часто напарывался).

    Надо проверить наличие предмета, и что-то сделать.

    Допустим, надо выяснить какой броник надет на ГГ и изменить какие-то параметры.

    честно пишем:

    local outfit_in_slot=db.actor:item_in_slot(7)

    if outfit_in_slot~=nil and outfit_in_slot:section_name()=="чегототам" then

    полагая, что LUA проверит первое условие, и , если ГГ голый не будет проверять второе. Однако LUA честно проверит оба условия, а потом сделает вывод true или false. Вот, а теперь представим, что ГГ голый.

    Первое условие nil

    Второе условие можно интерпретировать так nil:section() -т.е попытку применить функцию объекта к пустоте. Краш!!! Попытка смешать французское с нижегородским в данном случае приводит к печальным результатам! А как?

    local outfit_in_slot=db.actor:item_in_slot(7)

    if outfit_in_slot~=nil then --если голый валим отсюда, а не узнаём покрой пиджака

    if outfit_in_slot:section_name()=="чегототам" then

    ....................

    end

    end

    Материал взят с сайта gsc-mod.ucoz.ru
     
    Форум » База по Модостроению » Скриптинг Lua » Скриптеры никогда не делайте так
    Страница 1 из 11
    Поиск: