Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Balavnik 139 Опубликовано 24 Мая 2024 Поделиться Опубликовано 24 Мая 2024 Где можно изменить иконку объекта? Не оружия, а именно объекта, например колбасы. В самом описании ссылок на иконки нет, также не нашел никаких описаний местоположений иконок в config\ui. Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
ZonaChe 20 Опубликовано 24 Мая 2024 Поделиться Опубликовано 24 Мая 2024 @Balavnik , привет. Если не изменяет память, то в misc\items.ltx 1 Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 24 Мая 2024 Поделиться Опубликовано 24 Мая 2024 section_name() – аналог section() для оффлайна Просто name() возвращает либо уникальное системное имя, вроде esc_trader, либо имя и номер спавна: wpn_pm21423. Не путать с именами из [all.spawn] – у них обычно есть приставка с названием локации и какой-то фиксированный номер: val_wpn_mp5_0000. 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
ZonaChe 20 Опубликовано 24 Мая 2024 Поделиться Опубликовано 24 Мая 2024 @Balavnik блин, чёт не то написал, хотя - тоже нужное) Сама иконка (картинка) находится на полотне ui_icon_equipment.dds и имеет разное кол-во ячеек в длину и высоту. Отсчёт сверху-слева (0.0) Скрытый текст inv_grid_width = 1 inv_grid_height = 2 inv_grid_x = 5 inv_grid_y = 2 в данном моменте это водка: ширина одна яч, высота - две яч. Сама ячейка - 50х50 пикселей 1 Ссылка на комментарий
Купер 2 945 Опубликовано 24 Мая 2024 Поделиться Опубликовано 24 Мая 2024 1 час назад, Balavnik сказал: Что значит $spawn Насколько помню/знаю, параметры с префиксом $ используются и предназначены для Level Editor SDK, непосредственно в игре не задействованы. 1 1 2 Ссылка на комментарий
CiberZold 142 Опубликовано 25 Мая 2024 Поделиться Опубликовано 25 Мая 2024 8 часов назад, Kirgudu сказал: Единственное вероятное (не проверял) требование - имя должно быть уникальным. 6 часов назад, Norman Eisenherz сказал: Не путать с именами из [all.spawn] – у них обычно есть приставка с названием локации и какой-то фиксированный номер: val_wpn_mp5_0000. а чем они отличаются? так метод obj:name() и возвращает вот это имя из алл-спавна, разница в примерах только в том ,что имя в алл-спавне задаёт разработчик, а имя типа wpn_pm21423, задаёт сама игра при спавне в виде id, прибавляя к названию секции рандомное число. и кстати имя может быть одинаковым по крайней мере на ОГСР, я по ошибке оставил в спавне 2 объекта с одним именем, и потом в игре, играя с выводом дебаг инфы на экране (наведясь на объект там пишется информация- секция, имя, логика и пр.) увидел что у меня стоят рядом 2 объекта с одинаковым name, никаких проблем для игры это не вызвало) 1 Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 25 Мая 2024 Поделиться Опубликовано 25 Мая 2024 12 hours ago, CiberZold said: имя в алл-спавне задаёт разработчик, а имя типа wpn_pm21423, задаёт сама игра при спавне в виде id Этим и отличаются. К чему был вопрос? 2 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Zander_driver 10 341 Опубликовано 25 Мая 2024 Поделиться Опубликовано 25 Мая 2024 13 часов назад, CiberZold сказал: и кстати имя может быть одинаковым по крайней мере на ОГСР, я по ошибке оставил в спавне 2 объекта с одним именем, и потом в игре, играя с выводом дебаг инфы на экране (наведясь на объект там пишется информация- секция, имя, логика и пр.) увидел что у меня стоят рядом 2 объекта с одинаковым name, никаких проблем для игры это не вызвало) Или показалось, что не вызвало alife():object(строка) может возвращать объекты по имени. А не только по числовому id. И вернет определенный объект в том случае, если имя уникально. Если же таких несколько, то вернет первый попавшийся с таким именем, таким образом возможность получения определенного уникального объекта по имени, отваливается. Впрочем если в коде вашего мода такой способ получения объектов не используется, то никаких последствий и не будет. А в оригинале он почти или совсем не используется, насколько помню. 2 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Balavnik 139 Опубликовано 25 Мая 2024 Поделиться Опубликовано 25 Мая 2024 @Zander_driver А id у каждого объекта получается уникальный, выдающийся игрой? Будет ли разница между obj.id(онлайн) и obj:id()(оффалйн)? А Story id объекта можно получить? Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Zander_driver 10 341 Опубликовано 25 Мая 2024 Поделиться Опубликовано 25 Мая 2024 Только что, Balavnik сказал: Будет ли разница между obj.id(онлайн) и obj:id()(оффалйн)? Нет, они идентичны всегда. (Только наоборот - sobj.id для оффлайна, obj:id() для онлайна). Именно по id всегда можно опознать что это один и тот же объект. story_id также получается и в оффлайне и в онлайне, смотри внимательно методы и поля объектов. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Balavnik 139 Опубликовано 25 Мая 2024 Поделиться Опубликовано 25 Мая 2024 @Zander_driver А если я допустим попробую методом alife():object(obj.id) получить объект в оффлайне, он его переводит в онлайн, или как? 1 Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Zander_driver 10 341 Опубликовано 25 Мая 2024 Поделиться Опубликовано 25 Мая 2024 @Balavnik Подтянуть бы тебе общее понимание теории программирования А то какая-то каша в логике рассуждений. Есть такое понятие как геттер. Т.е. функция/метод, которая только возвращает какие-либо данные, при этом ничего с ними не делая. Никаких изменений, манипуляций и т.д. Так вот, alife():object(не_важно_строка_или_число) - Это геттер. И level.object_by_id(число) - Тоже геттер. Не могут они ничего с объектами сами делать, не имеют такого права. 2 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
CiberZold 142 Опубликовано 25 Мая 2024 Поделиться Опубликовано 25 Мая 2024 1 час назад, Norman Eisenherz сказал: Этим и отличаются. К чему был вопрос? ты написал "не надо путать" типа имя заданное самой игрой и через алл-спавн разработчиком, так как будто для игры есть разница, и то и то имя объекта, поэтому я спросил в чём разница? имя объекта оно и в Африке имя объекта, не важно как и через что, оно задано. 59 минут назад, Zander_driver сказал: такой способ получения объектов не используется алайф объект может где и используется, но это были 2 физ.объекта, вряд ли они используются, но я имел ввиду проблем с игрой не было в плане вылетов, иди что она ругалась на 2 объекта с одинаковым именем. 1 Ссылка на комментарий
Balavnik 139 Опубликовано 25 Мая 2024 Поделиться Опубликовано 25 Мая 2024 Я так понимаю, класс cse_alife_dynamic_object никак не связан с game_object? Можно ли получить объект класса game_object, если есть свежесозданный объект класса cse_alife_dynamic_object? Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 25 Мая 2024 Поделиться Опубликовано 25 Мая 2024 @CiberZold Не путать номер в очереди спавна с фиксированным номером. Так и так получается имя, которое читается через name() – не спорю. 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Zander_driver 10 341 Опубликовано 25 Мая 2024 Поделиться Опубликовано 25 Мая 2024 16 минут назад, Balavnik сказал: Можно ли получить объект класса game_object cse_alife_dynamic_object - серверный, game_object - клиентский. И хоть они являются "зеркальными отражениями" одного и того же объекта, иерархически эти классы никак не связаны. У них нет общего родителя. Получить клиентский можно только после того, как движок сам его создаст. Это занимает некоторое время, и если только-что был создан (заспавнен) серверный, то клиентский еще не существует. Надо ждать, (1 фрейм как минимум) пока движок его введет в онлайн, если для этого есть подходящие условия. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Balavnik 139 Опубликовано 25 Мая 2024 Поделиться Опубликовано 25 Мая 2024 @Zander_driver Т.е. потом тем же obj = alife():object(id) или как? Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Zander_driver 10 341 Опубликовано 25 Мая 2024 Поделиться Опубликовано 25 Мая 2024 2 минуты назад, Balavnik сказал: alife():object(id) Так ты получишь серверный объект. cse_alife_dynamic_object. Его получить можно и так, сразу после спавна. Заспавнили - буквально означает "создали серверный объект". Клиентский получают из level.object_by_id(id) - вот для него надо подождать 1 кадр как минимум, после спавна. Это кроме того что объекты заспавненные за радиусом алайфа, вообще не обязаны сразу в онлайн заходить, а объекты на других локациях обязаны не заходить. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 239 Опубликовано 25 Мая 2024 Это популярное сообщение. Поделиться Опубликовано 25 Мая 2024 (изменено) 3 часа назад, CiberZold сказал: проблем с игрой не было в плане вылетов, иди что она ругалась на 2 объекта с одинаковым именем Проблем с игрой не было, а вот у потенциального разработчика-последователя, который ожидает при получении объекта по имени, что там всего один такой экземпляр, причём конкретный, хотя их на самом деле два, - проблемы будут. 1 час назад, Zander_driver сказал: Клиентский получают из level.object_by_id(id) - вот для него надо подождать 1 кадр как минимум, после спавна. @Balavnik, дополню ответ коллеги по цеху. Гарантированным способом дождаться момента, когда клиентский объект уже точно есть, является использование функционала класса level.client_spawn_manager(), в экземпляр которого добавляется коллбэк (функция, вызываемая при некоем событии), срабатывающий при выходе только что заспавненного объекта в онлайн. Пример (отформатировал вызов построчно для наглядности): local sobj = alife():create(section, position, lvid, gvid) if sobj ~= nil then level.client_spawn_manager():add( sobj.id, -- id известного нам серверного объекта 65535, -- параметр игнорируется, обычно ставлю такое значение для простоты function (id, obj) -- функция-коллбэк, здесь job - клиентский объект, id - его id, равный sobj.id -- что-то делаем с obj end ) end Важно при этом помнить, что коллбэк этот существует ровно до момента ближайшей загрузки из сэйва/перехода на другую локацию, после которых уже не сработает. Поэтому применять этот метод получится при спавне только на той же локации, что и герой, ну и желательно в alife-радиусе. Подробнее про класс client_spawn_manager(), в том числе про альтернативную перегрузку метода add(), рекомендую почитать в уже много раз упоминавшемся "справочнике" здесь и здесь. Изменено 25 Мая 2024 пользователем Kirgudu 1 4 Инструмент Ссылка на комментарий
CiberZold 142 Опубликовано 25 Мая 2024 Поделиться Опубликовано 25 Мая 2024 4 часа назад, Norman Eisenherz сказал: Не путать номер в очереди спавна с фиксированным номером а у тебя было так написано в посте, что можно подумать существуют разные имена для объектов один для алл-спавна, другой просто для игры Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти