Случайная подборка модов
Время Перемен 2.5
4.0
Пространственная Аномалия 4.1
4.5
We Are Not Alone
4.0
Сюжетное продолжение Чистого неба
4.1
Mysterious Zone
4.0
Хроники Кайдана
3.6
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: FanG, Аdmin, FantomICW, Overfirst  
[SoC] Модострой: вопросница
Российская Федерация  Overfirst
Воскресенье, 31.12.2017, 13:17 | Сообщение # 1
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

[SoC] Модострой: вопросница

Тема посвящена моддингу на платформе Тень Чернобыля.

Соседние темы: Чистое Небо / Зов Припяти.


  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.

  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.

  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).

  • Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
  •   Злобная реклама
    Воскресенье, 31.12.2017, 13:17
    Статус:
    Сообщений: 666
    Регистрация: 11.06.2015
    Российская Федерация  Maximless
    Суббота, 10.02.2018, 07:28 | Сообщение # 166
    Статус:
    Гость:
    Сообщений: 54
    Награды: 1
    Регистрация: 19.09.2017

    Кто-нибудь сможет подсказать что за выделенная конструкция? У одного моддера нашел...

    local exec__func = loadstring(func_string)
    ...
    local f, err = pcall(exec__func) -- exec__func тип function

    У меня почему-то виснет

    [string "моя_функция()"]:1: in main chunk
    [C]: in function 'pcall'

    Почему не сделать так? :

    local f,err = assert(exec__func)

    if (f) then
    f()
    ....
    Сообщение отредактировал Maximless - Суббота, 10.02.2018, 07:30
      Злобная реклама
    Суббота, 10.02.2018, 07:28
    Статус:
    Сообщений: 666
    Регистрация: 19.09.2017
    Российская Федерация  atanda
    Суббота, 10.02.2018, 11:40 | Сообщение # 167
    Статус:
    Бывалый:
    Сообщений: 672
    Награды: 7
    Регистрация: 12.07.2017

    Maximless, забавно...
    pcall выполняет функцию и проверяет на ошибки. Возвращает он отнюдь не функцию и ошибку, а, если выполнение прошло удачно, то статус, в данном случае будет true, и результаты работы и наоборот, если выполнение прошло неудачно, то статус, в данном случае false, и дескрипшен ошибки.
    assert, пожалуй процитирую:
    Цитата

    assert (v [, message])
    Выдает сообщение об ошибке, если значение параметра v равно false (т.е., nil или false); в противном случае, возвращаются все параметры. message – это сообщение об ошибке; если параметр отсутствует, по умолчанию выводится "assertion failed!"
      Злобная реклама
    Суббота, 10.02.2018, 11:40
    Статус:
    Сообщений: 666
    Регистрация: 12.07.2017
    Российская Федерация  Maximless
    Суббота, 10.02.2018, 18:44 | Сообщение # 168
    Статус:
    Гость:
    Сообщений: 54
    Награды: 1
    Регистрация: 19.09.2017

    buffy, Так строку local exec__func = loadstring(func_string) вы видимо не заметили?
    Сообщение отредактировал Maximless - Суббота, 10.02.2018, 18:45
      Злобная реклама
    Суббота, 10.02.2018, 18:44
    Статус:
    Сообщений: 666
    Регистрация: 19.09.2017
    Российская Федерация  atanda
    Суббота, 10.02.2018, 19:07 | Сообщение # 169
    Статус:
    Бывалый:
    Сообщений: 672
    Награды: 7
    Регистрация: 12.07.2017

    Maximless, если не ошибусь делает из строки, предварительно закешированную через string.dump, функцию. Что не так?
      Злобная реклама
    Суббота, 10.02.2018, 19:07
    Статус:
    Сообщений: 666
    Регистрация: 12.07.2017
    Российская Федерация  Maximless
    Суббота, 10.02.2018, 19:40 | Сообщение # 170
    Статус:
    Гость:
    Сообщений: 54
    Награды: 1
    Регистрация: 19.09.2017

    buffy, Вопрос совсем не в этом. В мануале...

    ....
    Для загрузки и выполнения данной строки, используйте следующую конструкцию

    assert(loadstring(s))()
      Злобная реклама
    Суббота, 10.02.2018, 19:40
    Статус:
    Сообщений: 666
    Регистрация: 19.09.2017
    Российская Федерация  atanda
    Суббота, 10.02.2018, 21:45 | Сообщение # 171
    Статус:
    Бывалый:
    Сообщений: 672
    Награды: 7
    Регистрация: 12.07.2017

    Maximless, так что нужно? Я что-то не втыкаю... Извини если что. Я же сказал, что assert не одно и то же, что и pcall!
    Сообщение отредактировал buffy - Суббота, 10.02.2018, 21:55
      Злобная реклама
    Суббота, 10.02.2018, 21:45
    Статус:
    Сообщений: 666
    Регистрация: 12.07.2017
    Российская Федерация  Maximless
    Понедельник, 12.02.2018, 23:56 | Сообщение # 172
    Статус:
    Гость:
    Сообщений: 54
    Награды: 1
    Регистрация: 19.09.2017

    buffy, В данном конкретном случае получается, что одно и тоже. С той лишь разницой - pcall у меня виснет.
      Злобная реклама
    Понедельник, 12.02.2018, 23:56
    Статус:
    Сообщений: 666
    Регистрация: 19.09.2017
    Российская Федерация  AliStark
    Суббота, 17.02.2018, 18:10 | Сообщение # 173
    Статус:
    Отмычка:
    Сообщений: 75
    Награды: 0
    Регистрация: 07.11.2017

    Такой вопрос... Какое нужно прописывать "условие" для спавна НПС (ненаходящийся в смарте) и также его удаление ? В логику что писать или в скрипты ?

    Также и про смарт... То что смарт появится при условии
    cond {+infoportion} эт я помню, но не помню при каком условии смарт удаляется...)

    Спасибо заранее !
      Злобная реклама
    Суббота, 17.02.2018, 18:10
    Статус:
    Сообщений: 666
    Регистрация: 07.11.2017
    Российская Федерация  [proff_xaron]_579
    Воскресенье, 18.02.2018, 08:07 | Сообщение # 174
    Статус:
    Гость:
    Сообщений: 38
    Награды: 0
    Регистрация: 15.02.2018

    Я в xrSpawner'e поставил зомби гражднанского, при убийстве вылет с жалобой на скрипт xr_statistic.script.
    Вот лог:
    Expression : 0
    Function : CUICellContainer::FindFreeCell
    File : ui\UIDragDropListEx.cpp
    Line : 508
    Description : there are no free room to place item

    See log file and minidump for detailed information
    Expression : fatal error
    Function : CScriptEngine::lua_error
    File : script_engine.cpp
    Line : 73
    Description : <no expression>
    Arguments : LUA error: ....a.l.k.e.r Тест\gamedata\scripts\xr_statistic.script:105: attempt to concatenate local 'community' (a nil value)

    See log file and minidump for detailed information

    Переводчик мне ничего умного не сказал, поэтому сюда и обращаюсь.

    Добавлено (18.02.2018, 08:07)
    ---------------------------------------------
    kiselev123, В файле mm_main есть строки
    <menu_main btn_height="30" font="graffiti22" a="255" r="255" g="170" b="20">
    <btn name="btn_new_game" caption="ui_mm_newgame" />
    <btn name="btn_load" caption="ui_mm_load_game" />
    <btn name="btn_multiplayer" caption="ui_mm_multiplayer_n" />
    <btn name="btn_options" caption="ui_mm_options_n" />
    <btn name="btn_credits" caption="ui_mm_credits" />
    <btn name="btn_quit" caption="ui_mm_quit2windows" />
    </menu_main>

    <menu_main_last_save btn_height="30" font="graffiti22" a="255" r="310" g="123" b="470">
    <btn name="btn_new_game" caption="ui_mm_newgame" />
    <btn name="btn_load" caption="ui_mm_load_game" />
    <btn name="btn_lastsave" caption="ui_mm_last_save" />
    <btn name="btn_multiplayer" caption="ui_mm_multiplayer_n" />
    <btn name="btn_options" caption="ui_mm_options_n" />
    <btn name="btn_credits" caption="ui_mm_credits" />
    <btn name="btn_quit" caption="ui_mm_quit2windows" />
    </menu_main_last_save>

    <menu_new_game btn_height="30" font="graffiti22" a="255" r="468" g="128" b="931">
    <btn name="btn_novice" caption="ui_mm_novice" />
    <btn name="btn_stalker" caption="ui_mm_stalker" />
    <btn name="btn_veteran" caption="ui_mm_veteran" />
    <btn name="btn_master" caption="ui_mm_master" />
    <btn name="btn_new_back" caption="ui_mm_back" />
    </menu_new_game>

    там есть ещё другие, я так обрывок у себя скопировал. За цвет отвечают строки "255" r="468" g="128" b="931" возможно по кодам цветов можно.

      Злобная реклама
    Воскресенье, 18.02.2018, 08:07
    Статус:
    Сообщений: 666
    Регистрация: 15.02.2018
    Российская Федерация  _Val_
    Воскресенье, 18.02.2018, 10:32 | Сообщение # 175
    Ф.О.Т.О.Г.Р.А.Ф
    Статус:
    Бывалый:
    Сообщений: 1063
    Награды: 5
    Регистрация: 20.01.2012

    Цитата AliStark ()
    Какое нужно прописывать "условие" для спавна НПС

    Вообще - какое хочешь.
    Ну а прописывай туда, откуда спавнишь. Если из олл_спавна, то в спавне. Если скриптом, то нафига вообще условие?
      Злобная реклама
    Воскресенье, 18.02.2018, 10:32
    Статус:
    Сообщений: 666
    Регистрация: 20.01.2012
    Российская Федерация  AliStark
    Воскресенье, 18.02.2018, 13:20 | Сообщение # 176
    Статус:
    Отмычка:
    Сообщений: 75
    Награды: 0
    Регистрация: 07.11.2017

    _Val_,
    На счет спавна вроде как понял, но как удалить сталкера? Вот при удалении что и куда прописывать без понятия... А спавню через олл спавн я.
      Злобная реклама
    Воскресенье, 18.02.2018, 13:20
    Статус:
    Сообщений: 666
    Регистрация: 07.11.2017
    Российская Федерация  Volkov284
    Понедельник, 19.02.2018, 19:49 | Сообщение # 177
    Статус:
    Зевака:
    Сообщений: 5
    Награды: 0
    Регистрация: 18.02.2018

    Приветствую, форум, есть желание отучить Круглова/Cеменова от дурацкой привычки блокировать вход в бункер и/или стрелять в игрока-свободовца. Прописал ему в логике combat_ignore=combat_ignore во всех секциях, но решение слишком грубое, и что хуже - его невозможно лечить после сюжетного пси-выброса!
    Просьба подсказать мод, где это реализовано или кусок кода логики ученого, чтобы а) вне зависимости от статуса друг-нейтрал-враг он стрелял в игрока только в ответ и мог быть вылечен по квесту, б) не игнорировал зомби в ходе сюжетного квеста, в) сохранял безразличие к перестрелкам вне бункера, находясь внутри.

    Также возник интерес к багу, встреченному мной во всех (?) версиях сталкера ТЧ/ЧН и модах к нему - при попытке залезть в инвентарь при пси-здоровье игрока <50% перестает слушаться курсор - можно только стоять и смотреть как тебя убивают (иногда можно закрыть инвентарь эскейпом).
    Баг проявляется как при зомбировании контролером, так и при использовании модов, создающих пси-поля на основе эффекта пси-антенны. В чем причина? Надо ковырять эффекторы или еще хуже - искать движковые правки?
    Сообщение отредактировал Volkov284 - Понедельник, 19.02.2018, 20:33
      Злобная реклама
    Понедельник, 19.02.2018, 19:49
    Статус:
    Сообщений: 666
    Регистрация: 18.02.2018
    Российская Федерация  DaaGuda
    Среда, 21.02.2018, 09:31 | Сообщение # 178
    Статус:
    Неопытный:
    Сообщений: 479
    Награды: 4
    Регистрация: 09.03.2014

    Может кто-нибудь пройтись поиском по тч скриптам на предмет "trade_all_money"?
      Злобная реклама
    Среда, 21.02.2018, 09:31
    Статус:
    Сообщений: 666
    Регистрация: 09.03.2014
    Российская Федерация  denis2000
    Среда, 21.02.2018, 10:17 | Сообщение # 179
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    DaaGuda, Нет такого.
      Злобная реклама
    Среда, 21.02.2018, 10:17
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  DaaGuda
    Среда, 21.02.2018, 10:36 | Сообщение # 180
    Статус:
    Неопытный:
    Сообщений: 479
    Награды: 4
    Регистрация: 09.03.2014

    denis2000, хм, откуда это тогда.... "Script mess: !Call abort, reason: object 'esc_m_trader': pick_section_from_condlist: function 'trade_all_money' is not defined in xr_conditions.script"

    Добавлено (21.02.2018, 10:36)
    ---------------------------------------------
    denis2000, нашел, спасибо за помощь.

      Злобная реклама
    Среда, 21.02.2018, 10:36
    Статус:
    Сообщений: 666
    Регистрация: 09.03.2014
    Поиск: