Случайная подборка модов
SFZ Project: Episode Zero
4.8
Пространственная Аномалия 4.1
4.5
L.U.R.K.
4.0
Упавшая звезда. Честь наемника
4.2
Объединенный Пак 2.1
3.1
Долина Шорохов
4.5
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  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
    Российская Федерация  R0D23
    Пятница, 06.09.2013, 12:44 | Сообщение # 7951
    Мертвый Путь 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 | Сообщение # 7952
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 2259
    Награды: 8
    Регистрация: 06.01.2013

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

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

    да точно СПС. И еще вопрос как начать это задание? Типо я поговорил с Сидоровичем и у меня задание поговори с Шустрым.
      Злобная реклама
    Пятница, 06.09.2013, 12:51
    Статус:
    Сообщений: 666
    Регистрация: 23.06.2013
    Российская Федерация  trinax
    Пятница, 06.09.2013, 13:02 | Сообщение # 7954
    Статус:
    Гость:
    Сообщений: 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 | Сообщение # 7955
    Статус:
    Гость:
    Сообщений: 69
    Награды: 0
    Регистрация: 04.08.2013

    При создании мода возникли 3 неразрешимых вопроса:
    1. Как заспавнить предмет через скрипт?
    2. Как удалить персонажа из старого сюжета (например Шустрого с АТП убрать)
    3. Как удалить голос Сидоровича после вступительного ролика? (Чтобы сразу можно было диалог начать)
      Злобная реклама
    Пятница, 06.09.2013, 15:07
    Статус:
    Сообщений: 666
    Регистрация: 04.08.2013
    Российская Федерация  Wo1fRam
    Пятница, 06.09.2013, 15:25 | Сообщение # 7956
    Статус:
    Новичок:
    Сообщений: 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 | Сообщение # 7957
    Проект Смерти Вопреки
    Статус:
    Опытный:
    Сообщений: 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 | Сообщение # 7958
    Статус:
    Зевака:
    Сообщений: 15
    Награды: 0
    Регистрация: 29.05.2013

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

      Злобная реклама
    Пятница, 06.09.2013, 18:24
    Статус:
    Сообщений: 666
    Регистрация: 29.05.2013
    Российская Федерация  R0D23
    Пятница, 06.09.2013, 18:59 | Сообщение # 7959
    Мертвый Путь 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
    Российская Федерация  ins33
    Пятница, 06.09.2013, 20:33 | Сообщение # 7960
    Dream Reader Mod
    Статус:
    Опытный:
    Сообщений: 2269
    Награды: 1
    Регистрация: 17.01.2012

    trinax,
    Цитата (trinax)
    <action>complete_escape_nps</action> ; вызывается функция
    ??? от куда она вызывается?
    Пишется так: <action>имя_скрипта.имя_функции</action>
    Цитата (trinax)
    Эти файлы нужны, чтоы заработали функции в файле "new_life.script".
    ??? Ф-ции amk тут не нужны, т.к. для работы нужен лишь dialogs.script, который есть в ресурсах игры.
    Сообщение отредактировал ins33 - Пятница, 06.09.2013, 21:02
      Злобная реклама
    Пятница, 06.09.2013, 20:33
    Статус:
    Сообщений: 666
    Регистрация: 17.01.2012
    Российская Федерация  cxcxShaman
    Пятница, 06.09.2013, 22:43 | Сообщение # 7961
    Статус:
    Отмычка:
    Сообщений: 144
    Награды: 0
    Регистрация: 04.03.2013

    makdm,
    Цитата (makdm)
    Получить кондицию первого объекта local condition = obj_1:condition() Установить эту кондицию второму объекту obj_2:set_condition(condition) Где obj_1 - первый костюм, а obj_2 - второй костюм

    Что то не выходит. Как спавнился со 100% так и спавнится
      Злобная реклама
    Пятница, 06.09.2013, 22:43
    Статус:
    Сообщений: 666
    Регистрация: 04.03.2013
    Российская Федерация  ALEX13
    Суббота, 07.09.2013, 09:03 | Сообщение # 7962
    Статус:
    Опытный:
    Сообщений: 1625
    Награды: 12
    Регистрация: 26.12.2012

    Как к новому стволу в ЗП прикрепить апгрейд например АК74?
      Злобная реклама
    Суббота, 07.09.2013, 09:03
    Статус:
    Сообщений: 666
    Регистрация: 26.12.2012
    Российская Федерация  R0D23
    Суббота, 07.09.2013, 09:49 | Сообщение # 7963
    Мертвый Путь 3
    Статус:
    Опытный:
    Сообщений: 1491
    Награды: 1
    Регистрация: 23.06.2013

    Цитата (ALEX13)
    Как к новому стволу в ЗП прикрепить апгрейд например АК74?

    не прикрепится ГП к ТРС анимации не будет. А если так ищи в файле оружия строки grenade_launcher_name = wpn_addon_grenade_launcher-это гранатомет
      Злобная реклама
    Суббота, 07.09.2013, 09:49
    Статус:
    Сообщений: 666
    Регистрация: 23.06.2013
    Российская Федерация  ALEX13
    Суббота, 07.09.2013, 09:56 | Сообщение # 7964
    Статус:
    Опытный:
    Сообщений: 1625
    Награды: 12
    Регистрация: 26.12.2012

    R0D23, я имел ввиду чтобы можно новое оружие модернизировать, и мне надо чтоб модернизация была от АК74.
      Злобная реклама
    Суббота, 07.09.2013, 09:56
    Статус:
    Сообщений: 666
    Регистрация: 26.12.2012
    Российская Федерация  R0D23
    Суббота, 07.09.2013, 10:07 | Сообщение # 7965
    Мертвый Путь 3
    Статус:
    Опытный:
    Сообщений: 1491
    Награды: 1
    Регистрация: 23.06.2013

    ALEX13, тоже не сложно: В файле оружия есть строки
    upgrades = up_gr_firstab_abakan, up_gr_firstcd_abakan, up_gr_firste_abakan, up_gr_firstf_abakan, up_gr_seconab_abakan, up_gr_seconc_abakan, up_gr_second_abakan, up_gr_seconef_abakan, up_gr_thirdab_abakan, up_gr_thirdc_abakan, up_gr_thirdd_abakan, up_gr_thirdef_abakan, up_gr_fourtab_abakan, up_gr_fourtcd_abakan, up_gr_fourte_abakan, up_gr_fourtf_abakan, up_gr_change_components_abakan - от абакана
    upgrade_scheme = ;upgrade_scheme_abakan
      Злобная реклама
    Суббота, 07.09.2013, 10:07
    Статус:
    Сообщений: 666
    Регистрация: 23.06.2013
    Поиск: