Проблема с DXUT

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Автор темы
Друг
8,747
11,157
При попытке создания DXUT диалога вылезает ошибка:
45302
 
Решение
Ты наверое это хочешь сделать:
CLEO:
{$CLEO}
0000:

repeat
wait 0
until Samp.Available()
Dialog.Create(4@, " / \ ") // Диалогу выделяется переменная, в которой будет хранится id (Цифрами id не нужно писать)
Dialog.SetRECT(4@, {posX}500, {posY}500, {sizeX}300, {sizeY}225) // координаты и размер диалога.
Dialog.AddStatic(4@, 1, "kek", {posX}117, {posY}150, {width}160, {height}20) // добавляешь элемент текста, в который потом будет записываться скорость. Координаты задаются относительно размеров диалога
Dialog.SetVisible(4@, 0) // прячешь диалог

while true
wait 0
    if
    Actor.Driving($PLAYER_ACTOR)
    then
    Dialog.SetVisible(4@, 1) // если водишь, то диалог виден
    alloc 3@ 15
    03C0: 1@ = actor $PLAYER_ACTOR car
    02E3: 2@ =...

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Автор темы
Друг
8,747
11,157
код

[/QUOTE]

CLEO:
{$CLEO}
0000:
:dialog
wait 0
if
Actor.Driving($PLAYER_ACTOR)
0B80: dialog 1735 = create "/\"
0B84: dialog 1735 set_pos_XY 500 500 size 300 225
jump @main

:main
0001: wait 0
if

Actor.Driving($PLAYER_ACTOR)
jf @dialog
03C0: 1@ = actor $PLAYER_ACTOR car
02E3: 2@ = car 1@ speed
0013: 2@ *= 4.0
0AD3: 3@ = format "%.1f" 2@

jump @dialog
 
Последнее редактирование:

D3.Pheonix

🎹
Модератор
2,813
1,592
Ты наверое это хочешь сделать:
CLEO:
{$CLEO}
0000:

repeat
wait 0
until Samp.Available()
Dialog.Create(4@, " / \ ") // Диалогу выделяется переменная, в которой будет хранится id (Цифрами id не нужно писать)
Dialog.SetRECT(4@, {posX}500, {posY}500, {sizeX}300, {sizeY}225) // координаты и размер диалога.
Dialog.AddStatic(4@, 1, "kek", {posX}117, {posY}150, {width}160, {height}20) // добавляешь элемент текста, в который потом будет записываться скорость. Координаты задаются относительно размеров диалога
Dialog.SetVisible(4@, 0) // прячешь диалог

while true
wait 0
    if
    Actor.Driving($PLAYER_ACTOR)
    then
    Dialog.SetVisible(4@, 1) // если водишь, то диалог виден
    alloc 3@ 15
    03C0: 1@ = actor $PLAYER_ACTOR car
    02E3: 2@ = car 1@ speed
    0013: 2@ *= 2.0 // Чтобы получить корректную  скорость, нужно умножать на 2, а не на 4
    0AD3: 3@ = format "%.0f" 2@
    Dialog.SetControlText(4@, 1, 3@) // Записываешь скорость в элемент, который ты создал для текста.
    free 3@
    else
    Dialog.SetVisible(4@, 0) // если не водишь, диалог прячется
    end
end

Коорды и размеры подгоняй сам
sa-mp-001.png
 
  • Нравится
Реакции: shinoa и chapo

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Автор темы
Друг
8,747
11,157
Ты наверое это хочешь сделать:
CLEO:
{$CLEO}
0000:

repeat
wait 0
until Samp.Available()
Dialog.Create(4@, " / \ ") // Диалогу выделяется переменная, в которой будет хранится id (Цифрами id не нужно писать)
Dialog.SetRECT(4@, {posX}500, {posY}500, {sizeX}300, {sizeY}225) // координаты и размер диалога.
Dialog.AddStatic(4@, 1, "kek", {posX}117, {posY}150, {width}160, {height}20) // добавляешь элемент текста, в который потом будет записываться скорость. Координаты задаются относительно размеров диалога
Dialog.SetVisible(4@, 0) // прячешь диалог

while true
wait 0
    if
    Actor.Driving($PLAYER_ACTOR)
    then
    Dialog.SetVisible(4@, 1) // если водишь, то диалог виден
    alloc 3@ 15
    03C0: 1@ = actor $PLAYER_ACTOR car
    02E3: 2@ = car 1@ speed
    0013: 2@ *= 2.0 // Чтобы получить корректную  скорость, нужно умножать на 2, а не на 4
    0AD3: 3@ = format "%.0f" 2@
    Dialog.SetControlText(4@, 1, 3@) // Записываешь скорость в элемент, который ты создал для текста.
    free 3@
    else
    Dialog.SetVisible(4@, 0) // если не водишь, диалог прячется
    end
end

Коорды и размеры подгоняй сам
Посмотреть вложение 45310
как в этот код вписать перезагрузку скрипта? Просто я умею писать только так, как я кидал выше, а так же почему при изменении размеров (в 9 строке)
 
Последнее редактирование:

D3.Pheonix

🎹
Модератор
2,813
1,592
Просто я умею писать только так, как я кидал выше
Так просто декомпилируй скрипт, и получишь привычный тебе код на метках:
CLEO:
{$CLEO .cs}
0000: NOP

:Noname_2
0001: wait 0 ms
0AFA:  is_samp_available
004D: jump_if_false @Noname_2
0B80: dialog 4@ = create " / \ "
0B84: dialog 4@ set_pos_XY 500 500 size 300 225
0B91: dialog 4@ add_static id 1 text "kek" pos_XY 117 150 size 160 20
0B86: dialog 4@ set_visible 0

:Noname_73
0001: wait 0 ms
00D6: if
00DF:   actor $PLAYER_ACTOR driving
004D: jump_if_false @Noname_170
0B86: dialog 4@ set_visible 1
0AC8: 3@ = allocate_memory_size 15
03C0: 1@ = actor $PLAYER_ACTOR car
02E3: 2@ = car 1@ speed
0013: 2@ *= 2.0
0AD3: 3@ = format "%.0f" 2@
0B94: dialog 4@ set_control 1 text 3@
0AC9: free_allocated_memory 3@
0002: jump @Noname_177

:Noname_170
0B86: dialog 4@ set_visible 0

:Noname_177
0002: jump @Noname_73
а так же почему при изменении размеров (в 9 строке)
Чё ?
Ну, в общем точка отсчёта идёт уже не от "угла экрана", а от диалога, если ты это не понял, я неправильно выразился наверное
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Автор темы
Друг
8,747
11,157
Так просто декомпилируй скрипт, и получишь привычный тебе код на метках:
CLEO:
{$CLEO .cs}
0000: NOP

:Noname_2
0001: wait 0 ms
0AFA:  is_samp_available
004D: jump_if_false @Noname_2
0B80: dialog 4@ = create " / \ "
0B84: dialog 4@ set_pos_XY 500 500 size 300 225
0B91: dialog 4@ add_static id 1 text "kek" pos_XY 117 150 size 160 20
0B86: dialog 4@ set_visible 0

:Noname_73
0001: wait 0 ms
00D6: if
00DF:   actor $PLAYER_ACTOR driving
004D: jump_if_false @Noname_170
0B86: dialog 4@ set_visible 1
0AC8: 3@ = allocate_memory_size 15
03C0: 1@ = actor $PLAYER_ACTOR car
02E3: 2@ = car 1@ speed
0013: 2@ *= 2.0
0AD3: 3@ = format "%.0f" 2@
0B94: dialog 4@ set_control 1 text 3@
0AC9: free_allocated_memory 3@
0002: jump @Noname_177

:Noname_170
0B86: dialog 4@ set_visible 0

:Noname_177
0002: jump @Noname_73

Чё ?
Ну, в общем точка отсчёта идёт уже не от "угла экрана", а от диалога, если ты это не понял, я неправильно выразился наверное
Ну попробуй сам изменить размер, лично у меня он вообще не меняется (размер текста)
первый скрин - 400 на 50, второй скрин - 1000 на 500
45319
45318
 
Последнее редактирование:

D3.Pheonix

🎹
Модератор
2,813
1,592
Ну попробуй сам изменить размер, лично у меня он вообще не меняется (размер текста)
первый скрин - 400 на 50, второй скрин - 1000 на 500
Нельзя значит. Делай через текстдрав или через рендер. Зачем тебе диалог вообще нужен для отображения скорости ?
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Автор темы
Друг
8,747
11,157
Нельзя значит. Делай через текстдрав или через рендер. Зачем тебе диалог вообще нужен для отображения скорости ?
Ну рендером я не умею, а текстдравом пытался и все пошло по пиZде, да и я не знаю, как изменить вывод скорости не в диалог, а в текстдрав.
 

D3.Pheonix

🎹
Модератор
2,813
1,592
Ну рендером я не умею, а текстдравом пытался и все пошло по пиZде, да и я не знаю, как изменить вывод скорости не в диалог, а в текстдрав.
Рендер:
CLEO:
{$CLEO .cs}
0000: NOP

:Noname_2
0001: wait 0 ms
0AFA:  is_samp_available
004D: jump_if_false @Noname_2
0B6D: render 0@ = create_font "Arial" height 10 flags 5 // Можешь менять и шрифт и размер и флаги.  Про флаги инфа в спойлере внизу

:Noname_31
0001: wait 0 ms
00D6: if
00DF:   actor $PLAYER_ACTOR driving
004D: jump_if_false @Noname_120
0AC8: 3@ = allocate_memory_size 15
03C0: 1@ = actor $PLAYER_ACTOR car
02E3: 2@ = car 1@ speed
0013: 2@ *= 2.0
0AD3: 3@ = format "%.0f" 2@
0B6F: render font 0@ draw_text 3@ pos {X}300 {Y}300 color -1 //  X,Y - позиция на экране. И меняешь цвет
0AC9: free_allocated_memory 3@

:Noname_120
0002: jump @Noname_31
upload_2017-8-3_22-11-50.png


Данные флаги можно объединять путем сложения.
К примеру, если необходим полужирный текст с обводкой, то:
  • Первый флаг(flag1) = FCR_BOLD = 1
  • Второй флаг(flag2) = FCR_BORDER = 4
  • Конечный результат FCR_BOLD + FCR_BORDER = 1 + 4 = 5
Т.е. флаг 5 является сочетанием FCR_BOLD и FCR_BORDER
 
  • Нравится
Реакции: chapo

D3.Pheonix

🎹
Модератор
2,813
1,592
А вообще вот полный гайд
 
  • Нравится
Реакции: chapo