Генератор шаблонов поведение npc или снова о .efd |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Генератор шаблонов поведение npc или снова о .efd |
23.07.2017, 22:45
Сообщение
#1
|
|
Почти Мастер Репутация: 1357 Группа: Участник Сообщений: 1155 Награды: 5 Регистрация: 28.05.2010 |
Итак, с 2015 года у нас есть
-------------------- Сверхнарод, не желающий кормить своего уицраора шаввой, будет кормить чужого гаввахом!
--------------- ------------ ---------- -------- ------ ---- -- |
 
|
|
|
|
23.07.2017, 22:59
Сообщение
#2
|
|
Почти Мастер Репутация: 75 Группа: Участник Сообщений: 1168 Награды: 4 Регистрация: 10.11.2015 |
Мне надо понять как НПС выбирает оружие, я сейчас сделал костыль для гравипривода: при активации просто удаляет все патроны, кроме патронов гравипривода, что заставляет НПС выбрать именно его, и при деактивации спавнит обратно, пока не отладил как надо. Если понять как это работает, может быть можно сделать проще, просто настройками конфига.
Файлы которые участвуют выборе параметров. ef_base.h ef_pattern.cpp ef_pattern.h ef_primary.cpp ef_primary.h ef_storage.cpp ef_storage.h ef_storage_inline.h ef_storage_script.cpp ЗЫ Есть мысль сделать скиптовый усилитель приоритетов в выборе оружия, но это уже XE, скриптом можно повысить приоритет так, что НПС выберет указанное оружие без вариантов. Всё адреса функций указанных в этих файлах в IDA я нашёл, не смотря что они виртуальные. Сообщение отредактировал NanoBot-AMK - 23.07.2017, 23:10 -------------------- СТАЛКЕР только для ПК!
|
 
|
|
23.07.2017, 23:29
Сообщение
#3
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
Ночью гляну.
-------------------- В армии по 01.07.2020. |
 
|
|
23.07.2017, 23:56
Сообщение
#4
|
|
Почти Мастер Репутация: 75 Группа: Участник Сообщений: 1168 Награды: 4 Регистрация: 10.11.2015 |
Странная функция.
ef_primary.cpp CODE float CPersonalWeaponTypeFunction::ffGetTheBestWeapon() { u32 dwBestWeapon = 0; if (ef_storage().non_alife().member() && ef_storage().non_alife().member_item()) return (float(dwfGetWeaponType())); if (ef_storage().non_alife().member()) { const CInventoryOwner *tpInventoryOwner = smart_cast<const CInventoryOwner*>(ef_storage().non_alife().member()); if (tpInventoryOwner) { xr_vector<CInventorySlot>::const_iterator I = tpInventoryOwner->inventory().m_slots.begin(); xr_vector<CInventorySlot>::const_iterator E = tpInventoryOwner->inventory().m_slots.end(); for ( ; I != E; ++I) if ((*I).m_pIItem) { CWeapon *tpCustomWeapon = smart_cast<CWeapon*>((*I).m_pIItem); if (tpCustomWeapon && (tpCustomWeapon->GetAmmoCurrent(true) > tpCustomWeapon->GetAmmoMagSize()/10)) { ef_storage().non_alife().member_item() = tpCustomWeapon; <-- назначить оружие u32 dwCurrentBestWeapon = dwfGetWeaponType(); if (dwCurrentBestWeapon > dwBestWeapon) dwBestWeapon = dwCurrentBestWeapon; ef_storage().non_alife().member_item() = 0; <-- удалить оружие } } } } else { if (!ef_storage().alife().member() || !ef_storage().alife().member()->m_tpCurrentBestWeapon) return(0); ef_storage().alife().member_item() = ef_storage().alife().member()->m_tpCurrentBestWeapon; dwBestWeapon = dwfGetWeaponType(); } return(float(dwBestWeapon)); } Явно баг какой-то. -------------------- СТАЛКЕР только для ПК!
|
 
|
|
24.07.2017, 01:38
Сообщение
#5
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
Как я понял:
Айдишники. Цитата ;function types ; primary functions Distance = 0 GraphPointType0 = 1 EquipmentType = 2 ItemDeterioration = 3 EquipmentPreference = 4 MainWeaponType = 5 MainWeaponPreference = 6 ItemValue = 7 WeaponAmmo = 8 DetectorType = 9 PersonalHealth = 21 PersonalMorale = 22 PersonalCreatureType = 23 PersonalWeaponType = 24 PersonalAccuracy = 25 PersonalIntelligence = 26 PersonalRelation = 27 PersonalGreed = 28 PersonalAggressiveness = 29 PersonalEyeRange = 30 PersonalMaxHealth = 31 EnemyHealth = 41 EnemyCreatureType = 42 EnemyWeaponType = 43 EnemyEquipmentCost = 44 EnemyRukzakWeight = 45 EnemyAnomality = 46 EnemyEyeRange = 47 EnemyMaxHealth = 48 EnemyAnomalyType = 49 EnemyDistanceToGraphPoint = 50 ; complex functions WeaponEffectiveness = 61 CreatureEffectiveness = 62 IntCreatureEffectiveness = 63 AccWeaponEffectiveness = 64 FinCreatureEffectiveness = 65 VictoryProbability = 66 EntityCost = 67 Expediency = 68 SurgeDeathProbability = 69 EquipmentValue = 70 MainWeaponValue = 71 SmallWeaponValue = 72 TerrainType = 73 WeaponAttackTimes = 74 WeaponSuccessProbability = 75 EnemyDetectability = 76 EnemyDetectProbability = 77 EnemyRetreatProbability = 78 AnomalyDetectProbability = 79 AnomalyInteractProbability = 80 AnomalyRetreatProbability = 81 BirthPercentage = 82 BirthProbability = 83 BirthSpeed = 84 Код: Цитата 8 3 ; Какие-то странные ID, как понимаю, из того же списка
EnemyAnomalyType DetectorType AnomalyDetectProbability ; задаём параметры для установки значений 1 1 20 ; Первый тип зоны, первый тип детектора, вероятность обнаружения 1 2 60 ; Первый тип зоны, второй тип детектора, вероятность обнаружения 1 3 100 ; Первый тип зоны, третий тип детектора, вероятность обнаружения -------------------- В армии по 01.07.2020. |
 
|
|
25.07.2017, 00:04
Сообщение
#6
|
|
Геймер Репутация: 9 Группа: Участник Сообщений: 110 Награды: 2 Регистрация: 21.09.2014 |
ето ор.
разобрались конкретно с этим уже давным-давно, но только на тч (но после поверхностного изучения зп там вроде орать можно не меньше), как и всегда, часть нафиг, часть норм, если не понимаете что и зачем, то можно и побольше нарезать. нанобот, скриптовые аналоги сейчас паровозят все эти ef_ связанные с оружием и не только, и я их повырезал все, а конкретно к селекту оружия это вообще никак не относится, там и так очень много мертвым грузом лежит, мы это все выбросили в свое время, поразматывай сам и поймешь о чем я. -------------------- Cocoa not Cocaine.
|
 
|
|
25.07.2017, 01:55
Сообщение
#7
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
Карлан, прока от них никакого, как я понял из твоих слов?
-------------------- В армии по 01.07.2020. |
 
|
|
25.07.2017, 21:44
Сообщение
#8
|
|
Почти Мастер Репутация: 1357 Группа: Участник Сообщений: 1155 Награды: 5 Регистрация: 28.05.2010 |
разобрались конкретно с этим уже давным-давно Давай конкретнее, пока тебе не влепили пред за флуд и строчные буквы в начале предложения.
-------------------- Сверхнарод, не желающий кормить своего уицраора шаввой, будет кормить чужого гаввахом!
--------------- ------------ ---------- -------- ------ ---- -- |
 
|
|
06.08.2017, 13:28
Сообщение
#9
|
|
Геймер Репутация: 9 Группа: Участник Сообщений: 110 Награды: 2 Регистрация: 21.09.2014 |
во 1) конретно я уже сказал, или ты среьезно думаешь что я буду десятки патернов расписывать?
вовторых где ты увидел флуд? втетьих 3) что ты мне сделаешь ты не модер. за строчные буквы в начале предложения извени. -------------------- Cocoa not Cocaine.
|
 
|
|
06.08.2017, 16:49
Сообщение
#10
|
|
Почти Мастер Репутация: 1357 Группа: Участник Сообщений: 1155 Награды: 5 Регистрация: 28.05.2010 |
Да куда там десятки, тебе и один слабо расписать видимо, стоящий сзади модератор с ремешком настолько плотно вошёл в сознание некоторых амкасов, что на других форумах сразу начинается спутанность мыслей, пальцы перестают попадать по клавишам...
-------------------- Сверхнарод, не желающий кормить своего уицраора шаввой, будет кормить чужого гаввахом!
--------------- ------------ ---------- -------- ------ ---- -- |
 
|
|
06.08.2017, 20:59
Сообщение
#11
|
|
Игровой Бог Репутация: 1690 Группа: Участник Сообщений: 7021 Награды: 11 Регистрация: 22.02.2006 |
|
 
|
|
22.08.2017, 13:39
Сообщение
#12
|
|
Геймер Репутация: 9 Группа: Участник Сообщений: 110 Награды: 2 Регистрация: 21.09.2014 |
во только на слабо меня еще и не брали . ты когда разберешься мой пост перечитай, если с чем-то будешь не согласен спрашивай, я на все свои слова могу дать дополнительные пояснения со ссылками на конкретный код, мне не сложно. а то что ты просишь требует трех составляющих, знания, времени и желания, если с первым все хорошо, то со вторым и третьим вообще никак, так что ты прав.
-------------------- Cocoa not Cocaine.
|
 
|
|
22.08.2017, 14:44
Сообщение
#13
|
|
Почти Мастер Репутация: 1357 Группа: Участник Сообщений: 1155 Награды: 5 Регистрация: 28.05.2010 |
а ты случайно не на водонасосной станции работаешь? так много слов и всё вода.
-------------------- Сверхнарод, не желающий кормить своего уицраора шаввой, будет кормить чужого гаввахом!
--------------- ------------ ---------- -------- ------ ---- -- |
 
|
|
22.08.2017, 17:29
Сообщение
#14
|
|
Почти Мастер Репутация: 75 Группа: Участник Сообщений: 1168 Награды: 4 Регистрация: 10.11.2015 |
Есть мысль сделать скиптовый усилитель приоритетов в выборе оружия Реализовал гораздо проще. set_script_best_weapon(game_object, boolean) get_script_best_weapon() Первый метод устанавливает лучшие оружие, второй показывает. Булева, если равна true, то НПС не меняет оружие, даже если кончились патроны, если false, то сменит оружие. Метод работает просто, в функции CAI_Stalker::update_best_item_info() проверка проверяет, если параметр m_script_best_weapon не равно nil, то установить именно это оружие. В общем работает, можно задать нож, и НПС выберет его, даже если в инвентаре будет пулемёт с патронами. ЗЫ Ах да, реализовал в XRayExtensions. Сообщение отредактировал NanoBot-AMK - 22.08.2017, 17:30 -------------------- СТАЛКЕР только для ПК!
|
 
|
|
12.06.2019, 17:47
Сообщение
#15
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
Топик снова актуален. Кто-нибудь что-нибудь с этим делал?
-------------------- В армии по 01.07.2020. |
 
|
|
12.06.2019, 21:36
Сообщение
#16
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
Получить бы алгоритм записи... А то значения расходятся. С атомиками всё понятно, в отличии от значений структур Причём само странно, что max value считается неправильно. Как-будто бы пропустили последний индекс в массиве. Сейчас попробую перегенерировать, сместив данные немного, мб так и выйдет. Да, индекс неправильный в алгоритме -------------------- В армии по 01.07.2020. |
 
|
|
12.06.2019, 22:00
Сообщение
#17
|
|
Pro gamer
Почти Игроман Репутация: 72 Группа: Участник Сообщений: 622 Регистрация: 05.11.2017 |
Может я что пропустил, а вы разобрались что это такое?
Судя по названию... шаблоны поведения?%] мини-мини-мини нейронная сеть?(вообще не разбираюсь) |
 
|
|
12.06.2019, 22:04
Сообщение
#18
|
|
Мастер Игры Репутация: 232 Группа: Друзья GM Сообщений: 1299 Награды: 4 Регистрация: 05.03.2012 |
ForserX,
А насколько это актуально для того же движка ЗП? Оно разве там вообще используется? Я так бегло смотрел - это всё вроде рудименты времен OL. -------------------- |
 
|
|
12.06.2019, 22:22
Сообщение
#19
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
Всё, что нашёл, пока мне не надоело. Остался принцип генерации. И посмотреть принцип работы. Утилиту для депарсинга залью в репо окси чуть позже. hi_flyer, чекни вики окси. Я там описал, что реально используется. А насколько это актуально для того же движка ЗП? Оно разве там вообще используется? Вообще, можно спокойно вбить оставшиеся 5 значений в движок и выкинуть эти файлы. Мб перед армией так и сделаю. buffy, как мне ответил один из олдов: некий машинный просчет коэфов для ситуаций. -------------------- В армии по 01.07.2020. |
 
|
|
12.06.2019, 22:34
Сообщение
#20
|
|
Мастер Игры Репутация: 248 Группа: Участник Сообщений: 1363 Награды: 4 Регистрация: 08.03.2010 |
Странная функция. ---//--- Явно баг какой-то. там пол-двигла такое. Сделанное с помощью черной магии и синей изоленты -------------------- Набор шейдеров для S.T.A.L.K.E.R: Shadow of chernobyl: ECB-Shaderpack -
------ Продюсер электронной музыки в стиле Dark Ambient, автор саундтрека для Desowave S.T.A.L.K.E.R.: Lost Alpha. |
 
|
|
Текстовая версия | Сейчас: 18.04.2024, 04:10 |