Редактирование движка |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Редактирование движка |
22.01.2016, 17:18
Сообщение
#2681
|
|
Игровой Бог Репутация: 648 Группа: Участник Сообщений: 5354 Регистрация: 24.09.2010 |
Редактирование собранного движка Проект Cut X-Ray Цель проекта - создание отдельных изменений движка игры с их последующей комбинацией с другими правками. Авторы: SkyLoader, _призрак_ Для платформ: ТЧ 1.0004 и 1.0006, ЧН 1.5.10, ЗП 1.6.02 Адрес проекта на Google Code: Страница на Moddb: Пак 1 1. Исправление вылета "can't find rank" для оружий. 2. Смерть от первого лица. Видео: 3. Collide Возвращена коллизия мертвых тел с неписями и актором, как она сделана в старой физике билдов. Видео: 4. Круглый прицел. Возвращен круглый прицел вместо перекрестья, как билдах. 5. Исправление вида от 3-го лица. Изменено положение камеры от 3-го лица (1). Стрельба идет по перекрестью, а не по направлению актора. Если включить вид от 3-го лица (1) и удерживать Shift, то ГГ будет автоматически целиться в ближайшего непися или монстра. Проблемы: Стрельба по перекрестью идет также при виде от 3-го лица (2). Если при автоматическом нацеливании непись/монстр удалится или перейдет в оффлайн, будет движковый безлоговый вылет. Я думал вырезать это нацеливание, но решил оставить. Пак 2 1. Luminosity progress (только ТЧ) Возвращение шкалы освещения вместо шкалы "заметности" ГГ, как в билдах. 2. Запрет на доставание оружия в машине (только ТЧ и ЧН) и на лестнице (ТЧ, ЧН, ЗП). 3. Руки на руле в машине. (только ТЧ и ЧН) Видео: 4. Отсутствие распознавания неписей перекрестием: При наведении на непися перекрестье имеет дефолтный цвет. Также не показывает информацию о неписе, если смотреть на него. 5. Bind_object: Возможность использовать скрипты в мультиплеере. 6. Из оружия на классе бинокля можно стрелять (только ТЧ) Пак 3 1. Включение некоторых команд без использования ярлыка. Можно патчить по отдельности. Команды: -smap_4096 (максимально улучшенные карты теней), -mblur (включение блюра). 2. Измененная анимация безоружного гг. 3. Увеличение дистанции диалога с неписями (для создания сценок на расстоянии) 4. Исправление вылета при использовании предметов из трупов неписей. В отличии от версии Kolmogor'а, здесь отключено само меню использования. 5. Возможность поднимать болты как обычные инвентарные предметы (комбинировать с модом Charsi "Заканчивающиеся болты") Правки от RayTwitty aka Shadows Geometry LOD fix (CS 1.5.10) – расширение диапазона консольной команды r__geometry_lod Camblu crosshair for build 1865 – замена перекрестия прицела на кружок в билде 1865 Vertex buffer fix for NC Project – исправление вылета по переполнению буфера в NC Project NO 100 sovetov fix (COP 1.6.02) – убирает надписи "100 советов" с экрана загрузки Demo Record fix (SOC 1.0006) – убирает красные надписи в режиме demo_record Weapon Bobbing Beta (SOC 1.0006) – раскачка оружия при ходьбе (бета-версия) Build Loadscreen (SOC 1.0006) – билдовский экран загрузки со статичным изображением Detail Density fix (SOC 1.0006) – расширение диапазона консольной команды r__detail_density Mipbias fix (SOC 1.0006) – расширение диапазона консольных команд r1_tf_mipbias и r2_tf_mipbias No Quick Use fix (SOC 1.0006) – запрет на использование аптечек и бинтов по быстрым клавишам Sun Near fix (SOC 1.0006) – расширение диапазона консольной команды r2_sun_near Target Font (SOC 1.0006) – замена шрифта под перекрестием прицела на шрифт DI Unload Magazine fix (SOC 1.0006) – фикс скриптовой функции unload_magazine - теперь патроны разряжаются в инвентарь PNG Screenshots (SOC 1.0006) – игра теперь делает качественные скриншоты в формате png Правки от K.D. Правки от macron Исправленный экзешник для SoC 1.0006 Доработанный и исправленный экзешник для ТЧ 1.0006 (на основе Steam-версии без защиты) Включает в себя исправления вылетов, а также очистку лога игры от засоряющих сообщений. Более подробное описание внутри архива. Ссылка: X-Ray extensions portable Портативная версия расширений движка "X-Ray extensions" Платформы: ТЧ 1.0006, ЧН 1.5.10, ЗП 1.6.02 Эта версия имеет все нужные библиотеки и патчеры, а также настроенные bat-файлы для успешной компиляции. Более подробное описание внутри архива. Ссылка: Правки от Kolmogor Правленный xrGame для SoC 1.0004 Изменения: 1. Добавлена консольная команда fov [5.0, 180.0] - изменяет глобальный FOV камеры. 2. Добавлена консольная команда k_ammo_on_belt [on\off] - включает\выключает использование патронов с пояса. 3. Артефакты работают из рюкзака, а пояс служит контейнером. Ссылка: Правки от Kontro-zzz Изменение значения hud_fov Правки фиксированных значений параметра hud_fov - 0.37 либо 0.53, Должно работать на GOG версии и no DVD. Редактирование исходников Репозитории [SoC] () () () () () () () () () () () [CS] () () () () () () [CoP] () () () () () () () () () () () () () [2.0] () () NDA GSC Оригинальные версии движков Могут понадобиться для восстановления оригинальных библиотек. Официальный мультиплеерный (невышедший) патч для SoC Уроки Изменение плотности травы и создание патча через IDA Pro Автор: _призрак_ edited by: RayTwitty aka Shadows Для редактирования нам понадобится программа IDA Pro. 1. Запускаем IDA Pro. 2. Загружаем бинарник рендера xrRender_R1.dll или xrRender_R2.dll. 3. Теперь необходимо найти, где регистрируется консольная команда. Жмем Ctrl+T и вводим r__detail_density. 4. Находим функцию и тщательно ее разбираем (я ее полностью разбирать не буду, только укажу, где задаются параметры: Код регистрации консольной команды Код fld ds:flt_10064400 -- нижнее ограничение равное 0.6 or dword_1007CACC, 8 sub esp, 8 fstp [esp+30h+var_2C] mov ecx, offset unk_1007CA9C fld ds:flt_10064380 -- верхнее ограничение равное 0.2 fstp [esp+30h+var_30] push offset aSs; "ЪЩЩ>" push offset aR__detail_dens; "r__detail_density" call ds:??0CCC_Float@@QAE@PBDPAMMM@Z; CCC_Float::CCC_Float(char const *,float *,float,float) push offset sub_1005E080; void (__cdecl *)() call _atexit add esp, 4 5. Нам нужно увеличить плотность травы: следовательно нужно изменить верхнее ограничение. Как это сделать? Есть три варианта: Первый и самый логичный вариант: изменить переменную. Но тут есть небольшой подвох на котором я попался - этой переменной может пользоваться не одна функция, а несколько. И не ясно, что вы можете сломать, поменяв одну циферку на другую. Второй: взять другую, уже существующую переменную с подходящим значением. Хороший вариант которым я и воспользовался. Но и тут есть недостаток - переменных в бинарнике не так уж и много и можно просто не найти нужную. Третий: создать переменную. Отличный вариант. Единственный минус - я не знаю как это сделать Я пошел по второму пути. Два раза щелкнув на ds:flt_10064380, IDA отправила меня в дебри под названием .rdata. Там я нашел переменную, которая называлась - flt_1006452C и которая имела значение 0.0720999. Насколько я понял, flt_1006452C - не является названием переменной, это сборка из двух показателей - (тип числа)_(смещение). В нашем случае это число типа float, которое находится по адресу 1006452C. Ну что же, приступим к редактированию! 6. Отправляемся в самое начало файла. Как? Сверху есть что-то типа статус-бара - строка состоящая из синего, серого, черного цвета. Нажимаем там в любом месте мышкой и ведем влево до конца. 7. Опять ищем r__detail_density. Находим в этой функции строку fld ds:flt_10064338. Дальше самое интересное - жмем на вкладку Hex View и там у нас выделяются какие-то цифры. Это наша переменная 10064338, только написано наоборот. Сравните: Код 38 43 06 10 Похоже, не правда ли? 10 06 43 38 8. Начинаем редактировать. Нам нужно поменять 4338 на 452C (т.е. заменить ссылку с одной переменной на другую). Жмем правой кнопкой мыши на этих цифрах и выбираем пункт Edit. Меняем 38 43 на 2С 45. Дальше жмем где-нибудь в коде (это нужно сделать обязательно!). 9. После этого жмем правой кнопкой мыши и выбираем commit changes. Таким образом, мы поменяли ссылку на переменную и теперь верхнее ограничение будет равно значению из другой переменной. Но IDA не меняет исходный файл. В нашем случае мы можем только создать файл изменений. Делается это так: File -> Produce file -> Create DIF file. Назовем его test. Этот файл можно открыть при помощи блокнота и посмотреть, что получилось. 10. Теперь необходимо внести изменения из этого файла в движок. Это можно сделать при помощи патчера bpatch. Качаем, смотрим и запускаем bpatch.cmd. Я думаю, что батник вы сможете изменить самостоятельно (настроить пути файлов и т.п.) - там все элементарно. 11. Все! Изменения внесены в движок, можно тестировать Огромное спасибо Kolmogor'у и malandrinus'у. Если бы не они, я бы ничего не сделал. Спасибо вам еще раз. Спасибо и Rolan'у, с которым я очень много беседовал и тоже узнал много чего Полезные ссылки Сборка движка X-Ray Сообщение отредактировал RayTwitty - 27.08.2021, 00:15 |
 
|
|
|
|
29.08.2017, 09:03
Сообщение
#2682
|
|
Продвинутый геймер Репутация: 104 Группа: Участник Сообщений: 336 Награды: 4 Регистрация: 13.12.2011 |
THQ уже банкроты и продались в том же 2014 (совпадение?), так что это уже не имеет смысла. Да и кодеров которые это комментили уже давно в GSC нет, а в третьих исходники вообще слили не официально GSC, мало ли кто этот комент оставил.
Сообщение отредактировал virus_ua - 29.08.2017, 09:06 -------------------- |
 
|
|
29.08.2017, 11:48
Сообщение
#2683
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
По вопросу компиляции Эдиторов.
Поставил на Вин7 Борланд 2004, начал компиль и поймал кирдык - синий экран, а затем выяснилось, что произошло переформатирование раздела с системой. Кое - как диск обратно переформатировал в ntfs и то при помощи установщика xp. Что то я боюсь уже второй раз ставить Борланд. Он скорее всего под xp заточен. |
 
|
|
29.08.2017, 11:53
Сообщение
#2684
|
|
Продвинутый геймер Репутация: 104 Группа: Участник Сообщений: 336 Награды: 4 Регистрация: 13.12.2011 |
andreyholkin, установи на виртуалку XP -> Борланд -> Даешь апдейты Level Editor -> Profit
-------------------- |
 
|
|
29.08.2017, 12:22
Сообщение
#2685
|
|
Геймер Репутация: 4 Группа: Участник Сообщений: 108 Награды: 3 Регистрация: 02.02.2016 |
В таком случае начинает тупить в движке проверка на видимость кости (LL_GetBoneVisible() в ЗП) - она возвращает неверные результаты, из-за чего кость не скрывается при одевании аддона. Не знаю где именно это правится в ТЧ, но в ЗП это можно (кажется) поправить в функции player_hud.cpp - void attachable_hud_item::set_bone_visible() Надо убрать проверку видимости кости if(bVisibleNow!=bVisibility) и тогда всё вроде-бы работает. Спасибо, аналогию я понял. в ТЧ это просто немного размазано по другим местам... Уважаемый Shoкer, вопрос нуба, ибо плохо пока понимаю идеологию работы вьюпоинтов - а можно ли подход с отдельным viewpoint использовать в принципе для отдельного рисования прицела, не накладывая эффектов, шейдеров и так далее. т.е. рисовать текстуру прицела отдельно, а не поверх худа, как сейчас это например в ТЧ происходит... ну не знаю как еще объяснить... наверное видели как в модах добавляют эффект худа костюма в виде текстуры для CustomStatic на главном худе . Вот прицел рисуется "перед" этим худом, с помощью viewpoint можно ли будет отрисовать прицел "за" этим худом? Сообщение отредактировал Winsor - 29.08.2017, 12:30 |
 
|
|
30.08.2017, 00:43
Сообщение
#2686
|
|
Кандидат Игровых Наук Репутация: 2153 Группа: Участник Сообщений: 3488 Награды: 4 Регистрация: 27.07.2009 |
Вьюпорты к этому никакого отношения не имеют. Чтобы реализовать что ты хочешь - достаточно подменять модель оружия на другую во время прицеливания. Как например было сделано
В ЗП, когда ещё не было движка, можно было у оружия в CHudItem на ходу заменить содержимое hud_sect на название любой худовой секции - и она мгновенно загружалась у оружия. В ТЧ механизм скорее всего другой, да и с движком можно сделать всё по человечески. К слову в Battlefield 3 \ 4 закрытая оптика технически реализована именно по такому принципу. -------------------- Мне просто нравятся синие буквы под сообщением.
|
 
|
|
30.08.2017, 04:34
Сообщение
#2687
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
Он скорее всего имеет в виду, чтобы текстура прицела накладывалась вместе с текстурой худа от маски, чтобы при прицеливании через текстурный прицел был виден эффект загрязнения маски и остальное.
|
 
|
|
31.08.2017, 02:02
Сообщение
#2688
|
|
Кандидат Игровых Наук Репутация: 2153 Группа: Участник Сообщений: 3488 Награды: 4 Регистрация: 27.07.2009 |
Он скорее всего имеет в виду, чтобы текстура прицела накладывалась вместе с текстурой худа от маски, чтобы при прицеливании через текстурный прицел был виден эффект загрязнения маски и остальное. Ну тут ещё проще. Все UI-окна рисуются на экране по очереди. Нужно найти в движке где регулируется очередь и сделать так чтобы маска на лице рисовалась перед\после прицела. Вообщем это совсем другая тема. Как вариант по аналогии с 3D-прицелом выше можно просто сделать чёрный квадрат с текстурой прицела и заменять худ им. Т.к это 3D-модель, то весь UI будет поверх неё. ==================================================== Насколько я помню, он падал и с Код self.sleep_mb:SetAutoDelete(true) А вот такое не пробовал: Код self.sleep_mb.SetAutoDelete(true) Вообщем да, там сразу две (три) проблемы: 1) В самом lua-скрипте синтаксическая ошибка (опечатка с двойным self) 2) Если её исправить, то начнёт вываливаться в другом месте с логом: Лог Код FATAL ERROR [error] expression : !m_error_code [error] Function : raii_guard::~raii_guard [error] File : script_engine.cpp [error] Line : 570 [LUA][Error]: No matching overload found, candidates: void <unknown>(vector2&,custom [float]) Passed arguments [2]: userdata (vector2&), number (361) stack traceback: [C]: at 0x045f1d47 [C]: in function '__newindex' ... call of pripyat\gamedata\scripts\ui_sleep_dialog.script:74: in function 'Initialize' ... call of pripyat\gamedata\scripts\ui_sleep_dialog.script:94: in function 'TestAndShow' ... call of pripyat\gamedata\scripts\ui_sleep_dialog.script:181: in function 'sleep' ...ker - call of pripyat\gamedata\scripts\xr_effects.script:2856: in function <...ker - call of pripyat\gamedata\scripts\xr_effects.script:2846> Причина вылета в этой строчке ui_sleep_dialog.script:74: pos.x = self.sleep_static:GetWndPos().x+self.sleep_static:GetWidth(), что равносильно pos.x = 321 + 40 --// 361 А точнее (судя по всему) в LuaJit / LuaBind который почему-то пытается то-ли сложить vector2 с числом в этой строке, то-ли как то ещё криво воспринимает оператор + (хотя мне пока неясно причём он здесь, если мы присваиваем результат свойству .x а не самому vector2). Я также заметил что такой код стал приводить к вылету: local pos = vector2():set(123, 456); tostring(pos); Раньше бы tostring вернул userdata:, скорее всего класс vector2() экспортирован не правильно, либо проблема гораздо глубже. Продолжу разбираться уже завтра, возможно даже я где-то что-то сломал. 3) В догонку - в текущем Open XRay опять поломан вывод лога (не выводится stack traceback). Я его чинил, но в последующем туда прокралась опечатка: Впрочем сейчас заметил что там ещё есть просторы по его улучшению. Попробую на днях исправить, но не уверен что в OpenXRay остался хоть кто-то из владельцев, способный принять pull request. - - - - - - - - - - - - - - - - - - - - - - - - - - - - И меня ещё волнует (бомбит) что применение автоматического форматирования кода в OpenXRay (в ещё более ранних коммитах) привело к такой "красоте" в некоторых местах: Хотя в целом авто-форматирование - вещь хорошая, но настроено и применено оно было совершенно бездумно -__- Теперь даже нельзя diff-ом сравнить правленый движок с оригинальным. Сообщение отредактировал Shoкer - 31.08.2017, 02:14 -------------------- Мне просто нравятся синие буквы под сообщением.
|
 
|
|
31.08.2017, 03:09
Сообщение
#2689
|
|
Продвинутый геймер Репутация: 36 Группа: Участник Сообщений: 267 Награды: 3 Регистрация: 09.03.2013 |
Shoкer, по PR: из активных там остался Андрей Бояршин, он не указан на странице OpenXRay, но права у него есть. Думаю, надо поговорить с nitrocaster, насчёт этого.
Печалька Armada651 вообще удалил себя из списка участников OpenXRay 3) ... Блин, и, ведь, такие опечатки могли быть не одной штукой.. А на что влияет отсутствие и присутствие точки в def? По авто-формату: А если попробовать при сравнении игнорировать whitespace? Немного, но облегчает.. Я когда импортировал себе правки Ты, помнится, где-то спрашивал расширение, которое сворачивало бы все диффы на гитхабе, чтобы удобнее было. Нашёл что-нибудь? Сообщение отредактировал Xottab_DUTY - 31.08.2017, 03:12 -------------------- OpenXRay – Ориентир на новое, с памятью о старом. © Collector
|
 
|
|
31.08.2017, 11:25
Сообщение
#2690
|
|
Почти Игроман Репутация: 187 Группа: Участник Сообщений: 647 Награды: 4 Регистрация: 05.05.2007 |
3) ... Блин, и, ведь, такие опечатки могли быть не одной штукой.. А на что влияет отсутствие и присутствие точки в def? То, что с точкой объявляет методы и пр. класса class_<profile_timer_script>("profile_timer"), а то что без точки глобальные функции. Технически там всё правильно, проблема в форматировании. |
 
|
|
31.08.2017, 13:01
Сообщение
#2691
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
надо поговорить с nitrocaster Если человек завязал со сталкиром, не стоит его обратно тянуть. P.S. Не дождался обновления шапки от Тени, залез сам. Сообщение отредактировал Forser - 31.08.2017, 13:10 -------------------- В армии по 01.07.2020. |
 
|
|
31.08.2017, 14:11
Сообщение
#2692
|
|
Продвинутый геймер Репутация: 36 Группа: Участник Сообщений: 267 Награды: 3 Регистрация: 09.03.2013 |
saas, вот оно что.. Спасибо, буду знать.. А про опечатку, это я имел ввиду то, что после автоформатирования появился неожиданный return там, где он не должен быть.
Просто не разделил расстоянием про точку и про опечатку Forser, да я не к тому, чтобы его обратно тянуть, а чтобы согласовать изменения в репозитории. Там, кстати, в репозитории Шокера появились изменения. Может, тоже добавить в список? Сообщение отредактировал Xottab_DUTY - 31.08.2017, 14:33 -------------------- OpenXRay – Ориентир на новое, с памятью о старом. © Collector
|
 
|
|
31.08.2017, 17:50
Сообщение
#2693
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
Xottab_DUTY, можно.
Кидайте линки, пока Женя меня е покарал. -------------------- В армии по 01.07.2020. |
 
|
|
31.08.2017, 18:35
Сообщение
#2694
|
|
Опытный Геймер Репутация: 3 Группа: Участник Сообщений: 150 Награды: 3 Регистрация: 16.02.2014 |
Добавляю в движок новый инвентарный объект, как говорится по образу и подобию:
В хедере класса (NewInvObject.h): Код #pragma once в реализации (NewInvObject.cpp):#include "inventory_item_object.h" #include "script_export_space.h" class CNewInvObject : public CInventoryItemObject { ....... ляляля ....... DECLARE_SCRIPT_REGISTER_FUNCTION }; add_to_type_list(CNewInvObject) #undef script_type_list #define script_type_list save_type_list(CNewInvObject) Код using namespace luabind; При попытке скомпилить xrGame ошибка:#pragma optimize("s",on) void CNewInvObject::script_register(lua_State *L) { module(L) [ class_<CNewInvObject, CGameObject>("CNewInvObject") <-сюда ошибку показывает .def(constructor<>()) ]; } 1>NewInvObject.cpp(78): error C2065: class_: необъявленный идентификатор 1>NewInvObject.cpp(78): error C2275: CNewInvObject: недопустимое использование этого типа в качестве выражения 1>NewInvObject.cpp(79): error C2228: выражение слева от ".def" должно представлять класс, структуру или объединение 1> тип: const char [13] 1>NewInvObject.cpp(79): error C2065: constructor: необъявленный идентификатор 1>NewInvObject.cpp(79): error C2059: синтаксическая ошибка: > Естественно все подсматривал, что где и как, у существующих объектов\классов. Подскажите, чего я забыл и где ? |
 
|
|
31.08.2017, 19:39
Сообщение
#2695
|
|
Почти Игроман Репутация: 59 Группа: Участник Сообщений: 629 Награды: 1 Регистрация: 13.12.2016 |
pch_script.h надо в cpp включать.
|
 
|
|
31.08.2017, 20:21
Сообщение
#2696
|
|
Опытный Геймер Репутация: 3 Группа: Участник Сообщений: 150 Награды: 3 Регистрация: 16.02.2014 |
Цитата pch_script.h надо в cpp включать. Спасибо, с компиляцией помогло. Чет я про pch_script.h подумал, что он уже включен... Но после сборки xrGame игра стала падать с таким логом: Цитата [error]Expression : fatal error Вроде все что нужно прописал: CLSID для нового класса, в файлах xrServer_Objects_ALife_Items.h\cpp, в CObjectFactory::register_classes, в class_registrator.script, в se_item.script. Что то еще забыл ?
[error]Function : CObjectItemSingle<class game_cl_ArtefactHunt,1>::server_object [error]File : f:\xray2013\xr_src\xr_3da\xrgame\object_item_single_inline.h [error]Line : 54 [error]Description : <no expression> [error]Arguments : Cannot instantiate server object, because server class is not declared! Сообщение отредактировал AndreySol - 31.08.2017, 20:22 |
 
|
|
31.08.2017, 20:44
Сообщение
#2697
|
|
Продвинутый геймер Репутация: 36 Группа: Участник Сообщений: 267 Награды: 3 Регистрация: 09.03.2013 |
Forser, вот
Добавил. По поводу скобок, там же вторая ссылка. Пускай лучше так будет. [ForserX] Сообщение отредактировал Forser - 31.08.2017, 21:51 -------------------- OpenXRay – Ориентир на новое, с памятью о старом. © Collector
|
 
|
|
31.08.2017, 21:28
Сообщение
#2698
|
|
Продвинутый геймер Репутация: 22 Группа: Участник Сообщений: 234 Награды: 3 Регистрация: 27.10.2010 |
AndreySol,
Серверный класс не добавил |
 
|
|
31.08.2017, 22:18
Сообщение
#2699
|
|
Опытный Геймер Репутация: 3 Группа: Участник Сообщений: 150 Награды: 3 Регистрация: 16.02.2014 |
-StalkMen-, это об этом ?
xrServer_Objects_ALife_Items.h Код SERVER_ENTITY_DECLARE_BEGIN(CSE_ALifeItemNewInvObject, CSE_ALifeItem) u32 m_ef_detector_type; CSE_ALifeItemNewInvObject(LPCSTR caSection); virtual ~CSE_ALifeItemNewInvObject(); SERVER_ENTITY_DECLARE_END add_to_type_list(CSE_ALifeItemNewInvObject) #define script_type_list save_type_list(CSE_ALifeItemNewInvObject) и вся остальная реализация в xrServer_Objects_ALife_Items.cpp то же прописано. В object_factory_register.cpp Код CObjectFactory::register_classes() ... ADD(CNewInvObject, CSE_ALifeItemNewInvObject, CLSID_DEVICE_NEWOBJECT, "device_new_object"); ... В xrServer_Objects_ALife_Items_script2.cpp Код void CSE_ALifeItemNewInvObject::script_register(lua_State *L) { module(L)[ luabind_class_item1( CSE_ALifeItemNewInvObject, "cse_alife_item_new_obj", CSE_ALifeItem ) ]; } Чего еще ему(движку) надо ? Сообщение отредактировал AndreySol - 31.08.2017, 22:18 |
 
|
|
31.08.2017, 22:27
Сообщение
#2700
|
|
Почти Игроман Репутация: 91 Группа: Модератор Сообщений: 516 Награды: 4 Регистрация: 19.07.2015 |
x64 Edition. 55-75 FPS. Годно. Сообщение отредактировал Forser - 31.08.2017, 22:33 -------------------- В армии по 01.07.2020. |
 
|
|
31.08.2017, 22:33
Сообщение
#2701
|
|
Продвинутый геймер Репутация: 22 Группа: Участник Сообщений: 234 Награды: 3 Регистрация: 27.10.2010 |
AndreySol,
Хм, вроде не в новом классе дело, ругается же вообще на game_cl_ArtefactHunt. Вообще странно, зачем вызвался его "конструктор серверного класса". Отладчик в руки и вперёд. |
 
|
|
Текстовая версия | Сейчас: 29.03.2024, 11:55 |