Winsor 178 Опубликовано 23 Сентября 2015 Подскажите пожалуйста, какой класс в движке отвечает за расчет повреждений при стрельбе, взрыве, etc. нашел SHit но в нем только "хранение". хочу увидеть формулу расчета в зависимости от hit_power,frag_hit и других параметров... Благодарю! Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 27 Января 2016 Подскажите пожалуйста, существует ли чистые (без каких либо правок) исходники ТЧ 1.0006, адаптированные под VS2012 (VS2010)? Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 28 Января 2016 Уважаемые знающие, подскажите пожалуйста Пытаюсь собрать 1.0007 rc1 в vs2012, не собирается xrRender_R* с такими ошибками: 1>------ Перестроение всех файлов начато: проект: xrRender_R2, Конфигурация: Mixed Win32 ------ 1> stdafx.cpp 1>S:\xrCore\fixedmap.h(87): error C2947: требуется ">" для завершения список аргументов шаблона, обнаружено "<" 1> S:\xrCore\fixedmap.h(247): см. ссылку на создание экземпляров класса шаблон при компиляции "FixedMAP<K,T,allocator>" 1>S:\xrCore\fixedmap.h(87): error C2143: синтаксическая ошибка: отсутствие ")" перед ">" 1>S:\xrCore\fixedmap.h(87): error C2059: синтаксическая ошибка: > 1>S:\xrCore\fixedmap.h(87): error C2143: синтаксическая ошибка: отсутствие ";" перед ">" 1>S:\xrCore\fixedmap.h(87): error C2059: синтаксическая ошибка: ) 1>S:\xrCore\fixedmap.h(88): error C2334: непредвиденные лексемы перед "{"; пропуск вероятного тела функции 1>S:\xrCore\fixedmap.h(93): error C2947: требуется ">" для завершения список аргументов шаблона, обнаружено "<" 1>S:\xrCore\fixedmap.h(93): error C2143: синтаксическая ошибка: отсутствие ")" перед ">" 1>S:\xrCore\fixedmap.h(93): error C2059: синтаксическая ошибка: > 1>S:\xrCore\fixedmap.h(93): error C2143: синтаксическая ошибка: отсутствие ";" перед ">" 1>S:\xrCore\fixedmap.h(93): error C2059: синтаксическая ошибка: ) 1>S:\xrCore\fixedmap.h(94): error C2334: непредвиденные лексемы перед "{"; пропуск вероятного тела функции 1>S:\xrCore\fixedmap.h(99): error C2947: требуется ">" для завершения список аргументов шаблона, обнаружено "<" 1>S:\xrCore\fixedmap.h(99): error C2143: синтаксическая ошибка: отсутствие "," перед "*" 1>S:\xrCore\fixedmap.h(105): error C2947: требуется ">" для завершения список аргументов шаблона, обнаружено "<" 1>S:\xrCore\fixedmap.h(105): error C2143: синтаксическая ошибка: отсутствие "," перед "*" 1>S:\xrCore\fixedmap.h(216): error C2947: требуется ">" для завершения список аргументов шаблона, обнаружено "<" 1>S:\xrCore\fixedmap.h(216): error C2143: синтаксическая ошибка: отсутствие ")" перед ">" 1>S:\xrCore\fixedmap.h(216): error C2059: синтаксическая ошибка: > 1>S:\xrCore\fixedmap.h(216): error C2143: синтаксическая ошибка: отсутствие ";" перед ">" 1>S:\xrCore\fixedmap.h(216): error C2059: синтаксическая ошибка: ) 1>S:\xrCore\fixedmap.h(217): error C2334: непредвиденные лексемы перед "{"; пропуск вероятного тела функции 1>S:\xrCore\fixedmap.h(218): error C2947: требуется ">" для завершения список аргументов шаблона, обнаружено "<" 1>S:\xrCore\fixedmap.h(218): error C2143: синтаксическая ошибка: отсутствие "," перед "*" 1>S:\xrCore\fixedmap.h(220): error C2947: требуется ">" для завершения список аргументов шаблона, обнаружено "<" 1>S:\xrCore\fixedmap.h(220): error C2143: синтаксическая ошибка: отсутствие ")" перед ">" 1>S:\xrCore\fixedmap.h(220): error C2059: синтаксическая ошибка: > 1>S:\xrCore\fixedmap.h(220): error C2143: синтаксическая ошибка: отсутствие ";" перед ">" 1>S:\xrCore\fixedmap.h(220): error C2059: синтаксическая ошибка: ) 1>S:\xrCore\fixedmap.h(221): error C2334: непредвиденные лексемы перед "{"; пропуск вероятного тела функции 1>S:\xrCore\fixedmap.h(222): error C2947: требуется ">" для завершения список аргументов шаблона, обнаружено "<" 1>S:\xrCore\fixedmap.h(222): error C2143: синтаксическая ошибка: отсутствие "," перед "*" 1>S:\xrCore\fixedmap.h(224): error C2947: требуется ">" для завершения список аргументов шаблона, обнаружено "<" 1>S:\xrCore\fixedmap.h(224): error C2143: синтаксическая ошибка: отсутствие ")" перед ">" 1>S:\xrCore\fixedmap.h(224): error C2059: синтаксическая ошибка: > 1>S:\xrCore\fixedmap.h(224): error C2143: синтаксическая ошибка: отсутствие ";" перед ">" 1>S:\xrCore\fixedmap.h(224): error C2059: синтаксическая ошибка: ) 1>S:\xrCore\fixedmap.h(225): error C2334: непредвиденные лексемы перед "{"; пропуск вероятного тела функции 1>S:\xrCore\fixedmap.h(229): error C2947: требуется ">" для завершения список аргументов шаблона, обнаружено "<" 1>S:\xrCore\fixedmap.h(229): error C2143: синтаксическая ошибка: отсутствие "," перед "*" 1>S:\xrCore\fixedmap.h(236): error C2947: требуется ">" для завершения список аргументов шаблона, обнаружено "<" 1>S:\xrCore\fixedmap.h(236): error C2628: недопустимый "xr_vector<void*,allocator::helper>" с последующим "void" (возможно, отсутствует ";") 1>S:\xrCore\fixedmap.h(236): error C2143: синтаксическая ошибка: отсутствие ")" перед ">" 1>S:\xrCore\fixedmap.h(236): error C2059: синтаксическая ошибка: > 1>S:\xrCore\fixedmap.h(236): error C2143: синтаксическая ошибка: отсутствие ";" перед ">" 1>S:\xrCore\fixedmap.h(236): error C2059: синтаксическая ошибка: ) 1>S:\xrCore\fixedmap.h(237): error C2334: непредвиденные лексемы перед "{"; пропуск вероятного тела функции ========== Перестроение всех: успешно: 0, с ошибками: 1, пропущено: 0 ========== Build Summary ------------- 00:06.914 - Failed - Mixed Win32 - xrRender_R2\xrRender_R2.vcxproj Total build time: 00:06.914 ========== Rebuild All: 0 succeeded or up-to-date, 1 failed, 30 skipped, Completed at 28.01.2016 10:41:36 ========== Список включенных каталогов: S:\SDK\boost_1_30_0;S:\SDK\dx9sdk\dx9sdk\include;S:\xrCore;$(IncludePath) Чего не хватает? Благодарю за разъяснения. Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 29 Января 2016 Уважаемые, собрал 1.0007 rc1. Ресурсы от 1.0006 При запуске игры вылет * Detected CPU: GenuineIntel Pentium-III, F6/M7/S6, 2704.00 mhz, 40-clk 'rdtsc' * CPU Features: RDTSC, MMX, SSE, SSE2 Initializing File System... using fs-ltx fsgame.ltx FS: 57393 files cached, 7975Kb memory used. Init FileSystem 1.825350 sec 'xrCore' build 6202, Jan 28 2016 CRT heap 0x00460000 Process heap 0x00460000 Initializing Engine... Executing config-script "user.ltx"... [d:\games\stalker_soch\appdata\user.ltx] successfully loaded. Starting INPUT device... Loading DLL: xrRender_R2.dll Loading DLL: xrGame.dll * [win32]: free[4020396 K], reserved[56924 K], committed[116920 K] * [ D3D ]: textures[0 K] * [x-ray]: crt heap[21041 K], process heap[21041 K] * [x-ray]: economy: strings[12019 K], smem[0 K] * [x-ray]: file mapping: memory[0 K], count[0] * active file mappings (0): Executing config-script "d:\games\stalker_soch\gamedata\config\default_controls.ltx"... ! cant convert dik_name for dik[144], prop=[ [d:\games\stalker_soch\gamedata\config\default_controls.ltx] successfully loaded. Executing config-script "user.ltx"... Executing config-script "d:\games\stalker_soch\gamedata\config\rspec_minimum.ltx"... [d:\games\stalker_soch\gamedata\config\rspec_minimum.ltx] successfully loaded. Executing config-script "d:\games\stalker_soch\gamedata\config\default_controls.ltx"... [d:\games\stalker_soch\gamedata\config\default_controls.ltx] successfully loaded. [d:\games\stalker_soch\appdata\user.ltx] successfully loaded. SOUND: OpenAL: enumerate devices... SOUND: OpenAL: EnumerationExtension Present devices Generic Hardware SOUND: OpenAL: system default SndDevice name is Generic Hardware SOUND: OpenAL: default SndDevice name set to Generic Software SOUND: OpenAL: All available devices: 1. Generic Software, Spec Version 1.1 (default) 2. Generic Software, Spec Version 1.1 (default) SOUND: OpenAL: SelectBestDevice is Generic Software 1.1 SOUND: OpenAL: Required device: Generic Software. Created device: Generic Software. * sound: EAX 2.0 extension: absent * sound: EAX 2.0 deferred: absent * sound : cache: 65538 kb, 7609 lines, 8820 bpl Starting RENDER device... * GPU [vendor:10DE]-[device:DE1]: NVIDIA GeForce GT 430 * GPU driver: 9.18.13.3523 Available video modes[17]: [800x600] [1024x768] [1152x864] [1176x664] [1280x720] [1280x768] [1280x800] [1280x960] [1280x1024] [1360x768] [1366x768] [1600x900] [1600x1024] [1680x1050] [1768x992] [1920x1080] [1440x900] * CREATE: DeviceREF: 1 * Vertex Processor: PURE HARDWARE * Texture memory: 2758 M * DDI-level: 9.0 * GPU shading: vs(fffe0300/3.0/30), ps(ffff0300/3.0/30) * GPU vertex cache: unrecognized, 16 * DVB created: 1536K * DIB created: 512K stack trace: 0023:0018A260 xrLua.dll, luaF_findupval(), s:\xrlua\src\lfunc.c, 61 Направьте новичка в правильное русло размышлений Благодарю за информацию! Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 1 Февраля 2016 Уважаемые знающие. Закралось подозрение что я что-то делаю не так при алгоритме размещения скомпилированного x-ray 1.0007 rc1. Помогите разобраться, что именно не так: игра установлена в D:\Games\stalker_soch\ 1) компилирую исходники, результат в X:\binaries\ 2) копирую dll и exe в чистую папку D:\Games\stalker_soch\bin 3) d3dx9_31.dll d3dx9_34.dlldbghelp.dlleax.dllMicrosoft.VC80.CRT.manifestmsvcp71.dllmsvcp80.dllmsvcr71.dllmsvcr80.dllprotect.dllprotect.drvprotect.exestlport.5.0.dllstlport.5.0.dll.manifestwrap_oal.dll 4) запускаю запускаю с установленной папки с игрой D:\Games\stalker_soch\bin\XR_3DA.exe 5) вылет 0023:6C0EA260 xrLua.dll, luaF_findupval(), s:\xrlua\src\lfunc.c, 61 Благодарю! Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 1 Февраля 2016 Хотя в твоём случае всего исключать нельзя - а если бы был 1.0006 - порядок действий правильный? или я что-то не так делаю на каком либо этапе? Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 8 Февраля 2016 Возможно патчили не ту версию, для которой сделан патч? Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 10 Февраля 2016 Уважаемые, очередное отличие непонятное 1.0006 от 1.0007 при чтении строковых ресурсов 1.0007 получает вылет при чтении строки больше 4096 байта [error]Expression : HEADER+s_len_with_zero < 4096 [error]Function : str_container::dock [error]File : xrstring.cpp [error]Line : 24 1) зачем ПЫСы придумали str_container (crc зачем то....) и хранят в нем строковые данные, прочитанные из xml? 2) кто как обходил эту проблему? Притом что 1.0006 эти же строки вычитывал и выводил прекрасно. Речь идет, например, о дневниках контроллера из НС. Благодарю за разъяснения! Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 10 Февраля 2016 (изменено) ТЧ 1.0006 + НС есть такой конфиг например - arc_string_table.xml - там дневники контролера, они больше 4к... ~7k по длинне. каждый. Изменено 10 Февраля 2016 пользователем Winsor Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 11 Февраля 2016 Разумеется. Более того, во всех версиях ТЧ так. Хм. к сожалению - исходников 1.0006 не нашел,утверждать точно не могу. 1.0006 (предыдущий бинарник) эти же ресурсы читает и выводит в энциклопедию без проблем... в моем случае - макроновская адаптация движка 1.0006 (но там xrCore.dll не менялся), до этого был обычный 1.0006 - т.е. явно есть отличия в работе со строками. строки не дублировались в памяти использование dwCrc в движке есть только в менеджере управления shared memory - судя по всему для контроля за целостностью общих ресурсов. это понятно. я думал - это как то попроще сделано... и в Inventory.cpp ... Надо переводами строк текст отбивать. Это ж наркомания - текст в 4 Кб одним абзацем Хм. так там и отбивается. т.е. один блок в тегах <text></text> более 4к, разбитый на несколько абзацев переводами строки, вычитывается парсером одним куском. Просто так заккоментировать эту проверку нельзя, неизвестно к чему это приведет , слишком много где в игре используется буфер в 4к при работе со строками... Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 12 Февраля 2016 Страница недоступна, ну и способа сравнить адекватно нет xr_3da\xrGame\xrGameSpy\xrGameSpy_MainDefs.h\GAME_VERSION я могу написать что угодно кстати - а кто может знает - как действительно проверить, на основании каких исходников (какой версии) собран xr_3da? есть какие то ключевые особенности именно в 6? имена переменных, которые были только в нем, например... Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 15 Февраля 2016 писанине разработчиков X-Ray в плане версионирования их же движка - имелось в виду что данную строку я hex эдитором могу попробить и в бинарнике... не говоря уже про исходный код. Имелось в виду что данная переменная не есть 100% вариант правильности версии. Бредовый, однако, вопросец/ ну почему же... небольшое пример - в собранной dll (версия x) в экспорте есть функция, которую разработчики вырезали в следующей версии (x+1). Найдя у себя в экспортах эту функцию , я могу с определенной вероятность сказать что я использую версию x. вот о таком признаке я и спрашивал. Не говоря уже что например, те же символьные названия функций. и я не думаю что те люди, которые сейчас пересобирают движок, для того чтобы оставить о себе след в истории, сидят и переименовывают все подряд. Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 29 Февраля 2016 (изменено) Есть ли в 7 патче возможность заливки иконок инвентаря нужным цветом? Если репозитарий xp-dev - посмотрите все что касается #define INV_COLORIZE. Изменено 29 Февраля 2016 пользователем Winsor 1 Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 14 Апреля 2016 (изменено) Уважаемые, помогите разобраться...ТЧ 1.0007 + НС геймдата + debug конфигурация. [LUA] SCRIPT RUNTIME ERROR[LUA] 0 : [C] [C](-1) : [LUA] 1 : [C ] add_precondition[LUA] 2 : [Lua] ...es\stalker_soch\gamedata\scripts\xr_motivator.script(574) : addCommonPrecondition[LUA] 3 : [Lua] ...games\stalker_soch\gamedata\scripts\xrs_armor.script(2448) : add_to_binder[LUA] 4 : [Lua] ...\games\stalker_soch\gamedata\scripts\xr_logic.script(544) : assign_storage_and_bind[LUA] 5 : [Lua] ...games\stalker_soch\gamedata\scripts\xrs_armor.script(2461) : set_scheme[LUA] 6 : [Lua] d:\games\stalker_soch\gamedata\scripts\xrs_ai.script(56) : enable_schemes[LUA] 7 : [Lua] ...\games\stalker_soch\gamedata\scripts\xr_logic.script(360) : enable_generic_schemes[LUA] 8 : [Lua] ...\games\stalker_soch\gamedata\scripts\xr_logic.script(224) : configure_schemes[LUA] 9 : [Lua] ...\games\stalker_soch\gamedata\scripts\xr_gulag.script(867) : setup_logic[LUA] 10 : [Lua] ...\games\stalker_soch\gamedata\scripts\xr_gulag.script(384) : object_setup_online[LUA] 11 : [Lua] ...\games\stalker_soch\gamedata\scripts\xr_gulag.script(1212) : setup_gulag_and_logic_on_spawn[LUA] 12 : [Lua] ...es\stalker_soch\gamedata\scripts\xr_motivator.script(134) : [LUA] s:\xr_3da\xrgame\condition_state_inline.h(44) : "(I == m_conditions.end()) || ((*I).condition() != condition.condition()) Насколько я понял - в xr_motivator.addCommonPrecondition пытаются добавить евалуатор с condition , id которого уже было добавлено в список conditions ранее. По логике скрипта - эти эвалуаторы должны перекрывать существующие в этом списке, но в коде ни о каком перекрытии (переназначении) речь не идет. Я вообще такого функционала (замещение/перекрытие condition) не нашел в коде... Конечно, можно собрать с undef XRAY_EXCEPTIONS и undef DEBUG - ошибка пропадет, но список conditions будет расти постоянно. Насколько критично наличие дублей в этом списке и на каком принципе вообще работают эти conditions?Спасибо за любую информацию! Изменено 14 Апреля 2016 пользователем HellRatz Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 28 Апреля 2016 Уважаемые знающие, кто сталкивался с тем что движок не может высчитать для какого-либо рестриктора его границы? space_restriction_abstract_inline.h CSpaceRestrictionAbstract::border () m_border.empty()==true Это ошибки в all.spawn (неправильно выставлены координаты, например, или тип рестриктора) или на локации (LevelEditor-ом как то криво поставили рестриктор)? И может ли быть ситуация, когда у ретриктора действительно может не быть бордера? Благодарю за информацию. Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 6 Мая 2016 В СДК ставим на локации спавн-объект "спэйс-рестриктор", но забываем назначить ему шейп... Или в all.spawn'е, когда через uACDC его ковыряем. в том то и дело - объект в распакованном аллспавне имеет секцию shape... т.е. вроде как придраться не к чему. Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 12 Мая 2016 Дефицит - это, я так понял, те коэффициенты, что в ини-файле торговли прописываются, но по какому принципу берутся значения - не могу понять... Как минимум в 1.0007 TЧ дефицит не считается никак...вернее - он всегда равен 1. при этом с конфигов он может вычитываться. Насколько я понял - была идея реализовать некую динамику в ценообразовании в торговле. закончилось статическим списком "секция=коэф.дифицита". следующее урезание - и как результат - в торговле - он всегда 1. все формулы в trade2.cpp. 1 Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 13 Мая 2016 По моим наблюдениям - все в trade2.cpp. Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 16 Мая 2016 @editor46, судя по всему - пытаетесь запустить релизную сборку движка, которая расширенной информации не даст о ошибке. С данной проблемой сможет помочь отладочная версия. Скорее всего - проблема где то в геймдате, debug сборка даст более расширенную информацию - что именно не так. В Вашей ошибке всего навсего не смогла правильно освободиться память, выделенная для какой то строки. Поделиться этим сообщением Ссылка на сообщение
Winsor 178 Опубликовано 30 Мая 2016 (изменено) @tatarinrafa, небольшой пример работы с потоками (с++11). // thread_test.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <iostream> #include <cstdlib> #include <thread> #include <future> #include <limits> //Один цикл выполняется в уже идущем(главном) потоке где к "A" прибавляется 1 сто раз. //Второй цикл, в новом фоновом потоке, прибавляет 1 к "B" двести раз. //В конце обе переменные, в главном потоке, складываются(без багов, главный поток ждет завершения второго цикла). void secondLoop(std::promise<int> & p) { int B=0; for (; { B++; std::this_thread::sleep_for(std::chrono::milliseconds(10)); std::cout << "secondLoop running." <<std::endl; if (B>=200) break; } p.set_value(; std::cout << "secondLoop ending." <<std::endl; } int firstLoop() { int A=0; for (; { A++; std::this_thread::sleep_for(std::chrono::milliseconds(10)); std::cout << "firstLoop running." <<std::endl; if (A>=100) break; } std::cout << "firstLoop ending." <<std::endl; return A; } void PressEnterToContinue() { std::cout << "Press ENTER to continue... " << std::flush; std::cin.ignore( std::numeric_limits <std::streamsize> ::max(), '\n' ); } int _tmain(int argc, _TCHAR* argv[]) { std::promise<int> p; auto future = p.get_future(); std::thread threadRun(&secondLoop, std::move(p)); int result1,result2; result1=firstLoop(); threadRun.join(); result2=future.get(); std::cout << "results: " << result1 + result2 << std::endl; PressEnterToContinue(); return 0; } отдельные функции сделаны для наглядности, для этого же добавлены задержки в циклах. Само собой - пример чрезвычайно прост и не учитывает кучи вариантов, как блокировки, исключения. также, можно использовать std::async вместо std::future. Если с потока нет необходимости возвращать результат - пример еще упрощается Изменено 30 Мая 2016 пользователем Winsor 1 Поделиться этим сообщением Ссылка на сообщение