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

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


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

@Norman Eisenherz диалог в случае защиты смарта начинать не нужно ведь.

Задание само приходит на ПДА, а из диалогов лишь два сообщения опять-таки на ПДА.

И чтобы получить деньги говорить ненужно было, выше скрин кидал.

 

2. task_sim или tm_sim.ltx.

Там нашёл квесты связаны со смартами.

 

А смарты у меня новые, хозяйничают там сталкеры.

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

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

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

 

По описанию новые секции полностью совпадают со старыми. В чем, кроме добавления новых смартов, были изменения?

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

Шпаргалка

Ссылка на комментарий
1 час назад, Norman Eisenherz сказал:

В оригинале награда за такие квесты выдавалась на базе

Верно, сам смотрел.

 

1 час назад, Norman Eisenherz сказал:

По описанию новые секции полностью совпадают со старыми.

Ну только строка дописана в старые секции как раз таки. Та, о которой ты говорил.

 

1 час назад, Norman Eisenherz сказал:

В чем, кроме добавления новых смартов, были изменения?

Касательно чего конкретно?

Весь оригинальный сюжет и локации вырезаны.

Так же урезан текст сообщений благодарности и голосового сообщения.

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

Ссылка на комментарий
14.12.2022 в 18:41, imcrazyhoudini сказал:

[sim_defend_smart]
type = defend_smart
target_cond = true
name = sim_defend_smart
text = sim_defend_smart_text
reward_money = 750
community_relation_delta_complete = 150
wait_time = 5
auto_faction = true
prior = 4
immediate_reward = true
 

[sim_defend_smart_delay]
type = defend_smart_delay
target_cond = true
name = sim_defend_smart_delay
text = sim_defend_smart_delay_text
wait_time = 5
reward_money = 750
community_relation_delta_complete = 150
auto_faction = true
prior = 4
immediate_reward = true

@Norman Eisenherz вот получается по логике что в этих квестах (по защите лагеря исходя из названия) добавить immediate_reward = true, дабы деньги сразу приходили без необходимости ходьбы к торговцу.

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

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

Добавил строку immediate_reward = true к указанным квестам, дождался такого квеста на свалке (защита стоянки бандитов от волны мутантов), выполнил: сообщение об обплате есть, счетчик денег увеличился, ходить никуда не пришлось.

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

Шпаргалка

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

@Norman Eisenherz чем же я такой особенный...

Взгляни файл, МБ мысли будут: тут

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

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

Задание "получить награду" создается, если значение "выдать сразу" не найдено в конфиге исходного задания; возможно, вот это лишнее:

[sim_take_reward_stalker]:sim_take_reward
faction = stalker

immediate_reward = true

 

Что касается исходных заданий, то я у себя дописал значение только в общие конфиги [sim_defend_smart] и т. п. без деления по группировкам.

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

Шпаргалка

Ссылка на комментарий
23 минуты назад, Norman Eisenherz сказал:

Что касается исходных заданий, то я у себя дописал значение только в общие конфиги [sim_defend_smart] и т. п. без деления по группировкам.

Это я добавил ибо не знаю уже что и делать)

 

24 минуты назад, Norman Eisenherz сказал:

[sim_take_reward_stalker]:sim_take_reward
faction = stalker

immediate_reward = true

Не, не помогло...

Если вариантов больше нет скинь свой файл, мб пройдёт.

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

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

Как реализовать постоянное нападение одной группировки на другую?

Логика смарта:
 

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

[smart_terrain]
targets = yan_base
sim_type = base
important_point = true
squad_capacity = 2
mutant_lair = false
group_id = 3
spawn_point = yan_zombied_spawn_point
att_restr = yan_zombied_rest
def_restr = yan_zombied_rest
sim_avail = true
respawn_sector = zombied
actor_hides =
surge_hide_avaliable = false

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

[settings]
glory_0 = 0
glory_1 = 0
glory_2 = 0
glory_3 = 0
glory_4 = 0
glory_5 = 0

 


[spawn_by_resource]
0 = sim_default_zombied_1, 1, sim_default_zombied_2, 1, sim_default_zombied_3, 1, sim_default_zombied_4, 1


[spawn_by_level]
l01_yantar    = sim_default_zombied_1, 10, sim_default_zombied_2, 20, sim_default_zombied_3, 30, sim_default_zombied_4, 40

 

 

 

 

[expansion_0]
base_squad_number = 3
respawn_idle_time = 100 ;Время между двумя попытками доспауна отрядов в игровых минутах.
respawn_hours = 0,1,2,3,4,5,6,7,8,9,10,21,22,23 ;Время, в который можно спаунить отряды (задаются времена суток)
sim_prior = prior_0

[prior_0]
base = 100, 0.2
territory = 80, 0

[start_position]
yan_zombied = yan_zombied

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

[yan_zombied]
faction = zombied
npc = sim_default_zombied_1, sim_default_zombied_2, sim_default_zombied_3, sim_default_zombied_4, sim_default_zombied_1
target_smart = yan_base
attack_power = 400


Атакуют лишь начальные вот эти 5 нпс, те, что респавнятся больше не нападают.

Так же если убрать:
[start_position]
yan_zombied = yan_zombied

То респавна не будет.

Ещё иногда вылетает из-за войны этой:
 

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

DEBUG: set_scheme: storage assigned
! [LUA] SCRIPT RUNTIME ERROR
! [LUA]  0 : [C  ] __index
! [LUA]  1 : [Lua] ....a.l.k.e.r. clear sky\gamedata\scripts\sim_combat.script(614) : update_squad
! [LUA]  2 : [Lua] ....a.l.k.e.r. clear sky\gamedata\scripts\sim_combat.script(289) : update
! [LUA]  3 : [Lua] ...l.k.e.r. clear sky\gamedata\scripts\smart_terrain.script(969) : update
! [LUA]  4 : [Lua] ....r. clear sky\gamedata\scripts\bind_smart_terrain.script(67) :
! [LUA] ....a.l.k.e.r. clear sky\gamedata\scripts\sim_combat.script:614: attempt to index local 'attack_squad_obj' (a nil value)
! [LUA]  0 : [C  ] __index
! [LUA]  1 : [Lua] ....a.l.k.e.r. clear sky\gamedata\scripts\sim_combat.script(614) : update_squad
! [LUA]  2 : [Lua] ....a.l.k.e.r. clear sky\gamedata\scripts\sim_combat.script(289) : update
! [LUA]  3 : [Lua] ...l.k.e.r. clear sky\gamedata\scripts\smart_terrain.script(969) : update
! [LUA]  4 : [Lua] ....r. clear sky\gamedata\scripts\bind_smart_terrain.script(67) :
 
FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_pcall_failed
[error]File          : D:\GitHub\xray15.11\xray\xrServerEntities\script_engine.cpp
[error]Line          : 192
[error]Description   : <no expression>
[error]Arguments     : LUA error: ....a.l.k.e.r. clear sky\gamedata\scripts\sim_combat.script:614: attempt to index local 'attack_squad_obj' (a nil value)
 

stack trace:
0x00000000E2BC1526 xrCore.dll, _Init_thread_footer + 86 byte(s), D:\a\_work\1\s\src\vctools\crt\vcstartup\src\misc\thread_safe_statics.cpp, 247
0x00000000E2BDF552 xrCore.dll, xrDebug::backend + 178 byte(s), D:\GitHub\xray15.11\xray\xrCore\xrDebugNew.cpp, 178
0x00000000E2BDFB4F xrCore.dll, xrDebug::fatal + 143 byte(s), D:\GitHub\xray15.11\xray\xrCore\xrDebugNew.cpp, 308
0x00000000E1A8B4FE xrGame.dll, CScriptEngine::lua_pcall_failed + 190 byte(s), D:\GitHub\xray15.11\xray\xrServerEntities\script_engine.cpp, 194
0x00000000E26A27A3 lua51.dll
0x00000000E26C8FA2 lua51.dll, lua_sethook + 2930 byte(s)
0x00000000E26C8668 lua51.dll, lua_sethook + 568 byte(s)
0x00000000E26C8EA4 lua51.dll, lua_sethook + 2676 byte(s)
0x00000000E26D65C6 lua51.dll, luaJIT_version_2_0_5 + 4214 byte(s)
0x00000000E26A2BA3 lua51.dll
0x00000000E26A7B0D lua51.dll, lua_pcall + 109 byte(s)
0x00000000E3B1F8D5 luabind.dll, luabind::detail::pcall + 101 byte(s), D:\GitHub\xray15.11\3rd party\luabind\src\pcall.cpp, 40 + 17 byte(s)
0x00000000E1F1ED7D xrGame.dll, CScriptBinderObjectWrapper::shedule_Update + 125 byte(s), D:\GitHub\xray15.11\xray\xrGame\script_binder_object_wrapper.cpp, 85 + 106 byte(s)
0x00000000E1D5717B xrGame.dll, CGameObject::shedule_Update + 123 byte(s), D:\GitHub\xray15.11\xray\xrGame\GameObject.cpp, 817
0x000000003F77A84C xrEngine.exe, CSheduler::ProcessStep + 476 byte(s), D:\GitHub\xray15.11\xray\xrEngine\xrSheduler.cpp, 342
0x000000003F77A5CF xrEngine.exe, CSheduler::Update + 415 byte(s), D:\GitHub\xray15.11\xray\xrEngine\xrSheduler.cpp, 434
0x00000000E1D5B572 xrGame.dll, CGamePersistent::OnFrame + 882 byte(s), D:\GitHub\xray15.11\xray\xrGame\GamePersistent.cpp, 561
0x000000003F71E207 xrEngine.exe, CRegistrator<pureFrame>::Process + 87 byte(s), D:\GitHub\xray15.11\xray\xrEngine\pure.h, 115
0x000000003F74C728 xrEngine.exe, CRenderDevice::FrameMove + 392 byte(s), D:\GitHub\xray15.11\xray\xrEngine\device.cpp, 521
0x000000003F74CBA0 xrEngine.exe, CRenderDevice::on_idle + 400 byte(s), D:\GitHub\xray15.11\xray\xrEngine\device.cpp, 312
0x000000003F74C9EF xrEngine.exe, CRenderDevice::message_loop + 111 byte(s), D:\GitHub\xray15.11\xray\xrEngine\device.cpp, 426
0x000000003F74C8AC xrEngine.exe, CRenderDevice::Run + 316 byte(s), D:\GitHub\xray15.11\xray\xrEngine\device.cpp, 470
0x000000003F792B7C xrEngine.exe, Startup + 332 byte(s), D:\GitHub\xray15.11\xray\xrEngine\x_ray.cpp, 273
0x000000003F79230A xrEngine.exe, WinMain_impl + 2138 byte(s), D:\GitHub\xray15.11\xray\xrEngine\x_ray.cpp, 753
0x000000003F791A49 xrEngine.exe, WinMain + 9 byte(s), D:\GitHub\xray15.11\xray\xrEngine\x_ray.cpp, 804
0x000000003F748B16 xrEngine.exe, __scrt_common_main_seh + 262 byte(s), D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, 288 + 33 byte(s)
0x000000007702651D kernel32.dll, BaseThreadInitThunk + 13 byte(s)
0x000000007715C201 ntdll.dll, RtlUserThreadStart + 33 byte(s)
 
xrEngine.exe caused an EXCEPTION_BREAKPOINT in module xrCore.dll at 00000000E2BDF5EA, xrDebug::backend()+0330 byte(s), D:\GitHub\xray15.11\xray\xrCore\xrDebugNew.cpp, line 0230

 

Вылет не стабильный.

Думал, что дело в том что нет patrol путей для нападения на смарт, но если их добавить не появляется задание "защита лагеря".


Есть мысли какие у кого?

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

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

Ловил такой вылет около механизаторского двора на Болотах. Добавил проверку наличия самого отряда:

[scripts\sim_combat.script]
(–)
	if attack_squad_obj.squad_power >= squad.squad_power then
(+)
	if attack_squad_obj and attack_squad_obj.squad_power >= squad.squad_power then

 

  • Спасибо 1

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

Шпаргалка

Ссылка на комментарий
15.12.2022 в 23:46, imcrazyhoudini сказал:

immediate_reward = true

Эта функция работает только из диалога, поэтому подобный квест с такой функцией должен выдавать НПС

18.12.2022 в 20:56, imcrazyhoudini сказал:

Как реализовать постоянное нападение одной группировки на другую?

Создать спейс_рестриктор, содержащий логику спавна отрядов, которые имеют в конфигах команду target =  и on_death = +информация

При смерти отряда и регистрации +информации спейс_рестриктор будет производить спавн нового отряда.

Можно поиграться с дополнительными функциями, в том числе время респавна, время нападения, увеличение/уменьшение числа отрядов в зависимости от разных +информаций и т.д.

04.12.2022 в 01:06, imcrazyhoudini сказал:

НПС может выдать квест лишь один раз

Смотрите правки task_manager  в ОГСЧ ЧН или SRP, я не помню точно содержание строки, но там как раз вкл функция брать множество второстепенных квестов у одного НПС, а не по 1-му квесту за раз.

Не соответствует. N6260

Ссылка на комментарий
02.01.2023 в 18:39, ZeeK сказал:

Можно поиграться с дополнительными функциями, в том числе время респавна, время нападения, увеличение/уменьшение числа отрядов в зависимости от разных +информаций и т.д.

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

Как рассорить две группировки между собой?

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

Ссылка на комментарий
03.07.2009 в 14:11, Scientist сказал:

В weapons.ltx находишь секцию, с гранатой в данном случае vog-25 смотришь там секция "fake_grenade_name"

и знак = wpn_fake_missile, потом ишишь в этом файле строку wpn_fake_missile находишь

 

вот что

 

 

[wpn_fake_missile]:identity_immunities

visual = weapons\ammo\ammo_vog-25.ogf

cform = skeleton

class = G_FAKE

$prefetch = 32

 

inv_weight = 0

 

cost = 150

 

blast = 2.00;150 - урон гранаты

blast_r = 5 -радиус урона

blast_impulse = 250 - импульс на сколько отлетит тот в кого упадет.

;delete

blast_impulse_factor = 1

 

 

frags = 3 - кол-во осколков

frags_r = 20 - радиус разлета осколков

frag_hit = 1.50 - сколько наносит повреждения осколок

frag_hit_impulse = 200 - насколько отлетает npc от осколка

 

hit_type_blast = explosion - какой хит повреждения

hit_type_frag = fire_wound- какой хит повреждения

 

Так дела обстоят в ТЧ, в ЧН почти все так-же.

 

Если вместо hit_type_blast = explosion поставить hit_type_blast = burn, то вместо повреждений от взрыва, npc будет получать ожог.

Привет всем! Ребята делаю маленький мод, и есть вопрос, не могу к патронам в моем случае это (стрелы) взрывчатку, и хотя б сделать визуал летящей стрелы...

пробовал через fake_grenade_name, ничего не выходит... помогите пожалуйста

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

@Jony это вроде партиклы ковырять надо.

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

Ссылка на комментарий
17.01.2023 в 18:39, imcrazyhoudini сказал:

Я делал по примеру Янтаря, где зомби атаковали сталкеров

Именно на Янтаре в логике и установлен бесконечный спавн зомби и их поход до бункера ученых пока Вы не пройдете квест с Лешим и установкой, смотрите внимательнее

Не соответствует. N6260

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

@ZeeK 

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

[logic]
active = sr_idle@1

[sr_idle@1]
on_info = {+yan_ready_actor_cut2} sr_idle@spawn1

[sr_idle@spawn1]
on_actor_outside = {=smart_captured_by_faction(yan_smart_terrain_5_3:zombied)} %=create_squad(yan_squad_zombi_in_sci_base7:yan_smart_terrain_5_3)% sr_idle@spawn2, {!is_smart_captured(yan_smart_terrain_5_3)} %=create_squad(yan_squad_zombi_in_sci_base7:yan_smart_terrain_5_3)% sr_idle@spawn2

[sr_idle@spawn2]
on_actor_outside = {=smart_captured_by_faction(yan_smart_terrain_5_5:zombied)} %=create_squad(yan_squad_zombi_in_sci_base11:yan_smart_terrain_5_5)% sr_idle@end,  {!is_smart_captured(yan_smart_terrain_5_5)} %=create_squad(yan_squad_zombi_in_sci_base11:yan_smart_terrain_5_5)% sr_idle@end

[sr_idle@end]


Этот? Можно небольшое объяснение как это работает?

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

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

@imcrazyhoudini переводим:
"Когда лагерь yan_smart_terrain_5_3 захвачен зомби, то логика создает отряд yan_squad_zombi_in_sci_base7 в лагере yan_smart_terrain_5_3 и переходит в логику sr_idle@spawn2 и т.д.

Указанной логике корреспондирует еще одна - yan_space_restrictor_spawn_stalker_5_6

В ней есть функция: [sr_idle@spawn1]
on_info = {=smart_squad_population(stalker:yan_smart_terrain_5_6:1) !actor_in_zone(yan_space_restrictor_spawn_stalker_5_6) !squad_exist(yan_default_stalker_2)} sr_idle@spawn_2 %=create_squad(yan_default_stalker_2:yan_smart_terrain_5_6)%
 

То есть, если игра получает информацию, что отряд сталкеров, охраняющий бункер ученых, погиб, то игра создает отряд yan_default_stalker_2 в точке yan_smart_terrain_5_6

Указанный отряд в логике содержит target_smart = {+yan_stalker_squad_sci_base_death} yan_smart_terrain_6_4 ,yan_smart_terrain_5_6

То есть при смерти охраны бункера и получения инфопоршня yan_stalker_squad_sci_base_death этот отряд пойдет на точку  yan_smart_terrain_6_4 (лагерь ученых).

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

Вы можете по аналогии создать 2-3 логики и спавнить отряды в бесконечном порядке в зависимости от того, какая группировка держит точку, сколько времени прошло, какой отряд погиб и т.д. (в зависимости от характера инфопоршня)

@imcrazyhoudini Сам бесконечный спавн выглядит так:

[sr_idle@1]
on_info = {+yan_ready_actor_cut2} sr_idle@spawn1

[sr_idle@spawn1]

on_actor_outside = {=smart_captured_by_faction(yan_smart_terrain_5_3:zombied)} %=create_squad(yan_squad_zombi_in_sci_base7:yan_smart_terrain_5_3)% sr_idle@spawn2, {!is_smart_captured(yan_smart_terrain_5_3)} %=create_squad(yan_squad_zombi_in_sci_base7:yan_smart_terrain_5_3)% sr_idle@spawn2

После определенного инфопоршня игра начинает бесконечно спавнить отряды зомби пока они не займут точку yan_smart_terrain_5_3

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

Не соответствует. N6260

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

@ZeeK увлекательно конечно, правда всё же непонятно почему НПС сами по себе на атакуют другой смарт террейн за исключением новой игры)

 

Буду пробовать этот вариант.

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

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

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

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

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

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

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

Войти

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

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

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