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

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

 
 

Кажется я понял причину вылета. Скажите, пожалуйста, в этих логиках все хорошо?

Спойлер

[logic@building_sector]
active = walker@1
suitable = {=check_npc_name(building_sector)} true 
prior = 200

[walker@1]
path_walk = sector_walk
path_look = sector_look
meet = no_meet
on_info = {+pri_sector_building_start_dialog_open_info} walker@2
invulnerable = true 
combat_ignore_cond = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
def_state_moving = rush
def_state_standing = threat_danger

[walker@2]
path_walk = sector_walk
path_look = sector_look
meet = meet@2
on_info = {+pri_sector_quest_place_door_open_info} walker@3 
invulnerable = true 
combat_ignore_cond = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
def_state_moving = rush
def_state_standing = threat_danger

[meet@2]
close_snd_hello = nil
close_snd_bye     = nil
close_victim     = nil
far_victim         = nil
close_distance  = 0
far_distance     = 0
close_snd_distance = 3
use = {-pri_sector_building_start_dialog_end_info !actor_enemy =dist_to_actor_le(20)} self, true
allow_break = false
trade_enable = false
meet_on_talking = false
meet_dialog = pri_sector_building_start_dialog

[walker@3]
path_walk = sector_2_walk
path_look = sector_2_look
meet = no_meet
on_info = {=npc_in_zone(fourth_level_sector_quest_restr)} walker@4 %+sector_in_zone_info%
on_actor_dist_ge_nvis = 50 | walker@4 %=kill_actor%
invulnerable = true
combat_ignore_cond = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
def_state_moving = rush
def_state_standing = threat_danger

[walker@4]
path_walk = sector_2_walk
path_look = sector_2_look
meet = no_meet
invulnerable = true
combat_ignore_cond = true
gather_items_enabled = false
help_wounded_enabled = false
corpse_detection_enabled = false
def_state_moving = rush
def_state_standing = threat_danger

Спойлер

[logic@building_poltergest_squad]
active = mob_home@pri_start
suitable = {=target_squad_name(building_poltergest_squad)} true
prior = 70
monster_job = true

[mob_home@pri_start]
path_home = poltergeist_walk
out_restr = pri_b35_military_out_restr
home_min_radius = 10
home_max_radius = 20
aggressive = true

 


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

Все, спасибо всем! Причина вылета устранена!

  • Мастер! 1

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


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

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

...call of pripyat\gamedata\scripts\xr_motivator.script:161: attempt to index local 'smart_task' (a nil value)

Вот его логика

[smart_terrain]
max_population = 1
 
[exclusive]
zat_skad_sniper_1 = zaton\zat_skad_sniper_1.ltx 

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

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


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

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

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


image.png.489a34a67081676c25779ea216ba3788.png


 

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


Ссылка на сообщение
Поделиться на другие сайты
 
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)



image.png.489a34a67081676c25779ea216ba3788.png


 

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


Ссылка на сообщение
Поделиться на другие сайты
 
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 Благодарю за помощь 

 

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


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

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

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

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

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

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

Войти

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

Войти

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