Перейти к контенту

[SoC] Ковыряемся в файлах


Halford

Рекомендуемые сообщения

_Призрак_,

Можете сказать за что отвечают классы предметов? Есть класс CWeaponAK74 - в чем разница от CWeaponLR300?

Класс отвечает за поведение и данные, учебник ООП вам в руки. Конкретно эти два класса отличаются тем, что CWeaponAK74 может иметь подствольник, а CWeaponLR300 - нет. Впрочем, ничто не мешает в игре использовать максимально обобщённый ствол, урезая его конфигами (что обычно все и делают).

 

А какой класс у болта?

 

серверный: CSE_ALifeItemBolt

клиентский: CBolt

скриптовое имя сета: clsid.obj_bolt

конфиговое имя сета: II_BOLT

 

в конфиге написано class = II_BOLT - но в class_registrator он не регенится,

В движке внутри зарегистрировано более сотни сетов. class_registrator просто расширяет этот набор.

 

в дллке тоже ничего похожего на II_BOLT нет.

внутренний номер класса генерируется на основе строки II_BOLT по простому алгоритму. Для некоторых сетов почему-то этот номер не генерируется из строки, а явно прописан числом. В частности так сделано для болта.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

shooting unicorn,

Я сейчас файлы отредактирую. Мне потом надо будет новую игру начинать?

Смотря что сделал. Если, к примеру, потёр инфопорцию, которая выдана или будет выдаваться, то скорее всего словишь вылет. С самой общей точки зрения без начала новой игры допустимы добавления новой информации в файлы конфигов (как XML так и ltx). Удаление чаще всего приводит к проблемам. Изменения допустимы в зависимости от характера, одним словом не опишешь.

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

IQDDD,

1. Как "разбиндить" объект?

попробуй вызвать метод клиентского объекта bind_object с аргументом nil. Не уверен, правда, получиться ли это.

 

2. Как установить дирекцию актора на dir, где dir.y отлично от нуля

никак. Как частное решение можно комбинировать с эффектором камеры. Но это, понятное дело, общей проблемы не решает.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

IQDDD,

Ну почему же не решает? Вопрос в другом, как это комбинировать?

эффектор - это строго определенная последовательность повторотов и перемещений камеры. Т.е. на конкретный угол тебе нужен отдельный эффектор. И это временно. Т.е. отработает эффектор и вернется все как было.

Насчет "как комбинировать" не понял. Что тут непонятного?

 

 

так, что ли: object_binder.net_destroy(nil)?

так

obj:object_binder(nil)

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

IQDDD,

скрипты здесь не при чём. Это делает сам движок. В состоянии разговора заставляет актора смотреть на собеседника. Скриптами сделано только удержание собеседника перед актором.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

ЙоЖеГ, n6260,

Окно хоть и движковое, но инициализируется из XML файла "config\ui\pda.xml". Но переместить отдельную кнопку не выйдет. Дело в том, что они не независимы, а входят в состав специального контрола для управления страницами. Все кнопки выравниваются по первой в ряду.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

ЙоЖеГ,

опять же в столбик. Скорее всего допустимо выравнивание по первой кнопке по горизонтали или вертикали, но не независимое расположение кнопок.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

ЙоЖеГ,

    <!-- TAB CONTROL -->
это сам блок кнопок
    <tab x="129" y="573" width="550" height="30">
        <!-- BUTTONS -->
а это первая кнопка, по которой выравнены все остальные
        <button x="50" y="7" width="50" height="20" hint="pda_btn_quests_hint">
        ...
        </button>

когда я смещаю первую кнопку, то смещается весь ряд (и именно кнопки, не текстуры), когда я пытаюсь сместить не первую кнопку, то это просто игнорируется.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

ЙоЖеГ,

похоже на то, что вышли за пределы родительского окна. Вероятно, лучше сдвигать не кнопки, а TabControl на котором они расположены. И он тоже должен остаться в пределах своего родительского окна.

Кстати, как сделать их вертикально, понятия не имею. Такой настройки в табконтрол-е не нашёл.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

ЙоЖеГ,

ось Y идёт на экранах сверху вниз ещё с мохнатых времён телетайпов и аналоговых экранов. Где ты здесь видел его снизу вверх, скажи на милость?

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Real Wolf,

obj:set_nonscript_usable(false)

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

strelok200,

ты уже несколько раз задаёшь фактически один и тот-же вопрос: как сделать определённый порядок квестов, диалогов...

Всё это делается с помощью инфопорций, предусловий и скриптовых действий. К этому собственно и сводится построение сюжета - к последовательной выдаче инфопорций, а по их наличию открывания сюжетных ходов - диалогов и квестов, а по их результатам выдаче следующих инфопорций и т.д.

Технические подробности можно почитать в темах "уроки" и "справочник", а также на вики.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Ирбис,

1. Это у тебя не диалоги, а строки для трансляции.

2. Игра не выбирает диалоги. Это всегда делает актор.

3. Двух диалогов с одинаковым id быть не может. Не помню точно, либо игра возмёт один из них (и до конца будет его использовать) либо будет вылет.

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Ирбис,

При разговоре я сначала увидел одну фразу а затем другую после повторной загрузки

это похоже на поведение набора фраз в пределах одного диалога. Ты не путаешь случайно выбор диалогов (тем разговора) с выбором альтернативных фраз?

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Ирбис,

признаться, так я и не понял, что ты имел в виду. Может, тебе стоит почитать про диалоги в теме справочника. Там достаточно подробно изложено, что и как работает.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

gruber,

Сидор монстр

Это распространённое заблуждение =) Сидор не монстр, а торговец. Класс такой есть CAI_Trader, а у монстров и сталкеров классы совсем другие.

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Капрал Хикс,

Проблему внутриигровых таймеров вроде бы решили...

Просветите меня, а как решили (если решили) проблему зацикливания игрового времени? Там же счётчика хватает всего на месяц, потом заворачивается на стартовое значение. И это движковое.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

sapsan,

Вот есть встроенный в игру счётчик. Когда он докручивается до конца, то время устанавливается в стартовое. Дата отматывается назад и функция game.get_game_time() будет давать это обнулённое значение. Я это проверял. Так каким образом помогают эти новые функции, если системное время игры (которое в них используется) глючит? Прошёл месяц игрового времени и всё.

Что я не понимаю?

Изменено пользователем malandrinus
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Полтергейст,

нафига smart_terrain'у двойное обновление? Одно вызывается симулятором, другое через биндер. Какой в этом смысл?

Вроде как у зон своё обновление не вызывается.

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение

Полтергейст,

Не обязательно "сама себя". Насколько я понял, достаточно, чтобы функция многократно вызывалась за короткий промежуток времени не важно откуда. Такое я случайно спровоцировал, когда эксперементировал с добавлением restrictor'ов, хотя никакой рекурсии не было.

Понимаете, Lua в принципе однопоточный. Никак нельзя вызывать функцию в то время, как она уже вызвана, если только она сама себя прямо или косвенно не вызывала. Т.е. все вызовы скриптов из движка могут происходить только строго один за другим. А это означает, что проблемы со стеком это вызвать никак не может.

Проблема со стеком может быть следствием других сбоев, но каких именно - естественно так просто не скажешь.

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...