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

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


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

@Hind скорее всего они занимают рандомную работу в лагере, добавь проверку на профиль, глянь как с Шустрым сделано.

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

Ссылка на комментарий
14.10.2022 в 13:57, alex5773 сказал:

А как исправить файлы ,в которых всё сплошником идёт?

Сейчас смотрел что у меня на диске из старья, и увидел W-U_Conv

И вспомнил, что именно эта прога для этого)))

Запускаешь, выбираешь Конвертировать папку Unix в Windows и выбираешь папку, и всё готово. В папке все сразу файлы становятся нормальные за пару секунд)))

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

Весит W-U_Conv всего 52 кб )))

Оказывается не нотепадом это делается, значит нотепадом что-то другое делал тогда.

Три года прошло, забыл всё на фиг. Вот приходится вспоминать всё заново. 

Всё сплошником в файлах, в SRP-master для ЧН.

 

Это если блокнотом открывать)))

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

Notepad++

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

123.jpg

По идее, должно сработать.

Изменено пользователем Купер
  • Полезно 1
Ссылка на комментарий

Как сделать, чтобы непись подольше задержался на точке в smart_terrains? Мне надо чтобы он именно что стоял и охранял, а он тупо идёт. Иными словами, Как отрегулировать задержку на точке?

+ подскажите, почему неписи которые записаны в смарт террайн, идут куда хотят? Хотя работы есть. Они просто уходят.

И интересует то, что я не увидел практически ни одной кучки пацанов сидящих за телевизором или костром. Почему?

Вот схемки:

 

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

--' Escape blockpost
    if type == "esc_blokpost" then
     t = { section = "logic@esc_blockpost_patrol_yard",
         idle = 0,
         prior = 1, state = {0,1},
         position_threshold = 100,
             online = true,
         in_rest = "", out_rest = "escape_blockpost_zone"
     }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_watch_tv1",
        idle = 0,
        prior = 1, state = {0},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_watch_tv2",
        idle = 0,
        prior = 1, state = {0},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_kamp1",
        idle = 0,
        prior = 6, state = {1},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_kamp1",
        idle = 0,
        prior = 5, state = {1},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_kamp2",
        idle = 0,
        prior = 4, state = {1},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone",
        predicate = function(obj_info)
                        return obj_info.name == "esc_blokpost_commander"
                    end
     }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_comander_guard1",
        idle = 0,
        prior = 3, state = {2},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_comander_guard2",
        idle = 0,
        prior = 2, state = {2},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_camper1",
        idle = 0,
        prior = 7, state = {2},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_camper2",
        idle = 0,
        prior = 0, state = {2},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
        t = { section = "logic@esc_blokpost_kpp_guard2",
        idle = 0,
        prior = 0, state = {2},
        position_threshold = 100000,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
            t = { section = "logic@esc_blokpost_kpp2_guard3",
        idle = 0,
        prior = 0, state = {2},
        position_threshold = 100000,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
end
        t = { section = "logic@esc_blokpost_kazarma_guard1",
        idle = 0,
        prior = 0, state = {1},
        position_threshold = 100000,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
end
end


 

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

 

[logic@esc_blockpost_patrol1]
active = patrol@esc_blokpost_day_patrol_commander

[patrol@esc_blokpost_day_patrol_commander]
path_walk = day_patrol_walk
path_look = day_patrol_look
formation = back
commander = true


[logic@esc_blockpost_follower1]
active = patrol@esc_blokpost_day_patrol_follower1

[patrol@esc_blokpost_day_patrol_follower1]
path_walk = day_patrol_walk
path_look = day_patrol_look
formation = back
commander = false


[logic@esc_blockpost_follower2]
active = patrol@esc_blokpost_day_patrol_follower2

[patrol@esc_blokpost_day_patrol_follower2]
path_walk = day_patrol_walk
path_look = day_patrol_look
formation = back
commander = false


[logic@esc_blockpost_commander_day]
active = camper@esc_blockpost_commander_day
on_death = death@commander

[camper@esc_blockpost_commander_day]
path_walk = commander_walk
path_look = commander_look

[death@commander]
on_info = %+esc_commander_die%


[logic@esc_blockpost_post1]
active = walker@esc_blockpost_post1

[walker@esc_blockpost_post1]
path_walk = post_walk1
path_look = post_look1


[logic@esc_blockpost_post2]
active = walker@esc_blockpost_post2

[walker@esc_blockpost_post2]
path_walk = post_walk2
path_look = post_look2


[logic@esc_blockpost_camper_day]
active = camper@esc_blockpost_camper_day

[camper@esc_blockpost_camper_day]
path_walk = camper_day_walk
path_look = camper_day_look
sniper = true
def_state_campering = threat


[logic@esc_blockpost_patrol_yard]
active = walker@esc_blockpost_patrol_yard

[walker@esc_blockpost_patrol_yard]
path_walk = patrol_yard_walk


[logic@esc_blockpost_watch_tv1]
active = walker@esc_blockpost_watch_tv1

[walker@esc_blockpost_watch_tv1]
path_walk = watch_walk1
path_look = watch_look1


[logic@esc_blockpost_watch_tv2]
active = walker@esc_blockpost_watch_tv2

[walker@esc_blockpost_watch_tv2]
path_walk = watch_walk2
path_look = watch_look2


[logic@esc_blockpost_kamp1]
active = kamp@esc_blockpost_kamp1

[kamp@esc_blockpost_kamp1]
center_point = kamp
path_walk = kamp_task
soundgroup = esc_blokpost_soldier


[logic@esc_blockpost_kamp2]
active = kamp@esc_blockpost_kamp2
on_death = death@commander

[kamp@esc_blockpost_kamp2]
center_point = kamp
path_walk = kamp_task
soundgroup = esc_blokpost_soldier


[logic@esc_blockpost_sleep1]
active = sleeper@esc_blockpost_sleep1

[sleeper@esc_blockpost_sleep1]
path_main = sleep1
wakeable = false


[logic@esc_blockpost_sleep2]
active = sleeper@esc_blockpost_sleep2

[sleeper@esc_blockpost_sleep2]
path_main = sleep2
wakeable = false


[logic@esc_blockpost_sleep3]
active = sleeper@esc_blockpost_sleep3

[sleeper@esc_blockpost_sleep3]
path_main = sleep3
wakeable = false


[logic@esc_blockpost_sleep4]
active = sleeper@esc_blockpost_sleep4

[sleeper@esc_blockpost_sleep4]
path_main = sleep4
wakeable = false


[logic@esc_blockpost_comander_guard1]
active = walker@esc_blockpost_comander_guard1

[walker@esc_blockpost_comander_guard1]
path_walk = guard_walk1
path_look = guard_look1


[logic@esc_blockpost_comander_guard2]
active = walker@esc_blockpost_comander_guard2

[walker@esc_blockpost_comander_guard2]
path_walk = guard_walk2
path_look = guard_look2


[logic@esc_blockpost_camper1]
active = camper@esc_blockpost_camper1

[camper@esc_blockpost_camper1]
path_walk = camper1_walk
path_look = camper1_look
sniper = true


[logic@esc_blockpost_camper2]
active = camper@esc_blockpost_camper2

[camper@esc_blockpost_camper2]
path_walk = camper2_walk
path_look = camper2_look
sniper = true


[logic@esc_blockpost_alarm_patrol1]
active = walker@esc_blockpost_alarm_patrol1

[walker@esc_blockpost_alarm_patrol1]
path_walk = alarm1_walk


[logic@esc_blockpost_alarm_patrol2]
active = walker@esc_blockpost_alarm_patrol2

[walker@esc_blockpost_alarm_patrol2]
path_walk = alarm2_walk


[logic@esc_blokpost_kpp_guard2]
active = walker@esc_blokpost_kpp_guard2

[walker@esc_blokpost_kpp_guard2]
path_walk = esc_blokpost_kpp_guard_2_walk
path_look = esc_blokpost_kpp_guard_2_look

[logic@esc_blokpost_kpp2_guard3]
active = walker@esc_blokpost_kpp2_guard3

[walker@esc_blokpost_kpp2_guard3]
path_walk = esc_blokpost_kpp2_guard_3_walk
path_look = esc_blokpost_kpp2_guard_3_look

[logic@esc_blokpost_kazarma_guard1]
active = walker@esc_blokpost_kazarma_guard1

[walker@esc_blokpost_kazarma_guard1]
path_walk = esc_blokpost_kazarma_guard_1_walk
path_look = esc_blokpost_kazarma_guard_1_walk

 

 

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

почему неписи которые записаны в смарт террайн, идут куда хотят? Хотя работы есть. Они просто уходят

А НПС подходят под эти работы? В смартах есть установки predicate (и не только -  у тебя вообще весь смарт может не работать. Тупо из-за мелкой ошибки в файле при написании.)

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

        t = { section = "logic@esc_blockpost_commander_day",
            idle = 0,
            prior = 100, state = {0,2},
            position_threshold = 100,
--            online = true,
            in_rest = "", out_rest = "escape_blockpost_zone",
            predicate = function(obj_info)
                            return obj_info.name == "esc_blokpost_commander"
                        end
        }

 

Вот здесь только для объекта esc_blokpost_commander

 

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

ни одной кучки пацанов сидящих за телевизором или костром

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

t = { section = "logic@esc_blockpost_kamp1",
        idle = 0,
        prior = 5, state = {1},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }

Обрати внимание на state. Эта работа выполняется при каком то условии - время суток, выданный/не выданный инфопоршен...

 

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

подольше задержался на точке в smart_terrains

Это установки в all.spawn. В секциях путей для данной работы, например:

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

[lim_exit_city_patrol_look]
points = p0,p1,p2,p3,p4
p0:name = wp00|p=100|t=30000
p0:flags = 0x1
p0:position = 13.822473526001,-0.789200007915497,-330.906127929688
p0:game_vertex_id = 3006
p0:level_vertex_id = 33386

p1:name = wp01|p=100|t=15000
p1:flags = 0x2
p1:position = 2.4173846244812,0.944146752357483,-355.61669921875
p1:game_vertex_id = 3006
p1:level_vertex_id = 25614

p2:name = wp02|p=100|t=15000
p2:flags = 0x3
p2:position = 9.83491706848145,0.779918670654297,-296.050415039063
p2:game_vertex_id = 3009
p2:level_vertex_id = 30559

p3:name = wp03|p=100|t=15000
p3:flags = 0x4
p3:position = 30.4576187133789,0.938418030738831,-288.948120117188
p3:game_vertex_id = 3018
p3:level_vertex_id = 42572

p4:name = wp04|p=100|t=15000
p4:flags = 0x5
p4:position = 4.57630348205566,0.66511857509613,-360.93310546875
p4:game_vertex_id = 3006
p4:level_vertex_id = 27268

 

Здесь на примере четыре точки на пути НПС, в которые он последовательно смотрит с вероятностью и продолжительностью (в миллисекундах)

 

 

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

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

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

@Купер Можно пояснение? Если я правильно понял, выражение означает "если перед New Line нет Carriage Return, то добавить такой спецсимвол".

  • Согласен 1

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

Шпаргалка

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

@Hind , я же просто пример кинул. Ты в точке пути, будь то walk или look, указываешь время и вероятность, анимацию... Смотря, чего тебе надо. Я недавно скидывал ссылку на документ с разбором логики, там это есть.

Я же говорю - практикуй. Сделай простой смарт и всё на нём проверяй. В этом деле практика нужна.

Изменено пользователем mole venomous
  • Согласен 1

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

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

UPD:
Настройки в state поменял на {1,2,3} и всё равно, никто не сидит за телеком или костром. Часть военных просто слоняется по базе, часть уходит в свободное плаванье.
 

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

     t = { section = "logic@esc_blockpost_patrol_yard",
         idle = 0,
         prior = 1, state = {0,1,2},
         position_threshold = 100,
             online = true,
         in_rest = "", out_rest = "escape_blockpost_zone"
     }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_watch_tv1",
        idle = 0,
        prior = 1, state = {0,1,2},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_watch_tv2",
        idle = 0,
        prior = 1, state = {0,1,2},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_kamp1",
        idle = 0,
        prior = 6, state = {0,1,2},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_kamp1",
        idle = 0,
        prior = 5, state = {0,1,2},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_kamp2",
        idle = 0,
        prior = 4, state = {0,1,2},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone",
        predicate = function(obj_info)
                        return obj_info.name == "esc_blokpost_commander" or "esc_jawa" or "esc_kobelcev" or "esc_shamtkov" or "esc_melnik" or "esc_dumko" or "esc_grachov" or "esc_borisenkov" or "esc_boroday" or "esc_bondarenko"
                    end
     }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_comander_guard1",
        idle = 0,
        prior = 3, state = {0,1,2},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_comander_guard2",
        idle = 0,
        prior = 2, state = {0,1,2},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_camper1",
        idle = 0,
        prior = 7, state = {0,1,2},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
    t = { section = "logic@esc_blockpost_camper2",
        idle = 0,
        prior = 0, state = {0,1,2},
        position_threshold = 100,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
    }
    table.insert(sj, t)
        t = { section = "logic@esc_blokpost_kpp_guard2",
        idle = 0,
        prior = 0, state = {0,1,2},
        position_threshold = 100000,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
        predicate = function(obj_info)
                        return obj_info.name == "esc_blokpost_commander" or "esc_jawa" or "esc_kobelcev" or "esc_shamtkov" or "esc_melnik" or "esc_dumko" or "esc_grachov" or "esc_borisenkov" or "esc_boroday" or "esc_bondarenko"
                    end
    }
    table.insert(sj, t)
            t = { section = "logic@esc_blokpost_kpp2_guard3",
        idle = 0,
        prior = 0, state = {0,1,2},
        position_threshold = 100000,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
        predicate = function(obj_info)
                        return obj_info.name == "esc_blokpost_commander" or "esc_jawa" or "esc_kobelcev" or "esc_shamtkov" or "esc_melnik" or "esc_dumko" or "esc_grachov" or "esc_borisenkov" or "esc_boroday" or "esc_bondarenko"
                    end
    }
    table.insert(sj, t)
end
        t = { section = "logic@esc_blokpost_kazarma_guard1",
        idle = 0,
        prior = 0, state = {0,1,2},
        position_threshold = 100000,
            online = true,
        in_rest = "", out_rest = "escape_blockpost_zone"
        predicate = function(obj_info)
                        return obj_info.name == "esc_blokpost_commander" or "esc_jawa" or "esc_kobelcev" or "esc_shamtkov" or "esc_melnik" or "esc_dumko" or "esc_grachov" or "esc_borisenkov" or "esc_boroday" or "esc_bondarenko"
                    end
    }
    table.insert(sj, t)
end
end



специально для теста оставил возможные работы в гулаге только свои собственные. И хоть бы хны - неписи всё равно не останавливаются на пост.




Настройки вейпойнта на примере одного из часовых:

look waypoint - wp00|t=50000|p=100
walk waypoint - wp00

 

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

Настройки в state поменял на {1,2,3} и всё равно

Загрузка состояний данного гулага:

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

    if type == "esc_blokpost" then
        return function (gulag)
            local actor = db.actor
            if not actor then
                return gulag.state
            end

            for k,v in pairs(gulag.Object) do
                if v ~= true and v:best_enemy() ~= nil then
                    gulag.alarm_start = game.get_game_time()
                    actor:give_info_portion("esc_blockpost_alarm")
                    return 2 -- тревога
                end
            end

            if gulag.alarm_start == nil or
                game.get_game_time():diffSec(gulag.alarm_start) > 300 then
                if level.get_time_hours() >= 6 and level.get_time_hours() <= 22 then
                actor:give_info_portion("esc_blockpost_normal")
                    return 0  -- день
                else
                    return 1  -- ночь
                end
            else
                return 2
            end
        end
    end

Там вообще нет состояния "3"

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

walk waypoint - wp00

 

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

не останавливаются на пост

Ну ещё бы.

  • Спасибо 1

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

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

@mole venomous сделал как ты сказал "полигон". Назвал его "esc_hind" прописал в gulag_escape.ltx и .script

Написал следующее:
 

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

 

[logic@esc_hind_guard1]
active = walker@esc_hind_ward1

[walker@esc_hind_ward1]
path_walk = ward_walk1
path_look = ward_look1

 


 

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

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 = "escape_blockpost_zone"
     }
end
end


В редакторе поставил одного единственного непися, и два вейпоинта - esc_hind_ward_walk1, esc_hind_ward_look1.

В esc_hind_ward_walk1 вписал следующее:
wp00|t=15000|p=100|a=sit_ass (т.е. при работе сидит с анимкой ~15 секунд со 100% вероятностью)

В esc_hind_ward_look1:
wp00|t=15000|p=100

Запускаю - и этот чувак просто идёт куда угодно, но не выполняет работу. :31:

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

Я правильно понял, ты создал тест-смарт? Его нужно "подключить" в ф-иях "load_states(gname, type)" и checkStalker(npc_community, gulag_type, npc_rank, se_obj), подобно остальным и в зависимости от твоих "предпочтений".

  • Согласен 1

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

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

@Hind по примеру с другими, например:
 

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

function load_states(gname, type) 

      if type == "bar_camp_1" 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

function checkStalker(npc_community, gulag_type)
        if gulag_type == "bar_camp_1" then
            return npc_community == "stalker"
        end

 

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

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

а как?

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

:42::dash2:

 

21 минуту назад, mole venomous сказал:

подобно остальным

 

На примере гулага "esc_blokpost". В скрипте конструкция 

== "esc_blokpost"

встречается трижды. 

1 - собственно, разбор работ 

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

    if type == "esc_blokpost" then
        t = { section = "logic@esc_blockpost_patrol1",
            idle = 0,
            prior = 8, state = {0},
            position_threshold = 100,
            online = true,
            in_rest = "", out_rest = "esc_blockpost_patrol_restrictor"
        }

...

2 - загрузка состояний

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

    if type == "esc_blokpost" then
        return function (gulag)
            local actor = db.actor
            if not actor then
                return gulag.state
            end

            for k,v in pairs(gulag.Object) do
                if v ~= true and v:best_enemy() ~= nil then
                    gulag.alarm_start = game.get_game_time()
                    actor:give_info_portion("esc_blockpost_alarm")
                    return 2 -- тревога
                end
            end

            if gulag.alarm_start == nil or
                game.get_game_time():diffSec(gulag.alarm_start) > 300 then
                if level.get_time_hours() >= 6 and level.get_time_hours() <= 22 then
                actor:give_info_portion("esc_blockpost_normal")
                    return 0  -- день
                else
                    return 1  -- ночь
                end
            else
                return 2
            end
        end
    end

 

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

 

    if type == "you_gulag" then 
        return function(gulag) 
            return 0 
        end 
    end 

3 - коммьюнити

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

    if gulag_type == "esc_blokpost" then
        return npc_community == "military"
    end

 

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

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

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

@mole venomous
Присобачил в gulag_general.script
 

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

 

function load_states(gname, type)
    if type == "general_lager" then
        return function(gulag)
            if gulag.state == 0 then
                if gulag.population_comed == 0 then
                    return 0
                end
                if xr_logic.pick_section_from_condlist(db.actor, gulag.smrttrn, gulag.state_switch_1) ~= nil then

                    --level.map_add_object_spot(gulag.smrttrn.id, "alife_presentation_smart_ready", "Ready")    
        
                    return 1
                end
                return 0
            elseif gulag.state == 1 then
                if gulag.population_comed == 0 then
                    return 0
                end
                if xr_logic.pick_section_from_condlist(db.actor, gulag.smrttrn, gulag.state_switch_0) ~= nil then
                    
                    --level.map_remove_object_spot(gulag.smrttrn.id, "alife_presentation_smart_ready")
                    return 0
                end
                return 1
            end
        end
    end

    if type == "general_lair" then
        return function(gulag) 
            if gulag.state == 0 then
                if gulag.population_comed == 0 then
                    return 0
                end

                if xr_logic.pick_section_from_condlist(db.actor, gulag.object, gulag.state_switch_1) ~= nil then
                    
                    --level.map_add_object_spot(gulag.smrttrn.id, "alife_presentation_smart_ready", "Ready")    
                    return 1
                end
                return 0
            elseif gulag.state == 1 then
                if gulag.population_comed == 0 then
                    return 0
                end
                if xr_logic.pick_section_from_condlist(db.actor, gulag.object, gulag.state_switch_0) ~= nil then

                    --level.map_remove_object_spot(gulag.smrttrn.id, "alife_presentation_smart_ready")
                    return 0
                end
                return 1
            end
        end
    end
    
          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, type, npc_rank, se_obj, preset_name)
    return type == "general_lager"
            if gulag_type == "esc_hind" then
            return npc_community == "military"
        end
end

 


Логику чутка подправил:
 

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

 

[logic@esc_hind_ward1]
active = guard@esc_hind_ward1

[guard@esc_hind_ward1]
path_walk = guard_1_walk
path_look = guard_1_look

 


И скрипт тоже:
 

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

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 = ""
     }
end
end



А всё равно непись не хочет идти на точку и сесть.. Идёт куда не надо.

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

@Norman Eisenherz , именно так. Разные символы окончания строки в Unix и Windows форматах.

Unix:

456.jpg

Windows:

789.jpg

При попытке открытия файла стандартным Win Блокнотом (в старых ОС, за Win10+ не скажу, не знаю:)):

799.jpg

Он просто не понимает unix формат. Т.е., "... всё сплошняком идёт" (c).

А регулярка меняет формат unix на формат window: \n -> \r\n при условии, что это уже не \r\n.

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

@Hind , добавляй в скрипте gulag_escape.script

В ф-ию load_job

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

3DnAkItx.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2016-10-2022%2020:54:03.jpg

В load_states

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

ThG5TgTe.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2016-10-2022%2020:55:49.jpg

В checkStalker

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

QwW9XPaC.jpg?download=1&name=%D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%BE%D1%82%2016-10-2022%2020:57:12.jpg

Если всё остальное сделано правильно, но опять не работает, значит, всё таки пора отложить на завтра  не всё правильно...

  • Согласен 1

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

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

@mole venomousне робит..

Может дело в алл спавне? 
walk вейпоинт я поставил флажком 0 и wp00.
look вейпоинт я поставил так же.
Непися разместил в "смарт террейне" (внутри сферы)

Интересное наблюдение: в логике (.ltx) если:

 

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

 

[logic@esc_hind_ward1]
active = walker@esc_hind_ward1

[walker@esc_hind_ward1]
path_walk = ward_walk1 -- поставить без esc_hind (чтобы вышло полное название вейпоинта)
path_look = ward_look1 -- поставить без esc_hind (чтобы вышло полное название вейпоинта)

То непись пойдет влево (в ту сторону где находится вейпоинт)

А если написать полностью:

[logic@esc_hind_ward1]
active = walker@esc_hind_ward1

[walker@esc_hind_ward1]
path_walk = esc_hind_ward_walk1 
path_look = esc_hind_ward_look1 
То непись пойдет в правую сторону.

 

 

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

@Hind покажи настройки вэйпоинтов.

Вообще лучше ещё глянуть правильно ли ты скрипт оформил, есть программа - script Syntax Checker, проверь ей.

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

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

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

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

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

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

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

Войти

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

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

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