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

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


Halford

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

@Silver Raven, одна ошибка из-за описки =test_lift_doors_onening. Другие сходу не нашел. Изменено пользователем abramcumner

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


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

@dPlayer, кракозябры, потому что кодировка у файла не win-1251.

Чтобы свой XML заработал поищи в конфигах, где подключается string_table_tips_garbage.xml и добавь туда свой файл по аналогии.

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


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

ПМСМ, не существует на данный момент такой утилиты, кроме СДК.

Graph Viewer же. Изменено пользователем abramcumner
  • Спасибо 1
  • Полезно 1

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


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

@BFG, ты открыл game.graph. Конечно в нем нет такой инфы. Надо открывать level.ai.

 

Хотя я не представляю для чего @naxac, нужно именно количество существующих АИ-нодов на уровне. Что можно сделать с этим числом  ?

Для рандомного спавна тех же аномалий. Изменено пользователем abramcumner
  • Полезно 1

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


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

Хотите писать циклы, или декомпилировать локации чтобы это узнать - не могу запретить.

Делают ровно то, что знают и могут. Оно как бы и так понятно, что в движке вся эта инфа есть, но мапперу или скриптеру от этого ни тепло ни холодно.

Вынести в скрипты через xray-extensions или исходники - но что-то такого как не было, так и нет.

 

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

Таблица соотвествия левел-вертекса гейм-вертексу лежит в level.gct, в движке класс CGameLevelCrossTable.

 

 

А по-хорошему из скриптов вообще надо убрать все эти левел и гейм-вертексы. Они нужны только для навигации - вот пусть движок сам их и рассчитывает.

Изменено пользователем abramcumner
  • Полезно 1

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


Ссылка на сообщение
@GROM_27, начни с правки модели. У них дверцы не поворачиваются. Потом пофиксишь пару вылетов и все.

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


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

А по подробнее?

Поменять у кости дверей Joint/Type c Rigid на Joint.

 

Т.е без копания движка можно обойтись? Модели то пофиксить не проблема.

Вроде не обойтись.
  • Спасибо 1
  • Согласен 1

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


Ссылка на сообщение
5 минут назад, _Sk8_AsTeR_ сказал:

Слишком. Даже метр вокруг костра не освещается 

Может быть его и нет? :) Как костер делали? Лампочку не забыли ему вкрутить?

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


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

@Winsor, есть такие варианты:

 - проводник+калькулятор: смотрим в проводнике размер файла level.ai, в калькуляторе отнимаем от него 56, делим на 21 и напоследок отнимаем единичку;

 - хекс-редактор+калькулятор: открываем в хекс-редакторе level.ai, выписываем 4 байта с 4 по 7(нумерация байтов начинается с нуля), получаем из них четырехбайтное целое и снова отнимаем единичку.

 

Вроде ничего не мешает оба варианта провернуть в скриптах.

  • Нравится 1
  • Смешно 1

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


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

@Winsor, скорее всего калькулятор сбоит. Давай исходные данные.

 

SOC\levels\l01_escape\level.ai

размер: 12`505`535

первые 8 байт из хекс-редактора: 08 00 00 00 2B 16 09 00

 

способ 1: номер = (12`505`535 - 56) / 21 - 1 = 595`498

способ 2: номер = 2B 16 09 00 - 1=> 09162B - 1 = 595`499 - 1 = 595`498

Изменено пользователем abramcumner
  • Полезно 1

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


Ссылка на сообщение
3 минуты назад, Winsor сказал:

1) размер файла 22043483

2) 4 5 6 7 байты

57 04 10 00

1. (22043483 - 56) / 21 - 1 = 1049686

2. 57 04 10 00 = 100457hex = 1049687dec - 1 = 1049686

  • Спасибо 1

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


Ссылка на сообщение
13 часов назад, вася5657 сказал:

Что-то не так, я написал в обеих строчках: item:set_condition(math.random(0,0.7))

Начал новую игру, пушки у всех трупов либо полностью целые, либо полностью убитые.

Все работает как часы. Вот документация на math.random: https://www.lua.org/pil/18.html

  • Полезно 1

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


Ссылка на сообщение
4 часа назад, Space.Marine сказал:

В теории. На практике же из 10-15 подряд обысканых тел стволы убитые в нуль. Так что не надо ля-ля.

У тебя тоже item:set_condition(math.random(0,0.7))? Ну прочитайте уже документацию на math.random. Тогда и исходный код станет понятней.

Попробуйте хотя бы item:set_condition(0.7 * math.random())

Изменено пользователем abramcumner
  • Спасибо 1
  • Полезно 3

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


Ссылка на сообщение
48 минут назад, Dennis_Chikin сказал:

2 abramcumner:

А что - есть возможность стандартными средствами, пользуясь только SDK, влиять на порядок апдейта смартов и респавнеров ?

Вроде нельзя, СДК и не для этого нужен. Порядок апдейтов определяется в движке/скриптах.

Но можно добавить объектам в СДК свойство "порядок апдейта" и строить апдейты в движке, основываясь на нем.

 

А еще закладываться на порядок апдейтов плохо. А для 2017 непростительно плохо :)

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


Ссылка на сообщение
35 минут назад, Graff46 сказал:

то мне учитывать этот заголовок абсолютно во всех чанках файла?

Конечно, а как еще. Но в файле level.cform, как и  указано в статье 2, чанков ровно 0 штук.

  • Спасибо 1

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


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

Количество вершин
-
DWord(4)
Количество треугольников
-
DWord(4)

Вот же у тебя есть количество вершин. Как прочитаешь вершины, так пойдут треугольники. Одна вершина - 12 байт по 4 байта на координату. Один треугольник - 16 байт.

  • Спасибо 1

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


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

×
×
  • Создать...