Перейти к контенту
Zeka1996Korneev

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

Рекомендуемые сообщения

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

В скрипте

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

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

 

Изменено пользователем World_Stalker

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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 ;Спавн точка смарта

 

 

Изменено пользователем World_Stalker

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Лезем в файл

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

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

belt = true

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

 

Изменено пользователем World_Stalker

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Язык программирования Lua. Учебник для начинающих.
Скачать в формате .txt

Взято с сайта:
http://big.vip-zone.su/doc/devel/lua.xml

Изменено пользователем World_Stalker

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ставим новые метки в ПДА [ЗП]
Дело было как ни странно, днём... Появилась необходимость поставить метки переходов с одной локации на другую - покопавшись малость в теме "ковырялки ЗП" увидел, что до меня были такие попытки создания меток, но по-крупному копаться в скриптах я не люблю по причине неопытности в скриптах - решил сделать сам.
 
Для начала идём в 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) или чего-другого, это зависит от потребности.

Изменено пользователем World_Stalker

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Примечание: Сей "фокус" можно проделывать только с правками от проекта 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. Добавлена информация, из за отсутствия которой не функционировала кнопка.

Изменено пользователем ColR_iT

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
Файлы для работы:
Из распакованного 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"
}

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

 

Изменено пользователем World_Stalker

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создание энциклопедии для ПДА в ЗП.
Примечание: Аналогично предыдущему уроку, энциклопедию реализовать можно только при помощи проекта 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. В принципе, можно вставить в другой файл, но лучше соблюдать порядок - вам же будет лучше.

 

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

 

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

Изменено пользователем World_Stalker

AWRP : Re - Load 0.2 ©

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

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

166de793236328822603d692e578fe1cb0c28716

 

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

dc2ce81751c9b1c96bbe16656d57535cb0c28716

 

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

 

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

Изменено пользователем Shadows

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

 

Итак, начнем. Нам требуется отключить интро-ролик после начала новой игры. Проблема  в том, что запуск ролика движковый, поэтому придется изощряться. Находим в файле 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

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

 

Изменено пользователем World_Stalker

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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


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

 

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

Изменено пользователем World_Stalker

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...