Как делать рендеры самп
Всем здарова! Недавно заказывал скрипт под заказ для аризоны рп. Этот рендер в формате lua, такого ещё не было.
Всем здарова! Сегодня я вам покажу старенький, но надёжный ВХ на предметы, в том числе и клады. Показывает 2 линии .
Всем здарова! Совсем недавно вышел новый вх на клады для Arizona RP, как только его увидел, так сразу же записал .
ТЕГИ (НЕ ЧИТАТЬ) samp, arizona rp, аризона рп, gta samp, самп, gta, gta sa, arizona, гта, аризона, гта самп, cleo, gta san .
Я попросил у Сэма Мэйсона добавить новую систему для того, чтобы начать палить читеров рвхашников также, как тех, кто .
renderGetFontCharIndexAt
Описание
Возвращает индекс символа в тексте по позиции в пикселях
Аргументы
DxFont font шрифт
string text текст
float x смещение в пикселях
bool ignoreColorTags=false пропуск цветовых тегов
Возвращаемые значения
uint index индекс символа
renderGetFontCharWidth
Описание
Получает ширину определённого символа и возвращает результат в пикселях
Аргументы
DxFont font шрифт
string char символ
Возвращаемые значения
float width ширина символа
renderSetTexCoord
Описание
Аргументы
float posX, posY относительные координаты текстуры
Пример использования
renderDrawPolygon
Описание
Отображает многоугольник в указанных координатах с заданным вращением и количеством углов
Аргументы
float posX, float posY координаты центра
float sizeX, float sizeY размер
int corners количество вершин
float rotation вращение в градусах
uint color цвет фигуры в формате ARGB
Пример использования
Рисование элементов на экране
Все функции, занимающиеся отображением, рисуют элементы только на один кадр, поэтому для корректного отображения должны быть вызваны каждый кадр.
renderDrawBox
Описание
Рисует прямоугольник в указанных координатах с определённым размером
Аргументы
float posX, posY координаты
float sizeX, sizeY размер
uint color цвет в ARGB
Пример использования
renderReleaseFont
Описание
Загруженные шрифты выгружаются автоматически сборщиком мусора, так что использование этой функции необязательно, она существует лишь для обеспечения совместимости со старыми версиями.
Аргументы
DxFont font шрифт
Пример использования
renderGetFontDrawHeight
Описание
Возвращает высоту загруженного шрифта в пикселях
Аргументы
DxFont font шрифт
Возвращаемые значения
float height высота
renderGetTextureSize
Описание
Возвращает размеры изображения
Аргументы
DxTexture texture текстура
Возвращаемые значения
uint sizeX ширина
uint sizeY высота
renderGetTextureStruct
Описание
Возвращает указатель на объект IDirect3DTexture9, принадлежащий текстуре
Аргументы
DxTexture texture текстура
Возвращаемые значения
uint struct указатель
renderEnd
Описание
Завершение рисования фигуры
renderDrawLine
Описание
Отображает на экране линию от точки pos1x, pos1y до точки pos2x, pos2y
Аргументы
float pos1x, pos1y координаты первой точки
float pos2y, pos2y координаты второй точки
float width ширина линии
uint color цвет линии в формате ARGB
Пример использования
Рендер пользовательских примитивов
При помощи следующих функций вы можете осуществить отображение фигур любой формы, натягивать на них текстуру и задавать цвет отдельно каждому углу. Минимальный набор последовательных вызовов для правильной работы:
renderCreateFont
Описание
Загружает установленный в системе шрифт по названию. Можно задать стиль шрифта и требуемую кодировку.
Аргументы
zstring font название
int height высота
uint flags флаги
uint charset кодировка
Возвращаемые значения
DxFont font шрифт
renderVertex
Описание
Добавляет вершину в фигуру по абсолютным координатам
Аргументы
float vX, float vY координаты
renderBegin
Описание
Начало рисования фигуры определённым методом.
Возможные значения type :
Название | Значение | Описание |
---|---|---|
POINTLIST | 1 | список точек |
LINELIST | 2 | набор линий |
LINESTRIP | 3 | ломаная линия |
TRIANGLELIST | 4 | набор треугольников |
TRIANGLESTRIP | 5 | серия связанных треугольников (многоугольник) |
TRIANGLEFAN | 6 | серия связанных треугольников с единым центром |
Подробнее о каждом методе построения примитивов: MSDN
Аргументы
renderGetTextureSprite
Описание
Возвращает указатель на объект ID3DXSprite, принадлежащий текстуре
Аргументы
DxTexture texture текстура
Возвращаемые значения
uint sprite указатель
renderColor
Описание
Задаёт цвет. Должна быть вызвана перед добавлением вершины
Аргументы
uint color цвет в ARGB
Пример использования
Рендерим с помощью SAMPFUNCS
Рендер текста
Первое, с чего мы начнем, это создание шрифта и рендер текста с помощью него.
Для создания шрифта используем опкод opcodes:0b6d, но перед тем, как делать инициализацию шрифта, приведу таблицу флагов(все эти флаги имеются в инклуд файле SF, который распространяется вместе с архивом):
- Первый флаг(flag1) = FCR_BOLD = 1
- Второй флаг(flag2) = FCR_BORDER = 4
- Конечный результат FCR_BOLD + FCR_BORDER = 1 + 4 = 5
Создаем шрифт:
В переменную 0@ запишется указатель на этот самый шрифт, чтобы в дальнейшем рендерить текст и узнавать некоторые его свойства.
Мы создали шрифт для рендера, теперь используем его:
Делаем рендер шрифта по указанным координатам, для этого применяется опкод opcodes:0b6f
"Базовый" рендер готов.
Свойства
У рендера текста есть всего 2 свойства: получение ширины указанного текста, получение высоты шрифта. Все значения в пикселях.
- opcodes:0b6b - получение ширины текста
- opcodes:0b6c - получение высоты шрифта
Эти два свойства я использую в одном коде, вместе с комментариями к коду:
Также можно сделать рендер, к примеру, по середине окна игры(640x448) с помощью конвертера(опкод opcodes:0b60):
Первый текст будет отображаться ровно по середине экрана(вместе с учетом некоторых нюансов), а остальные - будут ниже его.
И ещё 1 пример: мы хотим вывести над головой игрока текст "Любитель", то конверт будет другой, из игровых координат(3D, опкод opcodes:0b55):
Рендер текстур
Также, с помощью данного рендера есть возможность отображать изображения(текстуры), которые были инициализированы перед этой операцией.
Для инициализации структуры, используем опкод opcodes:0b71(файл текстуры должен существовать!):
В принципе всё: текстура загружена. Для её "выгрузки", используем опкод opcodes:0b72.
Для рендера текстуры, необходимо применить опкод opcodes:0b73:
Я инициализировал текстуру, а точнее - изображение, используя код выше:
Конечно, можно было вывести изображение без изменения цветоканалов. Для этого укажите цвет белый(0xffffffff или просто -1).
Рендер примитивов
Примитивы включают себя различные линии, квадраты, эллипсы и т.п.
В этом пункте рассмотрим только базовый рендер примитивов.
Рендер линий
Для рендера линий используется опкод opcodes:0b68.
Думаю, не составит труда разобрать его параметры.
Пример кода:
Результат: линия рисуется из левого верхнего угла экрана в середину экрана с толщиной 1 пиксель и красным полупрозрачным цветом.
Рендер квадратов
Рендер квадратов можно осуществить в двух видах: с обводкой и без обводки.
Для этого используются опкоды opcodes:0b69 и opcodes:0b6a.
Для компактности, я занесу их в один код:
Первый квадрат будет отображен по середине экрана, а второй(с обводкой) будет расположен правее.
Рендер многоугольников
Для рендера многоугольников используется опкод opcodes:0b70.
Для отображения треугольника применяется такой код:
Ближе к середине экрана будет отображен треугольник белого цвета, с размерами 100x75 пикселей.
renderSetRenderState
Описание
Устанавливает значение рендерстейта.
Подробнее о рендерстейтах: MSDN
renderDrawTexture
Описание
Отображает загруженную текстуру по заданным координатам, с указанным размером и вращением
Аргументы
DxTexture texture текстура
float posX, posY координаты
float sizeX, sizeY размер
float rotation вращение
uint color цвет в ARGB
renderLoadTextureFromFile
Описание
Загружает текстуру из файла
Аргументы
zstring file путь к файлу
Возвращаемые значения
DxTexture texture текстура
renderReleaseTexture
Описание
Освобождает загруженную текстуру. Применять необязательно, т.к. все загруженные текстуры освобождаются сборщиком мусора. Функция оставлена для обеспечения совместимости со старыми версиями.
Аргументы
DxTexture texture текстура
Пример использования
renderDrawBoxWithBorder
Описание
Рисует прямоугольник с границей
Аргументы
float posX, posY координаты
float sizeX, sizeY размер
uint color цвет в ARGB float bsize толщина границы
uint bcolor цвет границы в ARGB
Пример использования
renderBindTexture
Описание
Задаёт фигуре текстуру. Каждой фигуре может быть задана только одна текстура. Значение nil сбросит заданную текстуру. Эта функция должна быть использована совместно с renderSetTexCoord
Аргументы
DxTexture texture текстура
renderFontDrawText
Описание
Отображает текст на экране, используя загруженный шрифт. Поддерживает цветовые теги в формате и , и символ переноса строки \n .
Аргументы
DxFont font шрифт
zstring text текст
float posX, posY координаты
uint color цвет в ARGB
bool ignoreColorTags=false если задано true , цветовые теги не станут обрабатываться
Пример использования
renderGetFontDrawTextLength
Описание
Вычисляет ширину заданного текста для загруженного шрифта и возвращает результат в пикселях.
Аргументы
DxFont font шрифт
zstring text текст
bool ignoreColorTags=false пропуск цветовых тегов
Возвращаемые значения
float length ширина в пикселях
Пример использования
renderLoadTextureFromFileInMemory
Описание
Загружает текстуру из файла в памяти процесса
Аргументы
uint pointer адрес памяти
uint size размер файла
Возвращаемые значения
DxTexture texture текстура
Читайте также: