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

Thomas_Johnson

Известный
Проверенный
183
21
CLEO:
{$CLEO}
{$INCLUDE SF}
0000:

repeat
    wait 5000
until 0AFA:  is_samp_available
0B34: samp register_client_command "player" to_label @player
while true
wait 0
end

:player
2@=0
    for 0@ = 0 to 999 step 1
        if
        0B23: samp is_player_connected 0@
        then
        0B20: samp 1@ = actor_handle_by_samp_player_id 0@
            if
            1@==0
            then
            else
            2@++
            end
        end
    end
0AF8: samp add_message_to_chat "В зоне стрима %d игроков" color -1 2@  
0B43: samp cmd_ret
В чём ошибка?
Зачем это все, если есть опкод
PHP:
0C8B: samp 1@ = get_player_count streamed_only true
 

Perojek)0

Известный
205
3
Если хендл не найден, то возвращается -1 а не 0.
И еще большие циклы не стоит вставлять в тело команды.
В вики написано "Получает хендл игрока по его иду. Если игрок не в зоне стрима, то возвращает 0."


Зачем это все, если есть опкод
PHP:
0C8B: samp 1@ = get_player_count streamed_only true
Мне не только кол-во в стриме надо. Эт только та часть кода, которая не робит)
 
  • Нравится
Реакции: itsLegend

Dark_Knight

Me, me and me.
Друг
4,064
2,078
Мне нужен хендл каждого игрока в зоне стрима.
Код:
uint32_t P00L = *(int*)((*(int*)0xB74490) + 0x4);
        for (uint32_t hCount = 0; hCount < 35584; hCount += 0x100)
        {
            uint32_t PLAYER = *(BYTE*)P00L;
            P00L++;
            if ((PLAYER >= 0x00) && (PLAYER < 0x80))
            {
                PLAYER += hCount; //В PLAYER хендл игрока

}
}
}
 
  • Нравится
Реакции: Perojek)0

Perojek)0

Известный
205
3
Если у меня в переменной число в int, то как его можно перевести в floot?
 

Thomas_Johnson

Известный
Проверенный
183
21
Где-то видел ТП по координатам без сброса анимации, не могу сейчас найти. У кого есть под рукой? Там просто изменение координат в памяти игры.
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,962
CLEO:
:TeleportWithAnimAndVelocity
0A96: 25@ = actor $PLAYER_ACTOR struct // cPed
0C0C: 25@ = struct 25@ offset 0x14 size 4
0C0D: struct 25@ offset 0x30 size 4 = 0@ // X
0C0D: struct 25@ offset 0x34 size 4 = 1@ // Y
0C0D: struct 25@ offset 0x38 size 4 = 2@ // Z
0AB2: RET 0 ||
 
  • Нравится
Реакции: Thomas_Johnson

XyJluraH_J

Потрачен
116
26
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Телепортирует в машину и выкидывает на крышу, как сделать, чтобы не выкидывало на крышу. С мопедов, мотоциклов не выкидывает
CLEO:
{$CLEO}
0000:

repeat
wait 0
until SAMP.Available()

0B34: samp register_client_command "ts" to_lab

while true
    wait 0
end
                                                      
:ts
0B35: samp 1@ = get_last_command_params
if
0AD4: 1@ = scan_string 1@ format "%d" 2@
then
if
0AFF: samp 1@ = car_handle_from_samp_carid 2@
then
0B30: samp send_enter_vehicle 2@ as_passenger 0
wait 1000
072A: task_warp_char_into_car_as_driver $PLAYER_ACTOR car 1@
end
end
Samp.CmdRet()
 
Последнее редактирование:

XyJluraH_J

Потрачен
116
26
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как работать с диалогами? Например, мне нужно выбрать пункт, ввести в поле текст и нажать button. Реально без эмуляции нажатия клавиш?

CLEO:
{$CLEO .cs}
0000:

repeat
wait 0
until SAMP.Available()

0AC8: 1@ = allocate_memory_size 128

while true
    wait 0
    if 0B4E: samp 0@ = get_current_dialog_id
    then
        if 0B4C: samp is_dialog_active 0@
        then
         0B49: samp set_current_dialog_list_item 228@ \\ Вместо 228@ свою строку
          wait 500
             0B47: samp close_current_dialog_with_button 1
            format 1@ = "НАШ ТЕКСТ"
            0B4B: samp set_current_dialog_editbox_text 1@
            wait 1000
            0B47: samp close_current_dialog_with_button 1
        end
    end
end
не мой код
 
Последнее редактирование:
  • Нравится
Реакции: Сэнд