Kondr48 314 Опубликовано 4 Марта 2017 Поделиться Опубликовано 4 Марта 2017 (изменено) Реально ли взять папку Бин и пропатчить необходимые файлы, просто сохранив существующие и добавить и добавлять новые которые мне будут нужны Скорее нет чем да, по крайней мере существующие патчеры не рассчитаны на 7, его же из исходников собирали. --- Как можно получить позицию кости в худовой модели по ее имени или ИД? В движке, ТЧ. --- Нашел вот такой вариант: Fvector CalcBonePosition(CKinematics *K, const Fvector &pos, LPCSTR bone_name) { u16 bone_id; if (xr_strlen(bone_name)) bone_id = K->LL_BoneID(bone_name); else bone_id = K->LL_GetBoneRoot(); Fmatrix matrix; Fmatrix XF; XF.identity(); XF.translate_over (pos); matrix.mul_43 (XF, K->LL_GetTransform(bone_id)); return (matrix.c); } Только не могу понять: какую позицию надо в него передавать? Ну, вернее позицию ЧЕГО? Изменено 4 Марта 2017 пользователем Kondr48 Ссылка на комментарий
UriZzz 1 004 Опубликовано 6 Марта 2017 Поделиться Опубликовано 6 Марта 2017 Привет, скажите пожалуйста - за что отвечает ui_mm_opt_video_adv.script? Просто вот такая ошибка выскочила https://yadi.sk/i/AB2bK_CP3F6mMW, я думаю что то связано с блудмарками, но почему не с того не с сего такое появилось. Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
macron 1 831 Опубликовано 6 Марта 2017 Поделиться Опубликовано 6 Марта 2017 (изменено) Скрипт ui_mm_opt_video_adv.script обычно в паре с config\ui\ui_mm_opt.xml отвечает за пункты в расширенных видеоопциях (там, где галочки ставятся). Скрипт обратился в xml и не нашел там секции cap_bloodmarks. Изменено 6 Марта 2017 пользователем macron 1 Ссылка на комментарий
UnLoaded 313 Опубликовано 11 Марта 2017 Поделиться Опубликовано 11 Марта 2017 Такой вопрос: что использовать в исходниках для работы с строковыми значениями(типа lua-шных string.find, string.sub) ? Что-то стандартное из С++\WinAPI или есть что-то движковое ? Ссылка на комментарий
User_X.A.R26 261 Опубликовано 11 Марта 2017 Поделиться Опубликовано 11 Марта 2017 (изменено) @UnLoaded, есть различные функции из стандартной библиотеки C, C++, функции WinAPI Изменено 11 Марта 2017 пользователем User_X.A.R26 Ссылка на комментарий
mortan 143 Опубликовано 11 Марта 2017 Поделиться Опубликовано 11 Марта 2017 @UnLoaded, хочу сразу заметить что многие из этих функций "переписаны" на манер ПЫС: вместо string что-то вроде xr_string и так далее... Поэтому если студия говорит что такой функции нету - попробуй с этой приставкой поколдовать) 1 Ссылка на комментарий
UnLoaded 313 Опубликовано 11 Марта 2017 Поделиться Опубликовано 11 Марта 2017 (изменено) @User_X.A.R26 Так я же в курсе, просто в двигле разрабы для всего Сишного и WinAPIшного наделали оберток, ну и Lua присутствует. Вот и интересно, что правильней\лучше\быстрее будет ? Такое дело - лыжи по асфальту не едут, помогите смазать или снять... Собственно, у CGameTaskManager есть ф-ция GiveGameTaskToActor(CGameTask* t, u32 timeToComplete, bool bCheckExisting), назначение понятно. Сделал в теле ф-ции вывод инфо в лог: CGameTask* CGameTaskManager::GiveGameTaskToActor(CGameTask* t, u32 timeToComplete, bool bCheckExisting) { if(bCheckExisting && HasGameTask(t->m_ID)) return NULL; m_flags.set(eChanged, TRUE); GameTasks().push_back(SGameTaskKey(t->m_ID)); GameTasks().back().game_task = t; t->m_ReceiveTime = Level().GetGameTime(); t->m_TimeToComplete = t->m_ReceiveTime + timeToComplete; Msg("CGameTaskManager::GiveGameTaskToActor - timeToComplete: %u", timeToComplete); Msg("CGameTaskManager::GiveGameTaskToActor - m_ReceiveTime: %u + timeToComplete: %u = m_TimeToComplete: %u", t->m_ReceiveTime, timeToComplete, t->m_TimeToComplete); std::sort(GameTasks().begin(), GameTasks().end(), task_prio_pred); ..... ..... ну и запустил задание обычным образом, через тег в инфо-порции. Получил в логе такое: CGameTaskManager::GiveGameTaskToActor - timeToComplete: 0 CGameTaskManager::GiveGameTaskToActor - m_ReceiveTime: 507271692 + timeToComplete: 14778 = m_TimeToComplete: 0 далее, запустил это-же задание, но из скрипта: local new_task = CGameTask() new_task:load("ля-ля-ля-ля") db.actor:give_task(new_task, 3600000, true) В логе получил такое: CGameTaskManager::GiveGameTaskToActor - timeToComplete: 3600000 CGameTaskManager::GiveGameTaskToActor - m_ReceiveTime: 507471972 + timeToComplete: 14778 = m_TimeToComplete: 3600000 Вот смотрю на лог и на код в ф-ции... Где подвох ? Еще вопрос. С помощью методов CInifile можно читать всякое из конфигов. Мне надо прочитать родительскую секцию, к примеру для аномалии: [zone_witches_galantine_weak]:zone_witches_galantine <- вот, это. Кто нибудь знает способ, или куда хоть копать ? Изменено 11 Марта 2017 пользователем UnLoaded 1 Ссылка на комментарий
Kondr48 314 Опубликовано 13 Марта 2017 Поделиться Опубликовано 13 Марта 2017 (изменено) Кто нибудь знает способ, или куда хоть копать ? Ну разве что сделать параметр и писать дублировать в него родительскую секцию. Костыльно слегка, однако самый легкий и простой способ. Изменено 13 Марта 2017 пользователем Kondr48 Ссылка на комментарий
UnLoaded 313 Опубликовано 13 Марта 2017 Поделиться Опубликовано 13 Марта 2017 сделать параметр и писать дублировать в него родительскую секцию Я, за ! Вопрос - как эту родительскую секцию получить ? Ссылка на комментарий
Kondr48 314 Опубликовано 13 Марта 2017 Поделиться Опубликовано 13 Марта 2017 UnLoaded, я имел ввиду задать его изначально в ручную. В конфиг. Ну или же ловить в движке момент, где идет чтение родительских секций и там присваивать своей переменной значение родительской. Первый вариант проще Ссылка на комментарий
UnLoaded 313 Опубликовано 13 Марта 2017 Поделиться Опубликовано 13 Марта 2017 Первый вариант прощеНе думаю...Насчет "..ловить в движке..." - я опять за! Но вот именно в этом и вопрос - где это ловить ? В каком месте кода CInifile ? Ссылка на комментарий
WinCap 316 Опубликовано 14 Марта 2017 Поделиться Опубликовано 14 Марта 2017 В каком месте кода CInifile ? Вот в этом: void CInifile::Load(IReader* F, LPCSTR path ... { . . . if (0!=inherited_names) { VERIFY2 (m_flags.test(eReadOnly),"Allow for readonly mode only."); inherited_names += 2; // в inherited_names содержится строка с родительскими секциями . . . } . . . } S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
Red1 1 Опубликовано 16 Марта 2017 Поделиться Опубликовано 16 Марта 2017 Ребят, кто может кинуть патч 1.0007 rc1?Ну там с лучами, все дела) Ссылка на комментарий
Kondr48 314 Опубликовано 17 Марта 2017 Поделиться Опубликовано 17 Марта 2017 (изменено) Ну там с лучами, все дела) В свободном доступе 7 патча с лучами по-моему нет. Изменено 17 Марта 2017 пользователем Kondr48 Ссылка на комментарий
UnLoaded 313 Опубликовано 19 Марта 2017 Поделиться Опубликовано 19 Марта 2017 Помощь нужна: как сделать массив(таблицу) произвольного размера? Типа такого: строка = строка строка = строка строка = строка .... .... Обычные массивы С++ видимо не прокатят, надо что-то типа vector? В движке есть обертка - xr_vector, вот только не пойму как эти векторы использовать. Может кто подкинуть пример, как сделать строковый массив типа того, что я выше показал ? Ссылка на комментарий
drksnc 14 Опубликовано 19 Марта 2017 Поделиться Опубликовано 19 Марта 2017 Привет. Visual Studio 2013, X-ray 1.6, качал с какого-то репо, сейчас уже не упомню с какого именно. Не могу скомпилировать xrGame. Debug и Mixed на первом скриншоте, Release - на втором. В Realese сборка идёт не смотря на ошибки, но валится позже, ссылаясь на отсутствие xrCore.lib. Опыт работы со студией у меня почти нулевой, но предполагаю, что дело в каких-то путях. Прошу помощи. Ссылка на комментарий
abramcumner 1 146 Опубликовано 19 Марта 2017 Поделиться Опубликовано 19 Марта 2017 (изменено) @drksnc, неудачный репо. Скорее всего Debug и Mixed конфигурации не настроены. В релизе ошибки intellisense - они не в счет. Покажи ошибки сборки. но валится позже, ссылаясь на отсутствие xrCore.libПопробуй сначала собрать xrCore, потом xrGame. Может к репо прилагалась инструкция по сборке? Почему не хочешь взять OpenXray? Изменено 19 Марта 2017 пользователем abramcumner 1 Ссылка на комментарий
drksnc 14 Опубликовано 19 Марта 2017 Поделиться Опубликовано 19 Марта 2017 Попробуй сначала собрать xrCore, потом xrGame. Всё получилось, спасибо. OpenXray посмотрю. Ссылка на комментарий
Winsor 177 Опубликовано 20 Марта 2017 Поделиться Опубликовано 20 Марта 2017 Помощь нужна: как сделать массив(таблицу) произвольного размера? Типа такого: строка = строка строка = строка строка = строкаxr_vector не подойдет - это аналог std::vector. для Вашей задачи необходимо использовать std::map - в xray аналог - xr_map. для ключей и значений можно использовать как shared_str (память выделяется один раз и храниться до тех пор пока есть хоть одна ссылка на эту строку) так и xr_string (аналог std::string). Ссылка на комментарий
UnLoaded 313 Опубликовано 20 Марта 2017 Поделиться Опубликовано 20 Марта 2017 для Вашей задачи необходимо использовать std::map - в xray аналог - xr_map Мне уже подсказали насчет xr_map, вроде смог разобраться как его использовать, но осталась одна проблемка: если объявляю xr_map <shared_str, shared_str> table в cpp-файле - все нормально, все сохраняется\получается, но если выношу объявление в h-файл public: xr_map <shared_str, shared_str> table; то игра вылетает с логом: 0023:599609D1 xrCore.dll, std::_Lower_bound<CInifile::Sect * *,char const [256],int,bool (__cdecl*)(CInifile::Sect const *,char const *)>(), c:\program files (x86)\microsoft visual studio 12.0\vc\include\algorithm, 2514 .......... .......... .......... Посмотрел как у ПЫСов сделано - практически все, что начинается с xr_(или связано с таковым) у них в хедерах объявлено как typedef. Попробовал сделать для своей переменной - в cpp-файле студия подчеркивает красным и ругается "Идентификатор "table" не определен". Как побороть ? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти