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

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

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

@warwer, специально создал новый инфопоршень, который 100% нигде не выдавался. Протестировал и с плюсом, и с минусом в simulation_object_props (т.е. с проверкой на то что выдан, и на то, что не выдан). Всё равно иду к месту смарта и вижу там заспавненных мутантов

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@ARTLantist это с новой игры? Если не с новой, то нужно истребить всё на месте смарта и потом следить за распавном.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если я ничего не путаю, параметр sim_avail = отвечает за условия симуляции - для сквадов это при каких условиях они уходят в симуляцию (шастать по локации), для смартов - это при каких условиях они становятся доступны для симуляции (принимают шастающие сквады). Спавн настраивается в конфигах смартов.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@SoP, а можно поподробнее? Как именно настраивается, чтобы мутанты спавнились только после получения инфопоршня?

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@ARTLantist я никогда не делал такого в ЗП, но, похоже, что распвн должен работать через спавн поинт:

spawn_point =  {+zat_b5_actor_with_stalkers} zat_b5_dolg_spawn_point    - пример.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
17 часов назад, ARTLantist сказал(а):

чтобы мутанты спавнились только после получения инфопоршня?

Ну ведь есть же примеры в ЗП, открой к примеру логику смарта - "jup_a12_sr_merc_kamp.ltx":
 

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

[logic]
active = sr_idle@wait_for_spawn

[sr_idle@wait_for_spawn]
on_info = {=is_jup_a12_mercs_time +jup_a12_actor_choose_power -pri_a12_stalker_prisoner_free -jup_a12_actor_switched_from_ransom_to_power} sr_idle@spawn, {+pri_a12_stalker_prisoner_free} sr_idle@nil
on_info2 = {-jup_a12_spawn_merc_squad !actor_in_zone(jup_a12_sr_merc_kamp)} %+jup_a12_spawn_merc_squad%
on_info3 = {+jup_a12_spawn_merc_squad =actor_in_zone(jup_a12_sr_merc_kamp)} %-jup_a12_spawn_merc_squad%

[sr_idle@spawn]
on_info = {-jup_a12_spawn_merc_squad !actor_in_zone(jup_a12_sr_merc_kamp)} %+jup_a12_spawn_merc_squad%
on_info2 = {+jup_a12_spawn_merc_squad =actor_in_zone(jup_a12_sr_merc_kamp)} %-jup_a12_spawn_merc_squad =clear_smart_terrain(jup_sim_2) =clear_smart_terrain(jup_sim_11) =clear_smart_terrain(jup_sim_12)%
on_info3 = sr_idle@transfer %=create_squad(jup_a12_merc_stalker_squad:jup_a12_merc) +jup_a12_mercs_spawned%
 
[sr_idle@transfer]
on_info = {+jup_a12_actor_choose_power +jup_a12_actor_is_ready +jup_a12_merc_cover_in_merc_camp} sr_idle@nil %=relocate_item(af_soul:jup_a12_stalker_assaulter:jup_a12_merc_cover)%

[sr_idle@nil]

 

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

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Может помочь кто ни будь? Делаю мод и хочу сделать, чтоб нпс совершил суицид как Тремор. Я поковырялся в файлах и нашел его логику. Засунул его логику в логику своего НПС. Но я не много не понял, какую именно анимацию он использует, но и собственно проблема в том, что НПС даже не начинает выполнять эту логику

[logic@bb_les_lesnik]
active = walker@bb_les
suitable = {=check_npc_name(bb_les_lesnik)}true
prior = 90
level_spot = quest_npc

[walker@bb_les]
path_walk = end_walk
path_look = end_look
combat_ignore_cond = false
combat_ignore_keep_when_attacked = false
invulnerable = true
gather_items_enabled = false
help_wounded_enabled = true
corpse_detection_enabled = false
on_info = {+question_3_end_igor} | remark@suiside

[remark@suiside]
;on_game_timer = 20 | remark@suiside_shot
anim = bb_les_lesnik_suicide
on_signal = anim_end | remark@suiside_shot
meet = no_meet

[remark@suiside_shot]
anim = bb_les_lesnik_suicide
on_game_timer = 7 | nil %=kill_npc%
meet = no_meet

 

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
11 часов назад, Cheeshiree сказал(а):

какую именно анимацию он использует

Анимация для ремарка указывается тут:

anim = bb_les_lesnik_suicide

Если нет такой анимации, то и работать ничего не будет.

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

naxac.gif

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@naxac Да, спасибо. Я уже разобрался и уже все сделал. Правда у НПС почему то появляется дробовик, хотя в снаряжении только пистолет

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Заспавнил лагерь НПС-нейтралов(не смарт), у каждого отдельная логика. Подхожу и стреляю в воздух - половина неписей агрится. Как это отключить?

Примечание: у каждого из них есть секция [hit], где проверяется on_info = {=hit_by_actor}, однако даже от стрельбы в воздух это условие соблюдается(?)

Изменено пользователем Jek@n

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Jek@n сказал(а):

не смарт

не смарт? Правильно понимаю? Они у тебя заспавнены по отдельности через all.spawn и не привязаны к какому либо скваду и смарту?

- Пролетарии всех стран, соединяйтесь!

 

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Jek@n делай лучше по нормальному как у GSC. Оно так работать будет лучше, да и настройка более "гибкой" менее :дубовой: будет.

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

- Пролетарии всех стран, соединяйтесь!

 

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Просто хотелось бы узнать, где в скриптах находится тот самый триггер, который отвечает за агрессию именно по звуку. В ЗП есть коллбек на звуки у НПС, а у самих звуков - соответствующие огг-комменты, задающие их тип(стрельба, природа, прочее). Однако подобная реакция наблюдается далеко не у каждого персонажа. Экспериментально определил, что НПС расценивают такие звуки как хит(триггер в секции [hit] срабатывает), но опять же, не все: к примеру, свободовцы обижаются, а долговцы почему-то нет. Дело в том, что у меня радиус алайфа неограничен и подобные "звуковые обиды" могут вылезать боком, ломая сюжет: где-то в кого-то стрельнул, а на другом конце карты дружественный перс обиделся беспричинно.

Изменено пользователем Jek@n

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@Jek@n в xr_motivator.script

function motivator_binder:hit_callback(obj, amount, local_direction, who, bone_index)
	--В самом начале хит-колбека, добавь такую проверку:
	if (amount < 0.0001) then return end

Просто некоторые звуки (те же выстрелы), могут вызывать самопроизвольное срабатывание хит-колбека, с нулевым уроном. Это известный баг X-Ray, случается и на ТЧ и на ЗП, насколько я понимаю.

Проверка позволяет такие хиты отсеять, и скрипты не будут обрабатывать их как хиты.

 

Мод, где не бывает одинаковых путей - Судьба Зоны.

...что хотел сказать, большинству мододелов. Послушайте.

Любите орехи? А вот первая ступенька. Пути. Там еще вторая, третья, их много... я давно всем показывал но никто не видит. Все любят, шорох орехов.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я отключил объединение всех одинаковых предметов в инвентаре. Как можно реализовать соединение одинаковых предметов (и не только) при переносе одного на другой? Например, у меня не стакаются патроны, из-за того, что я всё это отключил, у меня в инвентаре после обыска двух трупов появляются две пачки по 2 и 5 дроби соответственно. Я хочу их объединить в одну на 7 патронов - нажимаю на пачку на 2 патрона, перетягиваю её на пачку на 5 патронов (как оружие в слот, или прицел на оружие) и они объединяются (это нужно в идеале). Также я хочу сделать для некоторых предметов, например, у меня таблетки на несколько использований, и когда у меня в инвентаре имеется две пачки таблеток, одна на 1 использование, другая на 3 (максимум - 5), я могу перенести одну на другую и появится одна пачка таблеток на 4 использования. Как реализовать данную вещь?

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

@ARTLantist Замысловатую вещь ты затеял)

Это надо каждой иконке, помнить сколько предметов под ней объединено, и помнить ну например, ID предметов, которые под нее записаны.

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

Мороки много, а выхлоп сомнительный, на мой взгляд.

У себя я сделал проще - объединение итемов под одной иконкой, до некоторого их количества. А размер стека указывается в конфиге итема.

Выглядит примерно так:

/*** UICellItems.h ***/
u8						max_stack;
	virtual void			SetMaxStack(u8 x) { max_stack = x; };
	virtual u8				GetMaxStack() const { return max_stack; }
	virtual u8				GetStack() const { return 1 + m_childs.size(); }
/*** UICellItems.cpp ***/

bool CUICellItem::EqualTo(CUICellItem* itm)
{
	if ((itm->GetStack() + GetStack()) > GetMaxStack()) return false;

	return (m_grid_size.x==itm->GetGridSize().x) && (m_grid_size.y==itm->GetGridSize().y);
}

 

Мод, где не бывает одинаковых путей - Судьба Зоны.

...что хотел сказать, большинству мододелов. Послушайте.

Любите орехи? А вот первая ступенька. Пути. Там еще вторая, третья, их много... я давно всем показывал но никто не видит. Все любят, шорох орехов.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, Zander_driver сказал(а):

У себя я сделал проще - объединение итемов под одной иконкой, до некоторого их количества. А размер стека указывается в конфиге итема.

Выглядит примерно так:

/*** UICellItems.h ***/ u8 max_stack; virtual void SetMaxStack(u8 x) { max_stack = x; }; virtual u8 GetMaxStack() const { return max_stack; } virtual u8 GetStack() const { return 1 + m_childs.size(); } /*** UICellItems.cpp ***/ bool CUICellItem::EqualTo(CUICellItem* itm) { if ((itm->GetStack() + GetStack()) > GetMaxStack()) return false; return (m_grid_size.x==itm->GetGridSize().x) && (m_grid_size.y==itm->GetGridSize().y); }



/*** UICellItems.h ***/
u8						max_stack;
	virtual void			SetMaxStack(u8 x) { max_stack = x; };
	virtual u8				GetMaxStack() const { return max_stack; }
	virtual u8				GetStack() const { return 1 + m_childs.size(); }
/*** UICellItems.cpp ***/

bool CUICellItem::EqualTo(CUICellItem* itm)
{
	if ((itm->GetStack() + GetStack()) > GetMaxStack()) return false;

	return (m_grid_size.x==itm->GetGridSize().x) && (m_grid_size.y==itm->GetGridSize().y);
}

 

я так понимаю ты u8 max_stack устанавливаешь ссылкой на конфиг, где указано максимальное количество вещей в стаке, да?

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

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну да)

При инициализации иконки, она читает этот параметр из секции конфига того предмета, на который создается.

Мод, где не бывает одинаковых путей - Судьба Зоны.

...что хотел сказать, большинству мододелов. Послушайте.

Любите орехи? А вот первая ступенька. Пути. Там еще вторая, третья, их много... я давно всем показывал но никто не видит. Все любят, шорох орехов.

Поделиться этим сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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

AMK-Team.ru

×
×
  • Создать...