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

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


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

 

 

А его ствол - это что?

Очевидно ствол до дропа, что же еще? Оперируешь-то одним итемом.

 

 

 

подскажите как можно получить отношение НПС к ГГ(НПС на другой локации)?

Костылем. Примеров тут масса уже готовых под любым соусом в любом моде.

 

 

 

такое чувство, что движок не успевает освободить MapLocation при удалении НПС. такое может быть?

Чего не успевает?:) Твой пример можно помещать в парижскую палату мер и весов из-за его сферичной ламповости и ламповой сферичности, за 9 практически лет вопрос не теряет актуальности.

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

 

 

Очевидно ствол до дропа, что же еще? Оперируешь-то одним итемом.

 

Ага, т.е. где-то еще надо запоминать, что объект с таким-то id - это его оружие? Т.е. ко всему прочему, что ты предлагаешь дописать (кому?), ты предлагаешь еще дописать кучу кода для хранения факта, какой именно объект в игре является оружием данного непися. А плюс к этому, еще кучу кода для обработки ситуаций, что вот это оружие было легально продано/куплено или иными способами легально поменяло своего владельца. И зачем? Что бы в результате получить, что бы раненый непись не остался без своего оружия? И вот это вот все лучше, чем закомментировать "drop" в соотв. скрипте: https://github.com/dsh2dsh/op2ogse/commit/e81640102623455061b84cc7e263f550ee24c895

Ну не знаю. Сдается мне, месье знает толк в извращениях. :)

  • Нравится 1
Ссылка на комментарий

@dsh, не стоит оправдывать свою лень и невежество какими-то "извращениями". Способ лока анимки это путь наименьшего сопротивления, и он здесь, объективно, не самый лучший. Предлагаю я дописать вопрошающему, создаешь ассоциативный массив и пишешь его напрямую в память, элементарная операция, не понимаю где тут куча кода, легальность (хотя причем она тут?!) вообще не к чему устанавливать, у непися был ствол, при дропе нам надо его пометить что он его, все, если он же его подобрал - легален, если не он - не легален, что тут опять трудного? И да, это вот все лучше чем закомменитровать пару строк и выкупать хайд ствола при смене стейта и дивится магии и колдовству.

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

 

 

не понимаю где тут куча кода

 

Не ну советовать же легко, ты же наверняка в курсе. Ну раз не понимаешь, так возьмись, накидай эту НЕ кучу кода. Отладить не забудь только и все крайние варианты проверить. Например, когда раненый непись роняет свое оружие, игрок записывается и загружается. Ты все еще считаешь, что это будет добавление элемента в список? Ну-ну.

 

 

 

Предлагаю я дописать вопрошающему

 

А ты так уверен, что вопрошающий осилит? Ох уж эти советчики...

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

 

 

когда раненый непись роняет свое оружие, игрок записывается и загружается

Ты берешь инфу из некст стейта, парсишь этот стейт и берешь оттуда все что нужно, пускай загружается и сохраняется сколько угодно, у тебя уже все есть в массиве. Это будет добавление элемента в массив. Стейт получается из стоража (1 строка, + еще 2-5 проверить наш или не наш), далее получаешь активный слот (именно он будет дропатся, и это не обязательно будет ствол, да, еще +1 строка), забиваешь в массив айди итема и айди парента (+1 строка), все, сам массив сохраняется где-то как-то когда угодно (тут зависит от зашоренности автора, а у меня снова +1 строка). ДАЛЕЕ. На выходе из стейта опять проверяешь в финализаторе есть ли наш парент и его ствол в массиве (поскольку ассоциативный, то +1 строка), если ствол по прежнему бесхозный заставляешь принудительно поднять непися его ствол, если не бесхозный (тут где-то 5 строк я насчитал), то крутишь парента который ствол подрезал (тут строк сколько угодно, зависит от того что хочешь сделать, если банально обидеть то еще +3-5 строк). Арифметикой займись сам.

 

 

 

А ты так уверен, что вопрошающий осилит?

Мне какое дело? Я отвечаю за свои слова и не хочу советовать ерунду при возможности лаконичного решения как с технической точки зрения, так и с игровой.

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

Мне какое дело?

А, вона как. Ты бы, что бы никого в заблуждение не вводить, так бы и сказал сразу, что мол "отстаньте мыши, я стратег". :)

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

А, вона как. Ты бы, что бы никого в заблуждение не вводить, так бы и сказал сразу, что мол "отстаньте мыши, я стратег".

Ты неверно понял. Я не считаю вопрошающих за дураков, человеку нужно подсказать корректные пути решения и он сам выберет тот который его больше всего устраивает, и, в случае чего, далее станет задавать вопросы, или же сразу все сам сделает. Но вот тебя в список борцов с неведомым смело можно записывать прямо сейчас, ибо им ты являешься не по названию, а по сути ;). По крайней мере этот вывод целиком оправдывает оффтоп который ты тут городишь пытаясь непонятно что непонятно кому доказать. Если пытаешься мне, то мне не нужно, я в своем первом ответе (я поясню, это тот, который еще не тебе адресован) включил этот пункт, но мне он, субъективно, кажется некорректным, я объяснил почему и привел в пример корректный по моему мнению вариант, а так же краткий алгоритм. И отсюда хочу спросить, чего еще скажешь умного? Факт того, что ты идешь по пути наименьшего сопротивления (в техническом крыле) и считаешь других тупее себя это мы выяснили, я жду новой череды удивительных открытий.

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

@Struck, я просто пытаюсь понять, что же ты имел ввиду. Человек спросил, как ему быстро долететь из А в Б. Ты пытаешься доказать, что ему не надо садиться в самолет и лететь. А лучше пойти накопать алюминия и других деталей, собрать суперский и красивый самолет и парить, парить. Вот я и пытаюсь до тебя донести, что то, что ты предлагаешь, совершенно бессмысленно в контексте задачи. Задача, напомню, как я её понял, это что бы раненые сталкеры не оставались, в итоге, безоружными. Можно, конечно, навертеть супер-пупер навороченную систему искуственного интеллекта, которая будет следить за оружием сталкеров, одним запрещать его подбирать, других заставлять его подбирать, решать, кому что можно и т.д, проигрывать красивые анимации подбирания, такие, что у всех дух захватит. Вот только зачем? Задача-то не в том, а в том, что бы после лечения у сталкера по прежнему было его оружие. Так зачем все это наворачивать, тратить кучу времени на отладку и все равно все до конца не отладить, получить потом разные баги и глюки и в итоге получить тоже самое, что делает изменение в трех строках? Из любви к искусству? Но в задаче не было ничего об искусстве. Ты конечно можешь сказать, да фигня все это, надо-то дописать всего 4 строчки, скромно умолчав, что остальные 4000 у тебя уже написаны и отлажены. Да вот только ты забыл, что это у тебя оно написано и отлажено, а не у задавшего вопрос.

 

А к чему весь этот спор? Да просто не люблю некорректные ответы. Если уж взялся помогать, то не строй из себя сову с мышами, а помогай так, что бы спросившему это было полезно.

Изменено пользователем dsh
  • Нравится 2
  • Согласен 2
Ссылка на комментарий

@dsh, во-первых я никому ничего доказать и никого ни в чем убедить не пытаюсь. Это факт. Во-вторых поясни почему бессмысленно то, что предлагаю я, я не предлагаю писать аи-схему, зачем ты приплетаешь это сюда? Я предлагаю написать простую обвязку в ~50 строк которая охватывается одним взглядом и корректно смотрится в игре, о какой куче времени ты говоришь? Что ты привязался к отладке? Отладка производится по мере нахождения багов, количество которых зависит от искусства мыслить, у меня например количество багов никогда не бывает критическим и я всегда знаю как их пофиксить и исправляю сразу по мере обнаружения, а все сразу предвидеть невозможно. И это не искусство, это более корректное решение нежели лок дропа в анимке. Все что "скрыто" в моем алгоритме - система сохранения, в ваниле она у меня составляет 49 строк, хотя можно обойтись и вовсе без нее и работать напрямую.

 

Мой ответ корректный, а твой намек мне напомнил сказку:

 

c72d71b9a104.jpg

 

Ссылка на комментарий
Костылем. Примеров тут масса уже готовых под любым соусом в любом моде.

Эмм, если бы я нашёл пример, то и не писал бы здесь, логично предположить что раз пишу, этих самых примеров не нашёл.

Тыкните в пример-то

 

Я конечно могу записывать и в массив допустим всех друзей с которыми встречался, но это последнее что бы я хотел делать, т.к. если захочу узнать отношение НПС(который на другой локе и с которым ещё не встречался) к ГГ это не поможет

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

 

 

Чего не успевает? Твой пример можно помещать в парижскую палату мер и весов из-за его сферичной ламповости и ламповой сферичности, за 9 практически лет вопрос не теряет актуальности.

Повторюсь - не успевает на одном апдейте и освободить MapLocation (gvid/lvid) от release-того мною НПС и привести на работу в гулаге на это же место новозаспавненного НПС. Если мой пример попадает в ПМиВ  - может там есть и пусть не решение, а хотя бы объяснение , почему так делать нельзя? За 9-ть лет может кто-то уже решил такую проблему? Поиск на форуме конкретно с моим возникновением данной ошибки не дал результатов. Причем данная ошибка в явном виде появляется только если НПС, которые удаляются и спавняться, находятся в онлайне. вне онлайн радиуса данная ошибка не проявляется, но при переходе в онлайн такие НПС почему то теряют логику работ (и это выглядит трашненько...)

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

 

 

Тыкните в пример-то

Оффлайн-алайф начиная от амк заканчивая симбионом. Наводящего переизбыток.

 

@Winsor, ты будешь смеяться, но только что в соседней теме дали ответ, к тебе тоже относится, да и:

 

 

вне онлайн радиуса данная ошибка не проявляется

Прояви чудеса дедукции.

  • Не нравится 2
Ссылка на комментарий

 

 

Winsor, ты будешь смеяться, но только что в соседней теме дали ответ, к тебе тоже относится
- будьте добры, ссылку на ответ, ибо тем очень много.

 

 

Прояви чудеса дедукции.
- да простят меня модераторы  - да ладно, да не может быть, да ни разу в жизни (сарказм).... Я не спрашиваю, когда у меня появляется ошибка. я и так знаю что в онлайне, я спрашиваю - почему в онлайне не освобождаются ресурсы, и почему при переходе online/offline/online слетает логика - где в Вашем ответе конструктив хоть на один мой вопрос? Если для Вас все понятно, то для моего отсталого сознания ответ из Вашего "Прояви чудеса дедукции" абсолютно ну ни как не получается приход озарения. Если будет такая возможность - озарите меня долей Вашего сверх понимания данного вопроса, дабы и я смог понять хоть что-то из Ваших ответов. или мне нужно НПС обеспечить вечный офлайн, дабы избежать такой ошибки?

Благодарю!

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

 

 

Оффлайн-алайф начиная от амк заканчивая симбионом. Наводящего переизбыток.

Как будто я не глядел.

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

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

 

 

FonSwong
 npc:goodwill(db.actor) - в результате - некое число. так не устраивает? с помощью пространства имен relation_registry можно влиять на отношения целиком к группировкам.
Ссылка на комментарий

 

 

 npc:goodwill(db.actor)
это применимо к онлайну, а мой вопрос заключался в том, можно ли смотреть и изменять личное отношение НПС к ГГ, в то время, когда НПС на другой локе
Ссылка на комментарий

@FonSwong, менять отношения можно так:

local npc = level_object_by_sid(sid) -- Сид твоего НПС.
db.actor:set_relation(game_object.enemy, npc) -- Портим отношения.

Ранее был известен под ником BoBaH_671.

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

Здравствуйте! Подскажите пожалуйста, что я сделал не так. Я делаю свой мод, правда на основе 1.0003 (протупил, а переделывать  на 1.0004 не хочется, очень много уже сделал). У меня возникла идея заспавнить на темной долине 4х бандитов со снайперками на обзорных вышках что возле базы бандитов. Кое как сделал, но когда я подхожу в зону видимости этих снайперов у меня игра вылетает с таким логом

 
Expression    : vertex || show_restrictions(m_object)
Function      : CPatrolPathManager::select_point
File          : D:\xray-svn\xr_3da\xrGame\patrol_path_manager.cpp
Line          : 156
Description   : any vertex in patrol path [bandit_sniper1_walk] in inaccessible for object [bandit_sniper1_spawn21484]
 
Не могу понять в чём причина вылета, вроде же все делал правильно.
На всякий случай, вот некоторые данные :
 
это из all.spawn из секции walk
 
[bandit_sniper1_walk]
points = p0
p0:name = name00
p0:flags = 0x1
p0:position = 38.2682, 11.18388, -99.12179565
p0:game_vertex_id = 820
p0:level_vertex_id = 221457
 
это логика  bandit_sniper1_logic.ltx
 
[logic] 
active =  walker@stay_at_position
danger = danger_ignore 
 
               
[danger_ignore] 
ignore_distance = 5 
               
[walker@stay_at_position]
path_walk = bandit_sniper1_walk
 
spawn_sections
 
[bandit_sniper1_spawn]:stalker
$spawn =  "respawn\bandit_sniper1_spawn
character_profile = bandit_sniper1
spec_rank = regular
community = bandit
custom_data = scripts\bandit_sniper1_logic.ltx
 
character_desc_darkvalley
 ;;;;;;;; снайпера бандиты на вышках
<specific_character id="bandit_sniper1" team_default="1">
<name>GENERATE_NAME_bandit</name>
<icon>ui_npc_u_stalker_bandit_veteran</icon>
<map_icon x="3" y="2"></map_icon>
<bio>val_bandit_veteran_bio</bio>
 
<class>bandit_sniper1</class>
<community>bandit</community> <terrain_sect>stalker_bandit_terrain</terrain_sect>
 
<rank>661</rank>
<reputation>-145</reputation>
 
<visual>actors\bandit\stalker_bandit_veteran</visual>
<snd_config>characters_voice\human_02\bandit\</snd_config>
<crouch_type>1</crouch_type>
<supplies>
[spawn] \n
wpn_walther \n
ammo_9x19_fmj \n
wpn_ak74 = 1, scope \n
ammo_5.45x39_fmj = 1 \n
device_torch \n
#include "gameplay\character_food.xml"
#include "gameplay\character_drugs.xml"
</supplies>
 
#include "gameplay\character_criticals_3.xml"
 
<start_dialog>hello_dialog</start_dialog>
<actor_dialog>dm_help_wounded_medkit_dialog</actor_dialog>
#include "gameplay\character_dialogs.xml"
</specific_character>
 
npc_profile
<character id="bandit_sniper1">
<class>bandit_sniper1</class>
<specific_character>bandit_sniper1</specific_character>
</character>

 

спавнил через скрипт.

 

Помогите пожалуйста, заранее спасибо

Изменено пользователем Kirgudu
убрал под спойлер
Добавлено Kirgudu,

Перенёс из http://www.amk-team.ru/forum/topic/8114-vylety-problemy-i-oshibki-chistogo-originalnog/page-29

И на будущее: такие простыни следует прятать под спойлер.

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

@BoBaH_671, если нпс на другой локе? да и со с рандомным не получится, у него нет сида

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

 

 

если нпс на другой локе?

Проверь.

 

 

да и со с рандомным не получится, у него нет сида

Можно привязать сид к неписю, заспавненному даже через скрипт.

Ранее был известен под ником BoBaH_671.

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

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

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

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

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

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

Войти

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

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

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