ARTLantist 14 Опубликовано 16 Марта 2021 Поделиться Опубликовано 16 Марта 2021 3 часа назад, Zander_driver сказал(а): Перетягивание итема на итем - по-моему, уже и так есть. Разве? А где находится? 3 часа назад, Zander_driver сказал(а): Метод EqualTo и возможность его переписать, тем более есть. Если не ошибаюсь, метод EqualTo отвечает за объединение одинаковых предметов в одну ячейку инвентаря с указанием количества объединённых предметов. А мне нужно, чтобы я перетащил один предмет на другой, они оба удалились и заменились нужным (скрины прикрепляю) https://disk.yandex.ru/d/CiSnzNXKkj58nQ?w=1 Ссылка на комментарий
Zander_driver 10 333 Опубликовано 16 Марта 2021 Поделиться Опубликовано 16 Марта 2021 Только что, ARTLantist сказал(а): метод EqualTo отвечает за объединение одинаковых предметов Или НЕ-объединение ) Он этим управляет. Только что, ARTLantist сказал(а): А где находится? CUIDragDropListEx::OnItemStartDragging, CUIDragDropListEx::OnItemDrop посмотри. Окно, где взяли и куда уронили, там точно имеется. Координаты тоже. Остальное уже арифметика) Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
_ХоЗаР_ 47 Опубликовано 17 Марта 2021 Поделиться Опубликовано 17 Марта 2021 (изменено) @ARTLantist, вот что я васянил по этому поводу для Выбора. UIActorMenu_action.cpp { Ivector2 it_cell_pos = new_owner->PickCell(GetUICursor().GetCursorPosition()); CUICellItem* cell = (it_cell_pos.x > -1 && it_cell_pos.y > -1)?new_owner->GetCellAt(it_cell_pos).m_item:NULL; PIItem niitem = cell ? (PIItem)cell->m_pData : NULL; luabind::functor<void> StackCalback; if (niitem && ai().script_engine().functor("_a.stack_script_calback", StackCalback)) StackCalback(CurrentIItem()->object().ID(), niitem->object().ID()); } if ( old_owner==new_owner) { return false; } В _a.stack_script_calback в данном случае идет передача ID объектов, но можно делать напрямую тут, ну или вызывать функцию какую. Это были мои первые потуги в двигоправке, так что может быть быдлокодом. Изменено 17 Марта 2021 пользователем _ХоЗаР_ Скрытый текст 6 ГБ ОЗУ DDR3 1098 мГц (Разносорт) Процессор Intel Xeon E5420 4/4 2.5 ГГц Видеокарта Gigabyte GeForce GT 240 512 МБ GDDR5 (Samsung) DirectX v10.1 Ссылка на комментарий
ARTLantist 14 Опубликовано 17 Марта 2021 Поделиться Опубликовано 17 Марта 2021 @_ХоЗаР_ попробую вставить и посмотреть, что да как. Просто я уже сам сделал функцию, и пришлось добавить её в UIDragDropListEx.cpp, т.к. из UIActorMenu_action.cpp почему-то не вызывалось у тебя она норм вызывается? Ссылка на комментарий
_ХоЗаР_ 47 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 18 часов назад, ARTLantist сказал(а): у тебя она норм вызывается? Ну да. Только как я и сказал у меня она отсылает на скрипт. Скрытый текст 6 ГБ ОЗУ DDR3 1098 мГц (Разносорт) Процессор Intel Xeon E5420 4/4 2.5 ГГц Видеокарта Gigabyte GeForce GT 240 512 МБ GDDR5 (Samsung) DirectX v10.1 Ссылка на комментарий
ARTLantist 14 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 @_ХоЗаР_ не знаю, у меня из данной функции вызывается скрипт только после того, как я перемещу предмет в другой слот, а не в пределах одного слота (в том числе рюкзака) а вот из подобной в UIDragDropListEx.cpp вызывается только тогда, когда в пределах одного слота (к сожалению, мне нужен и тот и тот вариант, и пришлось создавать два вызова скриптов в одном файле и другом) Ссылка на комментарий
_ХоЗаР_ 47 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 2 часа назад, ARTLantist сказал(а): как я перемещу предмет в другой слот Я в скриншоте прикрепил правленую строчку на проверку текущего овнера. Ее тоже желательно повторить. Тогда не будет проблем. Скрытый текст 6 ГБ ОЗУ DDR3 1098 мГц (Разносорт) Процессор Intel Xeon E5420 4/4 2.5 ГГц Видеокарта Gigabyte GeForce GT 240 512 МБ GDDR5 (Samsung) DirectX v10.1 Ссылка на комментарий
Марка демченков 5 Опубликовано 19 Марта 2021 Поделиться Опубликовано 19 Марта 2021 а из-за чего багает физика? Это пысовцы делов натворили? Ссылка на комментарий
ARTLantist 14 Опубликовано 20 Марта 2021 Поделиться Опубликовано 20 Марта 2021 (изменено) Как можно пофиксить вылет при перетаскивании патронов на пояс, которые занимают 2 ячейки, а на поясе свободна только 1? Причём если отправлять туда патроны двойным нажатием ЛКМ, то всё норм, они просто не отправляются, а если перетаскивать, то получаешь вылет. Где-то же должна быть проверка, которая проверяет, можно ли поместить предмет на пояс? Только её нужно доработать для проверки размера предмета, помещаемого на пояс. Изменено 20 Марта 2021 пользователем ARTLantist Ссылка на комментарий
AndreySol 215 Опубликовано 21 Марта 2021 Поделиться Опубликовано 21 Марта 2021 @ARTLantist Ощущение, что ты правишь движок наугад и не пытаясь разобраться в том, что тебе интересно. UIInventoryWnd.cpp, UIInventoryWnd2.cpp, UIInventoryWnd3.cpp - там все, что касается окна инвентаря. Там и обработчик дропа предмета. Найдешь сам, или тебя еще и в саму ф-цию тыкнуть? Ссылка на комментарий
ARTLantist 14 Опубликовано 21 Марта 2021 Поделиться Опубликовано 21 Марта 2021 @AndreySol, таких файлов нет в зп) но я нашёл данный обработчик в другом месте и всё сделал 1 Ссылка на комментарий
AndreySol 215 Опубликовано 21 Марта 2021 Поделиться Опубликовано 21 Марта 2021 @ARTLantist Понял. Тут, может стоит прдъяву админам выставить - пора разделить ковырялку движка на три раздела? И я уже предлагал - давайте тему "Заказы". Мне лень задаром писать скрипты\движковые правки по просьбам, но если бы меня простимулировали парой соток на пивасик - почему нет? Я не алкаш, я просто достаточно ленив... 1 2 1 1 Ссылка на комментарий
Zander_driver 10 333 Опубликовано 21 Марта 2021 Поделиться Опубликовано 21 Марта 2021 6 минут назад, AndreySol сказал(а): разделить ковырялку движка на три раздела? Можно просто в шапке описать-перечислить неугодных публике... Или даже не в шапке. Просто ежу понятно, что если так как ты говоришь, сделать, то куча движков попадет в "не канон" и харам на обсуждения их. Уже проходили. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Shkiper2012 35 Опубликовано 21 Марта 2021 Поделиться Опубликовано 21 Марта 2021 Парни, может кто знает, как изменить скорость проигрывания звука(ускорить)? Нужно для дела. Сейчас разбираюсь в исходниках "xrSound/xrGame" и не знаю с какой стороны подступится. Движок ЗП. Адаптация мода "AtmosFear" для мода "Боевая Подготовка" v.2.0.2. Адаптация мода "Магазинное питание" для мода "Боевая Подготовка" v.2.0.2. Ссылка на комментарий
macron 1 832 Опубликовано 21 Марта 2021 Поделиться Опубликовано 21 Марта 2021 21 минуту назад, Shkiper2012 сказал(а): как изменить скорость проигрывания звука(ускорить) Аудиоредактор в зубы! 2 Ссылка на комментарий
mmccxvii 3 Опубликовано 24 Марта 2021 Поделиться Опубликовано 24 Марта 2021 21.03.2021 в 19:37, Shkiper2012 сказал(а): как изменить скорость проигрывания звука(ускорить) Не в курсе, для какой именно нужды это требуется, однако, советую глянуть xrSound/SoundRender_TargetA.cpp, а именно локальную переменную _pitch: float _pitch = m_pEmitter->p_source.freq; clamp(_pitch, EPS_L, 2.f); 1 2 Ссылка на комментарий
Кот Смерч 0 Опубликовано 24 Марта 2021 Поделиться Опубликовано 24 Марта 2021 День добрый, есть объект CCar, к нему приаттачиваю объект из инвентаря ГГ, т.е. для предмета указываю родителем (H_SetParent) текущий объект. Проблема в том что после сейв-лоада попытка найти объект с таким айди как у приаттаченого предмета возвращает null Как это исправить? void CCar::OnEvent(NET_Packet& P, u16 type) { inherited::OnEvent (P,type); CExplosive::OnEvent (P,type); //обработка сообщений, нужных для работы с багажником машины u16 id; switch (type) { case GE_OWNERSHIP_TAKE: { P.r_u16(id); CObject* itm = Level().Objects.net_Find(id); m_trunk_items.push_back(id); itm->H_SetParent(this); itm->setVisible(FALSE); itm->setEnabled(FALSE); }break; } } Ссылка на комментарий
ARTLantist 14 Опубликовано 26 Марта 2021 Поделиться Опубликовано 26 Марта 2021 В чистой зп есть такой небольшой баг, я думаю, что не я один его замечал: когда мы пытаемся перетащить предмет из одной клетки сетки рюкзака в другую - это не всегда выходит (предмет возвращается обратно, либо ставится в другую). Прикол в том, что нужно перетягивать этот предмет не в любую точку клетки, а со смещением от центра к правому нижнему углу - тогда всегда предмет переносится в эту клетку. Ну так вот, как пофиксить данный баг? Чтобы можно было перетянуть предмет в любую точку ДАННОЙ клетки и он туда без труда поместился. Ссылка на комментарий
xer-urg 0 Опубликовано 3 Апреля 2021 Поделиться Опубликовано 3 Апреля 2021 Приветствую! Прикручивал на движок ТЧ (форк xp-dev) отображение миникарты по зажатию клавиши. Соорудил работающую проверку: UIMainIngameWnd.cpp void CUIMainIngameWnd::Draw() { ... if (Level().IR_GetKeyState(DIK_TAB)) UIZoneMap->Render(); ... } Вопрос - подскажите как проверять не хардкодную клавишу (TAB в моём примере) а некое действие к которому забиндена кнопка в настройках, типа kSCORES ? Попытка проверять в духе if (Level().IR_GetKeyState(get_binded_action(kSCORES))) результатов не дала https://github.com/xer-urg/xray-1.0007rc1 Ссылка на комментарий
_ХоЗаР_ 47 Опубликовано 4 Апреля 2021 Поделиться Опубликовано 4 Апреля 2021 @xer-urg Ну я в ЗП делал примерно так. int dik = get_action_dik(kWPN_RELOAD); if (dik && g_pGameLevel->IR_GetKeyState(dik)) { ... } 1 1 Скрытый текст 6 ГБ ОЗУ DDR3 1098 мГц (Разносорт) Процессор Intel Xeon E5420 4/4 2.5 ГГц Видеокарта Gigabyte GeForce GT 240 512 МБ GDDR5 (Samsung) DirectX v10.1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти