Исходник Гайд entityRender | Рисуем сущности в mimgui

Уже давно @chapo меня заебывал просил переписать библиотеку от @imring для mimgui, и я даже начал это делать, но потом забил болт. Но вот у меня наконец-то дошли руки до этого​

Описание: Данная библиотека дает возможность рендерить сущности в mimgui. Например: педов, транспорт, объекты.
Установка: скачать файл EntityRender.dll из вложений и перенести его в папку moonloader\lib.
Видео:

Скриншот:
1738640501189.png

Доступные функции:
Lua:
entityRender.init() -- Инициализирует библиотеку. Вызывается один раз перед работой с библиотекой
ptr texturePtr = entityRender.getD3D9Texture() -- Возвращает указатель на IDirect3Texture9 для рендера ImGui::Image
entityRender.recreateTexture(int nId) -- Пересоздает текстуру по её ID
bool result = entityRender.setTexturePos(int nId, float x, float y, float z) -- Устанавливает позицию текстуре по её ID
bool result = entityRender.setTextureRotate(int nId, float x, float y, float z) -- Устанавливает поворот текстуре под её ID
bool result = entityRender.setTextureModel(int nId, int nModelId) -- Устанавливает модель текстуре по её ID
bool result = entityRender.setTextureBackground(int nId, float r, float g, float b, float a) -- Устанавливает цвет заднего фона текстуры по её ID
bool result = entityRender.setTextureVehicleColor(int nId, int nPrimary, int nSecondary) -- Устанавливает цвет транспорту по ID текстуры
bool result = entityRender.deleteTexture(int nId) -- Удаляет текстуру по её ID
entityRender.deleteAllTextures() -- Удаляет всё текстуры
bool result = entityRender.isTextureExist(int nId)
int nId = entityRender.addEntity(int nModelId, int nTextureSizeX, nTextureSizeY) -- Создает текстуру с указаной моделью и возвращает её ID
Lua:
-- Код говно, но мне похуй
local entityRender = require("EntityRender")
local imgui = require 'mimgui'
local renderWindow = imgui.new.bool(true)
local vPos = imgui.new.float[3](0.1, -2.00, 50.0)
local bgColor = imgui.new.float[4](1.0, 1.0, 1.0, 1.0)
local vRotate = imgui.new.float[3](0.0, 0.0, 0.0)
local nModel = imgui.new.int(411)
local nVehicleColor = imgui.new.int[2](0, 0)
local vPos1 = imgui.new.float[3](0.1, -2.00, 50.0)
local bgColor1 = imgui.new.float[4](1.0, 1.0, 1.0, 1.0)
local vRotate1 = imgui.new.float[3](0.0, 0.0, 0.0)
local nModel1 = imgui.new.int(411)
local nVehicleColor1 = imgui.new.int[2](0, 0)
local nTextureId = nil
local nTextureId1 = nil
function main()
    entityRender.init()
    nTextureId = entityRender.addEntity(nModel[0], 256, 256)
    nTextureId1 = entityRender.addEntity(nModel1[0], 256, 256)
end
imgui.OnInitialize(function()
    imgui.GetIO().IniFilename = nil
end)
local newFrame = imgui.OnFrame(
    function() return renderWindow[0] end,
    function(player)
        local resX, resY = getScreenResolution()
        local sizeX, sizeY = 600, 300
        imgui.SetNextWindowPos(imgui.ImVec2(resX / 2, resY / 2), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
        imgui.SetNextWindowSize(imgui.ImVec2(sizeX, sizeY), imgui.Cond.FirstUseEver)
        if imgui.Begin('Main Window', renderWindow, imgui.WindowFlags.AlwaysAutoResize) then
            if (entityRender.getD3D9Texture(nTextureId) ~= nil) then
                imgui.Image(entityRender.getD3D9Texture(nTextureId), imgui.ImVec2(255.0, 255.0))
            end
            if (entityRender.getD3D9Texture(nTextureId1) ~= nil) then
                imgui.SameLine()
                imgui.Image(entityRender.getD3D9Texture(nTextureId1), imgui.ImVec2(255.0, 255.0))
            end
            if (imgui.DragFloat3("pos", vPos, 0.1, -100.0, 100.0)) then
                entityRender.setTexturePos(nTextureId, vPos[0], vPos[1], vPos[2])
                entityRender.recreateTexture(nTextureId)
            end
            imgui.SameLine()
            if (imgui.DragFloat3("pos1", vPos1, 0.1, -100.0, 100.0)) then
                entityRender.setTexturePos(nTextureId1, vPos1[0], vPos1[1], vPos1[2])
                entityRender.recreateTexture(nTextureId1)
            end
            if (imgui.DragFloat3("rotate", vRotate, 0.1, -360.0, 360.0)) then
                entityRender.setTextureRotate(nTextureId, vRotate[0], vRotate[1], vRotate[2])
                entityRender.recreateTexture(nTextureId)
            end
     
            imgui.SameLine()
            if (imgui.DragFloat3("rotate1", vRotate1, 0.1, -360.0, 360.0)) then
                entityRender.setTextureRotate(nTextureId1, vRotate1[0], vRotate1[1], vRotate1[2])
                entityRender.recreateTexture(nTextureId1)
            end
            if (imgui.ColorEdit4("bg color", bgColor)) then
                entityRender.setTextureBackground(nTextureId, bgColor[0] * 255, bgColor[1] * 255, bgColor[2] * 255, bgColor[3] * 255)
                entityRender.recreateTexture(nTextureId)
            end
     
            imgui.SameLine()
            if (imgui.ColorEdit4("bg color1", bgColor1)) then
                entityRender.setTextureBackground(nTextureId1, bgColor1[0] * 255, bgColor1[1] * 255, bgColor1[2] * 255, bgColor1[3] * 255)
                entityRender.recreateTexture(nTextureId1)
            end
            imgui.InputInt2("vehicle color", nVehicleColor)
            imgui.SameLine()
            imgui.InputInt2("vehicle color1", nVehicleColor1)
            imgui.InputInt("model", nModel)
            imgui.SameLine()
            imgui.InputInt("model1", nModel1)
            if (imgui.Button("recreate")) then
                entityRender.setTextureModel(nTextureId, nModel[0])
                entityRender.setTextureVehicleColor(nTextureId, nVehicleColor[0], nVehicleColor[1])
                entityRender.recreateTexture(nTextureId)
                entityRender.setTextureModel(nTextureId1, nModel1[0])
                entityRender.setTextureVehicleColor(nTextureId1, nVehicleColor1[0], nVehicleColor1[1])
                entityRender.recreateTexture(nTextureId1)
            end
            imgui.End()
        end
    end
)

Автор: @ARMOR
Автор оригинальной библиотеки: @imring
Отдельное спасибо: @вайега52
Исходник: https://github.com/xARMORx/EntityRender
 

Вложения

  • EntityRender.dll
    170.5 KB · Просмотры: 197
Последнее редактирование модератором:

trefa

3d print
Всефорумный модератор
2,145
1,347
и ещё, у некоторых моделей транспорта есть что-то наподобие подтипов моделей, например 435 - трейлер, если его пересоздавать получается постоянно рандомная пиздобразия с разными деталями текстурки на одной и той же модели. трейлер, это как пример, подобный транспорт есть ещё - 552(меняется колличество конусов) и другие
Это экстра называется
 

ARMOR

Я креветка
Автор темы
Модератор
5,070
7,427
Для желающих: есть идея для худа, в котором будут рисоваться ганы при помощи этой библиотеки. Думал сам это сделать, но как-то забил болт на эту идею после добавления несколький оружий.

Вот как это выглядит у меня. Пытался сделать позицию и поворот оружия примерно таким же как и у обычных иконок оружия:

UP: Кстати обновления с анимациями не будет. Они жрали очень много фпс и я положил болт
 

четыреста четыре

Известный
130
21
Для желающих: есть идея для худа, в котором будут рисоваться ганы при помощи этой библиотеки. Думал сам это сделать, но как-то забил болт на эту идею после добавления несколький оружий.

Вот как это выглядит у меня. Пытался сделать позицию и поворот оружия примерно таким же как и у обычных иконок оружия:

UP: Кстати обновления с анимациями не будет. Они жрали очень много фпс и я положил болт
да хуй бы с ними, главное чтоб функциональность была аналогичной sampTextdrawSetModelRotationZoomVehColor без проблем с лодками
 

RaMero

Известный
444
137
При onD3DDeviceLost (сворачивании игры) слетают текстурки и нужно заново в onD3DDeviceReset подгружать, и в большинстве случаев - после разворачивания черный экран.
 
  • Вау
Реакции: ARMOR

Davidasme

Новичок
18
1
i love this plugin amazing work i created script all good object, vehicle, weapons, all works perfect only ped when i use ped game crash
GTA SA 1.0.0.0 US
Unhandled exception at 0x72746218 in nvd3dum.dll (+0x1256218): 0xC0000005: Access violence reading location 0xFFFFFFFF.
Register dump:
EAX: 0x72746141 EBX: 0x26FB0FA8 ECX: 0x26FB0FA8 EDX: 0x00863C40
EDI: 0x26FB0FA8 ESI: 0x75BDDC60 EBP: 0x0177F62C EIP: 0x72746218
ESP: 0x0177F5FC EFL: 0x00210207 CS: 0x00000023 SS: 0x0000002B
GS:0x0000002B FS:0x00000053 ES:0x0000002B DS:0x0000002B

Stack dump:
0x0177F5FC: 6F69190E 018485C0 0330E8E0 26FB0FA8 00000001 00805769
0x0177F614: 05380D68 00C9BC50 007FE9EA 00000018 00000014 018485C0
0x0177F62C: 0177F6C9 6F691887 26FB0FA8 018485C0 0330E8E0 0177F688
0x0177F644: 0177F658 26FB0FA8 0330E8EC 0000000A 00000000 018485C0
0x0177F65C: 0177F688 FFFFFFFF 0177F708 0330E8EC 00000000 0177F688
0x0177F674: 0053EAC9 7035F75A 0177F708 7035FC50 00000001 0177F6D0
0x0177F68C: 7035B8E9 0177F6DC 01925BC0 703B8A9C 018485C0 002A0744
0x0177F6A4: 00000000 0177F6C0 75DFE17B 00000101 00000044 C0200001
0x0177F6BC: 0177F698 0177F698 0177F6F4 703B3B40 00000001 0177F6E4
0x0177F6D4: 7035FC02 01925BD4 00000001 0177F888 0177F700 7035E267
base: 0x01580000 top: 0x0177F5FC bottom: 0x01780000

Backtrace (may be wrong):
=>0x72746218 QueryOglResource+0x9182e8 in nvd3dum.dll (+0x1256218) (0x0177F62C)
0x6F691887 in OutFit.asi (+0x1887) (0x0177F6F9)
0x74000000 InternetSetCookieEx2+0x2640 in WININET.dll (+0x330000) (0x0177F6FD)
0x460177F8 in unknown (+0x460177f8) (0x0177F701)
0xA4703602 in unknown (+0xa4703602) (0x0177F705)
0xC0703B89 in unknown (+0xc0703b89) (0x0177F709)
0x44018485 in unknown (+0x44018485) (0x0177F70D)
0xCD002A07 in unknown (+0xcd002a07) (0x0177F711)
0x00DCBAAB in gta_sa.exe (+0x9cbaab) (0x0177F715)
0x68000000 in unknown (+0x68000000) (0x0177F719)
0x850177F8 in unknown (+0x850177f8) (0x0177F71D)
0xFF703B3D in unknown (+0xff703b3d) (0x0177F721)
0x74FFFFFF in wintypes.dll (+0x1ffff) (0x0177F725)
0x000177F8 in unknown (+0x177f8) (0x0177F729)
0x88000000 in unknown (+0x88000000) (0x0177F72D)
0x1A0177F8 in unknown (+0x1a0177f8) (0x0177F731)
0x01000000 in gta_sa.exe (+0xc00000) (0x0177F735)


just now i found the problem it was OutFit.asi
 
Последнее редактирование:

TwoPillsMolly

Новичок
9
3
можно ли как то сделать так что анимированные объекты по типу 18690 были анимированны, или хотя бы показывались статично на каком то кадре?
 

Вложения

  • 1778893324116.png
    1778893324116.png
    54 KB · Просмотры: 8