Случайная подборка модов
Новое Время
3.2
Долг. Философия Войны
4.0
В западне
3.9
The Second Sun
2.9
Сталкер "Диана"
2.0
PCFM COP Addon
3.7
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  Wolfstalker
Понедельник, 22.10.2012, 14:58 | Сообщение # 1
Статус:
Легенда:
Сообщений: 2258
Награды: 15
Регистрация: 05.04.2010

В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга.

  • Не флудить
  • Предварительно просматривайте раздел. Ответ на ваш вопрос может быть там.
  • В своем вопросе указывайте платформу моддинга - Тень Чернобыля, Чистое небо или Зов Припяти.





    У кого есть желание, создать FAQ по основным вопросам моддинга - обращаемся в ЛС.


    Архив

    Архив#2
  •   Злобная реклама
    Понедельник, 22.10.2012, 14:58
    Статус:
    Сообщений: 666
    Регистрация: 05.04.2010
    Российская Федерация  Graff46
    Четверг, 27.06.2013, 16:09 | Сообщение # 6226
    Новое Время
    Статус:
    Бывалый:
    Сообщений: 867
    Награды: 7
    Регистрация: 02.05.2013

    И еще вопрос, мне на будущие, в ф-циях диологов, есть секонд и фёрст спикер
    Код
    function comm (first_speaker, second_speaker)

    вот актор это секонд или фёрст спикер, это вроде зависит еще от того стартовый диалог или нет?
    Сообщение отредактировал Graff46 - Четверг, 27.06.2013, 16:14
      Злобная реклама
    Четверг, 27.06.2013, 16:09
    Статус:
    Сообщений: 666
    Регистрация: 02.05.2013
    Украина  DJ_Yar
    Четверг, 27.06.2013, 16:12 | Сообщение # 6227
    Статус:
    Зевака:
    Сообщений: 22
    Награды: 1
    Регистрация: 18.05.2013

    Цитата (ColR_iT)
    про какой движок идёт речь?


    Прикручиваю к одной игре мультиплеер =)
    Сервер написал уже... Теперь нужно на него отправить при старте клиента инфу о нём (клиенте). Сокеты могут отправлять только строки - вот в чём печальбеда... А отдельный компонент для отправки таблиц писать на "настоящем" язые ой как не хочеться.

    В игре всё хранится в виде таблиц Lua (ну это понятно)... Местами юзердата встревает, иногда вообще непонятные типы - Transform, Physics... Ну и рекурсия, соответственно, глубокая...

    upd: Т.е. я предполагаю, что придется всё-таки находить таблицы нижнего уровня, их паковать и отправлять в несколько заходов, а не все сразу.... Или есть выход?
    Сообщение отредактировал DJ_Yar - Четверг, 27.06.2013, 16:22
      Злобная реклама
    Четверг, 27.06.2013, 16:12
    Статус:
    Сообщений: 666
    Регистрация: 18.05.2013
    Украина  BozKurt
    Четверг, 27.06.2013, 16:24 | Сообщение # 6228
    Статус:
    Опытный:
    Сообщений: 1753
    Награды: 3
    Регистрация: 25.05.2012

    Graff46, я по этому поводу завёл себе в файле dialogs.script вот такую функцию:
    Код
    --# Функция для диалога; определяем кто есть кто.
    --# Возвращает два аргумента: первый - ator, второй - npc.
    function WhoIsWho (first_speaker, second_speaker)
      if first_speaker:id() == db.actor:id() then
       return first_speaker, second_speaker
      end
      return second_speaker, first_speaker
    end
    Использовать следующим образом:
    В функцию, которую будешь вызывать в диалоге вписываешь вот такую стоку:
    Код
    local actor, npc = WhoIsWho(first_speaker, second_speaker)
    first_speaker и second_speaker - это то, что будут передаваться в твою функцию. После этого переменная actor будет содержать объект актора, а npc - соответственно НПС.

    Добавлено (27.06.2013, 16:24)
    ---------------------------------------------
    DJ_Yar, даже и не знаю, что тебе подсказать... Возможно при обратном преобразовании loadstring натыкается на запись, где ключу не присвоено значение. Т.е. функция при вот такой таблице:

    Код
    tbl = {key1 = "val1", key2 = function () end, key3 = 3}
    вернёт вот такую строку:
    Код
    {key1="val1",key2=,key3=3}
    Как видишь ключу key2 ничего не присвоено. Из-за этого loadstring может вполне сыпаться. Я просто даже не представляю, как можно представить userdata в виде строки.
      Злобная реклама
    Четверг, 27.06.2013, 16:24
    Статус:
    Сообщений: 666
    Регистрация: 25.05.2012
    Украина  DJ_Yar
    Четверг, 27.06.2013, 16:35 | Сообщение # 6229
    Статус:
    Зевака:
    Сообщений: 22
    Награды: 1
    Регистрация: 18.05.2013

    Цитата (ColR_iT)
    Из-за этого loadstring может вполне сыпаться.


    У меня двигло слетает еще при упаковке =) Так что до этого не доходит...

      Злобная реклама
    Четверг, 27.06.2013, 16:35
    Статус:
    Сообщений: 666
    Регистрация: 18.05.2013
    Украина  BozKurt
    Четверг, 27.06.2013, 16:42 | Сообщение # 6230
    Статус:
    Опытный:
    Сообщений: 1753
    Награды: 3
    Регистрация: 25.05.2012

    DJ_Yar, при упаковке!? Вообще-то не должен... У тебя Lua какой версии?
    По поводу упаковки... здесь не всё так просто. Нужно знать формат твоих типов данных: Transform, Physics и т.д. В противном случае в Lua преобразовать это в строку не получится. Отдельно dll - может быть, но это уже совсем не в эту тему (мы и так тут оффтопим smile ), лучше тебе будет сюда с этим вопросом: >>ClicK Me<<.
      Злобная реклама
    Четверг, 27.06.2013, 16:42
    Статус:
    Сообщений: 666
    Регистрация: 25.05.2012
    Украина  DJ_Yar
    Четверг, 27.06.2013, 16:48 | Сообщение # 6231
    Статус:
    Зевака:
    Сообщений: 22
    Награды: 1
    Регистрация: 18.05.2013

    Цитата (ColR_iT)
    У тебя Lua какой версии?


    print(_VERISON) вернул 'nil'

    а в целом - кажеться, 5.1
      Злобная реклама
    Четверг, 27.06.2013, 16:48
    Статус:
    Сообщений: 666
    Регистрация: 18.05.2013
    Российская Федерация  Graff46
    Четверг, 27.06.2013, 17:04 | Сообщение # 6232
    Новое Время
    Статус:
    Бывалый:
    Сообщений: 867
    Награды: 7
    Регистрация: 02.05.2013

    Назрел вопрос, можно ли функцией проверить принадлежность нпс к определенному смарттерейну в ТЧ (под этим-ли смартом он щас?)?
    Сообщение отредактировал Graff46 - Четверг, 27.06.2013, 17:04
      Злобная реклама
    Четверг, 27.06.2013, 17:04
    Статус:
    Сообщений: 666
    Регистрация: 02.05.2013
    Литва  Mefistorus
    Четверг, 27.06.2013, 17:23 | Сообщение # 6233
    Статус:
    Отмычка:
    Сообщений: 103
    Награды: 1
    Регистрация: 14.06.2012

    Помогите, пожалуйста, мне с SDK 0.4 конвертером. Делал все по инструкцие, но не работает. Нажимаю на converter.exe, быстро выскакивает табло и сразу же сворачивается.

    Код
    Создаем папку X-Ray SDK\converter. Из папки xray_re-tools-10sep2008 от Бардака копируем файлы converter.exe, fsconverter.ltx в эту папку. Это делается для удобства, чтобы все было в одном месте.Файл converter.ini помещаем в папку x-ray sdk\level_editor
    Затем настраиваем конвертер.
    Если установили СДК, как я говорил в C:\Program Files\X-Ray SDK, то в файле fsconverter.ltx ничего уже настраивать не надо.
    В файле converter.ini находим такие строки и исправляем их вот так:

    ; 2947+ (финалка включая обновления)
    [2947_config]:2945_config
    $game_data$ = c:\program files\x-ray sdk\level_editor\gamedata\
    $game_levels$ = c:\program files\x-ray sdk\level_editor\gamedata\levels\

    [aitest_config]:2947_config
    $game_data$ = c:\program files\x-ray sdk\level_editor\gamedata\
    $game_levels$ = c:\program files\x-ray sdk\level_editor\gamedata\levels\

    [3120_config]:2947_config
    $game_data$ = c:\program files\x-ray sdk\level_editor\gamedata\
    $game_levels$ = c:\program files\x-ray sdk\level_editor\gamedata\levels\


    Update:
    Спасибо, сам разобрался smile
    Сообщение отредактировал Mefistorus - Четверг, 27.06.2013, 17:46
      Злобная реклама
    Четверг, 27.06.2013, 17:23
    Статус:
    Сообщений: 666
    Регистрация: 14.06.2012
    Российская Федерация  TYOPA
    Четверг, 27.06.2013, 17:30 | Сообщение # 6234
    Тайна Зоны: История Стрелка
    Статус:
    Новичок:
    Сообщений: 226
    Награды: 0
    Регистрация: 10.08.2012

    Mefistorus, вообще-то нужно запускать не converter.exe, а создавать bat файлы, со своим кодом(для декомпилирования локации или конвертирования модели....неважно). Читай readme к конвертеру, там всё это есть.
      Злобная реклама
    Четверг, 27.06.2013, 17:30
    Статус:
    Сообщений: 666
    Регистрация: 10.08.2012
    Российская Федерация  Graff46
    Четверг, 27.06.2013, 18:19 | Сообщение # 6235
    Новое Время
    Статус:
    Бывалый:
    Сообщений: 867
    Награды: 7
    Регистрация: 02.05.2013

    Какой ф-цией можно проверить отношение нпс к актору(друг, нейтрал или враг)?
      Злобная реклама
    Четверг, 27.06.2013, 18:19
    Статус:
    Сообщений: 666
    Регистрация: 02.05.2013
    Российская Федерация  MODOSKEA
    Четверг, 27.06.2013, 19:15 | Сообщение # 6236
    Статус:
    Новичок:
    Сообщений: 211
    Награды: 1
    Регистрация: 06.07.2012

    Graff46,
    Код
    if obj:relation(db.actor) == game_object.neutral then --отношение obj к актеру,проверяем  нейтрал или нет, если да то действие
    --действие
    end

    if obj:relation(db.actor) == game_object.friend then --отношение obj к актеру,проверяем  друг или нет, если да то действие
    --действие
    end

    if obj:relation(db.actor) == game_object.enemy then --отношение obj к актеру,проверяем  враг или нет, если да то действие
    --действие
    end
      Злобная реклама
    Четверг, 27.06.2013, 19:15
    Статус:
    Сообщений: 666
    Регистрация: 06.07.2012
    Российская Федерация  Sander
    Четверг, 27.06.2013, 19:47 | Сообщение # 6237
    Статус:
    Бывалый:
    Сообщений: 764
    Награды: 6
    Регистрация: 18.09.2012

    Можно как нибудь вызвать скриптовую функцию из логики нпс?
      Злобная реклама
    Четверг, 27.06.2013, 19:47
    Статус:
    Сообщений: 666
    Регистрация: 18.09.2012
    Российская Федерация  ins33
    Четверг, 27.06.2013, 19:56 | Сообщение # 6238
    Dream Reader Mod
    Статус:
    Опытный:
    Сообщений: 2269
    Награды: 1
    Регистрация: 17.01.2012

    Sander, Точно так же, как и из рестриктора.
    %=name_function%
      Злобная реклама
    Четверг, 27.06.2013, 19:56
    Статус:
    Сообщений: 666
    Регистрация: 17.01.2012
    Российская Федерация  Sander
    Четверг, 27.06.2013, 20:52 | Сообщение # 6239
    Статус:
    Бывалый:
    Сообщений: 764
    Награды: 6
    Регистрация: 18.09.2012



    Есть идеи, что такое? Пытался сделать так, чтобы персонаж сначала отдал через логику награду ГГ (деньги) а потом исчез.

    Логика этого непися:



    Скрипты с выдачей награды и исчезанием:

      Злобная реклама
    Четверг, 27.06.2013, 20:52
    Статус:
    Сообщений: 666
    Регистрация: 18.09.2012
    Российская Федерация  Scouser
    Четверг, 27.06.2013, 22:05 | Сообщение # 6240
    Статус:
    Опытный:
    Сообщений: 1614
    Награды: 16
    Регистрация: 21.10.2012

    Sander, 1. Кинь всю логику.
    2. Если я не ошибаюсь, то target = actor всё-таки не рабочий параметр.
      Злобная реклама
    Четверг, 27.06.2013, 22:05
    Статус:
    Сообщений: 666
    Регистрация: 21.10.2012
    Поиск: