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

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

 
 

Всем привет! Подскажите пожалуйста, как сделать, чтобы при подходе к НПС диалог появлялся автоматически? Я как ни пробовал, у меня не получается. Что я сделал:

1. Создал спейс рестриктор, где стоит нужный непись.

2. Прописал ему логику, чтобы при заходе в рестриктор запускалась нужная функция.

Здесь всё норм. Пробовал в этой функции для теста другое что-нибудь делать, например, спавн других НПС - логика срабатывает. Но вот что в моей функции написать, чтобы автоматом диалог начинался - не пойму. В гайдах находил db.actor:run_talk_dialog(npc), но это похоже для тени чернобыля только, потому что у меня эта функция не заработала.


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

Разобрался сам. Надо было неписю логику прописывать, а не спейс рестриктор создавать. Чего-то я намудрил )

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


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

чтобы при подходе к НПС диалог появлялся автоматически?

В meet этого НПС добавляешь строчку:
use = {=dist_to_actor_le(5)} self, true
Когда игрок приблизится к нему на 5 метров, он автоматом начнёт беседу.


Дополнено 1 минуту спустя
4 часа назад, Lenya056 сказал:

Я создал смарт но вот такая ошибка:

Проблема не в смарте, а, вероятно, в логике подключённого к нему НПС.

Изменено пользователем Neptun
  • Спасибо 1

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


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

Neptun

Вот логика НПС

[logic@zat_skad_sniper]
active = walker


[walker]
path_walk = zat_skad_sniper_walk

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


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

Вот логика НПС

У тебя написано в смарте: zat_skad_sniper_1
А в логике уже: [logic@zat_skad_sniper]
Единицу потерял.

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


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

Neptun

Название в смарте я поменял 

Я так понял spawn_point в squad_descr это одиночный вейпоинт типо:

[zat_skad_sniper_spawn]
points = p0
p0:name = wp00
p0:position = 115.6721496582,2.2605323791504,183.47236633301
p0:game_vertex_id = 316
p0:level_vertex_id = 1165999

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

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


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

Я так понял spawn_point в squad_descr это одиночный вейпоинт типо:

Ничего не понял. Как правильно: в вейпоинте название должно быть таким: [имя_смарта_Название_пути]
А в самой логике путь читается таким образом: path_walk = Название_пути

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


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

Neptun

Извиняюсь за тупость но вот все связанные файлы

alife_zaton

 [1866]
; cse_abstract properties
section_name = smart_terrain
name = zat_b500
position = 115.6721496582,2.2605323791504,183.47236633301
direction = 0.149253994226456,0.00221799989230931,-0.0149170001968741

; cse_alife_object properties
game_vertex_id = 316
distance = 17.5
level_vertex_id = 1165999
object_flags = 0xffffff3e
custom_data = <<END
[smart_terrain]
max_population = 1
 
[exclusive]
zat_skad_sniper = zaton\zat_skad_sniper_1.ltx 
;cfg = scripts\zaton\smart\zat_b500.ltx 
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 2

; cse_alife_space_restrictor properties
restrictor_type = 3

; se_smart_terrain properties

 

way_zaton
 

[zat_b500_skad_sniper_spawn]
points = p0
p0:flags = 0x1
p0:name = wp00
p0:position = 115.6721496582,2.2605323791504,183.47236633301
p0:game_vertex_id = 316
p0:level_vertex_id = 1165999


[zat_b500_skad_sniper_walk]
points = p0,p1,p2,p3
p0:flags = 0x1
p0:name = wp00
p0:position = 115.6721496582,2.2605323791504,183.47236633301
p0:game_vertex_id = 316
p0:level_vertex_id = 1165999

p1:name = wp01
p0:flags = 0x2
p1:position = 116.11437988281,1.9611202478409,190.39184570313
p1:game_vertex_id = 316
p1:level_vertex_id = 1166012
p1:links = p2(1),p0(1)

p2:name = wp02
p0:flags = 0x4
p2:position = 110.01203918457,1.3603667020798,189.93905639648
p2:game_vertex_id = 316
p2:level_vertex_id = 1155278
p2:links = p3(1),p1(1)

p3:name = wp03
p0:flags = 0x8
p3:position = 116.53996276855,2.2526621818542,187.29321289063
p3:game_vertex_id = 316
p3:level_vertex_id = 1166010
p3:links = p2(1)

squad_descr

[zat_skad_sniper_squad]:online_offline_group
faction = stalker
npc = zat_skad_sniper_1
target_smart = zat_b500
spawn_point = skad_sniper_spawn

simulation

zat_skad_sniper_squad = zat_b500

файл логики нпс

[logic@zat_skad_sniper]
active = walker


[walker]
path_walk = skad_sniper_walk

 

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


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

Такой вопрос по GUI. Могу ли я в объекте типа CUIListBoxItem хранить таблицу Lua? Естественно, чтобы её не было видно, а отображался просто st_текст (Эту часть я уже сделал). Конечно, я мог бы просто отображать id или техническое название, но это бы выглядело странно...

Отбой, все решилось этой строчкой:

_itm.id = _itm:AddTextField(массив.id, 40)

 

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


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

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

Такие:

stc_angel_anomali_1

stc_angel_anomali_2  

и т.д.

Всего аномалий больше сотни.  Их нужно отключить.  Можно написать в логике рестриктора

=disable_anomaly(stc_angel_anomali_1) =disable_anomaly(stc_angel_anomali_2)

 

Можно ли отключить их одной функцией, если аномалий, допустим, 100?

 

 

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


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

В логику:

%=disable_stc_anomalies%

В xr_effects.script:

function disable_stc_anomalies(actor, npc, p)
    for i = 1, 100 do
        disable_anomaly(actor, npc, {"stc_angel_anomali_" .. i})  
    end
end

 

  • Лайк 1
  • Мастер! 1
  • Спасибо 2

c01570bf2e07524.png

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


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

Могу ли я, имея имя секции артефакта в скрипте, получить его параметры? Например, свойства, иконку, описание и тд.

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


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

Шаблон:

local param = system_ini():r_string(item_section, param_name)

Пример:

local name = system_ini():r_string("wpn_ak74", "inv_name")
  • Мастер! 1
  • Жму руку 1

c01570bf2e07524.png

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


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

denis2000 Не знаете, возможно ли как-то поменять имя у гг в онлайне, т.е. не перезаходя в игру

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


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

o4kostr3l Обсуждалось на второй страничке этого топика.

function change_actor_name(new_name)
  local sobj = alife():actor()
  local tbl = stpk_utils.get_object_data(sobj)
  tbl.character_name = new_name
  stpk_utils.set_object_data(tbl, sobj)
end

Вызывать например как change_actor_name("Strelok1986"). Не помню нужно ли транслитить строку. Делается это функцией game.translate_string(string). Файл, необходимый для работы скрипта, можно скачать с сообщения по ссылке.

  • Жму руку 1

Еще один злодей!
6 ГБ ОЗУ DDR3 1094 мГц (Разносорт) Процессор Intel Xeon E5420 4/4 2.57 ГГц (OC)
Видеокарта Gigabyte Radeon RX 580 8192 МБ GDDR5 (Micron) DirectX v12.0

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


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

o4kostr3l Обсуждалось на второй страничке этого топика.


function change_actor_name(new_name)
  local sobj = alife():actor()
  local tbl = stpk_utils.get_object_data(sobj)
  tbl.character_name = new_name
  stpk_utils.set_object_data(tbl, sobj)
end

Вызывать например как change_actor_name("Strelok1986"). Не помню нужно ли транслитить строку. Делается это функцией game.translate_string(string). Файл, необходимый для работы скрипта, можно скачать с сообщения по ссылке.

Спасибо. Саму функцию, как я понять, вписать в xr_effects.script, да?

 

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

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


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

xr_effects

Для нее немного придется переделать. 

function change_actor_name(actor, npc, p)
  local sobj = alife():actor()
  local tbl = stpk_utils.get_object_data(sobj)
  tbl.character_name = p[1]
  stpk_utils.set_object_data(tbl, sobj)
end

Применять в логике примерно change_actor_name(st_achievement_13_name)


Еще один злодей!
6 ГБ ОЗУ DDR3 1094 мГц (Разносорт) Процессор Intel Xeon E5420 4/4 2.57 ГГц (OC)
Видеокарта Gigabyte Radeon RX 580 8192 МБ GDDR5 (Micron) DirectX v12.0

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


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

Для нее немного придется переделать. 


function change_actor_name(actor, npc, p)
  local sobj = alife():actor()
  local tbl = stpk_utils.get_object_data(sobj)
  tbl.character_name = p[1]
  stpk_utils.set_object_data(tbl, sobj)
end

Применять в логике примерно change_actor_name(st_achievement_13_name)

Спасибо огромное. Вы мне сильно помогли

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


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

Всем доброго дня. Есть ли возможность наложить на ГГ эффект не .ppe, а эффектора, например детекта бюрера из ТЧ?
Прописать я его прописал, мне нужна скриптовая строка для вызова непосредственно этого эффекта

[burer_scan_effector]
duality_h            = 0.003
duality_v            = 0.002
blur                = 1.5
gray                = 0.3
noise_intensity        = 0.0
noise_grain            = 2
noise_fps            = 8
color_base            = 0.55,0.5,0.5;0.637,0.442,0.456
color_gray            = 0.333,0.333,0.333
color_add            = 0.05,0.0,0.0
time                = 10.00
time_attack            = 0.3        ; fade in
time_release        = 0.85        ; fade out

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


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

Kamr4d В чем проблема!? Создаете ppe-файл с требуемыми настройками и запускаете стандартным методом.

А если действительно хотите запуск эффектов секцией с набром цифровых параметров - модифицируйте движок.

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

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

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


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

denis2000 Спасибо за ответ. А как мне создать .ppe файл именно с такими настройками? Дельных уроков и статей по этой теме нет или очень мало

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


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

Я так понял, если указать в XML тег complex_mode="1", то функция SetEllipsis() перестаёт работать. Как это починить?

И как исправить отображение текстуры у широкоформатников при InitTexture()? Я прописал  SetTextureRect(Frect():set(0,0,102,128)), текстура обрезается, но все-равно выглядит растянуто. Оригинал по размерам 128 на 128. Но при этом, текстура "ui\ui_noise" выглядит нормально.

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


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

А как мне создать .ppe файл именно с такими настройками?

В комплекте SDK есть специальная программа Postprocess.exe. Она предельно простая, разобраться, как настраивать эффекты не сложно. Для начала выставьте четыре кейфрейма по таймингам согласно конфигу (time, time_attack, time_release), затем в центральных точках параметры по отдельным эффектам опять же согласно цифрам из конфига. Сохраните в файл и проиграйте его в игре, если эффектор будет отличаться от требуемого, то придется играть с параметрами индивидуально (но не думаю, что это потребуется).

  • Жму руку 1

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

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


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

denis2000 Благодарю за помощь 

 

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


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

Подскажите пожалуйста, в каком ui файле можно поправить координаты полоски загрузки на загрузочном экране, хочу шире и толще ее слелать ?!

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


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

Доброго времени суток, господа, хочу поинтересоваться у опытных движкоправов и скриптеров насчёт создания скриптов. Меня терзают вопросы касательно того, нужно ли в сталкере жёстко уходить в  программирование (то есть учить с++), для того чтобы писать скрипты уровня "добавить новый слот под патроны/бинокль для CoP", или создание, например, биорадара/разгрузки, контейнеров для артов и вот подобных манипуляций с интерфейсом и симуляцией? С чего начинается изучение движка (статьи, уроки может есть?), или это здесь доступно только "избранным"? Просто, насколько я знаю, для написания скриптов в игре используется язык Lua, принцип работы с котором я на базовом уровне понимаю и готов его изучать (мне это, в принципе и самому интересно), а вот с плюсами связываться желания нет вообще никакого ибо я наслышан об этом достаточно (С от слова "смерть" ++ - это два ряда могил, решивших постичь плюса без навыков программирования?) . И ещё такой вопрос, сильно ли работа с движком и скриптами принципиально различаются между разными платформами (тч, зп, чн)?

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


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

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

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

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

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

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

Войти

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

Войти

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

    Ни одного зарегистрированного пользователя не просматривает данную страницу