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

[SoC] Ковыряемся в файлах


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

2 минуты назад, Hind сказал:

[smart_terrain]
type = esc_hind
capacity = 1

Вторая строчка лишняя, она не играет никакой роли, там как смарт универсальный.

А сам смарт в строчке name как назвал?

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий
1 минуту назад, Hind сказал:

не было ее там никогда :happy:

Её?

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

@Hind ну назови его esc_hind и проверь.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

Вот. Не поленился.

Скрытый текст

Рабочий смарт на 2 места жительства. Один дурак стоит в точке walk и смотрит в точку look. Другой дурак стоит в точке walk1, смотрит в точку look1. Через 30 секунд идёт в точку walk2 и смотрит в точку look2.  Через 30 секунд возвращается в точку walk1 и всё по новой...

В all.spawn новый смарт и парочку НПС сразу для него:

Скрытый текст

 

секции

 

[28887]

; cse_abstract properties
section_name = smart_terrain
name = esc_hind
position = 121.30312347412,-1.2308826446533,314.59301757813
direction = 0, 0, 0
id = 65535
version = 118
script_version = 6
spawn_id = 4680

; cse_alife_object properties
game_vertex_id = 236
distance = 10
level_vertex_id = 424800
object_flags = 0xffffff3e
custom_data = <<END
[smart_terrain]
type = esc_hind
capacity = 2
END

; cse_shape properties
shapes = 1
shape_0:type = sphere
shape_0:offset = 0,0,0
shape_0:radius = 5

; cse_alife_space_restrictor properties
restrictor_type = 3

; se_smart_terrain properties


[29041]

; cse_abstract properties
section_name = stalker
name = esc_hind_npc
position = 121.30312347412,-1.2308826446533,314.59301757813
direction = 0.062321275472641, 0.00316426996141672, 0.0140644172206521
id = 65535
version = 118
script_version = 6
spawn_id = 4834

; cse_alife_trader_abstract properties
money = 1000
character_profile = esc_stalker_novice

; cse_alife_object properties
game_vertex_id = 236
distance = 10
level_vertex_id = 424800
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
esc_hind = true
END

; cse_visual properties
visual_name = actors\novice\green_stalker_2

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 5
dynamic_out_restrictions = 
dynamic_in_restrictions = 

; cse_alife_monster_abstract properties
equipment_preferences = 2, 2, 0, 1, 1
main_weapon_preferences = 0, 2, 0, 2

; cse_ph_skeleton properties

; se_stalker properties
upd:health = 1
upd:timestamp = 0x617a6b75
upd:creature_flags = 0x6b
upd:position = 121.30312347412,-1.2308826446533,314.59301757813
upd:o_torso = 0.00316426996141672, 0.062321275472641, 0
upd:g_squad = 1
upd:g_group = 5

; cse_alife_human_stalker properties
upd:start_dialog = 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[29042]

; cse_abstract properties
section_name = stalker
name = esc_hind_npc2
position = 121.30312347412,-1.2308826446533,314.59301757813
direction = 0.062321275472641, 0.00316426996141672, 0.0140644172206521
id = 65535
version = 118
script_version = 6
spawn_id = 4834

; cse_alife_trader_abstract properties
money = 1000
character_profile = esc_stalker_novice

; cse_alife_object properties
game_vertex_id = 236
distance = 10
level_vertex_id = 424800
object_flags = 0xffffffbf
custom_data = <<END
[smart_terrains]
esc_hind = true
END

; cse_visual properties
visual_name = actors\novice\green_stalker_2

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 5
dynamic_out_restrictions = 
dynamic_in_restrictions = 

; cse_alife_monster_abstract properties
equipment_preferences = 2, 2, 0, 1, 1
main_weapon_preferences = 0, 2, 0, 2

; cse_ph_skeleton properties

; se_stalker properties
upd:health = 1
upd:timestamp = 0x617a6b75
upd:creature_flags = 0x6b
upd:position = 121.30312347412,-1.2308826446533,314.59301757813
upd:o_torso = 0.00316426996141672, 0.062321275472641, 0
upd:g_squad = 1
upd:g_group = 5

; cse_alife_human_stalker properties
upd:start_dialog = 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

пути

 


[esc_hind_ward1_look]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position = 122.66343688965,-0.36948415637016,325.04083251953
p0:game_vertex_id = 235
p0:level_vertex_id = 426392


[esc_hind_ward1_walk]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position = 123.37609863281,-1.0701833963394,306.46185302734
p0:game_vertex_id = 236
p0:level_vertex_id = 427152


[esc_hind_ward2_look]
points = p0,p1
p0:name = wp00|p=100|t=30000
p0:flags = 0x1
p0:position = 134.19830322266,-0.79889726638794,324.55578613281
p0:game_vertex_id = 235
p0:level_vertex_id = 439138

p1:name = wp01|p=100|t=30000
p1:flags = 0x2
p1:position = 119.85396575928,-0.4696381688118,326.15707397461
p1:game_vertex_id = 235
p1:level_vertex_id = 424020


[esc_hind_ward2_walk]
points = p0,p1
p0:name = wp00|p=100|t=30000
p0:flags = 0x1
p0:position = 123.41145324707,-0.66479134559631,324.32534790039
p0:game_vertex_id = 235
p0:level_vertex_id = 427177
p0:links = p1(1)

p1:name = wp01|p=100|t=30000
p1:flags = 0x2
p1:position = 129.82914733887,-0.16881239414215,334.66394042969
p1:game_vertex_id = 235
p1:level_vertex_id = 433993
p1:links = p0(1)

В gulag_escape.ltx

Скрытый текст

[logic@esc_hind_ward1]
active = walker@esc_hind_ward1

[walker@esc_hind_ward1]
path_walk = ward1_walk
path_look = ward1_look

[logic@esc_hind_ward2]
active = walker@esc_hind_ward2

[walker@esc_hind_ward2]
path_walk = ward2_walk
path_look = ward2_look

В gulag_escape.script

Скрытый текст

local t = {}

function load_job(sj, gname, type, squad, groups)
--'--------------------------------------------------------------------------
--' ESCAPE
--'--------------------------------------------------------------------------
    if type == "esc_hind" then
        t = { section = "logic@esc_hind_ward1",
            idle = 0,
            prior = 1, state = {0,1},
            position_threshold = 100,
            online = true,
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@esc_hind_ward2",
            idle = 0,
            prior = 1, state = {0,1},
            position_threshold = 100,
            online = true,
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)        
    end    
     ...

end

 

function load_states(gname, type)

    if type == "esc_hind" then
        return function(gulag)
            if db.actor ~= nil then
                if ( level.get_time_hours() >= 5 and level.get_time_hours() <= 22 ) then
                    return 0  -- день
                else
                    return 1  -- ночь
                end
            else
                return gulag.state
            end
        end
    end
...

end

 

function checkStalker(npc_community, gulag_type, npc_rank, se_obj)

    if gulag_type == "esc_hind" then
        return npc_community == "stalker"
    end
...

end

   

Всё проверено и работает. Что бы не искать - смарт возле домика лиса. Группировка нейтралы и два новичка по месту прописки. 

@Hind , возьми всё как есть и на нём отрабатывай. 

 

ps Если будет вылет " any vertex ... бла бла бла " - это не ко мне. Придётся тебе попробовать новые координаты.

  • Спасибо 1

Здесь могла быть ваша реклама.

Ссылка на комментарий

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

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

А где находится параметр, в котором указывается через какое время трупы сталкеров могут исчезнуть?

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

@Купер в оригинале нет таких параметров.
Если добавить то будет работать?

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

Пардону, в оригинале только для мутантов:

monsters.ltx

[monsters_common]
    corpse_remove_game_time_interval    = 36 ; in hours
    stay_after_death_time_interval        = 36 ; in hours

 

  • Полезно 1
Ссылка на комментарий

@Купер ну это я знаю, поэтому и указал для трупов сталкеров.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

@Houdini_one Уменьшил эти самые значения в [monsters.ltx], и трупы сталкеров тоже перестали скапливаться (множественные тесты на Кордоне под мостом и вблизи перехода).

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

@Norman Eisenherz понял, весьма занятная реализация)
Посмотрю.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

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

Я понимаю что косяк в логике, но в логике я менял только Гарика, он делает что нужно... Только бывает переодеваеться. То в костюме учёного, то военного, то экзоскелет, вобщем где то гардероб хранит 

Изменено пользователем андрей дронав
Ссылка на комментарий
28 минут назад, андрей дронав сказал:

Бармен ходит во всему бару

У него персональная логика (scripts\bar_barman.ltx), которая, возможно, слетела. Загрузи более ранний сейв, изучи лог, вспоминай, что правил. 

  • Спасибо 1

Здесь могла быть ваша реклама.

Ссылка на комментарий

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

 

Други, а зачем так делают:

if (obj and _g.IsStalker(obj)) then

Т.е, повторная компиляция _g.script. Он же первым вроде всегда инициализируется и всегда в памяти?

Ссылка на комментарий
29 минут назад, Купер сказал:
_g.

Интересно. Может быть, это такая же необходимость, как и предикаты для Скряги (если ни с кем не путаю) в ГУЛАГе - его оригинальный профиль и ИД (на самом деле, достаточно чего то одного)... 

Здесь могла быть ваша реклама.

Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

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

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