Случайная подборка модов
Dark Ukraine v 1.0
3.9
Путь Человека. Шаг в неизвестность. Дежавю
3.4
История Конвона. Часть первая
3.1
«В аду… Псы»
3.6
S.T.A.L.K.E.R. Complete 2009
4.0
Новое Время. Научный Подход
3.8
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  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
    Российская Федерация  Scouser
    Четверг, 05.09.2013, 23:22 | Сообщение # 7921
    Статус:
    Опытный:
    Сообщений: 1614
    Награды: 16
    Регистрация: 21.10.2012

    Назрел вопрос!
    У всех при распаковке ресурсов ТЧ, в папках первых локаций выложены не все файлы, а только game и gct формата, так ведь?
      Злобная реклама
    Четверг, 05.09.2013, 23:22
    Статус:
    Сообщений: 666
    Регистрация: 21.10.2012
    Российская Федерация  TYOPA
    Пятница, 06.09.2013, 06:32 | Сообщение # 7922
    Тайна Зоны: История Стрелка
    Статус:
    Новичок:
    Сообщений: 226
    Награды: 0
    Регистрация: 10.08.2012

    LaRento, нет...у меня полный список фалов(ТЧ версии 1.0004)....возможно ты недораспаковал...
      Злобная реклама
    Пятница, 06.09.2013, 06:32
    Статус:
    Сообщений: 666
    Регистрация: 10.08.2012
    Российская Федерация  R0D23
    Пятница, 06.09.2013, 12:32 | Сообщение # 7923
    Мертвый Путь 3
    Статус:
    Опытный:
    Сообщений: 1491
    Награды: 1
    Регистрация: 23.06.2013

    Кто нибудь скажет как сделать задание "Поговорить со сталкером"?
      Злобная реклама
    Пятница, 06.09.2013, 12:32
    Статус:
    Сообщений: 666
    Регистрация: 23.06.2013
    Российская Федерация  Sanjaaa
    Пятница, 06.09.2013, 12:33 | Сообщение # 7924
    Dark Reaper Souls
    Статус:
    Бывалый:
    Сообщений: 926
    Награды: 6
    Регистрация: 22.08.2012

    makdm, у меня 6
      Злобная реклама
    Пятница, 06.09.2013, 12:33
    Статус:
    Сообщений: 666
    Регистрация: 22.08.2012
    Российская Федерация  Scouser
    Пятница, 06.09.2013, 12:36 | Сообщение # 7925
    Статус:
    Опытный:
    Сообщений: 1614
    Награды: 16
    Регистрация: 21.10.2012

    Появилась проблемка. Занялся подключением локаций по этом уроку. Lesson

    Так вот, сделал всё как надо. Зарегал новый гейм вертекс в спавне, в утилите компиляции графа сначала создал все папки с уровнями, закинул туда level.gct, и закинул папку с уровнем, который хочу подключить. В батнике прописал команду, указанную в уроке, получил новый граф. level.gct в каждой папке обновились. Далее всё закинул в геймдату, поменял вертексы спавна актёра, скомпилировал спавн. Но при Создании новой игры получаю безлоговый лет. Знаю, что такая проблема наверняка раз 200 обсуждалась, но я найти ответ на подобную не смог. В чём моя ошибка была?
    Сообщение отредактировал LaRento - Пятница, 06.09.2013, 12:39
      Злобная реклама
    Пятница, 06.09.2013, 12:36
    Статус:
    Сообщений: 666
    Регистрация: 21.10.2012
    Украина  FantomICW
    Пятница, 06.09.2013, 12:39 | Сообщение # 7926
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    R0D23, если квест должен закончиться после разговора со сталкером, то в конфиге квеста в tm_лока.ltx нужно определить кондлист-условие выполнения:
    Код
    condlist_0 = {+talked_with_quest_stalker} complete

    Если ГГ получает инфопорцию talked_with_quest_stalker, то квест завершается. В диалог с НПС в одну из фраз добавить:
    Код
    <give_info>talked_with_quest_stalker</give_info>

    То есть, в разговоре ГГ получит инфопорцию, и квест завершится. Все остальное - по стандартным алгоритмам.
      Злобная реклама
    Пятница, 06.09.2013, 12:39
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Российская Федерация  R0D23
    Пятница, 06.09.2013, 12:44 | Сообщение # 7927
    Мертвый Путь 3
    Статус:
    Опытный:
    Сообщений: 1491
    Награды: 1
    Регистрация: 23.06.2013

    FantomICW, Спасибо

    Добавлено (06.09.2013, 12:44)
    ---------------------------------------------

    Цитата (FantomICW)
    tm_

    А это где именно?
      Злобная реклама
    Пятница, 06.09.2013, 12:44
    Статус:
    Сообщений: 666
    Регистрация: 23.06.2013
    Украина  FantomICW
    Пятница, 06.09.2013, 12:47 | Сообщение # 7928
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    R0D23, это в configs/misc
      Злобная реклама
    Пятница, 06.09.2013, 12:47
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Российская Федерация  R0D23
    Пятница, 06.09.2013, 12:51 | Сообщение # 7929
    Мертвый Путь 3
    Статус:
    Опытный:
    Сообщений: 1491
    Награды: 1
    Регистрация: 23.06.2013

    Цитата (FantomICW)
    configs/misc

    да точно СПС. И еще вопрос как начать это задание? Типо я поговорил с Сидоровичем и у меня задание поговори с Шустрым.
      Злобная реклама
    Пятница, 06.09.2013, 12:51
    Статус:
    Сообщений: 666
    Регистрация: 23.06.2013
    Российская Федерация  trinax
    Пятница, 06.09.2013, 13:02 | Сообщение # 7930
    Статус:
    Гость:
    Сообщений: 39
    Награды: 0
    Регистрация: 31.08.2013

    Итак.
    Итак, приступим. Для примера нам понадобятся следующие файлы:
    1. character_desc_escape.xml
    2. dialogs_escape.xml
    3. info_l01escape.xml
    4. storyline_info_escape.xml
    5. tasks_escape.xml
    6. new_life.script
    7. amk.script
    8. sak.script
    9. stable_dialogs_escape.xml

    1. Работа с character_desc_escape.xml:
    В уроке "работа с профилем" вы узнали, как о устроен.
    Для квеста нам понадобятся диалоги, в которых выдастся или завершится наш квест.
    Добавим два диалога, в первом диалоге - выдача квеста, во втором - завершение.
    Откроем профиль любого персонажа, который выдаст нам квест, запишем там диалог:
    <actor_dialog>escape_nps1_dialog</actor_dialog>
    Откроем профиль любого персонажа, который завершит наш квест, запишем там диалог:
    <actor_dialog>escape_nps2_dialog</actor_dialog>

    2. Работа с "dialogs_escape.xml":
    Самая длинная работа. Если вы читали урок "создание диалогов", вам будет проще.
    Но тут будут изменения, давайте разберёмся.
    Итак, создадим структуру диалогов.
    Для этого добавим в файл "dialogs_escape.xml" следующее:

    <dialog id="escape_nps1_dialog">
    <dont_has_info>escape_nps_start</dont_has_info>
    <phrase_list>
    <phrase id="0">
    <text>escape_nps1_dialog_0</text>
    <next>1</next>
    </phrase>
    <phrase id="1">
    <text>escape_nps1_dialog_1</text>
    <next>2</next>
    </phrase>
    <phrase id="2">
    <text>escape_nps1_dialog_2</text>
    <next>3</next>
    </phrase>
    <phrase id="3">
    <text>escape_nps1_dialog_3</text>
    <give_info>escape_nps_start</give_info> ; выдаётся инфопоршень, начало квеста
    </phrase>
    </phrase_list>
    </dialog>

    <dialog id="escape_nps2_dialog">
    <dont_has_info>escape_nps_done</dont_has_info>
    <has_info>escape_nps_start</has_info>
    <phrase_list>
    <phrase id="0">
    <text>escape_nps2_dialog_0</text>
    <next>1</next>
    </phrase>
    <phrase id="1">
    <text>escape_nps2_dialog_1</text>
    <next>2</next>
    </phrase>
    <phrase id="2">
    <text>escape_nps2_dialog_2</text>
    <next>3</next>
    </phrase>
    <phrase id="3">
    <text>escape_nps2_dialog_3</text>
    <give_info>escape_nps_done</give_info> ; выдаётся инфопоршень, конец квеста
    <action>complete_escape_nps</action> ; вызывается функция
    </phrase>
    </phrase_list>
    </dialog>

    С этим файлом всё.

    3. Работа с "info_l01escape.xml":
    В структурах диалогов мы упоминали о инфопоршнях.
    Создадим их в файле "info_l01escape.xml".
    В файле пишем:

    <info_portion id="escape_nps_start">
    <task>escape_asd</task>
    </info_portion>

    <info_portion id="escape_nps_done">
    </info_portion>

    С этим файлом всё.

    4. Работа с "storyline_info_escape.xml":
    Когда мы напишем строки в файле "tasks_escape.xml", вы поймёте, для чего всё это нужно.
    Добавим в файл "storyline_info_escape.xml" следущее:

    <article id="text_escape_nps" name="Поговорить с ..." article_type="task">
    <text>text_escape_nps</text>
    </article>

    С этим файлом всё.

    5. Работа с "tasks_escape.xml":
    Одна из самых главных работ в создании квеста.
    Здесь пишутся все данные о квесте.
    Откроем данный файл и добавим в него следующие строки:

    <game_task id="escape_nps">
    <title>Поговорить с ...</title>
    <objective>
    <text>Поговорить с ...</text>
    <icon>ui_iconsTotal_gar_help_dymon</icon>
    <infoportion_complete>escape_nps_done</infoportion_complete>
    <article>text_escape_nps</article>
    </objective>
    <objective>
    <text>Поговорить с ...</text>
    <map_location_type hint="...">blue_location</map_location_type>
    <object_story_id>...</object_story_id>
    <infoportion_complete>escape_nps_done</infoportion_complete>
    </objective>
    </game_task>

    С этим файлом всё.

    6. Работа с "new_life.script":
    Создадим файл "new_life.script".
    Сюда мы запишем все функции, используемые в квесте.
    Например, получение награды:

    function complete_escape_nps(first_speaker, second_speaker)
    dialogs.relocate_money(second_speaker, 1000, "in")
    end

    Главный герой получит 1000, если выполнится данная функция.
    С этим файлом всё.

    7,8. Работа с "amk.script", "sak.script":
    Эти файлы нужны, чтоы заработали функции в файле "new_life.script".
    В принципе, данный квест, возможно, будет работать и без них, но чтобы не накосячить вдальнейшем...
    Создадим их и напишем в "amk.script":

    function spawn_item(spawn_item, pos, gv,lv)
    if gv==nil then gv=db.actor:game_vertex_id() end
    if lv==nil then lv=db.actor:level_vertex_id() end
    return alife():create(spawn_item, pos, lv, gv)
    end

    function remove_item_from_inventory(remove_item,npc)
    if npc==nil then npc=db.actor end
    if remove_item~=nil then
    -- npc:mark_item_dropped(remove_item)
    alife():release(alife():object(remove_item:id()), true)
    return true
    end
    return false
    end

    Создадим их и напишем в "sak.script":

    local items_count=0
    local itemin=nil

    function have_item_namber(itm,need_namber)
    local actor=db.actor
    items_count=0
    itemin=itm
    actor:iterate_inventory(cheking_item,actor)
    if items_count>=need_namber then
    return true
    else
    return false
    end
    end
    function cheking_item(actor,item)
    local items=item:section()
    if items==itemin then
    items_count=items_count+1
    end
    end
    function create_items(npc,section,number)
    for i=1,number do
    alife():create(section,
    npc:position(),
    npc:level_vertex_id(),
    npc:game_vertex_id(),
    npc:id())
    end
    end
    local reloc_params={}
    local stalk
    function out_item_namber(itm_section,need_number)
    reloc_params.itm_section=itm_section
    reloc_params.itm_cnt=need_number
    reloc_params.itm_cnt_found =0
    db.actor:iterate_inventory(checkout_items_count,db.actor)
    reloc_params.itm_cnt_found=0
    if reloc_params.itm_cnt_found<=reloc_params.itm_cnt then
    db.actor:iterate_inventory(out_items_count,db.actor)
    end
    news_manager.relocate_item(db.actor, "out", itm_section)
    reloc_params={}
    end
    function relocate_item_namber(stalker,itm_section,need_number)
    stalk=stalker
    reloc_params.itm_section=itm_section
    reloc_params.itm_cnt=need_number
    reloc_params.itm_cnt_found=0
    db.actor:iterate_inventory(checkout_items_count,db.actor)
    reloc_params.itm_cnt_found=0
    if reloc_params.itm_cnt_found<=reloc_params.itm_cnt then
    db.actor:iterate_inventory(reloc_items_count,db.actor)
    end
    news_manager.relocate_item(db.actor, "out", itm_section)
    reloc_params={}
    end
    function checkout_items_count(actor,item)
    if item.section and item:section()==reloc_params.itm_section then
    reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1
    end
    end
    function reloc_items_count(actor,item)
    if item.section and item:section()==reloc_params.itm_section and reloc_params.itm_cnt_found<reloc_params.itm_cnt then
    db.actor:transfer_item(item, stalk)
    reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1
    end
    end
    function out_items_count(actor,item)
    if item.section and item:section()==reloc_params.itm_section and reloc_params.itm_cnt_found<reloc_params.itm_cnt then
    amk.remove_item_from_inventory(item, actor)
    reloc_params.itm_cnt_found = reloc_params.itm_cnt_found + 1
    end
    end

    С этими файлами всё.

    9. Работа с "stable_dialogs_escape.xml":
    Это самая последняя ступень.
    Откроем этот файл, добавим в него следущее:

    <string id="escape_nps1_dialog_0">
    <text>Есть работа?</text>
    </string>
    <string id="escape_nps1_dialog_1">
    <text>Поговори с ...</text>
    </string>
    <string id="escape_nps1_dialog_2">
    <text>Уже иду.</text>
    </string>
    <string id="escape_nps1_dialog_3">
    <text>Иди скорее.</text>
    </string>

    <string id="escape_nps2_dialog_0">
    <text>... просил с тобой поговорить.</text>
    </string>
    <string id="escape_nps2_dialog_1">
    <text>Считай, что поговорили.</text>
    </string>
    <string id="escape_nps2_dialog_2">
    <text>Давай награду!</text>
    </string>
    <string id="escape_nps2_dialog_3">
    <text>Вот.</text>
    </string>

    <string id="text_escape_nps">
    <text>... попросил поговорить с ...</text>
    </string>

    С этим файлом всё.
    Поздравляю! Вы только что написали новый квест.

    <!--УДАЧНОГО МОДОСТРОЕНИЯ!-->

    Рифмач-мододеЛ
    Для тч.
      Злобная реклама
    Пятница, 06.09.2013, 13:02
    Статус:
    Сообщений: 666
    Регистрация: 31.08.2013
    Российская Федерация  l_GunslingeR_l
    Пятница, 06.09.2013, 15:07 | Сообщение # 7931
    Статус:
    Гость:
    Сообщений: 69
    Награды: 0
    Регистрация: 04.08.2013

    При создании мода возникли 3 неразрешимых вопроса:
    1. Как заспавнить предмет через скрипт?
    2. Как удалить персонажа из старого сюжета (например Шустрого с АТП убрать)
    3. Как удалить голос Сидоровича после вступительного ролика? (Чтобы сразу можно было диалог начать)
      Злобная реклама
    Пятница, 06.09.2013, 15:07
    Статус:
    Сообщений: 666
    Регистрация: 04.08.2013
    Российская Федерация  Wo1fRam
    Пятница, 06.09.2013, 15:25 | Сообщение # 7932
    Статус:
    Новичок:
    Сообщений: 357
    Награды: 4
    Регистрация: 12.03.2013

    trinax, Во-первых, объёмные посты под спойлер прячь.
    Во-вторых, к чему это здесь вообще? Это темя для вопросов по моддингу, а не выкладыванию своих (ли?) уроков.

    l_GunslingeR_l,
    1. >>Тынц<<
    3. Есть мод под названием "No Sidr". Там и монолога нет, и дверь открыта сразу.
    Сообщение отредактировал Wo1fRam - Пятница, 06.09.2013, 15:34
      Злобная реклама
    Пятница, 06.09.2013, 15:25
    Статус:
    Сообщений: 666
    Регистрация: 12.03.2013
    Украина  FantomICW
    Пятница, 06.09.2013, 15:44 | Сообщение # 7933
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

    l_GunslingeR_l, по поводу Шустрого, кажись, в алл.спавне в alife_l01_escape.ltx вырезать секцию:
    Код
    [445]

    ; cse_abstract properties
    section_name = stalker
    name = esc_shustryi
    position = 118.689079284668, -7.4942798614502, 7.65357303619385
    direction = 0, 0, 0
    id = 65535
    version = 118
    script_version = 6
    spawn_id = 445

    ; cse_alife_trader_abstract properties
    money = 5000
    character_profile = esc_shustryi

    ; cse_alife_object properties
    game_vertex_id = 118
    distance = 8.3999996
    level_vertex_id = 422012
    object_flags = 0xffffffbf
    custom_data = <<END
    [smart_terrains]
    esc_lager = true
    END
    story_id = 4

    ; cse_visual properties
    visual_name = actors\novice\green_stalker_1

    ; cse_alife_creature_abstract properties
    g_team = 0
    g_squad = 0
    g_group = 0
    health = 2
    dynamic_out_restrictions =   
    dynamic_in_restrictions =   

    ; cse_alife_monster_abstract properties
    equipment_preferences = 1, 1, 0, 0, 2
    main_weapon_preferences = 1, 1, 0, 0

    ; cse_ph_skeleton properties

    ; se_stalker properties
    upd:health = 2
    upd:timestamp = 0x69206669
    upd:creature_flags = 0x6e
    upd:position = 118.689079284668, -7.4942798614502, 7.65357303619385

    ; cse_alife_human_stalker properties
    upd:start_dialog =
    Сообщение отредактировал FantomICW - Пятница, 06.09.2013, 15:44
      Злобная реклама
    Пятница, 06.09.2013, 15:44
    Статус:
    Сообщений: 666
    Регистрация: 06.01.2013
    Российская Федерация  NaEmNik_MoLfAr
    Пятница, 06.09.2013, 18:24 | Сообщение # 7934
    Статус:
    Зевака:
    Сообщений: 15
    Награды: 0
    Регистрация: 29.05.2013

    Всем привет! Вот такой вопрос:

      Злобная реклама
    Пятница, 06.09.2013, 18:24
    Статус:
    Сообщений: 666
    Регистрация: 29.05.2013
    Российская Федерация  R0D23
    Пятница, 06.09.2013, 18:59 | Сообщение # 7935
    Мертвый Путь 3
    Статус:
    Опытный:
    Сообщений: 1491
    Награды: 1
    Регистрация: 23.06.2013

    Цитата (NaEmNik_MoLfAr)
    Играю я в sgm mod 2.2 и хочу убрать качение прицела....как это сделать......P.S. конфиги прицелов я знаю где, а вот что изменять нет...в инэте пишут...но не понятно

    это же в настройках мода меняется wacko

    Добавлено (06.09.2013, 18:59)
    ---------------------------------------------

    Цитата (Wo1fRam)
    Во-вторых, к чему это здесь вообще? Это темя для вопросов по моддингу, а не выкладыванию своих (ли?) уроков.

    мне помогло, СПС
      Злобная реклама
    Пятница, 06.09.2013, 18:59
    Статус:
    Сообщений: 666
    Регистрация: 23.06.2013
    Поиск: