- 390
- 95
- Версия MoonLoader
- .026-beta
Здравствуйте, можете, пожалуйста, объяснить, как правильно работать со структурами? Вот опять тот же вопрос с текстдравами. Есть структура текстдрава, я получаю пул текстдрава и могу работать с его текстом: получать и изменять. С получением всё ок, а вот с изменением есть проблема. Если я меняю текст, он не меняется сразу, а где-то через 0.1 мс, и в этот момент на экране виден старый текст, который потом заменяется на новый. Получается визуальное мигание, когда сначала показывается старый текст, а потом он обновляется. Это довольно раздражает.
Текстдрав обновляется на сервере через время, и из-за этого появляется этот эффект мигания. Есть ли способ это исправить? Или так работает система: сначала создается текстдрав, а потом можно получить его пул? То есть за эти 0.1 мс как раз всё обновляется? В теории можно использовать задержку рендера, чтобы не показывать текстдрав, пока он полностью не обновится (текст), но всё равно возникнет такой же эффект.
Использовал родной
Буду рад, если подскажете, как это можно решить!
ТОЛЬКО НЕ САМПЕВЕНС
да и если использовать
хук приостанавливает обновление текстдрава до его нового обновления? :/
p.s: какого-то хрена, если вместо 2089 указать параметр id, ничего не обновится, а print(id) выводит 2089 :/
😤
Текстдрав обновляется на сервере через время, и из-за этого появляется этот эффект мигания. Есть ли способ это исправить? Или так работает система: сначала создается текстдрав, а потом можно получить его пул? То есть за эти 0.1 мс как раз всё обновляется? В теории можно использовать задержку рендера, чтобы не показывать текстдрав, пока он полностью не обновится (текст), но всё равно возникнет такой же эффект.
Использовал родной
sampTextdrawSetString
(в беск.цикле конечно же), всё такой-же эффект(ИЛИ вопрос с другой стороны, почему при использовании sampTextdrawSetString(или sampTextdrawDelete и тому подобных) не обрабатываются моментально?)
Буду рад, если подскажете, как это можно решить!
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));
]]
ТОЛЬКО НЕ САМПЕВЕНС
да и если использовать
sampTextdrawSetString
(просто для примера) в хуке onShowTextDraw
, то всё ВОвремя обновляется, КАК ЭТО РАБОТАЕТ?хук приостанавливает обновление текстдрава до его нового обновления? :/
Lua:
function ev.onShowTextDraw(id, data)
local text = data.text
if text:find(dapi.cyrillic('Аптечка')) then
print(id) -- 2089
sampTextdrawSetString(2089, "SOSOSOSOSOSO")
end
end
😤
Последнее редактирование: