RayTwitty 516 Опубликовано 9 Ноября 2015 (изменено) способ обездвижить главного героя?Разбиндить кнопки передвижения?.. Изменено 9 Ноября 2015 пользователем RayTwitty Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 16 Ноября 2015 я что то забыл врубить, или лучше что то отключить? Лучше ничего не трогать и использовать дефолтную конфигурацию из официального репозитория. В твоем что-то опять понахреначили, поди разбери. https://github.com/KD87/xray-extensions/archive/master.zip Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 18 Ноября 2015 (изменено) @Malandrinus, 1. Можно ли использовать уже существующие дефайны, которые лежат в defines.asm (например OGSE_BUILD), для corrections_list? 2. Я думаю, имена дефайнов должны быть написаны, хотя бы с разделением на слова: DLGDISTFIX -> DLG_DIST_FIX. Первый вариант совершенно не воспринимается. 3. Наверно, стоит убрать файлы конфигов в подпапку configs (3312_shoc_10006\configs\), дабы не искать постоянно их в списке всех файлов. кто-нибудь знает, какая правка отвечает за подсветку предметов в инвентаре? Точнее ищу правку, отвечающую за метод:Такого метода в проекте нет. Для окна торговли и обыска есть правка, которая управляет заливкой (можно например сделать, чтобы предметы в слотах подсвечивались зеленым). Для этого, правку нужно активировать и написать скриптовую обработку закраски. А что касается окна инвентаря - в моде LWO (который использует тоже ХЕ) есть закраска патронов для выбранного оружия (как в ЗП) - сделано достаточно заморочено, но разобраться можно. Насколько я помню, там во время заполнения инвентаря вызывается колбек, в который передается указатель на объект иконки (окна) и самого объекта, после чего с ними можно нормально работать (перекрасить, приаттачить что-нибудь или даже заменить текстуру). Полный хак кароче. Изменено 18 Ноября 2015 пользователем RayTwitty 2 Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 18 Ноября 2015 Может у тебя есть точно работающий пример? Я попробовал закраску сделать - никакого эффекта.Посмотри ogse_trade_precondition.script. Не самая идеальная реализация, тем не менее суть понять можно: 1) Для каждого инвентарного предмета добавили параметры закраски, группировки и торгуемости. 2) Создается таблица (для закраски): индекс цвета = код цвета. 3) При открытии инвентаря, изменяем новые параметры так, как нам надо и получаем результат. Например, задаем закраску тех предметов, которые в слотах. Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 19 Ноября 2015 (изменено) Ну, тогда уж надо выносить в отдельную папку все файлы, связанные с билдом: список патчей, заготовку под dll и diff-файл, все батники и прочее.Это было бы неплохо, как собственно и создать нормальные общие батники, которыми могли бы пользоваться простые смертные. Кстати, ничего там не изменилось с правовым статусом link.exe и ml.exe? Может всё-таки стоит добавить их в репозиторий? У людей постоянно возникают проблемы, они не могут ничего скомпилить, ибо далеко не у всех есть VS и masm. Ситуация осложняется ещё и тем, что не все версии этих исполняемых файлов (по твоим же словам) подходят для линковки кода. Также, для работы всего этого требуется наличие установленных рантаймов, о чём тоже неплохо бы где-то упомянуть. Изменено 19 Ноября 2015 пользователем RayTwitty Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 19 Ноября 2015 (изменено) @dsh, Для этого, правку нужно активировать и написать скриптовую обработку закраски.А я ведь я писал об этом, чем вы читаете - неизвестно. Вот кстати зачем вообще было кому-то комментить эти правки? Я спецом сделал так, что без скриптовых манипуляций они никому не мешают, и всё ведёт себя по дефолту.Не правда, конкретно эта правка без скриптовой обвязки ведет к неправильному отображению списка в окне торговли\обыска. Если правка отключена - она либо недоработана, либо требует вмешательства в геймдату, либо слишком специфична (например "смерть от первого лица"). Если я правильно понял идею проекта, то его главная особенность именно в скриптовых расширениях, а уже потом в каких-то точечных геймплейных правках, которые зачастую, нужны только определенному моду. Скриптовые правки, как правильно было замечено, не требуют каких-то лишних телодвижений - они есть и всё, каждый использует то, что ему нужно. Их никто не трогал. Изменено 19 Ноября 2015 пользователем RayTwitty Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 19 Ноября 2015 (изменено) Сдаётся мне, что ты это проверял очень давно. Там есть глобальные флажки, которые, если не включены, сводят код к его движковой версии. По умолчанию флажки все отключены, и без скрипта включить их некому.Перепроверил. Последняя ревизия, правки включены в движке. В скриптах убрал включение глобальных флагов (т.е. дб по нулям), убрал вызовы относящиеся к фиче, результат: http://rghost.ru/private/7H827RrkP/bfe541d734f5a2b1855c5cebed4d10a4 Не самая идеальная реализацияА как бы сделал ты? Я про скрипт говорил. А в движке без исходников не сильно чего придумаешь. Изменено 19 Ноября 2015 пользователем RayTwitty 1 Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 19 Ноября 2015 (изменено) Заметны какие-то косяки? На счет косяков не знаю, я скорее про структуру и количество вызовов говорил. В частности, обновление флагов для предметов достаточно делать в трех случаях - на событиях take\drop (при открытом окне обыска\торговли) и при открытии окна инвентаря\обыска\торговли для всех предметов сразу. Сейчас я там заполнил первый элемент, так что покрасневшие предметы не пропадают. Да, проверил - теперь всё нормально работает. Кстати, остался нерешенным вопрос с правкой 0x102AC460 5 ; jmp game_cl_GameState__net_import_GameTime_dbg_fix она как я понял, восстанавливает солнце, но вместе с этим, наблюдаются и баги (совершенно точно они происходят из-за этой правки): 1) зависание обновления погоды; 2) необновление каких-то элементов погоды (например свет и флары меняются, а скайбокс нет и наоборот); 3) странное поведение погоды между перезагрузками сейвов (загрузили другой сейв, а погода и час остались теми же). В общем, что-то с апдейтом там. Возможно, как-то связано с функцией set_ignore_game_state_update() которая вызывается в OGSE, но непонятно для чего. Изменено 20 Ноября 2015 пользователем RayTwitty Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 20 Ноября 2015 (изменено) а оно может измениться и после открытия Дело в том, что измениться оно может только в очень специфичных случаях (например какой-то дебаговый спавн, в штатном режиме как я пониманию, ничего просто так не появляется), но самое главное - лист не перезагружается после перемещений между поясом\слотами и рюкзаком Если вы конечно не сделали это принудительно.Впрочем, наверно это зависит от мода - где-то требуется, где-то нет. В самом деле, там только флажки ставим, плюс-минус вызов не напрягает. На счет правки солнца - понятно. Значит придумать, как исправить баг, а эту правку в топку. З.Ы. посмотрел в исходниках репозитория xp-dev и что-то не нашел упоминания о правке. Получается её до сих пор не сделали? Всегда думал, что солнце уже исправлено и даже не обращал внимание на его отсутствие. Здесь ситуация такая, что я сам понятия не имею, что реально делает эта правка. Провел анализ кода - в этой правке (не считая проверки флага g_ignore_game_state_update, который в оригинале не влияет) ты просто убрал вызов GamePersistent().Environment().Invalidate() (call ds:CEnvironment__Invalidate). Собственно, солнце у меня восстановилось и в исходниках, после того как я закомментировал вызов. Но вместе с солнцем "восстановились" и баги)) Будем думать дальше. Изменено 20 Ноября 2015 пользователем Murarius Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 20 Ноября 2015 (изменено) Багов вроде не наблюдал, хотя подолгу и не бегал.Включи игру, загрузи сейв, например с утренней погодой. Потом загрузи ночной сейв (сама секция погоды должна быть той же) и посмотри, что получится. В некоторых случаях она либо не обновится, либо обновится частями. После повторной загрузки сейва ночи, погода нормально обновится. З.Ы. если продолжить играть с криво-загруженной погодой, то можно наблюдать довольно интересные сочетания, самое смешное, иногда эти сочетания получаются довольно удачными: http://www.gameru.net/forum/index.php?autocom=gallery&req=si&img=44233 Скрин сделан именно в такой момент. При нормальной работе погоды, такого часа просто бы не существовало. Изменено 20 Ноября 2015 пользователем RayTwitty Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 21 Ноября 2015 (изменено) Рациональней будет уже забить на XE и мутить дальше из исходников.Пока и в исходниках не получается)) Убил вчера весь день, но так и не понял как исправить. Причина не появления флара ясна - при вызове GamePersistent().Environment().Invalidate() сбрасывается стейт флара в none, процесс начинается сначала и так на постоянном обновлении. В то же время, в ЧН\ЗП код такой же, однако всё работает. И если да, то как эта правка примерно работает?Так же, как колбек на юз. Изменено 21 Ноября 2015 пользователем RayTwitty 1 Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 21 Ноября 2015 (изменено) Итого, примерно двое суток потребовалось для выяснения причины отсутствия солнца в ТЧ. Как выяснилось, в ЗП game_cl_GameState::net_import_GameTime вообще не вызывается, следовательно -> нет вызова GamePersistent().Environment().Invalidate() -> нет сброса текущего стейта флара. Путем отладки было также выяснено, что Invalidate() в ЗП отрабатывает ТОЛЬКО при вызове CEnvironment::SetWeather (а это именно та функция, которая экспортирована в level.set_weather), следовательно Invalidate() в ЗП вызывается только из скриптов и только вполне определенное количество раз (а не на апдейте, как в ТЧ). Таким образом, выпиливание вызова из net_import_GameTime - это правильный шаг, правка абсолютно корректна. Но для этой правки требуется скриптовая доделка, в виде установки погоды из скрипта после загрузки сейва (очевидно, в ЗП эту функцию выполняет система динамической погоды), однако у меня нормально погода устанавливается только на первом апдейте актора, на спавне почему-то не хочет. Собственно, в OGSE и не было проблем потому, что там идет полное управление погодой из скрипта. З.Ы. на счет net_import_GameTime - можно было конечно поступить как в ЗП, убрать вообще вызов этой функции (а точнее убрать экспорт), но это уже серьезные вмешательства в работу системы клиент-сервера, неизвестно к чему это приведет - в ЗП все-таки там основательно все переделали... Изменено 21 Ноября 2015 пользователем RayTwitty Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 22 Ноября 2015 (изменено) Обнаружил два колбека с одинаковыми номерами:debug_fixes.asm 185 строка - CALL_ACTOR_CALLBACK_INT_INT 153, edx, eax по умолчанию не вызывается, используется в OGSE.stalker_fix.asmhttps://code.google.com/p/xray-extensions/source/diff?spec=svn152&r=152&format=side&path=/trunk/3312_shoc_10006/stalker_fix.asmвызывается, используется вроде бы в модификации Lost World.Не критично, так как первый закомментирован, но все-таки не мешало бы поменять номер у дебагового, мало ли что.З.Ы. вообще, надо было наверно с самого начала проекта в отдельный файл выписывать дефайны с номерами используемых колбеков, чтобы каждый раз не гадать, какой номер свободен. Изменено 22 Ноября 2015 пользователем RayTwitty Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 24 Ноября 2015 (изменено) Примерно в 90% случаев работает нормально, однако при определенных ракурсах одновременно происходит и юзание машины и посадка в нее. Ну, судя по описанию правки, колбек должен вызываться только при юзе без посадки. Либо правка некорректна, либо неправильно применяете. Т.е. тут надо не запутаться - в оригинале есть колбек на юз для машины, а в ХЕ добавился колбек на юз машины для актора. или просто смотрит на расстояние до дверей, указанных в doors визуального конфига машины и одновременно вызывает и пользование и посадку?. Расстояние до дверей + замороченный алгоритм определения, что смотрим именно в зону нахождения двери. А проверять, то что актор не сел, у меня получалось путем вызова not db.actor:get_current_holder() после отработки стандартного колбека на юз для машины. Изменено 24 Ноября 2015 пользователем RayTwitty Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 24 Ноября 2015 (изменено) @phorumer, да, 138 колбек ставится актору - http://code.google.com/p/xray-extensions/wiki/new_collbacks аргумент - машина которую юзаем. Изменено 24 Ноября 2015 пользователем RayTwitty Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 24 Ноября 2015 @phorumer, по дефолту никак не называется, просто пиши 138. Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 27 Ноября 2015 (изменено) 1) Если я в соответствующих местах в new_engine_slots.asm уберу ifdef OGSE_BUILD и соответственно endif для детектора, то будет ли это так работать?Да, только там не во всех местах перед дефайнами написано "detector". Надо смотреть куда ведут метки. В 269 строке надо тоже дефайн поправить. 2) Если на первый вопрос ответ да, то что делать вот с этим куском:Поставить ifndef OGSE_BUILD например. Изменено 27 Ноября 2015 пользователем RayTwitty 1 Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 27 Ноября 2015 (изменено) Условный номер ревизии 234В официальном репозитории ревизии уже за 240-ую перевалили, почему-то бы не зарегаться там и не коммитить нормально? Интересует можно ли с помощью этого проекта правильно рассчитать хит нанесенный актору и узнать тип хита ?Вроде бы можно, но как - не могу сказать. Следует подождать авторов, они точнее ответят. Изменено 27 Ноября 2015 пользователем RayTwitty 1 1 Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 27 Ноября 2015 Вы уж пожалели бы нас - болезных...и выкладывали ревизии и здесь.А что их выкладывать? С гитхаба скачать намного проще чем с гуглокода - вон кнопочка "Download ZIP". https://github.com/KD87/xray-extensions На гуглокод можете забить уже сейчас, его окончательно дропнут после НГ. Кстати - правка по взрыву бэтра вошла в крайние ревизии?Да. Поделиться этим сообщением Ссылка на сообщение
RayTwitty 516 Опубликовано 27 Ноября 2015 SVN не проще? Трафик хорошо экономит.К чему\кому такие вопросы? 1) гуглокод был закрыт; 2) перенос на гит осуществлял не я; 3) переносить проект svn->svn только потому, что там "трафик хорошо экономит" очень сомнительно; 4) какой трафик? Проект в zip весит 500кб. 500кб, Карл! 1 Поделиться этим сообщением Ссылка на сообщение