Как делать рендеры самп

Обновлено: 06.05.2024

Всем здарова! Недавно заказывал скрипт под заказ для аризоны рп. Этот рендер в формате 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 текстура

Читайте также: