dsh 3 824 Опубликовано 2 Марта 2015 (изменено) @Lagos, вот такое желтое изображение я получал играясь с FOV. Кто-нибудь использовал local res = level.perform_ray_pick_query() из x-ray extensions? Посмотреть бы на примеры использования. Еще вопрос по get_weight(). В вики написано: [ТЧ] Добавлен метод get_weight класса game_object, который работает только для актора и позволяет получить суммарную массу вещей в инвентаре. У кого-нибудь get_weight() для актора работает? Сегодня попробовал - вылетает. А для объектов из инвентаря - работает. Изменено 2 Марта 2015 пользователем dsh dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 5 Июля 2015 А в X-Ray Extensions не добавляли, случаем, колбека на клик мышью на карте в ПДА? dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 13 Июля 2015 Может уже кто делал, т.ч. спрошу заранее. Есть способ поменять вес предмета в инвентаре? Возможно с помощью set_inventory_item_* или set_go_* ? Кто-нибудь уже находил соотв. смещения? Спасибо. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 14 Июля 2015 Уточню. Правильное смещение для веса - 164. Вот рабочий вариант: function set_inv_weight( obj, weight ) obj:set_inventory_item_float( nil, weight, 164 ) end 1 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 22 Августа 2015 (изменено) Даже не знаю, в какой теме спрашивать. Есть какой-нибудь способ поменять normal_time_factor из alife.ltx, не начиная новую игру? По исходникам вижу, что значение из ltx сохраняется в сейве и в дальнейшем, значение из ltx просто переопределяется тем, которое сохранено в сейве.PS. Вообще не понятно, зачем этот параметр сохраняется в сейве. @Dennis_Chikin, не, set_time_factor() устанавливает time_factor, а мне нужно normal_time_factor поменять. Изменено 5 Сентября 2015 пользователем Dennis_Chikin dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 23 Августа 2015 @macron, это я сделал, у себя в сейве поменял. Но мне бы хотелось и у играющих в мой мод поменять. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 12 Марта 2016 Нужна помощь в добавлении колбека на клик по предмету в инвентаре. А в чем там проблема? Есть же в _g.script: callback_ex = { ["on_select_item"] = 133, } в bind_stalker.script: self.object:set_callback(callback_ex.on_select_item, self.on_select_item, self) -- перемещение предмета в слот function actor_binder:on_select_item( obj ) end dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 12 Марта 2016 @Kondr48, почему в слот? Это клик на итем в инвентаре. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 12 Марта 2016 в 1.0007 такого нет, поэтому я и спрашиваю А-а-а, тебе для исходников. Я подумал, ты для x-ray extensions спрашивал. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 21 Июля 2016 @Kondr48, я тоже такого мнения, что не читает для костюмов. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 17 Февраля 2017 @naxac, у меня тоже с ними была проблема. Плюнул и изменил условие задачи, не стал эти методы использовать. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 1 Ноября 2017 5 hours ago, Shkiper2012 said: Методы для CInventoryItem: set_inventory_item_flags(flags16) и get_inventory_item_flags() Вот так вот, например function set_item_ungroupable( item ) local f = item:get_inventory_item_flags() f:set( global_flags.FIUngroupable, true ) item:set_inventory_item_flags( f ) end В xp-dev нет этих флагов в global_flags, т.ч. можешь просто число там указывать, которому соотв. нужный тебе флаг. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 2 Ноября 2017 @Shkiper2012 в xp-dev флаг неторгуемости не обрабатывается, а флаг негруппируемости обрабатывается только после вызова соотв. коллбека и сбрасывается после его обработки, т.е. служит только для возврата результата из коллбека. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 2 Ноября 2017 @Shkiper2012 если не внести свои изменения в xp-dev, то на торгуемость влиять нельзя. На группируемость - можно. Нужно подключить обработчик для коллбэка "on_group_items", в который передаются два предмета, и в нем этим предметам выставлять флаг негруппируемости, если нужно. Коллбэк вызывается для выяснения, можно-ли сгруппировать эти два предмета. Если же вносить свои изменения, то см. для примера https://github.com/dsh2dsh/OGSR-Engine/commit/eff43a33936c6fdffbf58c70f06a4b7f68df1801 https://github.com/dsh2dsh/OGSR-Engine/commit/22069d0d62a04ea075497540cf98ecdeef3eddf5 1 dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 5 Ноября 2017 Народ, может кто узнает это // float kx = (UI()->is_16_9_mode())?0.8333f: 1.0f; float kx = (UI()->is_16_9_mode()) ? Device.dwHeight / Device.dwWidth / 0.75 : 1.0f; Это из UICustomItem.cpp, из CUICustomItem::Render(). У кого-нибудь есть идеи, что за магическая константа 0.8333 и что за магические расчеты во второй строке вместо этой константы? dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 5 Ноября 2017 Теперь понятно. Но вот в чем странность. Вот это float kx = (UI()->is_16_9_mode()) ? Device.dwHeight / Device.dwWidth / 0.75 : 1.0f; и вот это float kx = UI()->is_16_9_mode() ? UI()->get_current_kx() : 1.0f; float ui_core::get_current_kx() { float h = float(Device.dwHeight); float w = float(Device.dwWidth); float res = (h / w) / (UI_BASE_HEIGHT / UI_BASE_WIDTH); return res; } дают разные результаты. Такое впечатление, что первый расчет выполняется не слева на право. Может я чего-нибудь в упор не замечаю? Вроде об расчета эквиваленты. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 6 Ноября 2017 (изменено) @KRodin подсказал, что грабля была в том, что в первом случае ширина и высота не приводились к float. Изменено 6 Ноября 2017 пользователем dsh dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 11 Ноября 2017 (изменено) Даже и не знаю, сюда писать или нет. Кто-нибудь пользуется скриптовым хранилищем из xp-dev? Вроде оно как-то userdata сохраняет, только мне не понятно, что с ней потом делать, как использовать? Вот есть у меня vector(), оно его без проблем сохранит и прочитает. Только вот прочитанное уже не признается, что он vector(). Т.е. var.x уже не сделать, оно ругается что это userdata и его нельзя индексировать. Что с этим делают, как используют, для чего? Поделитесь, пожалуйста, опытом. Кстати, в xp-dev там ошибка. Грабля бьет по лбу, если сохранять вложенные списки. Оно тогда все индексы превращает в строковые и уже не получится использовать ipairs(), да и не только. Вот тут ошибка sv.type = LUA_TTABLE; if (sv.T->is_array) sv.type |= SVT_ARRAY_TABLE; if (sv.T->zero_key) sv.type |= SVT_ARRAY_ZEROK; Я не могу понять, зачем тут затирается оригинальный sv.type и через задницу восстанавливаются в нем флаги. В общем, перестраховался и исправил вот так int type = sv.type; sv.type = LUA_TTABLE; if (sv.T->is_array) sv.type |= SVT_ARRAY_TABLE; if (sv.T->zero_key) sv.type |= SVT_ARRAY_ZEROK; if ( (type & SVT_KEY_MASK) == SVT_KEY_BOOLEAN ) sv.type |= SVT_KEY_BOOLEAN; else if ( (type & SVT_KEY_MASK) == SVT_KEY_NUMERIC ) sv.type |= SVT_KEY_NUMERIC; А так, мне кажется, достаточно убрать sv.type = LUA_TTABLE; что бы сохранялись все флаги. Странное оно тут, странное. Изменено 11 Ноября 2017 пользователем dsh dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 14 Ноября 2017 23 hours ago, Winsor said: CRegistryHelperProcess помогает записать/прочитать в сейв А это что за процесс такой? Не нахожу такого в исходниках движка. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение
dsh 3 824 Опубликовано 14 Ноября 2017 Есть у меня элементарный вопрос. Вот делаем мы local v = vector() Чему должны быть равны x, y, и z этого вектора? nil, 0, случайное значение? Если 0, то почему? Я не могу найти в движке инициализацию в нулевые значения. dsh mod: https://github.com/dsh2dsh/op2ogse Поделиться этим сообщением Ссылка на сообщение