mortan 144 Опубликовано 24 Июля 2017 @NOapostoL а в чем смысл этого ответа?) Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 24 Июля 2017 (изменено) @NOapostoL Серьёзно, если нечего ответить по теме - лучше не писать вообще. Теперь ещё раз, для самый маленьких и непонятливых) Вот код который отвечает за перенос в слот итема при открытом инвентаре : Скрытый текст void CUIActorMenu::SendEvent_Item2Slot(PIItem pItem, u16 recipient, u16 slot_id) { if(pItem->parent_id()!=recipient) move_item_from_to (pItem->parent_id(), recipient, pItem->object_id()); NET_Packet P; CGameObject::u_EventGen (P, GEG_PLAYER_ITEM2SLOT, pItem->object().H_Parent()->ID()); P.w_u16 (pItem->object().ID()); P.w_u16 (slot_id); CGameObject::u_EventSend (P); PlaySnd (eItemToSlot); }; и далее начинается ад - вот весь код ниже move_item_from_to работает только если перемещать итем из слота\рюкзака\пояса в слот Почему? Потому что в момент отправки этого пакета владельцем итема всё ещё является труп или контейнер. Ведь если я правильно понимаю задумку GSC - то после перемещения в инвентарь актора предмет должен был перемещаться в слот который ему указали. Вот как это происходит : Короткое видеоподтверждение. "место, где движок принимает решение - куда деть появившийся у актера инвентарный предмет." - функция CInventory::Take(CGameObject *pObj, bool bNotActivate, bool strict_placement) выход который я нашёл - дописал функцию так чтобы она напрямую получала слот в который игрок переместил итем и перемещала туда итем. Вот как-то так. Зачем эта стена текста? Я думал что хоть-то сталкивался с этим и знает хорошее решение, потому что то что у меня сейчас - это костыль. Изменено 24 Июля 2017 пользователем mortan Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 25 Июля 2017 @WinCap проблема как раз таки в том что она просто не вызывается) Вернее вызывается только когда предмет перемещается внутри инва актора. Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 25 Июля 2017 @WinCap согласись что это не нормальная ситуация. 2 Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 21 Октября 2017 Скажите плиз, реально ли исправить вылет связанный с d3d11.dll, D3D11CreateDeviceAndSwapChain()? Честно говоря я вообще не понимаю природу этой гадости. Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 28 Октября 2017 @AndreySol не совсем понял что ты хочешь, тебе нужно для всех итемов с нужной тебе секцией узнать координаты их ячеек? Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 28 Октября 2017 @AndreySol ещё раз, это ТЧ или ЗП? Если ЗП то там сложностей быть не должно Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 28 Ноября 2017 (изменено) подскажите а что делает функция iCeil? Я так понимаю она отличается от стандартной ceil функции. Вот её код - P.S. я в математике не особо силён) ICF int iCeil(float x) { int a = (*(const int*)(&x)); int exponent = (127 + 31) - ((a >> 23) & 0xFF); int r = (((u32)(a) << 8) | (1U << 31)) >> exponent; exponent += 31 - 127; { int imask = (!(((((1 << (exponent))) - 1) >> 8)&a)); exponent -= (31 - 127) + 32; exponent >>= 31; a = ~((a - 1) >> 31); /* change sign */ r -= (imask&a); r &= exponent; r ^= a; r = -r; /* change sign */ } return r; /* r = (int)(ceil(f)) */ } Изменено 28 Ноября 2017 пользователем mortan Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 9 Декабря 2017 @AndreySol ЗП или ТЧ? Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 17 Февраля 2018 кст, давно хотел спросить раз уж эту тему затронули, допустим добавил в модель одну новую косточку то нужно все анимки переделывать? Или их можно как-то быстро "адаптировать"? Я просто как-то пробовал добавить новую косточку, но анимки не трогал и игра с такой моделькой падала( Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 17 Февраля 2018 (изменено) @TIGER_VLAD всего-то? Т.е. тупо открыть и сохранить, ничего более не тыкая?) Изменено 17 Февраля 2018 пользователем mortan Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 17 Февраля 2018 (изменено) @Romann и остаётся только включение\выключение в движке поправить? Блин, если всё так просто то попробую сделать Изменено 17 Февраля 2018 пользователем mortan Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 26 Февраля 2018 кст говоря в игре оказывается резистов два типа - один сокращает урон в %, другой в конкретных числах. Наткнулся когда артефакт с маленьким значением давал полный иммунитет, но как позже выяснилось что это было не совсем так) Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 20 Марта 2018 Может кто объяснить когда происходит допустим UPDATE_Read/UPDATE_Write а когда STATE_Read/STATE_Write? Насколько я понял первое выполняется при (?) каждом апдейте, а вот когда второе? Единоразово при спавне? Или же как-то иначе? Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 25 Мая 2018 @Suhar_, всё намного проще - для актора есть своя переопределённая функция в файле ActorCondition.cpp. И не надо ничего определять, всё уже сделано. Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 11 Июля 2019 @AndreySol, посмотри функцию отрисовки текущего количества патронов в классе оружия, GetBriefInfo. Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 11 Июля 2019 Эх, ну и зачем так делать?) Меня же теперь любопытство сожрёт - а что там было :D Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 13 Декабря 2019 @Expropriator, само собой для работы с таким количеством костей нужно и саму форму хранения анимаций подправить. К тому же, если конечно мне память не изменяет и я что-нибудь не путаю,то анимации запускаются игрой для каждой кости отдельно. Я только не понимаю для чего еще кроме сложных объектов типа транспорта или мутантов может потребоваться такое количество костей?! Делать столько костей для оружия уж точно не стоит) Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 14 Декабря 2019 @_ХоЗаР_, тогда хочу предупредить о том как работает механизм скрытия костей в сталкере - он просто уменьшает размер кости до нулевого состояния, как себя поведёт игра при попытке сокрытия большого количества костей не могу предсказать точно, плюс полигонаж модели тоже будет приличным) А, забыл, стоит тогда обратить внимание еще на вот этот фикс - https://github.com/OGSR/OGSR-Engine/commit/ef07585bba6fd859387826da5a8874e34a177cd2#diff-9b6e92cb2608a086529b77e34d3f1a50 1 Поделиться этим сообщением Ссылка на сообщение
mortan 144 Опубликовано 14 Декабря 2019 (изменено) @ed_rez, да не, группы уже условно сделаны, а так он для каждой кости циклом проходит и применяет анимацию. В ЗП нет склеивания скелета ( или я его не встречал в коде ), так называемый аттач тех же рук к оружию как работает - руки и ствол двигаются отдельно, но ствол при этом рендерится относительно матрицы косточки рук ( lead_gun ) Изменено 14 Декабря 2019 пользователем mortan 1 1 Поделиться этим сообщением Ссылка на сообщение