- 393
- 96
- Версия MoonLoader
- .026-beta
имеется структура
удаляю текстдравы таким способом
TextdrawBlocking({id}) в беск. цикле. Текстдравы обновляются через какое-то время, и получается эффект мигания, где текстдрав появляется на пару мс и пропадает. Пытался разными способами визуально скрыть тексдрав(удалял, устанавливал прозрачность, менял позицию), но текстдравы, они обновляются, и всё такой-же эффект мигания.
Я НЕ использую samp.lua и не хотел бы использовать(хотя там и проще, return false поставить и всё)
Lua:
local ffi = require "ffi"
ffi.cdef[[
struct CTextDrawData {
float m_fLetterWidth;
float m_fLetterHeight;
unsigned long m_letterColor;
unsigned char unknown;
unsigned char m_bCenter;
unsigned char m_bBox;
float m_fBoxSizeX;
float m_fBoxSizeY;
unsigned long m_boxColor;
unsigned char m_nProportional;
unsigned long m_backgroundColor;
unsigned char m_nShadow;
unsigned char m_nOutline;
unsigned char m_bLeft;
unsigned char m_bRight;
int m_nStyle;
float m_fX;
float m_fY;
unsigned char pad_[8];
unsigned long field_99B;
unsigned long field_99F;
unsigned long m_nIndex;
unsigned char field_9A7;
unsigned short m_nModel;
float m_rotation[3];
float m_fZoom;
unsigned short m_aColor[2];
unsigned char field_9BE;
unsigned char field_9BF;
unsigned char field_9C0;
unsigned long field_9C1;
unsigned long field_9C5;
unsigned long field_9C9;
unsigned long field_9CD;
unsigned char field_9D1;
unsigned long field_9D2;
}__attribute__ ((packed));
struct CTextDraw {
char m_szText[801];
char m_szString[1602];
struct CTextDrawData m_data;
}__attribute__ ((packed));
struct CTextDrawPool {
int m_bNotEmpty[2048 + 256];
struct CTextDraw* m_pObject[2048 + 256];
}__attribute__ ((packed));
]]
удаляю текстдравы таким способом
Lua:
DAPI.TextdrawBlocking = function(t)
local textdraw_pool = ffi.cast("struct CTextDrawPool*", sampGetTextdrawPoolPtr())
for _, id in pairs(t) do
if textdraw_pool.m_bNotEmpty[id] ~= 0 then
textdraw_pool.m_bNotEmpty[id] = 0
--textdraw_pool.m_pObject[id] = nil
print(string.format("Текстдрав с ID %s удален.", id))
else
print(string.format("Текстдрав с ID %s уже существует или уже удален.", id))
end
end
end
TextdrawBlocking({id}) в беск. цикле. Текстдравы обновляются через какое-то время, и получается эффект мигания, где текстдрав появляется на пару мс и пропадает. Пытался разными способами визуально скрыть тексдрав(удалял, устанавливал прозрачность, менял позицию), но текстдравы, они обновляются, и всё такой-же эффект мигания.
Я НЕ использую samp.lua и не хотел бы использовать(хотя там и проще, return false поставить и всё)
Последнее редактирование: