AndreySol 215 Опубликовано 29 Декабря 2017 Поделиться Опубликовано 29 Декабря 2017 Не могу отправить сообщение администраторам сайта, по-этому пишу где прийдется - что с сайтом творится ? И когда закончится ? 1 Ссылка на комментарий
Romann 623 Опубликовано 29 Декабря 2017 Поделиться Опубликовано 29 Декабря 2017 В 23.12.2017 в 04:29, yurikteam сказал: как мне вернуть квадратную форму миникарты в зп? А мне бы хотелось знать - как в ТЧ сделать круглую миникарту, как в ЗП(вместе с полукруглой шкалой), при чём так, чтобы можно было использовать и квадратную, и круглую(ну это для сменных худов)? 3 Мать: 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. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
Zagolski 74 Опубликовано 30 Декабря 2017 Поделиться Опубликовано 30 Декабря 2017 (изменено) В дебаг-режиме прогнал модуль, вроде все корректно пишется, судя по логам. И да, в кастомдату и пишется корректно и читается оттуда, в этом проблем нет. Проблемы с изменением кондиции, например, у артефактов или еды. В двигле эти классы я не затрагивал. Есть тут спецы по этому модулю нет-пакетов, кроме самого Артоса? Изменено 30 Декабря 2017 пользователем Zagolski Ссылка на комментарий
Zagolski 74 Опубликовано 30 Декабря 2017 Поделиться Опубликовано 30 Декабря 2017 А причем тут движок? В zone_map.xml настраивается и по текстурам. Ссылка на комментарий
Romann 623 Опубликовано 30 Декабря 2017 Поделиться Опубликовано 30 Декабря 2017 2 часа назад, Zagolski сказал: В zone_map.xml настраивается и по текстурам. Про миникарту? Нее, в ТЧ только квадратная, да можно сделать имитацию круглой - скрыв углы квадрата текстурой круга вокруг, как в "DMX моде", а что со стаминой полукруга? В ТЧ возможны только вертикальные и горизонтальные. Мать: 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. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
Zagolski 74 Опубликовано 31 Декабря 2017 Поделиться Опубликовано 31 Декабря 2017 У меня класс CSE_ALifeInventoryItem под ЧН/ЗП переделан, а в модуле пакетов в net_cse_alife_inventory_item изменения я не внес... Сейчас модуль переделал, заработало. Тьфу-тьфу. Там скорее всего не так как нужно пакеты писались и из-за этого сбоило (вообще не писались). Ссылка на комментарий
Zagolski 74 Опубликовано 31 Декабря 2017 Поделиться Опубликовано 31 Декабря 2017 В НЛС 6 делали круглую карту и с круглой стаминой, и без движка (сорцов тогда и не было). Но да, в ЗП сама карта обрезается в круг движком (правда, все равно криво, ромбовидно), в ТЧ/ЧН вроде такого не сделать. Нужно попробовать в сторону WorkingArea копать (в ЗП), может там обрезается, точно не могу сказать. А шумность/заметность в ЗП вообще никакого отношения к миникарте не имеет, они лишь аттачатся к ней, а сами по себе рисуются классом CUIMotionIcon, который, кстати, в ЗП значительно переделан. В общем говоря, если хочется использовать круглую миникарту, то нет никаких проблем закрыть квадрат круглой текстурой-окантовкой. А движковым путем вряд ли легко получится. А квадратную в ЗП - текстурой и конфигом. Там все равно круг останется, но он настолько прозрачен, что и заметно-то не будет. Ссылка на комментарий
dsh 3 824 Опубликовано 31 Декабря 2017 Поделиться Опубликовано 31 Декабря 2017 19 hours ago, Zagolski said: Проблемы с изменением кондиции, например, у артефактов или еды. Я сейчас вспомнил, что с едой проблема была и на оригинальном движке. Изменение ее состояния через нетпакет не влияло на состояние клиентской части. Новое состояние появлялось только после сейв-лоада. До меня только сейчас дошло, чего же у все неписей была новенькая еда, хотя состояние должно быть рандомное. Все руки не доходили заняться этим. Сейчас провел эксперимент, но уже на OGSR движке, и да, спауню в инвентарь консервы, через m_netpk делаю им condition = 0.1 и они новехонькие. Их новое состояние я вижу только после загрузки сейва. И это не связано конкретно с m_netpk. Я экспортировал в скрипты m_fCondition и все равно, измененное состояние я вижу только после загрузки сейва. И это не связано с online-offline, т.к. я заспаунил неписю эти консервы из акторского net_spawn, когда этот непись в онлайн еще не вышел, и все равно, новое состояние я вижу только после загрузки сейва. Как ты в итоге это поправил? dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Zagolski 74 Опубликовано 31 Декабря 2017 Поделиться Опубликовано 31 Декабря 2017 (изменено) А попробуй не спавнить еду и тут же применять к ней, а к примеру положить ее в ящик из своего инвентаря и применить пакет. В этом случае сразу изменится? У тебя может спавн клиентского объекта не успевает отработаться. И попробуй принудительно после спавна вызывать из скриптов Level.net_Update(), предварительно экспортировав (возможно понадобится еще и Level.on_Frame и alife():update()). Изменено 31 Декабря 2017 пользователем Zagolski Ссылка на комментарий
dsh 3 824 Опубликовано 31 Декабря 2017 Поделиться Опубликовано 31 Декабря 2017 @Zagolski вроде я этот вопрос решил. Черт, не знаю, как в этой студии обыкновенный дифф получить. Т.ч. так покажу. Было вот так if (alife_object) { m_flags.set(Fuseful_for_NPC, alife_object->m_flags.test(CSE_ALifeObject::flUsefulForAI)); } CSE_ALifeInventoryItem *pSE_InventoryItem = smart_cast<CSE_ALifeInventoryItem*>(e); if (!pSE_InventoryItem) return TRUE; //!!! m_fCondition = pSE_InventoryItem->m_fCondition; Стало вот так if (alife_object) { m_flags.set(Fuseful_for_NPC, alife_object->m_flags.test(CSE_ALifeObject::flUsefulForAI)); } auto se_obj = object().alife_object(); if ( se_obj ) { CSE_ALifeInventoryItem *itm = smart_cast<CSE_ALifeInventoryItem*>( se_obj ); if ( itm ) { m_fCondition = itm->m_fCondition; } } CSE_ALifeInventoryItem *pSE_InventoryItem = smart_cast<CSE_ALifeInventoryItem*>(e); if (!pSE_InventoryItem) return TRUE; //!!! //m_fCondition = pSE_InventoryItem->m_fCondition; Это в inventory_item.cpp. Судя вот по этой последней строчке, которую я закомментировал, тут что-то подобное уже хотели сделать, да то-ли даже не попробовали, как оно работает, то-ли просто плюнули. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Zagolski 74 Опубликовано 31 Декабря 2017 Поделиться Опубликовано 31 Декабря 2017 (изменено) Это лучше делать в ChangeCondition: void CInventoryItem::ChangeCondition(float fDeltaCondition) { m_fCondition += fDeltaCondition; clamp(m_fCondition, 0.f, 1.f); } заменить на void CInventoryItem::ChangeCondition(float fDeltaCondition) { m_fCondition += fDeltaCondition; clamp(m_fCondition, 0.f, 1.f); auto se_obj = object().alife_object(); if (se_obj) { CSE_ALifeInventoryItem *itm = smart_cast<CSE_ALifeInventoryItem*>(se_obj); if (itm) itm->m_fCondition = m_fCondition; } } Тогда да, если у тебя там этого нет, дело было в этом. А net_Spawn трогать не желательно, иначе это лишние проверки и лишние тормоза. У тебя ведь set_condition после передачи пакета применяется? Изменено 31 Декабря 2017 пользователем Zagolski Ссылка на комментарий
dsh 3 824 Опубликовано 31 Декабря 2017 Поделиться Опубликовано 31 Декабря 2017 @Zagolski то, что ты предлагаешь, уже есть. Это работает, когда меняется состояние через клиентский объект. Я же речь веду про изменение состояния через серверный объект. Вот тестовый код: for i = 1, 1 do log3( "dsh: creating conserva %s", i ) local sobj = alife():create( "conserva", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id() ) log3( "dsh: %s created", sobj:name() ) sobj = alife():object( sobj.id ) local sitem = sobj:get_inventory_item() if sitem then sitem.item_condition = 0.1 log3( "dsh: sitem.item_condition = %s", tostring( sitem.item_condition ) ) end --[=[ local pk = get_netpk( sobj, 1 ) ASSERT( ( pk and pk:isOk() ), "can't read netpacket of %s", sobj:name() ) local data = pk:get() data.condition = 0.1 pk:set( data ) --]=] end Пока я не сделал вышеописанное изменение, консервы в инвентаре создавались новенькими, не зависимо от того, какой метод использовался, get_netpk() или прямая установка sitem.item_condition. И их состояние обновлялось только после сейв-лоада. После изменения inventory_item.cpp, консервы после создания имели состояние 0.1, как им и устанавливалось. Опять же, не зависимо от используемого метода установки. А с set_condition() на клиентском объекте никаких проблем и не было. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Zagolski 74 Опубликовано 3 Января 2018 Поделиться Опубликовано 3 Января 2018 (изменено) В 31.12.2017 в 21:37, dsh сказал: Пока я не сделал вышеописанное изменение, консервы в инвентаре создавались новенькими Вообще странно. У меня никаких проблем на старом коде нет, так что дело скорее всего в чем-то другом. Может у тебя с CSE_ALifeItemEatable что-то не так? Да и новоиспеченный код auto se_obj = object().alife_object(); if ( se_obj ) { CSE_ALifeInventoryItem *itm = smart_cast<CSE_ALifeInventoryItem*>( se_obj ); if ( itm ) { m_fCondition = itm->m_fCondition; } } по сути соответствует CSE_ALifeInventoryItem *pSE_InventoryItem = smart_cast<CSE_ALifeInventoryItem*>(e); if (!pSE_InventoryItem) return TRUE; //!!! m_fCondition = pSE_InventoryItem->m_fCondition; т.е. мы два раза делаем одно и то же. Разве нет? Изменено 3 Января 2018 пользователем Zagolski Ссылка на комментарий
dsh 3 824 Опубликовано 3 Января 2018 Поделиться Опубликовано 3 Января 2018 1 hour ago, Zagolski said: т.е. мы два раза делаем одно и то же. Разве нет? Похоже, что нет. В net_Spawn() передается CSE_Abstract, а в нем нет измененного condition, там 1.0. Я же и пишу, что кто-то пытался сделать, но то-ли даже не проверял, то-ли проверил и не осилил сделать рабочее. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Zagolski 74 Опубликовано 3 Января 2018 Поделиться Опубликовано 3 Января 2018 1 час назад, dsh сказал: Похоже, что нет. В net_Spawn() передается CSE_Abstract, а в нем нет измененного condition, там 1.0. Я же и пишу, что кто-то пытался сделать, но то-ли даже не проверял, то-ли проверил и не осилил сделать рабочее. Не, вру. У меня на нлс-шной скриптовой базе такая же ерунда, что и у тебя. Сейчас более подробно все проверил. Но там применяются кое-какие скриптовые костыли, чтоб все нормально было. И которые, кстати, мало того, что вешают постоянный апдейт, так и еще в момент обработки фризят игру до 150-200 мс. А ты же сейчас открыл быстрый движковый способ, за что большое спасибо! 1 час назад, Zander_driver сказал: но не кажется ли вам, что вы в этой теме люто оффтопите? Хоть и оффтоп, зато полезный оффтоп. Нужно заканчивать, главное важную инфу не затереть и не потерять. Куда-то в более подходящую тему перенести. Ссылка на комментарий
dsh 3 824 Опубликовано 4 Января 2018 Поделиться Опубликовано 4 Января 2018 Кто знает, зачем в CharacterPhysicsSupport.cpp манипуляции с CollisionCorrectObjPos()? Может кто-то разбирался? Это из нее трупы в стенах оказываются и физ. объекты в воздух взлетают? 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Stalkeruga_238 2 Опубликовано 6 Января 2018 Поделиться Опубликовано 6 Января 2018 Поскольку подходящей темы не нашел, спрошу здесь. Подскажите пожалуйста как назначить воспроизведение звука при поднятии предмета. Добавлено Murarius, 6 Января 2018 Перемещено. Ссылка на комментарий
BeTep36 24 Опубликовано 17 Февраля 2018 Поделиться Опубликовано 17 Февраля 2018 Вот такой вопрос у меня, а как в сдк 0.4 и в самом сталкер тч кол-во костей модели увеличить или вообще как ограничение убрать? Для чего это мне? Ради скрипта из огсе скрывающего кости(обажаю облепливать оружие до степени фундервафли) Ссылка на комментарий
Romann 623 Опубликовано 17 Февраля 2018 Поделиться Опубликовано 17 Февраля 2018 2 часа назад, BeTep36 сказал: а как в сдк 0.4 и в самом сталкер тч кол-во костей модели увеличить Я полагаю юзать сдк ОГСЕ, если конечно Константин пересобрал АЕ. Напиши @KD87, если пересобран сдк, то там количество костей увеличено до сотни. Отпишись потом, что вышло. Мать: 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. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
sto1en 420 Опубликовано 17 Февраля 2018 Поделиться Опубликовано 17 Февраля 2018 6 часов назад, BeTep36 сказал: и в самом сталкер тч кол-во костей модели увеличить Движок править. Или ОГСР пробовать, КД выкладывал вместе с СДК. @Romann, вроде, не пересобирал ничего, да и не появлялся уже с осени. Может, кто сам пересобрал? А куда потом вставлять эти мультикости?.. Do what thou wilt shall be the whole of the Law. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти