Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Balavnik 118 Опубликовано 24 Мая Поделиться Опубликовано 24 Мая Где можно изменить иконку объекта? Не оружия, а именно объекта, например колбасы. В самом описании ссылок на иконки нет, также не нашел никаких описаний местоположений иконок в config\ui. Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
ZonaChe 20 Опубликовано 24 Мая Поделиться Опубликовано 24 Мая @Balavnik , привет. Если не изменяет память, то в misc\items.ltx 1 Ссылка на комментарий
Norman Eisenherz 312 Опубликовано 24 Мая Поделиться Опубликовано 24 Мая section_name() – аналог section() для оффлайна Просто name() возвращает либо уникальное системное имя, вроде esc_trader, либо имя и номер спавна: wpn_pm21423. Не путать с именами из [all.spawn] – у них обычно есть приставка с названием локации и какой-то фиксированный номер: val_wpn_mp5_0000. 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
ZonaChe 20 Опубликовано 24 Мая Поделиться Опубликовано 24 Мая @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 868 Опубликовано 24 Мая Поделиться Опубликовано 24 Мая 1 час назад, Balavnik сказал: Что значит $spawn Насколько помню/знаю, параметры с префиксом $ используются и предназначены для Level Editor SDK, непосредственно в игре не задействованы. 1 1 2 Ссылка на комментарий
CiberZold 142 Опубликовано 25 Мая Поделиться Опубликовано 25 Мая 8 часов назад, Kirgudu сказал: Единственное вероятное (не проверял) требование - имя должно быть уникальным. 6 часов назад, Norman Eisenherz сказал: Не путать с именами из [all.spawn] – у них обычно есть приставка с названием локации и какой-то фиксированный номер: val_wpn_mp5_0000. а чем они отличаются? так метод obj:name() и возвращает вот это имя из алл-спавна, разница в примерах только в том ,что имя в алл-спавне задаёт разработчик, а имя типа wpn_pm21423, задаёт сама игра при спавне в виде id, прибавляя к названию секции рандомное число. и кстати имя может быть одинаковым по крайней мере на ОГСР, я по ошибке оставил в спавне 2 объекта с одним именем, и потом в игре, играя с выводом дебаг инфы на экране (наведясь на объект там пишется информация- секция, имя, логика и пр.) увидел что у меня стоят рядом 2 объекта с одинаковым name, никаких проблем для игры это не вызвало) 1 Ссылка на комментарий
Norman Eisenherz 312 Опубликовано 25 Мая Поделиться Опубликовано 25 Мая 12 hours ago, CiberZold said: имя в алл-спавне задаёт разработчик, а имя типа wpn_pm21423, задаёт сама игра при спавне в виде id Этим и отличаются. К чему был вопрос? 2 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Zander_driver 10 334 Опубликовано 25 Мая Поделиться Опубликовано 25 Мая 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 118 Опубликовано 25 Мая Поделиться Опубликовано 25 Мая @Zander_driver А id у каждого объекта получается уникальный, выдающийся игрой? Будет ли разница между obj.id(онлайн) и obj:id()(оффалйн)? А Story id объекта можно получить? Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Zander_driver 10 334 Опубликовано 25 Мая Поделиться Опубликовано 25 Мая Только что, 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 118 Опубликовано 25 Мая Поделиться Опубликовано 25 Мая @Zander_driver А если я допустим попробую методом alife():object(obj.id) получить объект в оффлайне, он его переводит в онлайн, или как? 1 Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Zander_driver 10 334 Опубликовано 25 Мая Поделиться Опубликовано 25 Мая @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 Мая Поделиться Опубликовано 25 Мая 1 час назад, Norman Eisenherz сказал: Этим и отличаются. К чему был вопрос? ты написал "не надо путать" типа имя заданное самой игрой и через алл-спавн разработчиком, так как будто для игры есть разница, и то и то имя объекта, поэтому я спросил в чём разница? имя объекта оно и в Африке имя объекта, не важно как и через что, оно задано. 59 минут назад, Zander_driver сказал: такой способ получения объектов не используется алайф объект может где и используется, но это были 2 физ.объекта, вряд ли они используются, но я имел ввиду проблем с игрой не было в плане вылетов, иди что она ругалась на 2 объекта с одинаковым именем. 1 Ссылка на комментарий
Balavnik 118 Опубликовано 25 Мая Поделиться Опубликовано 25 Мая Я так понимаю, класс cse_alife_dynamic_object никак не связан с game_object? Можно ли получить объект класса game_object, если есть свежесозданный объект класса cse_alife_dynamic_object? Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Norman Eisenherz 312 Опубликовано 25 Мая Поделиться Опубликовано 25 Мая @CiberZold Не путать номер в очереди спавна с фиксированным номером. Так и так получается имя, которое читается через name() – не спорю. 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Zander_driver 10 334 Опубликовано 25 Мая Поделиться Опубликовано 25 Мая 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 118 Опубликовано 25 Мая Поделиться Опубликовано 25 Мая @Zander_driver Т.е. потом тем же obj = alife():object(id) или как? Осенний каламбур. Сентябрь - лето. Ссылка на комментарий
Zander_driver 10 334 Опубликовано 25 Мая Поделиться Опубликовано 25 Мая 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 211 Опубликовано 25 Мая Это популярное сообщение. Поделиться Опубликовано 25 Мая (изменено) 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 Мая пользователем Kirgudu 1 4 Инструмент Ссылка на комментарий
CiberZold 142 Опубликовано 25 Мая Поделиться Опубликовано 25 Мая 4 часа назад, Norman Eisenherz сказал: Не путать номер в очереди спавна с фиксированным номером а у тебя было так написано в посте, что можно подумать существуют разные имена для объектов один для алл-спавна, другой просто для игры Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти