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

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


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

dsh, дело в том, что dog - группировка, а pred_dog - имя смарта. И самое главное, они не разбредаются по локации, а как бы под логикой home сидят, только в точку pred_dog_home_1 не идут.

 

Или это не важно, а главное в любом месте локации их заспавнить, они там и будут под домашней логикой сидеть?

 

И еще вдогонку вопрос:

на что практически в секции смарта влияют строчки distance и radius?

Сталкер - наше всё!

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

@AndrewMor,  сделай для проверки так. Вот ты заспаунил их

local sobj = alife():create()

на всякий случай потом сделай

sobj:brain():update()

и выведи в лог sobj:smart_terrain_id()

Вот и поймешь, взял их смарт или нет. А потом уже с остальным будешь разбираться.

 

Про distance и radius не скажу, не знаю. В smart_terrains.script я никакую обработку этих параметров не встречал. Возможно для смартов оно и не используется.

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

dsh, а в какое место сию проверку поместить

 

local sobj = alife():create()

sobj:brain():update()

выведи в лог sobj:smart_terrain_id()

 

в функцию спавна, прямо в тело цикла?

 

for s = 1, 3 do
alife():create("dog_weak",vector():set(128.0493927002,16.724941253662,63.131950378418),1144984,4025)
end

 

Я просто со скриптами на вы, надеюсь, пока.

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

Сталкер - наше всё!

Ссылка на комментарий
@AndrewMor, может, ты забыл указать в точках путей количество мобов, которые будут записаны на работу этого пути? В general_lair это читается из way_point'ов. И еще вроде какие-то параметры туда пишутся. Изменено пользователем naxac

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий
может, ты забыл указать в точках путей количество мобов, которые будут записаны на работу этого пути? В general_lair это читается из way_point'ов. И еще вроде какие-то параметры туда пишутся.

Точку одну указал, совпадающую с центром смарта:

 

[pred_dog_home_1]

points = p0

p0:name = name00

p0:position = 132.74263000488,22.745307922363,6.7319641113281

p0:game_vertex_id = 4026

p0:level_vertex_id = 1152786

 

 

Смотрел на примере кровососа у элеватора на Кордоне. Может, их три надо было указать?

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

Сталкер - наше всё!

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

@AndrewMor, capacity в твоем гулаге - 3, а по умолчанию на каждую точку "home" в general_lair назначается 10 работ. Попробуй в точке явно указать количество:

p0:name = name00|count=3

 

Или еще возможно такое, что мобы уходят на более приоритетные работы в другие гулаги. Тогда им в custom_data надо указать конкретный смарт.

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

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий
capacity в твоем гулаге - 3, а по умолчанию на каждую точку "home" в general_lair назначается 10 работ. Попробуй в точке явно указать количество: p0:name = name00|count=3

Попробую.

 

 

 

Или еще возможно такое, что мобы уходят на более приоритетные работы в другие гулаги. Тогда им в custom_data надо указать конкретный смарт.

Они никуда не уходят. Они сидят в точке спавна. И никакой кастом-даты я им не указывал. Может, неправильно объяснил.

В общем, я создал смарт и хочу, чтобы мобы спавнились в другой точке, но шли бы каждый на свою работу. Как им тогда way-point правильно прописать?

 

И как тогда правильно их спавнить, указав кастом-дату?

Не в первый раз сталкиваюсь с таким вылетом:

 

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_error

[error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp

[error]Line : 73

[error]Description :

[error]Arguments : LUA error: ...lishing\stalker-shoc\gamedata\scripts\ph_door.script:88: C stack overflow

 

 

Возникает редко и в разных ситуациях. Конкретно этот вылет возник при переходе из Припяти на Радар. Причем здесь вообще ph_door.script? Ни в Припяти, ни на Радаре никаких дверей нету.

Изменено пользователем AndrewMor
Добавлено BFG,

На Радаре 1 дверь точно - на развилке.

На Припяти 2 двери есть точно - в гостинице и в детсаду.

Сталкер - наше всё!

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

 

 

в функцию спавна, прямо в тело цикла?

 

Да, вот так вот

for s = 1, 3 do
  local sobj = alife():create(
    "dog_weak",
    vector():set( 128.0493927002, 16.724941253662, 63.131950378418 ),
    1144984,4025
  )
  sobj:brain():update()
  log2( "XXX: %s: smart_terrain_id = %s", sobj:name(), sobj:smart_terrain_id() )
end

Вместо log2 используй то, чем у тебя в моде можно вывести текст в лог.

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

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

Изменено пользователем нерон
Добавлено  HellRatz,

Перенесено. Надеюсь вопрос был для ТЧ.

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

@нерон

Читай все-же по началу правила разделов форума - твой вопрос в "Скриптование".

Установка метки на объект - ф-ции пространства имен "level"  - map_add_object_spot(....) и map_add_object_spot_ser(....). В чем разница между ними и какие аргументы принимают - читай "Справочник по ф-циям и классам".

Ф-ции для установки метки по заданным координатам нет в оригинале движка, но можно заспавнить по этим самым координатам любой фейковый объект, а уже на него поставить метку вышеозначенными ф-циями.

Добавлено  HellRatz,

Перенесено.

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

dsh, написал, как ты и сказал, только log2 заменил на printf. Вот кусок лога:

 

! Unknown command: [smart_terrain_pred_dog]_register_called_obj=dog_weak51725_gulag_type=general_lair
* Log file has been saved successfully!
! Unknown command: [smart_terrain_pred_dog]_gulag:_object_setup_offline:_obj=dog_weak51725
* Log file has been saved successfully!
! Unknown command: [smart_terrain_pred_dog]_gulag:_setJob:_obj=dog_weak51725_job=1_logic@pred_dog_home_1
* Log file has been saved successfully!
! Unknown command: ***__pred_dog_--_State:_0_--_Total_population:_1/3_--_Non_exclusive_population:_1/3
* Log file has been saved successfully!
! Unknown command: My_smart:_dog_weak51725:_smart_terrain_id_=_38827
* Log file has been saved successfully!
! Unknown command: [smart_terrain_pred_dog]_register_called_obj=dog_weak51727_gulag_type=general_lair
* Log file has been saved successfully!
! Unknown command: [smart_terrain_pred_dog]_gulag:_object_setup_offline:_obj=dog_weak51727
* Log file has been saved successfully!
! Unknown command: [smart_terrain_pred_dog]_gulag:_setJob:_obj=dog_weak51725_job=1_logic@pred_dog_home_1
* Log file has been saved successfully!
! Unknown command: [smart_terrain_pred_dog]_gulag:_setJob:_obj=dog_weak51727_job=7_logic@pred_dog_home_1
* Log file has been saved successfully!
! Unknown command: ***__pred_dog_--_State:_0_--_Total_population:_2/3_--_Non_exclusive_population:_2/3
* Log file has been saved successfully!
! Unknown command: My_smart:_dog_weak51727:_smart_terrain_id_=_38827
* Log file has been saved successfully!
! Unknown command: [smart_terrain_pred_dog]_register_called_obj=dog_weak51729_gulag_type=general_lair
* Log file has been saved successfully!
! Unknown command: [smart_terrain_pred_dog]_gulag:_object_setup_offline:_obj=dog_weak51729
* Log file has been saved successfully!
! Unknown command: [smart_terrain_pred_dog]_gulag:_setJob:_obj=dog_weak51727_job=1_logic@pred_dog_home_1
* Log file has been saved successfully!
! Unknown command: [smart_terrain_pred_dog]_gulag:_setJob:_obj=dog_weak51729_job=7_logic@pred_dog_home_1
* Log file has been saved successfully!
! Unknown command: [smart_terrain_pred_dog]_gulag:_setJob:_obj=dog_weak51725_job=6_logic@pred_dog_home_1
* Log file has been saved successfully!
! Unknown command: ***__pred_dog_--_State:_0_--_Total_population:_3/3_--_Non_exclusive_population:_3/3
* Log file has been saved successfully!
! Unknown command: My_smart:_dog_weak51729:_smart_terrain_id_=_38827
* Log file has been saved successfully!

 

 

По всему, собачки берутся по этот смарт, что радует. Значит, точка смарта должна совпадать с точкой спавна собак, так надо понимать.

 

Спасибо за наводку!

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

Сталкер - наше всё!

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

@AndrewMor,  ну судя по отладке их не только смарт взял, но и гулаг их на работу назначил. А должны-ли они на эту точку идти? Вроде бы, я не уверен, они должны держаться в определенном радиусе от этой точки. Ты их насколько далеко заспаунил от самого смарта и от этой точки?

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

@dsh, ну мне и надо, чтобы они на работу вышли. А заспавнил примерно метрах в шестидесяти.

 

Но возник еще вопрос: почему при подсчете численности гулага выдается 0? Считал так:

 

local text = xr_gulag.getGulagPopulation("pred_dog")
news_manager.send_tip(db.actor, text, nil, nil, 30000)

 

Сталкер - наше всё!

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

 

 

xr_gulag.getGulagPopulation

 

Не знаю, что у тебя возвращает xr_gulag.getGulagPopulation, кол-во в гулаге или кол-во в гулаге пришедших к месту работы. Сдается мне, что второе, если принимать во внимание отладочный вывод. Значит по мнению xr_gulag, никто из собак на место работы не дошел. Дошедшими на работу считаются те, кто находится в радиусе job_position_threshold от первой точки пути работы. Если у тебя не переделанный каким-то образом xr_gulag.

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

 

 

Дошедшими на работу считаются те, кто находится в радиусе job_position_threshold от первой точки пути работы. Если у тебя не переделанный каким-то образом xr_gulag.

xr_gulag не переделан никоим образом. А job_position_threshold прописан 120, вроде бы в радиус попадает. Есть еще функция getGulagPopulationComed, считающая только пришедшие персонажи, но и она выдает 0. Почему так?


dsh, ты оказался прав. Функция выдавала количество дошедших до работы мобов, потому и 0. Другая функция выдавала общее население смарта - 3. Но фишка в том, что если всех собак перебить, население смарта все равно 3. А мне надо знать количество живого населения. Как такое сотворить?

Сталкер - наше всё!

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

Добрый день!!!

Не подскажите названия инфопоршней выдаваемых по отключении установок в х-18, х-16 и бункере???

Добавлено BFG,

Это просто издевательский оффтоп.

Строгое предупреждение.

п.2.1.1 правила форума АМК

===================

ПРОЧИТАЙТЕ ВНИМАТЕЛЬНО НАЗВАНИЕ ТЕМЫ И САМЫЙ ПЕРВЫЙ ПОСТ.

Добавлено Вспышка,

Перенёс из темы "Ищу файлы/моды/аддоны"

Жизнь следует измерять поступками, а не временем...

Ссылка на комментарий
@AndrewMor, тут уж я не помогу. Все это надо в живую отлаживать, а не по переписке. А это можешь сделать только ты.
Ссылка на комментарий
Не подскажите названия инфопоршней

 

Глянь у меня в подписи...

Изменено пользователем _Val_
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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