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

ARTLantist

Проверенные
  • Число публикаций

    147
  • Регистрация

  • Последнее посещение

  • AMKoin

    3,914 [Подарить AMKoin]

Сообщения опубликованы ARTLantist

  1. Обнаружил такую недоработку в оригинале ЗП. Если скриптом воспроизводить звуки, то второй (и последующие) не воспроизведутся, пока не пройдёт предыдущий, и какая-то задержка в пару секунд... Это можно как-то пофиксить?

  2. В общем, наклепал вот такой код:

    Скрытый текст
    void CUIRelationsWnd::Init()
    {
    	CUIXml							xml;
    	xml.Load						(CONFIG_PATH, UI_PATH, PDA_RELATIONS_XML);
    	VERIFY							(hint_wnd);
    
    	CUIXmlInit::InitWindow			(xml, "main_wnd", 0, this);
    	
    	m_background				= UIHelper::CreateFrameWindow(xml, "background", this);
    	
    	m_btn_to_text				= UIHelper::Create3tButton( xml, "btn_to_text", this );
    	AddCallback					(m_btn_to_text, BUTTON_CLICKED, CUIWndCallback::void_function(this, &CUIRelationsWnd::Button_clicked));
    
    	m_tab						= UIHelper::CreateStatic(xml, "tab", this);
    	m_tab_caption				= UIHelper::CreateStatic(xml, "tab:caption", m_tab);
    	
    	u32 c_width = 65;
    	u32 c_height = 35;
    	
    	Fvector2 ipos;
    	ipos.x = 45;
    	Fvector2 kpos;
    	
    	for ( u32 i = 0; i < 10; ++i )
    	{
    		ipos.x = ipos.x + c_width;
    		CUITextWnd* iobj = UIHelper::CreateTextWnd(xml,"tab:faction",m_tab);
    		ipos.y = 65;
    		iobj->SetWndPos(ipos);
    		iobj->SetText(CStringTable().translate(communities[i]).c_str());
    
    		ipos.y = 60;
    		for ( u32 k = 0; k < 10; ++k )
    		{
    			ipos.y = ipos.y + c_height;
    			if (i == 1) {
    				CUITextWnd* kobj = UIHelper::CreateTextWnd( xml, "tab:faction", m_tab );
    				kpos = ipos;
    				kpos.x = kpos.x-5-(c_width*2);
    				kobj->SetWndPos(kpos);
    				if (k > 0) 
    					kobj->SetText(CStringTable().translate(communities[k]).c_str());
    				else
    					kobj->SetText(CStringTable().translate("ui_st_reputation").c_str());
    			}
    			m_relations[i][k] = UIHelper::CreateTextWnd( xml,"tab:cell",m_tab);
    			m_relations[i][k] ->SetWndPos(ipos);
    		}
    
    	}
    
    }

     

    но почему-то из-за него происходит следующее: первый раз игра запускается и загружается норм, но при закрытии игры происходит вылет. После этого вылета появляется вылет при загрузке игры. После второго вылета всё вновь норм загружается, и так по кругу. Лог таков:

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

    stack trace:

    0023:00B7AFCF xrCore.dll, xrMemory::mem_alloc()
    0023:04971725 xrXMLParser.dll, CXml::correct_file_name()
     
    [error][       8]    : Недостаточно ресурсов памяти для обработки этой команды.

    Так понимаю - вылет по памяти. Мб можно как-то скомпановать этот код, или исправить что-то. Потому что происходят такие себе дела:az1000106:

  3. @naxac ну я сделал её, добавил в неё текст, но он обрывается, когда заканчивается "место".

    Так, с этим разобрался, надо было просто увеличить высоту доступного места. Отсюда исходит вопрос - как получить размер, который займёт текст, чтобы подогнать его под него? У меня просто текст "динамический" - постоянно нужно менять, и всегда разные размеры. Когда-то влезает в рамки, а когда-то нет.

  4. Как сделать, чтобы текст на интерфейсе был только в определённых рамках (которые я задал), и, если его много, его можно было прокручивать. Но чтобы не вылезал за рамки. Что надо прописать в конфиге этого текста?

  5. @AndreySol не знаю, я на 10-ке на диск Х устанавливал СДК по "инструкции" и он бесперебойно работает🤔

    @WinCap та костёр вообще никакую логику не воспринимает, он же рестриктор, пишу ему логику рестриктора (для теста вывод сообщения по событию actor_inside (не помню щас дословно название в логике)), но ему всё равно:az1000106:

    @AndreySol короче, создал невидимый объект на основе моделей в equipment_cache (которые для inventory_box), так будет проще, как по мне. Подогнал размер под костры. Буду расставлять в каждом костре и логику прописывать соответствующую.

  6. @AndreySol не знаю, покопался в движке, parent класса костра - класс CSpaceRestrictor, у которого parent в свою очередь CGameObject, а у него среди парентов есть и CUsableScriptObject (вроде так), который и даёт возможность вызова коллбека use и выставлять надписи методом set_tip_text. Однако для ВСЕХ рестрикторов эти методы ничего не дают. Почему - пока не разобрался... Мб костыли какие-то придётся делать, заменять все объекты (именно объекты) костров в СДК на спавн элементы с их моделями и им логику прописывать... Но это все локации перекомпилировать🤔 Не очень большое желание что-то делать так.

  7. Как добавить костру надпись и сделать действия при нажатии клавиши действия? Пытался поставить скриптом надпись через self.object:set_tip_text, и вызывать коллбэк self.object:set_callback(callback.use_object, self.use_campfire, self), но ничего не вышло, костёр как не реагировал, так и не реагирует. Я так понял, это фишка рестрикторов. Хотелось бы сделать зажигание не через использование предмета рядом с костром, а через взаимодействие с самим костром :az1000106:

  8. Как сделать для НПС систему лута тайников/монстров/зажигания костров? Не особо что-то получается разобраться в оригинальном xr_corpse_detection.script. Как именно находится цель для НПС, и как его туда направить для дальнейших действий с этой целью? Мб кто подскажет, или есть какие посты на эту тему, не могу найти...

  9. Есть у кого-нибудь схемы лута ящиков и разжигания костров неписями для ЗП? Или мб какая-нибудь статья где-то есть, посвящённая подобным темам. А то самому ума немного не хватает до конца разобраться со всем тем, что есть в xr_corpse_detection, чтобы по аналогии составлять скрипты для лута ящиков и т.д.

  10. Возможно, пишу не в ту тему, если это так, то направьте в нужную.

    Делал локу в 3D Max, сделал, начал экспортировать модели. Все экспортировались нормально, а сам террейн при открытии в Actor editor или Level editor выдаёт ошибку: 

    Expression : OBJ 

    Function : X:\stalker_addon\sources\trunk\editors\ECore\Editor\EditObjectIO.cpp 

    File : X:\stalker_addon\sources\trunk\editors\ECore\Editor\EditObjectIO.cpp 

    Line : 26 

    Description : Corrupted file. 

     

    Я так понимаю, файл модели "ломается", но из-за чего? Одной и той же кнопкой экспортирую, все модели норм, а эта нет.

  11. А есть где-то на просторах интернета/форумов "пособие" по скриптовым настройкам диалогов? Т.е. то, как например реализованы рандомные фразы у НПС в оригинале (истории, про работу и т.п., которые настраиваются в dialog_manager.script). Т.е. то, как добавлять эти диалоги НПС и актору скриптами. Вроде когда-то видел, но точно не помню, а поисковики выдают только обычные диалоги. Желательно для ЗП, если там вообще есть разница в функциях :)

    @Seraph Прописывай логику для всех НПС в смарте (в том числе для дефолтов), ставь, к примеру, таймер, или условие через xr_condition.script, и по достижению поставленной цели (условие или таймер), переключай логику на другую работу. Для разных работ ночью и днём, используй в suitable функцию is_day.

  12. Всем привет. Движок ЗП.

    1. Почему-то при закидывании в мод файла xrEngine.exe из моих исходников столкнулся с проблемой: при вылете игра не закрывается. Тупо зависает и всё, хоть что с ней делай, лечится только выходом из системы/перезагрузкой компа. Очень неудобно, да и не должно быть так, на лицензии у меня всегда вылеты нормально отрабатывали, всё закрывалось. В исходниках экзешника пока что ничего не менял

    2. Как редактировать параметры "100 советов по выживанию в зоне" на загрузочном экране? В конфигах чёт нигде нет их параметров, как и параметров самого ЗЭ. После замены текстуры ЗЭ текст стал сливаться, надо бы изменить цвет, да и хотелось бы убрать надпись "100 советов...", и оставить только сами советы. Копался в x_ray.cpp, докопался лишь до инициализации выбора этих советов, но до их параметров чёт не докопался...

  13. Всем привет! У кого-нибудь есть исходники локации Завод "Росток" из билдов? Желательно версия из ЛА, которая "la14_rostok_factory", и для ЗП. А то декомпил локации выдаёт 6к моделей, и СДК ни в какую не запускается из-за огромного количества моделей.

  14. Так что всё-таки делать с данным вылетом? Как исправить раздвигающиеся двери?
    [error]Expression    : assertion failed
    [error]Function      : doors::door::door
    [error]File          : .\doors_door.cpp
    [error]Line          : 36
    [error]Description   : m_object.get_door_vectors( m_closed_vector, m_open_vector )

     

    Нашёл немало вопросов на разных форумах, в том числе здесь, но решения так и не нашёл.

  15. Вылет при загрузке сохранения (любого):
    [error]Expression    : !m_error_code
    [error]Function      : raii_guard::~raii_guard
    [error]File          : ..\xrServerEntities\script_storage.cpp
    [error]Line          : 748
    [error]Description   : pure virtual function called
     

    О чём говорит эта ошибка? Я не знаю, на каком этапе этот вылет появился, только сейчас заметил.

  16. @WinCap да, я уже просмотрел это всё в движке, там всё норм, по стандарту. Детектор может активироваться только при отсутствии в руках оружия, или при активном слоте болта/ножа, ну или идёт активация слота с доступным оружием (болта, ножа, ствола с базовым слотом пистолетным). Но чёт нифига не пашет.

    @WinCap сталкер не перестаёт удивлять :)

    Болт достаётся с детектором только если положить что-то в любой слот. Неважно, до того, как положишь детектор в его слот, или после. А без этого ГГ не может научиться доставать их совместно.

    причём только при первом заходе в игру и первой НИ. Если закинул что-то в слот, то потом всегда всё будет нормально работать, и при перезаходе в игру и запуске сохранения, и при новой игре не перезаходя в игру.

  17. @Купер вроде оно, но чёт оно не работает. И при 0 и при 1 детектор не достаётся, а болт убирается. С пистолетами ещё "печальнее" - детектор тупо не достаётся, а пистолет и не убирается, как будто запрещено вообще использовать.

  18. где находятся строки в конфигах, которые отвечают за то, чтобы можно было с детектором использовать болты и пистолеты. Давно ещё качал оружейный пак, в котором была убрана возможность таскать детектор и пистолет одновременно, и вот она походу до сих пор осталась, хотя оружейка давно изменена. Даже с болтом нельзя доставать детектор. После пары прокликиваний "6-О-6-О" вылет идёт без лога.
    P.S. в движке для детекторов всё по стандарту, поэтому эта строчка точно должна быть в конфигах.

AMK-Team.ru

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