Jump to content
Zeka1996Korneev

Уроки по модостроению

Recommended Posts

Tris    9

Как изменить эффекты при нахождении в оазисе [ЗП]

В скрипте

xr_effects (по default) на строке 2688 есть функция:
Она и отвечает за эффекты в оазисе.
function oasis_heal()
    local d_health = 0.005
    local d_power = 0.01
    local d_bleeding = 0.05
    local d_radiation = -0.05
    if(db.actor.health<1) then
        db.actor.health = d_health
    end
    if(db.actor.power<1) then
        db.actor.power = d_power
    end
    if(db.actor.radiation>0) then
        db.actor.radiation = d_radiation
    end
    if(db.actor.bleeding>0) then
        db.actor.bleeding = d_bleeding
    end
        db.actor.satiety = 0.01
end

например, так:

function oasis_heal()
    local d_health = 0.005
    local d_power = 0.01
    local d_bleeding = 0.05
    local d_radiation = 0.05
    if(db.actor.health<1) then
        db.actor.health = d_health
    end
    if(db.actor.power<1) then
        db.actor.power = d_power
    end
    if(db.actor.radiation>0) then
        db.actor.radiation = d_radiation
    end
    if(db.actor.bleeding>0) then
        db.actor.bleeding = d_bleeding
    end
        db.actor.satiety = 0.01
end

теперь находясь в оазисе, радиация будет прибавляться.


Как сделать изношенное снаряжение в начале игры ЗП

В скрипте xr_effects есть такая функция:
(Находится она на строке: 2787)
Она и отвечает за изношенность предметов.

function damage_actor_items_on_start(actor, npc)
    local actor = db.actor

    local obj = actor:object("helm_respirator")
    if obj ~= nil then
        obj:set_condition(0.8)
    end

    obj = actor:object("stalker_outfit")
    if obj ~= nil then
        obj:set_condition(0.76)
    end

    obj = actor:object("wpn_pm_actor")
    if obj ~= nil then
        obj:set_condition(0.9)
    end

    obj = actor:object("wpn_ak74u")
    if obj ~= nil then
        obj:set_condition(0.7)
    end

end

Если вы добавили в начало игры новое оружие, можно расширить функцию например так:

function damage_actor_items_on_start(actor, npc)
    local actor = db.actor

    local obj = actor:object("helm_respirator")
    if obj ~= nil then
        obj:set_condition(0.8)
    end

    obj = actor:object("stalker_outfit")
    if obj ~= nil then
        obj:set_condition(0.76)
    end

    obj = actor:object("wpn_pm_actor")
    if obj ~= nil then
        obj:set_condition(0.9)
    end

    obj = actor:object("wpn_ak74u")
    if obj ~= nil then
        obj:set_condition(0.7)
    end

    obj = actor:object("wpn_vintorez")
    if obj ~= nil then
        obj:set_condition(0.7)
    end

end

Теперь добавленное оружие тоже будет немного повреждено.

 

Edited by World_Stalker
  • Полезно 1

Share this post


Link to post
Share on other sites

[ЧН] Спавн сквадов и их параметры

Все параметры вытащил из

sim_squad_scripted.script, итак следующие параметры можно указать в ltx-файлах squad_descr_*
[squad_name] ;Имя сквада
auto_id = true/false ;Автоматический выбор командира
faction = army ;группировка
npc = npc_1, npc_2, npc_3, npc_4, npc_5 ;НПС
target_smart = smart_terrain_name ;Смарт в который пойдет отряд
on_death = %+infoportion% ;Инфа после смерти отряда
attack_power = 400 ;Число прибавляеющееся при атаке на смарт(чем больше тем лучше)
invulnerability = true/false ;Бессмертие
relationship = friend/enemy/neutral ;Отношение к ГГ
sympathy = 0.1 ;Симпатия
show_spot = true/false ;Показывать отметку на карте
always_walk = true/false ;Состояние в котором передвигается отряд
spawn_point = spawn_point_smart ;Спавн точка смарта

 

 

Edited by World_Stalker
  • Like 3

Share this post


Link to post
Share on other sites

Внесу и свою лепту которую все знают кроме новичков разве что.

Лезем в файл

gamedata\configs\weapons\weapons.ltx
под секцией [ammo_base] есть строка:
;belt = true;

меняем её на это:

belt = true

И можем вешать патроны на пояс. Когда там нет игра автоматом берёт из рюкзака.
В зп на версии 1.6.00 при смене автоматных патронов на патроны для дробовика случался вылет stace trase. Но вроде бы только один раз.

 

Edited by World_Stalker

Share this post


Link to post
Share on other sites

Ставим новые метки в ПДА [ЗП]
Дело было как ни странно, днём... Появилась необходимость поставить метки переходов с одной локации на другую - покопавшись малость в теме "ковырялки ЗП" увидел, что до меня были такие попытки создания меток, но по-крупному копаться в скриптах я не люблю по причине неопытности в скриптах - решил сделать сам.
 
Для начала идём в pda.script:
После таблицы под названием sleep_zones_tbl добавим ещё одну, должно получиться так:

local sleep_zones_tbl =
{
    {target = "zat_a2_sr_sleep_id",        hint = "st_ui_pda_sleep_place"},
    {target = "jup_a6_sr_sleep_id",        hint = "st_ui_pda_sleep_place"},
    {target = "pri_a16_sr_sleep_id",    hint = "st_ui_pda_sleep_place"},
    {target = "escape_podval_sr_sleep_id",    hint = "st_ui_pda_sleep_place"},
    {target = "garbage_base_sr_sleep_1_id",    hint = "st_ui_pda_sleep_place"},
    {target = "garbage_base_sr_sleep_2_id",    hint = "st_ui_pda_sleep_place"},
    {target = "garbage_dolg_zastava_sr_sleep_id",    hint = "st_ui_pda_sleep_place"},
}       -- это таблица отметок спального места, её мы не трогаем
 
local level_changer_tbl =
{
    {target = "perehod_darks_esc",        hint="perehod_darks_esc_name"},
    {target = "id_перехода",                    hint="надпись над переходом"},
}     --А это наша новая таблица, содержащие переходы и надписи над ними

 

 
После этой добавки идём в самый конец файла и добавляем саму функцию показания перехода

function fill_level_changers()
    for k,v in pairs(level_changer_tbl) do
        local obj_id = get_story_object_id(v.target)
        if(obj_id) then
            level.map_add_object_spot(obj_id, "level_changer_up", v.hint)
        end
    end
end

 


Где, ui_inGame2_icon_level_changer - имя значка нашего перехода, можно поставить из оригинальной игры, но я создам свой
Итак, теперь нам нужно создать вызов нашей функции - далеко ходить не будем (ибо лень :russian_ru: ): находим функцию fill_primary_objects и добавляем вызов нашей: 

function fill_primary_objects()
    for k,v in pairs(primary_objects_tbl) do
        local obj_id = get_story_object_id(v.target)
        if(obj_id) then
            level.map_add_object_spot(obj_id, "primary_object", v.hint)
        end
    end
    change_anomalies_names()
    fill_sleep_zones()
    fill_level_changers() --Вот вызов нашей функции
end

 


Со скриптами мы закончили, теперь нужно создать наш переход и текст к нему.
Для того, чтобы наш переход отображался нужно придать ему id, для этого создадим его секцию в all.spawn, но с одной добавкой:

[8057]
; cse_abstract properties
section_name = level_changer
name = perehod_darks_esc
position = -618.825927,-2.623994,-380.298706
direction = 0,0,0
cse_abstract__unk1_h16 = 0x1
; cse_alife_object properties
game_vertex_id = 1789
distance = 0
level_vertex_id = 404
object_flags = 0xffffff3e
custom_data = <<END ;Вот тут и нужно добавить его id, а далее - как раньше
[story_object]
story_id = perehod_darks_esc
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 6
; cse_alife_space_restrictor properties
restrictor_type = 3
; cse_alife_level_changer properties
dest_game_vertex_id = 1407
dest_level_vertex_id = 593260
dest_position = 363.344421,15.172136,-39.722797
dest_direction = 0,0,0
dest_level_name = l01_escape
dest_graph_point = start_actor_01
silent_mode = 1
; se_level_changer properties

 


Идём в st_land_names.xml и добавляем в конец файла описания наших переходов:

<!-- Переходы -->
<string id="perehod_darks_esc_name">
        <text>На Кордон</text>
</string>
<!-- Переходы -->

 


 
1733042.jpg - Результат
 
Собственно всё, таким образом можно создать не только отметки переходов, но и для чего-другого с разными иконками (в данном случае, ну никак иконки "спального места" и "интересного места" под переход не подходили) - допустим, для любителей "читерки", можно добавить отметку к укрытиям (добавив в секцию укрытия в all.spawn строки присвоения id) или чего-другого, это зависит от потребности.

Edited by World_Stalker
  • Like 1

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

Share this post


Link to post
Share on other sites

Добавление новых кнопок в ПДА (ЗП)

Примечание: Сей "фокус" можно проделывать только с правками от проекта X-Ray extensions, а конкретно, с правками ПДА.

 

Итак, всё-таки захотели мы создать вкладку в ПДА. Но не знаем как. Проблемы, согласен. Вот некоторая часть решения этой проблемы:

1. Заходим в pda.xml, ищем таблицу:

<tab x="443" y="57" width="468" height="27"><button x="0" y="0" width="172" height="27" id="eptTasks" hint="pda_btn_quests_hint" frame_mode="0">    <text align="c" vert_align="c" x="0" y="0" width="157" height="27" font="letterica16">pda_btn_quests</text>    <texture>ui_inGame2_pda_button</texture>    <text_color>        <t r="255" g="255" b="255"/>        <d r="255" g="255" b="255"/>        <e r="200" g="200" b="200"/>        <h r="170" g="170" b="170"/>     </text_color></button><button x="148" y="0" width="172" height="27" id="eptRanking" hint="pda_btn_ranking_hint" frame_mode="0">    <text align="c" vert_align="c" x="0" y="0" font="letterica16">pda_btn_ranking</text>    <texture>ui_inGame2_pda_button</texture>    <text_color>        <t r="255" g="255" b="255"/>        <d r="255" g="255" b="255"/>        <e r="200" g="200" b="200"/>        <h r="170" g="170" b="170"/>    </text_color></button><button x="296" y="0" width="172" height="27" id="eptLogs" hint="pda_btn_logs_hint" frame_mode="0">    <text align="c" vert_align="c" x="0" y="0" font="letterica16">pda_btn_logs</text>    <texture>ui_inGame2_pda_button</texture>    <text_color>        <t r="255" g="255" b="255"/>        <d r="255" g="255" b="255"/>        <e r="200" g="200" b="200"/>        <h r="170" g="170" b="170"/>    </text_color></button></tab>

2. Для лучшего понимания, разберём это дело по блокам:

Это блок является "колбой", в которой находятся кнопки в ПДА:

<tab x="Смещение колбы по Х" y="Смещение колбы по У" width="Ширина колбы" height="Высота колбы"></tab>

А этот блок как раз и является кнопкой:

<button x="Смещение кнопки по Х" y="Смещение кнопки по У" width="Ширина" height="Высота" id="Уникальное Айди (id) кнопки" hint="Подсказка, всплывающая при наведении на кнопку" frame_mode="0">    <text align="c" vert_align="c" x="0" y="0" font="letterica16">Ссылка на текст-описание кнопки</text>    <texture>Имя текстуры кнопки</texture>    <text_color> <!-- Цветовые настройки текста в кнопке -->        <t r="255" g="255" b="255"/>        <d r="255" g="255" b="255"/>        <e r="200" g="200" b="200"/>        <h r="170" g="170" b="170"/>    </text_color></button>

3. А теперь приступим к созданию новой кнопки:

 

В колбе, содержащей кнопки, нужно изменить параметр "Смещения по Х", отняв от значения число, равное значению "Смещения кнопки по Х" от ВТОРОЙ кнопки:

<tab x="296" y="57" width="468" height="27"></tab>

А так же, нужно к параметру "width="468"" (и последующему значению, если добавляете больше одной кнопки) прибавить число 172, которое равно ширине кнопки. Первый пункт делается для того, чтобы новая кнопка не "налезала" на другие части ПДА (Часы, другие кнопки и т.п.), а второй, чтобы кнопка была в "колбе" и была активной, то есть, доступной для нажимания.

Делается это для того, чтобы новая кнопка не "налезала" на другие части ПДА (Часы, другие кнопки и т.п.).

 

Далее, создадим саму кнопку (в данном случае для энциклопедии):

<button x="444" y="0" width="172" height="27" id="eptEncyclopedia" hint="pda_btn_encyclopedia_hint" frame_mode="0">    <text align="c" vert_align="c" x="0" y="0" font="letterica16">pda_btn_encyclopedia</text>    <texture>ui_inGame2_pda_button</texture>    <text_color>        <t r="255" g="255" b="255"/>        <d r="255" g="255" b="255"/>        <e r="200" g="200" b="200"/>        <h r="170" g="170" b="170"/>     </text_color></button>

Всё, кнопка создана и функционирует, её название некоректно отображается ("pda_btn_encyclopedia" вместо "Энциклопедия"), исправим это.

4. Идём в файл configs\text\rus\ui_st_pda.xml и добавим две секции в самый конец:

<string id="pda_btn_encyclopedia">    <text>Энциклопедия</text></string><string id="pda_btn_encyclopedia_hint">    <text>Открыть энциклопедию</text></string>

(Здесь, для энциклопедии, а вам нужно вписать ссылку на свою кнопку и её название по образцу).

Всё, теперь кнопка работает, даже отображается корректно, но не открывает новый раздел: когда нажимаем на неё, то перед нами остаётся предыдущая активная вкладка, хоть и наша новая кнопка активна.

Вот объяснение этого явления от тов. @Malandrinus:

 

Текущее содержимое окна при активации свой кнопки не убирается, поэтому придётся закрывать его своим содержимым с помощью помещения диалога поверх окна. К сожалению, получение текущего окна в ЧН и ЗП стало невозможно и пока решения этой проблемы не видно.

Так что новой вкладки мы не получим - только кнопочка. Даже не расскажу, как это окно сделать, т.к. я пробовал и у меня, пока, ничего не вышло. Будем пытаться, а пока - всё.

P.S. Вот так это будет выглядеть:

2082991.jpg

 

P.P.S. Добавлена информация, из за отсутствия которой не функционировала кнопка.

Edited by ColR_iT
  • Thanks 1

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

Share this post


Link to post
Share on other sites
Viktor_Kris    23
Файлы для работы:
Из распакованного all.spawn'а:
alife_локация.ltx

А также скрипты из gamedata\scripts :
pda.script
xr_effects.scripts


Приступим:
1) Открываем alife_локация и добавляем секцию:
[1867] ; номер секции
; cse_abstract properties
section_name = space_restrictor
name = ваше_название_места
position = -180.277893066406,9.41139984130859,77.5603179931641 ;нужная позиция (в данном случае - домик в Изумрудном)
direction = 0,0,0

; cse_alife_object properties
level_vertex_id=1233171 ; левел_вертекс
game_vertex_id=13 ; гейм_вертекс
distance = 9.09999942779541
object_flags = 0xffffff2e
custom_data = <[story_object]
story_id = ваше_название_места_id

[logic]
cfg = scripts\sr_sleep.ltx
END

; cse_shape properties
shapes = shape0,shape1
shape0:type = box
shape0:axis_x = 3.85299897193909,0,0
shape0:axis_y = 0,2.51200008392334,0
shape0:axis_z = 0,0,6.23259878158569
shape0:offset = 0,0,0
shape1:type = box
shape1:axis_x = 3.16719889640808,0,0
shape1:axis_y = 0,2.51200008392334,0
shape1:axis_z = 0,0,4.87539911270142
shape1:offset = -3.29999589920044,0,-0.199996992945671

; cse_alife_space_restrictor properties
restrictor_type = 3

Закрываем.

 

2) Заходим в pda.script, ищем:

{
{target = "zat_a2_sr_sleep_id", hint = "st_ui_pda_sleep_place"},
{target = "jup_a6_sr_sleep_id", hint = "st_ui_pda_sleep_place"},
{target = "pri_a16_sr_sleep_id", hint = "st_ui_pda_sleep_place"},
}

и меняем на это:

{
{target = "zat_a2_sr_sleep_id", hint = "st_ui_pda_sleep_place"},
{target = "jup_a6_sr_sleep_id", hint = "st_ui_pda_sleep_place"},
{target = "pri_a16_sr_sleep_id", hint = "st_ui_pda_sleep_place"},
{target = "ваше_название_места_id", hint = "st_ui_pda_sleep_place"},
}

Закрываем

 

3) Открываем xr_effects.script, ищем:

function sleep(actor, npc)
local sleep_zones = {
"zat_a2_sr_sleep",
"jup_a6_sr_sleep",
"pri_a16_sr_sleep",
"actor_surge_hide_2"
}

и меняем на это:

function sleep(actor, npc)
local sleep_zones = {
"ваше_название_места",
"zat_a2_sr_sleep",
"jup_a6_sr_sleep",
"pri_a16_sr_sleep",
"actor_surge_hide_2"
}

Всё, можно запускать игру и проверять!

 

Edited by World_Stalker
  • Thanks 2

Share this post


Link to post
Share on other sites

Создание энциклопедии для ПДА в ЗП.
Примечание: Аналогично предыдущему уроку, энциклопедию реализовать можно только при помощи проекта X-Ray extensions. Для того, чтобы кнопка энциклопедии появилась, нужно выполнить мой предыдущий урок "Добавление новых кнопок в ПДА (ЗП)".
Ссылка на готовую энциклопедию+видеодемонстрация:  http://rghost.ru/47774542

 

Как мы уже знаем из слов тов. malandrinus, "родные" для ПДА вкладки нам нужно будет закрывать собственной. Для этого нам нужен свой GUI и нам нужна "ловля" инфопоршня при открытии вкладки. Мастерить велосипед самому мне не понравилось: хоть уроки по GUI есть, но мне показалось, что с моим опытом я могу сделать только несколько окошечек, не более. Про вкладку в ПДА, которая соответствовала бы стилю нашего электронного друга я вообще даже не мечтал, поэтому взял наработки тов.

DEXXX (записная книжка в ЧН) и Geonezis (Энциклопедия оружия, на основе предыдущей работы).

 

 

Скачиваем готовую энциклопедию, там есть пометки, для понимания, как это всё работает, тут объясню чуть подробней.

 

Адаптация:

С другими модами (и с оригиналом) конфликтуют только два скрипта: _g.script и bind_stalker.script. В _g.script добавлены глобальные функции:



function run_gui(gui, close_inv) --Функция для запуска GUI, в нашем случае, энциклопедии
    if close_inv == true then
        gui:ShowDialog(true)
        game_hide_menu()
        level.show_weapon(false)
    else 
	    gui:ShowDialog(true)
    end
end
function GetString(id) --Функция для инициализации имён
	if not(id) then return "" end
	return game.translate_string(id)
end

А в bind_stalker.script добавлен вызов скрипта, который отлавливает инфопоршень при открытии вкладки энциклопедии:



function actor_binder:update(delta)
gui_callbacks.on_info() --Вызов нашего "Ловчего поршней"
object_binder.update(self, delta)
...

Всё, адаптация пройдена - должна функционировать.

 

А теперь - как этой с энциклопедией работать.

Допустим, мы решили добавить нового мутанта - Тарк (Tark). Делается это так:

Добавляем этого мутанта в таблицу мутантов, что в скрипте gui_main.script:



local pda_enc_mutants={
    "Mutant_boar",
    "Flesh",
    "Pseudo_flesh",
"Tark", --Вот он
"Bloodsucker",
...

Теперь, от выбранного нами имени будет зависеть, как будет называться текстура-иконка, текст с описанием, название мутанта на "человеческом" языке (а не на машинном) и и название инфопоршня, при получении которого мы получим статью в энциклопедию.

Текстура должна иметь следующее имя: ui_enc_#Имя мутанта# .

Текст с описанием: enc_#Имя мутанта#.

Название будет равно Имени мутанта.
А инфопоршень будет "величаться": #Имя мутанта#_info.

Для лучшей ориентации и унификации, подобная структура, описанная выше, будет актуальна и для мутанта и для группировок и для всего остального. Думаю, так будет лучше.

Как я говорил ранее, инфопоршень нужно выдавать через что-либо: диалоги, награды за задания, "отловы" на то, что вы кого-то убили, либо некоторая вероятность получения поршня при обыске трупов.

Парт-текстура, по умолчанию, читается из файла ui_pda_encyclopedia.dds. Если хотим добавить иконку, то нужно вставить в файл иконку (по умолчанию, она должна быть 165 на 107 пикселей, иначе будет растянута\сплющена), измерить её координаты по аналогии с прудыдущими и задать имя, как я уже описал выше.

Описание и название указывается в фале configs\text\rus\st_notepad.xml. В принципе, можно вставить в другой файл, но лучше соблюдать порядок - вам же будет лучше.

 

Всё, на этом я удаляюсь - пользуйтесь и указывайте авторов. Доброй Зоны, сталкеры.

 

  • Thanks 2
  • Like 2

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

Share this post


Link to post
Share on other sites

Небольшой пак уроков от меня (всего два урока, позже будут еще). Оба урока в формате .doc.

• Добавление абсолютно новых ящиков на классе inventory_box

• Показываем состояние здоровья ГГ в процентах

Надеюсь, они окажутся полезными.

Скачать : http://rghost.ru/48034494

Edited by World_Stalker
  • Like 3

AWRP : Re - Load 0.2 ©

Share this post


Link to post
Share on other sites
RayTwitty    443

Это не урок, просто небольшие памятки по некоторым вещам, которые мне были нужны.

Вся информация взята из оригинальных файлов ТЧ.

 

Настройки костей у динамического источника света

166de793236328822603d692e578fe1cb0c28716

 

Настройки комментариев у звуков монстров (в различных состояниях)

dc2ce81751c9b1c96bbe16656d57535cb0c28716

 

Конечно, это все несложно выяснить самому, но иной раз надоест все это запоминать или куда-то записывать...

 

З.Ы. такое вообще надо бы оформить в таблицу, но мне было лень это делать, поэтому как есть :)

Edited by Shadows
  • Like 4

Share this post


Link to post
Share on other sites

Отключение интро-ролика, и последующий его запуск.

Примечание: Теоретически это должно работать на всех частях сталкера, но я буду показывать на примере Чистого неба.

 

Итак, начнем. Нам требуется отключить интро-ролик после начала новой игры. Проблема  в том, что запуск ролика движковый, поэтому придется изощряться. Находим в файле configs/ui/ui_movies.xml секцию "intro_game". И приводим ее к такому виду:

<intro_game>
<global_wnd x="0" y="0" width="1024" height="768">
<auto_static x="0" y="0" width="1024" height="768" stretch="1">
<texture>intro\intro_back</texture>
</auto_static>
</global_wnd>


<item type="video">
<sound>$no_sound.ogg</sound>
<delay>0</delay>
<pause_state>off</pause_state>
       <function_on_stop>xr_effects.darkness</function_on_stop>
<video_wnd x="0" y="0" width="1024" height="768" stretch="1">
<texture x="0" y="1" width="1280" height="954">intro\intro_back</texture>
</video_wnd>
</item>




</intro_game>

 

 

 

Первая часть работы сделана. Теперь при начале новой игры интро-ролика не будет. А что если нам надо его запустить впоследствии? Для этого создаем в этом же файле новую секцию, intro_game2, к примеру. И пишем в ней:

<intro_game2>
<play_each_item>1</play_each_item>
<global_wnd x="0" y="0" width="1024" height="768">
<_auto_static x="0" y="0" width="1024" height="768" stretch="1">
<window_name>back</window_name> 
<texture>intro\intro_back</texture> 
</_auto_static>
</global_wnd> 
<item type="video">
       <sound>characters_voice\scenario\video\intro</sound>
       <pause_state>on</pause_state>
       <function_on_stop>xr_effects.start_marsh_intro</function_on_stop>
       <video_wnd x="0" y="0" width="1024" height="768" stretch="1">
         <texture x="1" y="1" width="628" height="358">intro\intro_half</texture>
          </video_wnd>
          
          <background x="0" y="0" width="1024" height="768" stretch="1">
            <texture>intro\intro_back</texture>
          </background>
        </item>
<item type="image">
  <length_sec>5</length_sec>
<pause_state>off</pause_state>
<main_wnd>
<auto_static start_time="0" length_sec="5"  x="0" y="0" width="1230" height="768" light_anim="intro_1" light_anim_cyclic="0" la_alpha="1" la_texture="1" stretch="1">
<window_name>w1</window_name>
<texture>intro\intro_back</texture>
</auto_static>
</main_wnd>
</item>
</intro_game2>

 

 

Обратите внимание на поле:

<function_on_stop>xr_effects.start_marsh_intro</function_on_stop>

Здесь указывается функция, которая будет запущена по истечению туториала.

Но мы всего лишь создали новый туториал, теперь его надо запустить. Для удобства можно поместить функцию в xr_effects.script 

function go_intro()
  game.start_tutorial("intro_game2")
end

Дальше остается только запустить эту функцию, как это сделать - выбор на ваше усмотрение.

 

Edited by World_Stalker
  • Like 3

Share this post


Link to post
Share on other sites
Waljok    9

Так как я начинающий модостроитель, но всё же поделюсь кое-каким опытом.

Когда добавляете новую функцию с приёмом-отдачей, то всегда пишите функцию отдачи первой. Дело в том, что Меченому-Стрелку никто в Зоне не верит и сначала все требуют нужный кому либо предмет.


Сначала я не понимал, почему у меня не срабатывает функция. Но я вовремя вспомнил, что в солянке сначала ГГ отдаёт что-либо, а потом получает награду. Попробовал функцию отдачи прописать первой и - вауля, скрипт срабатывает.

 

Может быть, кому нибудь пригодится.

Edited by World_Stalker
  • Confused 1

Весёлые люди - это не те, кто постоянно весёлые,  а те, кто веселится даже в самых худших ситуациях.  

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

AMK-Team.ru

×
×
  • Create New...