MasterGH

Администраторы
  • Публикации

    2 505
  • Зарегистрирован

  • Посещение

  • Days Won

    58

MasterGH last won the day on February 18

MasterGH had the most liked content!

Репутация

253 NOPer

О MasterGH

  • Звание
    Сооснователь
  • День рождения 31.12.1986

Информация

  • Пол
    Мужчина
  • Город
     Новосибирск\Москва

Посетители профиля

57 675 просмотров профиля
  1. Похоже чем-то на лихорадку в век цифровой эпохи. Видео, которое недавно появилось.
  2. Можешь поискать в сканере памяти эейлеров угол вертикальной оси поворачивая персонажа влево и вправо. Тогда выйдешь на три адреса X,Y,Z эйлеровых углов. И по аналогии можно попробовать сделать Quaternion.Euler(transform.eulerAngles): Переписать код на C++ можно декомплировать .net библиотеку C:\Program Files\Unity\Editor\Data\Managed\UnityEngine.dll через ILSpay. Библиотеку это можно взять из Unity игр или установив движок Unity.
  3. Был вопрос на форуме о том, как узнать, а куда смотрит игрок и как нарисовать линию в экранных координатах. Я не нарисую отрезки в окне игры в экранных координатах, но могу отобразить точки одного отрезка для одного глаза 2д-панельками в экранных координатах (хотя визуально, у Unity экранные координаты связаны с 3д координатами по масштабу пикселя на метр на сцене). Для наглядности все же в окнах сцены будут отрезки в 3д-координатах. Чтобы посмотреть функции операторов такие как умножение, сложение и свойства normalized, и переписать код на C++ можно декомплировать .net библиотеку C:\Program Files\Unity\Editor\Data\Managed\UnityEngine.dll через ILSpay. Например, там есть расчеты умножения кватерниона (X,Y,Z,W) на эйлеровы углы (X,Y,Z), нормализация, сложение. Библиотеку это можно взять из Unity игр или установив движок Unity. Адреса позиции и углов обычно находятся рядом друг с другом.
  4. Я думаю, можно найти адреса кватерниона в памяти рядом с адресами позиции. Это 4 раза по 4 байта X,Y,Z,W.
  5. CT таблица для составления регулярных выражений 4-х функций string.match (s, pattern [, init]) string.gmatch (s, pattern) string.gsub (s, pattern, repl [, n]) string.find (s, pattern [, init [, plain]]) Функция string.gsub может принимать в аргумент функции "repl" таблицу (тогда будет замена по ключам значений из таблицы ) или в аргумент "repl" может попадать некоторая другая функция с аргументом найденного слова (тогда будет вызов этой другой функции при каждом захвате символа или слова). Более подробное в документации Lua 5.3 Еще несколько ссылок с практическим руководством Lua Regular expression.CT
  6. Готовый вариант не дам, но может поможет Если DrawLine должен рисовать две точки на GUI, то: 1. WorldToScreen из "3д-точки1" 2. WorldToScreen из "3д-точки2" 3. "3д-точка1" равна позиции глаз 4. "3д-точка2" = "3д-точка1" + ("3д-направление 3д-точки1") * дистанция взгляда 5. "3д-направление 3д-точки1" = нормализация ("кватернион 3д-точки1" * new Vector3(0f, 0f, 1f)) 6. Умножение кватерниона на вектор3 через определение оператора "умножение" 7. Нормализация вектора3 Не уверен, что это правильно, надо переводить на C++ и проверять. * Если в игре ось "вперед" не является Z, а другой осью Y, то new Vector3(0f, 1f, 0f)
  7. Рис1. Пример рисования текста разными цветами Скрипт Lua Источник
  8. Скриншот. Сравнение main.lua версии CE 6.6 и celua.txt CE 6.7 В архиве ниже два файла описания CE Lua функций, классов. Файлы можно сравнить самостоятельно в любой программе (я сравнивал в NotePad++, плагин Compare). Без сравнения будет сложнее ориентироваться. Compare Help Lua files CE 6.7.zip Появились, если я правильно подсчитал 17 новых классов. 16 классов для работы с базой данных SQL(sqlite) и один CustomType, множество функций. Некоторые из них
  9. Что нашел у себя, залил. Cтатьи.zip
  10. Кому интересно как c помощью инструмента Fuse сделать модель вроде той, что я набросал на скриншоте выше и заставить её бегать, я предлагаю посмотреть в этом видео, незнакомого автора.
  11. List of CIL instructions По той же ссылке рефы внизу
  12. @partoftheworlD, заходи на форум в любое время
  13. Пример1. Узнать во сколько раз string.match() медленее string.find() Пример2. Создание лишней локальной переменной Ответы: 1.38, 1.04. Если значение меньше единицы, то оптимизированный код хуже. Если значение больше единицы, то стоит использовать более оптимизированный вариант. Для простого поиска лучше использовать string.find чем string.match. Еще несколько примеров Для чего может пригодиться. Может пригодиться при оптимизации кода трассировке на брейкпоинтах в пошаговой отладке
  14. В общем хорошо взялся за регулярки на Lua! Всё подряд прогоняю через них, что под руку попадется, любые задачи. Случайный пример задачи. Пронумеровать список Тут же написал И получил ответ. В следующий раз только вызывать "EnumerateText([[ текст со строками]])" Тут в буфер текст улетит и выведет в мессагу. После закрытия мессаги через CTRL+V вставит текст, куда хотим Пронумерованные функции — функции работы со строками последней версии Lua 5.3.x из документации На что стоит обратить внимание при регулярках: 1. Работа с пробелами и не пробелами: "%s" и "%S" 2. Работа с символами разделяющие строки и не разделяющими строки: "%с" и "%С" 3. Захват строк "(.+)", "(.-)", "(.*)", а также без захвата, т.е. пропуск других символов ".+",".-",".*" 4. Узнать как и какая функция из выше перечисленных работает, какая используется с регуляторами. Хотим к примеру вывести слово, которое закончится на пробеле (пишу просто "на пробеле" без учета других символов). Это уже "(%w+)", а если хотим второе слово, то это "%W+%w+" (не выводить первое и вывести второе слово) или "%s(%w+)" (после пробела, но чтобы было без пробела, то захватить в круглые скобки), или "^.+%s(%w+)"(начинать с первого символа до пробела и захват до конца слова). Если писать на CE Lua, то регулярки знать не обязательно. Но, их желательно знать, чтобы читать чужой код и писать свой. Да и вообще это интересно. Очень короткие выражения позволяют решить некоторую задачу за быстрое время. Основные задачи: поиск текста и замена текста.
  15. Не уверен, надо смотреть в CE как работает функция. Если нажали на space на адресе стека, то переход будет как CE угадывает, либо в MemHex область, либо в Disassembler область. Если держали shift или ctrl и двойной клик, то переход уже прямой, либо в первом случае в disassembler, либо во втором случае переход в memory view. Или же если нажать на space, то стек отобразится не по ESP, а по адресу, который выделили в стеке.