Перейти к содержанию

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

 
 

А через что вообще создаётся анимация для текста? Может я успею сделать новую анимацию


Дополнено 1 минуту спустя

denis2000 %=add_cs_end_text(pavlik_leave_zone)% - функция из кат-сцены, которая через таймер вызывается

<string id="creator">
        <text>Разработчик - Skala (The Rock) \nСценарий - Skala (The Rock)</text>
    </string> - русификация

Всё, проблема решена. Я не так light_anim вырезал, теперь всё нормально

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

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


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

Skala text_on_screen_end


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


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

denis2000 Я уже понял, что было не так. Теперь и текст не мигает, и \n работает. Нужно было вырезать light_anim="ui_tesk_description", а complex_mode="1" la_alpha="1" la_text="1" la_cyclic="0" оставить. А я в первый раз всё это вместе удалил.

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
33 минуты назад, Skala сказал:

Нужно было вырезать light_anim="ui_tesk_description"

О чем я вам и сказал. Вы же начали сносить все подряд.

К стати по сути теперь и la_alpha="1" la_text="1" la_cyclic="0" тоже не нужны.
А вот complex_mode="1" - это как раз форматирование текста под фрейм.

Изменено пользователем denis2000
  • Лайк 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


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

denis2000 Никогда не работал с такими вещами. Теперь буду знать

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

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


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

радио не меняет музыку
первая песня прекрасно работает, а на вторую не переключаеться
и за что отвечает type 
 

как в level editor спавнить обЬекты через object, чтоб ошибки не было?

Спойлер

[logic]
active = sr_idle@playl

[sr_idle@playl]
on_info = %=play_sound_looped(radio_stalker_1)%
on_signal = sound_end|sr_idle@1

[sr_idle@1]
on_gamer_timer = 10|sr_idle@play2

[sr_idle@play2]
on_info = %=play_sound_looped(radio_stalker_2)%
on_signal = sound_end|sr_idle@2

[sr_idle@2]
on_gamer_timer = 10|sr_idle@playl

Спойлер

radio_stalker_1
radio_stalker_2


[radio_stalker_1]
type = looped
path = radio\radio_stalker_1
huffle = rnd

[radio_stalker_2]
type = looped
path = radio\radio_stalker_2
huffle = rnd

 

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
22 часа назад, sosiska23 сказал:

первая песня прекрасно работает, а на вторую не переключаеться

 

23 часа назад, sosiska23 сказал:

huffle = rnd

 Здесь опечатка нужно исправить на shuffle

Похоже что on_signal = sound_end|sr_idle@1 никогда не выполниться, потому что звуку сказано играть зациклено!

Тут я думаю 2 варианта: либо принудительно останавливать звук через stop_sound_looped, либо использовать play_sound с параметром type 3d

  • Лайк 1

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


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

заселял локу

FATAL ERROR
 
[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : ...r. call of pripyat\gamedata\scripts\sim_board.script:222: attempt to index local 'spawn_smart' (a nil value)
 

stack trace:

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


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

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

Спойлер

function try_spawn_ammo(npc)
    local ammo_class,sec,number
    local function itr(npc,itm)
        if (IsWeapon(nil,itm:clsid()) and not npc:marked_dropped(itm)) then
            ammo_class = parse_list(ini_sys,itm:section(),"ammo_class")
            
            -- randomly spawn only 1 ammo type per found weapon
            if (#ammo_class > 0) then
                sec = ammo_class[math.random(0,#ammo_class)]
                if (sec) then 
                    if (item_count[sec]) then
                        number = math.random(item_count[sec][1], item_count[sec][2])
                    else 
                        number = 0
                    end
                    if (number > 0 and ini_sys:section_exist(sec)) then
                        alife_create_item(sec, npc, {ammo = number})
                    end
                end
            end

 

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


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

В ЗП реализована возможность назначать story_id в spawn_section НПС.

Спойлер

[zat_a2_stalker_nimble]:stalker
$spawn                     = "respawn\zat_a2_stalker_nimble"
character_profile     = zat_a2_stalker_nimble
spec_rank = novice
community = stalker
story_id = zat_a2_stalker_nimble_id


Вопрос - как это реализовано?

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


Ссылка на сообщение
Поделиться на другие сайты
 
31 минуту назад, ishps сказал:

что нужно сделать, что бы выпадали только стандартные патроны, не бронебойные?

можешь добавить новый bool'овый параметр у секции с патронами, для не бронебойных присвоить значение true , пример:
not_ap = true

и считывать, если у секции есть этот параметр и он равен true, то это не бронебойные, либо же можешь находить подстроку "_ap" у имени секции, пример названия секции из оригинала: "ammo_5.45x39_ap" - тем самым ты найдешь секцию бронебойных патронов и можешь либо поставить return, чтоб дальнейший код не выполнялся, либо вынести в проверку, что такой подстроки не должно быть. И только затем выполнять alife_create_item

  • Хабар 1

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


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

Drive уфф, а попроще есть вариант?

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


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

ishps да вроде и так максимально простое решение попытался подобрать, по крайней мере с подстрокой уж точно

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


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

Drive я просто вообще в скриптах не секу, нашел по моему мнению функцию которая за это вроде отвечает, думал там что то поменять можно и все будет хорошо

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


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

ishps Попробуй так:
 

function try_spawn_ammo(npc)
    local ammo_class,sec,number
    local function itr(npc,itm)
        if (IsWeapon(nil,itm:clsid()) and not npc:marked_dropped(itm)) then
            ammo_class = parse_list(ini_sys,itm:section(),"ammo_class")

      		if string.find(itm:section(), "_ap") then
       			return
        	end
            -- randomly spawn only 1 ammo type per found weapon
            if (#ammo_class > 0) then
                sec = ammo_class[math.random(0,#ammo_class)]
                if (sec) then 
                    if (item_count[sec]) then
                        number = math.random(item_count[sec][1], item_count[sec][2])
                    else 
                        number = 0
                    end
                    if (number > 0 and ini_sys:section_exist(sec)) then
                        alife_create_item(sec, npc, {ammo = number})
                    end
                end
            end


 

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


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

Drive По ощущениям, теперь только бронейбойные падают
тут зачем-то еще одна похожаю функция чуть ниже
 

Спойлер

    if (IsWeapon(nil,itm:clsid()) and not npc:marked_dropped(itm)) then
        --
        local sec,number
        local ammo_class = parse_list(ini_sys,itm:section(),"ammo_class")
        
        -- randomly spawn only 1 ammo type per found weapon
        if (#ammo_class > 0) then
            sec = ammo_class[math.random(1,#ammo_class)]
            if (sec and item_count[sec]) then 
                number = math.random(item_count[sec][1], item_count[sec][2])
                if (number > 0 and ini_sys:section_exist(sec)) then
                    alife_create_item(sec, npc, {ammo = number})
                end
            end
        end

 

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

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


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

ishps чтобы не привязываться к шаблонам в названии секции патронов, можно в ammo_class ставить нужную секцию патронов самой первой и потом читать для спавна как-нибудь так (будет браться первая секция до запятой, ее и спавнишь сразу): sec = string.match(ini_sys:r_string(itm:section(), "ammo_class"), "[^,]+") 

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

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


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

N42 да елки. Нужная секция стоит самой первой, однако все равно спавнятся бронебойки...

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


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

ishps выложи функцию полностью

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 29.10.2024 в 14:31, Skala сказал:

А через что вообще создаётся анимация для текста?

LevelEditor->Light Anim Editor, там всё интуитивно понятно, нужно посидеть, разобраться.
image.png.a46d8bf8d1dfbf86a3d9287fae08d0a8.png

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


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

Hrust Ты прям вовремя. Но хотя можно как-нибудь посидеть и попробовать что-то сделать, может и пригодится

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


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

Вообще, мало кто про это знает и делает эти анимации, в NP под задачи новых элементов интерфейса ванильные не подходили и нужно было сделать множество разных эффектов с разной длительностью. Как пример, ванили был эффект плавного мигания на 3 секунды и на этом заканчивалось. 

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


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

Hrust Ну просто мало когда встаёт эта задача

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


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

Хочу спросить, как правильно выключать и включать аномалии (одиночные)? Вопрос скорее академического характера, у меня сейчас сделано так - создается anomal zone со списком аномалий, и потом включается и выключается через =anomaly_turn_off и =anomaly_turn_on. Проблема - при anomaly_turn_off после перезагрузки сейва снова появляются партикли аномалии (она выключена но партикли становятся видимы). Я это решил насильным выводом всех выключенных аномалий в оффлайн по скрипту, и потом выводом в онлайн при включении. Это работает, но это костыль, а я хочу понять, как это по-нормальному делается?

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
2 минуты назад, Mawrak сказал:

она выключена но партикли становятся видимы

Видимо, в движке включение партиклов на загрузке не зависит от стейта.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   1 пользователь онлайн