Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Malandrinus 615 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 Народ, как понимать такие записи в lua_help: move (enum MonsterSpace::EScriptMonsterMoveAction, vector&, number); Понятно, что вторым аргументом должен быть вектор, а третьим - число (что за вектор и число - другой вопрос) А что такое этот загадочный enum - enum MonsterSpace::EScriptMonsterMoveAction? Как здесь сложить концы с концами и понять, что же нужно передавать в функцию(или что оно там на самом деле, не метод точно) Это вот такое перечисление (суть набор именованных констант) языка C++: enum MonsterSpace::EScriptMonsterMoveAction { eMA_WalkFwd, eMA_WalkBkwd, eMA_Run, eMA_Drag, eMA_Jump, eMA_Steal, }; Ему соответствуют константы, определённые в том-же классе move: move.walk_fwd move.walk_bkwd move.run_fwd move.drag move.jump move.steal Про третий аргумент знаю только, что он имеет тип float И еще, правильно ли я понимаю, что аргументы со звездочкой типа move (enum MonsterSpace::EScriptMonsterMoveAction, game_object*, number); сами собой подразумеваются и в явном виде их указывать не нужно? Не так. Это просто значок указателя на объект. Здесь должен заметить, что все описания из lua_help.script имеют характер неточный и до крайности условный. Они не соответствуют никакому языку, ни C++ ни Lua. Там часто упоминаются внутренние типы данных, как в примере выше, остаются хвосты от исходной структуры экспортированных классов, как с этими указателями. Зато по#ерены типы возвращаемых значений (и вообще наличие возвращаемого значения), а типы данных чисел сведены к единственному number, что лишает это описание существенной части информации. Что касается звёздочек. Сперва небольшой ликбез по Lua. В этом языке есть встроенные типы данных: nil, строки, числа, логические, таблицы, функции, потоки. Эти типы данных описаны в самом стандарте языка. Кроме этих есть ещё т.н. пользовательский тип данных. Физически этот тип данных всегда представляет собой указатель. На что он там указывает, дело второе. Выражение type(obj) для переменных пользовательского типа всегда возвращает строку "userdata". Все объекты, экспортированные из движка, как раз и представляют собой такие объекты. Безотносительно Lua, с точки зрения языка C++ объект (например vector, хотя внутри он называется не так) может передаваться в функцию по ссылке void fun(_vector3<float>&); // _vector3<float> - это как раз и есть внутреннее имя класса, который экспортирован в Lua как vector или по указателю void fun(_vector3<float>*); технически это одно и тоже, поскольку в обоих случаях передаётся адрес объекта. А сточки зрения Lua вообще нет разницы, запишете ли вы описание функции так: fun(vector*) так: fun(vector&) или так: fun(vector) Поскольку vector - это по любому пользовательский объект (указатель, помните?), и по любому в Lua передаётся как 4 байта. Так что если увидите звёздочку или амперсанд, то относитесь к этому проще. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
wolkolak 0 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 камрады подскажите в каком файлике копать , что бы сделать кнопки в пда не активными ? Свободу всем Даром! Моя Зона Full Realism Mod STSoC by Wolkolak "Безвыходных ситуаций не существует в принципе."(с) Ред Шухов Ссылка на комментарий
RvP 1 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 wolkolak, попробуй ui pda и там в к примеру перенести координаты кнопок за екран Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
gruber 2 481 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 (изменено) скорее всего в скриптах файл типа майн меню скрипт сон к примеру в этом файле сделан Изменено 28 Июля 2009 пользователем gruber Ссылка на комментарий
wolkolak 0 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 (изменено) сон да , а вот про пда не слова , вынести кнопу не получается игра валиться ... добавил креш был по другому поводу в файлике ui_st_pda сделал так <string id="pda_btn_contacts"> <text></text> </string> заменил на <string id="pda_btn_contacts"> <text>...</text> </string> крешить перестало выносил так в фалике pda.xml <button x="195" y="7" width="60" height="20" hint="pda_btn_contacts_hint"> <text align="l" x="0" y="0" font="letterica18" r="255" g="255" b="255">pda_btn_contacts</text> поигрался с координатами по всякому и ни чего ... Изменено 28 Июля 2009 пользователем wolkolak Свободу всем Даром! Моя Зона Full Realism Mod STSoC by Wolkolak "Безвыходных ситуаций не существует в принципе."(с) Ред Шухов Ссылка на комментарий
RvP 1 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 wolkolak, а ты куда выносил, и какой лог? Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
Министр 4 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 (изменено) wolkolak, можно в pda.xml тупо стереть эту кнопку. Если, например, стереть вот такой код текста: <button x="195" y="7" width="60" height="20" hint="pda_btn_contacts_hint"> <text align="l" x="0" y="0" font="letterica18" r="255" g="255" b="255">pda_btn_contacts</text> <text_color><t r="231" g="168" b="12"/> <d r="181" g="170" b="148"/> <e r="127" g="127" b="127"/> <h r="255" g="255" b="255"/> </text_color> </button> То кнопка Контакты исчезнит из ПДА, но есть одно НО - слева от всех кнопок появится ооочень маленькая полоса прокрутки. Причину ее появления я не знаю, скорее всего ее возможно как-то убрать, надо копаться... Изменено 28 Июля 2009 пользователем Министр Ссылка на комментарий
RvP 1 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 а можно ли как то заставить бинокль работать как только он попадает в руки? Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
Monnoroch 6 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 RvP, в смысле? Ссылка на комментарий
RvP 1 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 Monnoroch, ну тоесть ты только выбрал бынокль(5 или колесиком) а он уже сразу навелся(как будто ЛКМ или ПКМ нажаты) Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
Monnoroch 6 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 RvP, ооо,никак.разве что кастомстатик повесить,но приближать не будет. Ссылка на комментарий
RvP 1 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 Monnoroch, а выделять нпс рамкой? Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
Влад 9 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 (изменено) Всем привет. Вопрос: как через скрипт заспавнить НПЦ в 30-ти метрах от ГГ ? Изменено 28 Июля 2009 пользователем Влад Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Ссылка на комментарий
RvP 1 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 Влад, почитай статьи спавн через скрипт Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
Kirag 39 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 malandrinus Спасибо за помощь и просвещение! А то делать-то я делаю, но половину не сильно понимая, "зачем" и "почему", только "как" Это вот такое перечисление (суть набор именованных констант) языка C++: enum MonsterSpace::EScriptMonsterMoveAction { eMA_WalkFwd, eMA_WalkBkwd, eMA_Run, eMA_Drag, eMA_Jump, eMA_Steal, }; Ему соответствуют константы, определённые в том-же классе move: move.walk_fwd move.walk_bkwd move.run_fwd move.drag move.jump move.steal А где можно посмотреть все эти перечисления и чему они соответствуют, чтобы тебя каждый раз не дергать? Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
Monnoroch 6 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 Kirag,lua_help.script RvP, выделять тоже нет.этож просто кастомстатик. Ссылка на комментарий
Kirag 39 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 (изменено) Monnoroch Что-то, значит, я туплю. Строка, например, eMA_WalkFwd в lua_help вообще не встречается, а MonsterSpace::EScriptMonsterMoveAction - только как аргумент в функциях. Можешь носом ткнуть? У меня lua_help от патча 1.0004, если что, но не думаю, что этот файл менялся от патча к патчу. А eMA_WalkFwd - константа движка как я понял,она из С++, и в луа хелпе не обозначена. В том-то и дело, что как их вычислять по enum-ам? И enum-ы в аргументах встречаются сплошь и рядом. malandrinus же как-то составил список... Изменено 28 Июля 2009 пользователем Kirag Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
Monnoroch 6 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 (изменено) C++ class move { const back = 4; const criteria = 2; const crouch = 0; const curve = 0; const curve_criteria = 2; const default = 0; const dodge = 1; const down = 64; const drag = 3; const force = 1; const fwd = 2; const handbrake = 128; const jump = 4; const left = 8; const line = 0; const none = 1; const off = 512; const on = 256; const right = 16; const run = 1; const run_fwd = 2; const stand = 2; const standing = 1; const steal = 5; const up = 32; const walk = 0; const walk_bkwd = 1; const walk_fwd = 0; move (); move (enum CScriptMovementAction::EInputKeys); move (enum CScriptMovementAction::EInputKeys, number); move (enum MonsterSpace::EBodyState, enum MonsterSpace::EMovementType, enum DetailPathManager::EDetailPathType, game_object*); move (enum MonsterSpace::EBodyState, enum MonsterSpace::EMovementType, enum DetailPathManager::EDetailPathType, game_object*, number); move (enum MonsterSpace::EBodyState, enum MonsterSpace::EMovementType, enum DetailPathManager::EDetailPathType, const patrol&); move (enum MonsterSpace::EBodyState, enum MonsterSpace::EMovementType, enum DetailPathManager::EDetailPathType, const patrol&, number); move (enum MonsterSpace::EBodyState, enum MonsterSpace::EMovementType, enum DetailPathManager::EDetailPathType, const vector&); move (enum MonsterSpace::EBodyState, enum MonsterSpace::EMovementType, enum DetailPathManager::EDetailPathType, const vector&, number); move (const vector&, number); move (enum MonsterSpace::EScriptMonsterMoveAction, vector&); move (enum MonsterSpace::EScriptMonsterMoveAction, patrol&); move (enum MonsterSpace::EScriptMonsterMoveAction, game_object*); move (enum MonsterSpace::EScriptMonsterMoveAction, vector&, number); move (enum MonsterSpace::EScriptMonsterMoveAction, number, vector&); move (enum MonsterSpace::EScriptMonsterMoveAction, number, vector&, number); move (enum MonsterSpace::EScriptMonsterMoveAction, patrol&, number); move (enum MonsterSpace::EScriptMonsterMoveAction, game_object*, number); move (enum MonsterSpace::EScriptMonsterMoveAction, vector&, number, enum MonsterSpace::EScriptMonsterSpeedParam); move (enum MonsterSpace::EScriptMonsterMoveAction, patrol&, number, enum MonsterSpace::EScriptMonsterSpeedParam); move (enum MonsterSpace::EScriptMonsterMoveAction, game_object*, number, enum MonsterSpace::EScriptMonsterSpeedParam); function completed(); function path(enum DetailPathManager::EDetailPathType); function move(enum MonsterSpace::EMovementType); function position(const vector&); function input(enum CScriptMovementAction::EInputKeys); function patrol(const class CPatrolPath*, class shared_str); function object(game_object*); function body(enum MonsterSpace::EBodyState); }; А eMA_WalkFwd - константа движка как я понял,она из С++, и в луа хелпе не обозначена. Изменено 28 Июля 2009 пользователем Monnoroch Ссылка на комментарий
Malandrinus 615 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 Я как раз закончил предварительный разбор некоторой инфы по внутренним потрохам игры. Итак. Основной источник информации - билд 2945, в котором разрабы оставили вместе с библиотеками движка ещё и файлы с отладочной информацией. Это файлы *.pdb В этих файлах содержится информация, необходимая для отладки: прототипы классов и функций, перечисления и имена локальных переменных и констант. Также в этом файле содержится привязка кода к строкам исходного текста (но не сами исходники, не надейтесь=) Я откопал утилитку, которая делает дамп всего содержимого файла pdb. Дамп для xrGame.dll вышел немаленьким - 250 Мб первостатейного мусора. Немного почистил (регулярные выражения - великая вещь) получилось 12 Мб. Выделил список экспортированных классов, выделил список всех перечислений. Теперь по крайней мере можно в этом что-то осмысленно искать. Можно точно сказать, какой тип возвращает функция или метод, что принимает, что возвращает (и возвращает ли), точный состав перечислений (тем более, что именно под этими именами они упоминаются в lua_help.script). Можно сказать, можно ли создавать в Lua свой класс на основе данного, или он для этого не предназначен. Не обольщайтесь, это конечно дополнительная информация, но в конечном итоге не намного больше, чем собственно в lua_help.script Держите в общем: Исходный дамп В архиве 3.8 Мб, распакованный 250 Мб. Море шлака. Зато это всё, что было. Очищенное от основного мусора В архиве 514 Кб, распакованный 12 Мб. Все классы и перечисления должны были остаться, удалил основной мусор, затрудняющий восприятие и поиск. Что-то могло попасть под раздачу (из-за автоматизации процесса) Только перечисления В архиве 27 Кб, распакованный 182 Кб. Ясно из названия. Включает все, а не только использованные в скриптах перечисления. Только экспортированные классы В архиве 51 Кб, распакованный 925 Кб. Попытался оставить полные определения только тех классов, которые входят в список экспортированных. Опять же, что-то могло попасть под раздачу и пропасть (см. исходный файл) Все перечисленные файлы содержат множество дублирующих записей. Это связано с тем, что в файле pdb запись включается столько раз, сколько она упоминается по коду. Пытался с этим бороться, но безуспешно. С другой стороны, больше не меньше =) Наконец, список экспортированных классов Это достаточно объективная информация. Позволяет узнать не только какие классы экспортированы, но и можно ли от класса наследовать в Lua. В двух вариантах: один содержит исходные определения luabind, а второй немного почищен для большего удобства. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
XMK 24 Опубликовано 28 Июля 2009 Поделиться Опубликовано 28 Июля 2009 Как удалить сон у ГГ АМК 1.4.1 amk.script удаляем строчку: mod_call("test_sleep_pp") amk_mod.script: удаляем строчки: amk.g_start_timer("gg_need_sleep",0,0,6) amk.spawn_item_in_inv("matras") больше спать не хочешь, или тебе надо совсем с корнями его выдрать? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти