Случайная подборка модов
Winter of Death: Ultimatum
4.0
Сюжетное продолжение Чистого неба
4.1
NLC 7: Я - Меченный
3.8
В поисках новой жизни
3.7
L.U.R.K.
4.0
Радиоактивное мясо. Схватка
3.0
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
Модострой:Вопросница
Российская Федерация  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
    Поиск: