Случайная подборка модов
G.L.A.D.I.A.T.O.R. II Время Альянса
3.4
Эпизоды жизни Мерка
3.0
L.U.R.K.
4.0
Припять. Точка отсчета
3.3
«В аду… Псы»
3.6
Old Episodes: Эпизод 1
2.9
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Поиск: