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

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

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


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

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

p0:name = name00|count=3

 

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

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

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

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

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

 

 

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

 

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

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 используй то, чем у тебя в моде можно вывести текст в лог.

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

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

@нерон

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

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

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

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 и бункере???

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

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

 

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

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

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 

На трупах монстров очень редко выпадпают части их тел, хочу исправить это, но не знаю куда и лезть для начала. Не подскажете?

редко выпадпают части их тел,

\gamedata\config\creatures\m_boar.ltx:

 

Spawn_Inventory_Item_Section = mutant_boar_leg

Spawn_Inventory_Item_Probability = 1.0
 
ну и так далее для остальных. 1.0 - стопудовая вероятность выпадения
Изменено пользователем Space.Marine

Напомните, кто-нибудь плиз, как прикрутить логику к заспавненному скриптом мобу или НПС. Видел конструкцию раньше, буквально пять строк, но совершенно не помню, как это сделать. Буквально, как к заспавненному скрипто мобу прикрутить смарт-террейн.

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

@AndrewMor, можно через нет-пакет записать в кастом-дату.

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

@AndrewMor,

Пример вызова

script.add_npc("bar_leha", x, y, z, lv, gv, "[logic]\ncfg = scripts\\foto\\bar\\leha.ltx", 30334)

function add_npc(section, pos_x, pos_y, pos_z, lvid, gvid, custom, sid)
    local sim = alife()
    local sobj = sim:create(section, vector():set(pos_x,pos_y,pos_z), lvid, gvid)
    if sobj and (custom or sid) then
        local pk = get_netpk(sobj,1)
        if pk:isOk() then
            local data = pk:get()
            if custom then data.custom_data:setString(custom) end
            if sid then
                dct.store_sid(sid,sobj.id)    -- сохраним сид
            end
            pk:set(data)
        end
    end
    --printd("create %s ID = %d",section,sobj.id)
    return sobj
end
  • Спасибо 1
  • Полезно 1

   УРАГАН.png

                 Краткий гид по моду Тайные Тропы 2

                                      ПАРТИКЛЫ TERRA

 

 

 

naxac, а примерчиком не поделитесь? Нужно именно прикрутить смарт-террейн.

 

_Val_, дело в том, что секция [smart_terrains], прописанная в файл логики, оттуда не читается.

 

Я пробовал прикрутить логику, вроде получилось. А вот со смартом - беда..

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

Решил добавить в игру некоторые новые ранги по инструкции

http://stalkerin.gameru.net/wiki/index.php?title=SOC._Новый_ранг

 

при загрузке игры теперь получаю такой

FATAL ERROR

[error]Expression : fatal error
[error]Function : CScriptEngine::lua_error
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line : 73
[error]Description :
[error]Arguments : LUA error: ...a.l.k.e.r\gamedata\scripts\task_manager.script:142: attempt to index global 'se_respawn' (a nil value)

 

 

В файле se_respawn.script надо было добавить новые ранги в таблицу для ограничения респавна, я добавил, на ошибки проверил, от чего это непонятно. Может быть эти ранги надо ещё и в allspawn прописывать?

Если кто-знает чем это вероятнее всего вызвано дайте знать.

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

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

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

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

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

Войти

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

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

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