Вопросы по CLEO-скриптингу

Garrus

Известный
159
20
Ребят, пара вопросов.
1) Можно ли сделать так, чтоб после двойного клика по элементу в листбоксе DXUT-диалога и последующего его закрытия, не срабатывала анимация удара/выстрела?
2) Можно ли сделать так, чтоб хук использовал свои собственные локальные переменные (если можно так выразиться)? А то получается так, что в потоке переменные используются одновременно и в самом цикле, и в хуке, из-за чего значения переменных перезаписываются.
 

hnnssy

Известный
Друг
2,684
2,761
Ребят, пара вопросов.
1) Можно ли сделать так, чтоб после двойного клика по элементу в листбоксе DXUT-диалога и последующего его закрытия, не срабатывала анимация удара/выстрела?
2) Можно ли сделать так, чтоб хук использовал свои собственные локальные переменные (если можно так выразиться)? А то получается так, что в потоке переменные используются одновременно и в самом цикле, и в хуке, из-за чего значения переменных перезаписываются.
2. Ставь хук в отдельном потоке.
 
  • Нравится
Реакции: Garrus

Vovich

HOT
Проверенный
717
197
Хочу сделать проверку на анимацию. Записываю текущую анимацию в переменную, правильно ли я сравниваю ?
CLEO:
0@ = Actor.Animation($PLAYER_ACTOR)
if 0@ == WEAPON_CROUCH
Мб WEAPON_CROUCH я должен записать в переменную выделить память переменной, так как я сравниваю строку(WEAPON_CROUCH, ну как не строку, а само название анимации, является строкой)
Короче, помогите, думаю это не сложный вопрос.
да ты бля прежде чем спрашиват, выведи значение из переменной в чат хотя бы, и посмотри что там, строка, число, число с точкой, или еще что.
в переменной у тебя хранится ID анимации, а не ее имя, и да, ID текущей анимации узнавать так нужн:
Код:
14@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
17@ = SAMP.PlayerAnimationID(14@)
// 17@ - id анимации
 
  • Нравится
Реакции: 01EG

Dydaev

Новичок
7
0
Код:
{$CLEO}
{$INCLUDE SF}

0000:

repeat
wait 300
until 0AFA: is_samp_available

wait 0

0B80: dialog 0@ = create "User's dialog"
0B84: dialog 0@ set_pos_XY 500 500 size 300 100
0B83: dialog 0@ add_checkbox id 2 text "1" pos_XY 0 5 size 100 20
0B83: dialog 0@ add_checkbox id 3 text "2" pos_XY 0 25 size 100 20

WHILE TRUE
wait 0
repeat
wait 0
until 0B81: dialog 0@ pop_event_to 1@ control_id_to 2@

if 1@ == 1025
then
if 0B92: dialog 0@ checkbox 2 is_checked
then
0AF8: samp add_message_to_chat "[1] - {FFFFFF}true" color 0xDD0000
else
0AF8: samp add_message_to_chat "[1] - {FFFFFF}false" color 0xDD0000
end

if 0B92: dialog 0@ checkbox 3 is_checked
then
0AF8: samp add_message_to_chat "[2] - {FFFFFF}true" color 0x0000DD
else
0AF8: samp add_message_to_chat "[2] - {FFFFFF}false" color 0x0000DD
end 
end
END
Как сделать, что бы показывало по отдельности? А сейчас при нажатии 1/2 отображается состояние обоих
 

Perojek)0

Известный
205
3
CLEO:
for 1@ = 0 to 999 step 1
    0B23: samp is_player_connected 1@
    0B36: samp 2@ = get_player_nickname 1@
        if
        0C14: strcmp string1 2@ string2 0@   
        then
        0AF8: samp add_message_to_chat 1@ color -1
        end
end
В чём ошибка?
 
Последнее редактирование:

hnnssy

Известный
Друг
2,684
2,761
CLEO:
for 1@ = 0 to 999 step 1
    0B23: samp is_player_connected 1@
    0B36: samp 2@ = get_player_nickname 1@
        if
        0C14: strcmp string1 2@ string2 0@ 
        then
        0AF8: samp add_message_to_chat 1@ color -1
        end
end
В чём ошибка?
CLEO:
for 1@ = 0 to 999 step 1
    if 0B23: samp is_player_connected 1@
    then
        0B36: samp 2@ = get_player_nickname 1@
        if 0C14: strcmp string1 2@ string2 0@ 
        then
            0AF8: samp add_message_to_chat 1@ color -1
        end
    end
end
 
  • Нравится
Реакции: Perojek)0

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,982
При добавлении сообщения в чат ты на параметр строки ставишь параметр обычного числа, что и приводит к крашу.

Что сначала идёт - цвет или переменная, я не помню, попробуй оба варианта.
Форматирование в конце.

Где найти все опкоды на русском?
https://www.blast.hk/wiki/opcodes:list

CLEO:
for 1@ = 0 to 999 step 1
    if 0B23: samp is_player_connected 1@
    then
        0B36: samp 2@ = get_player_nickname 1@
        if 0C14: strcmp string1 2@ string2 0@
        then
            0AF8: samp add_message_to_chat 1@ color -1
        end
    end
end
Крашнит же :sad_frog: .
 
  • Нравится
Реакции: Perojek)0

Mikha Mikhin

Новичок
131
4
Код должен показывать местоположение игрока на экране.
В чём-то ошибка. Она не в первых 4-ёх строках или загрузке текстуры (её я тут не показал).

ХЭЭЭЛП

P.S. 5-ая и 6-ая строка делят координаты игрока на масштаб карты, чтобы была возможность нарисовать метку на экране.
 
Последнее редактирование:

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,982
Координаты игрока ты получаешь в типе float, так и действия производить с ними нужно как с типом float .