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

©Ded_Fedot

КГБ
2,139
1,263
CLEO:
{$CLEO}
{$NOSOURCE}
0000: NOP

repeat
wait 0
until SAMP.Available()

thread "CarBoom"

0AF8: samp add_message_to_chat "{00FF00}[CarBoom] {926eae}CarBoom by Mikha Mikhin activated!"
0AF8: samp add_message_to_chat "{00FF00}[CarBoom] {926eae}Введи {08457e}/boom {926eae}для активации"
0B34: samp register_client_command "boom" to_label @boom

:1
wait 10
if
31@ == 1
then
    if and
    056D:   actor $PLAYER_ACTOR defined
    Actor.Driving($PLAYER_ACTOR)
    then
        30@ = Actor.CurrentCar($PLAYER_ACTOR)
        0224: set_car 30@ health_to 199
        0AF8: samp add_message_to_chat "{00FF00}[CarBoom] {926eae}БУУУМ! Деактивирован!"
        wait 1000
        0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 25@ 26@ 27@
        31@ = 0
    else
    Actor.StorePos($PLAYER_ACTOR, 25@, 26@, 27@)
    end
end
jump @1

:boom
0AF8: samp add_message_to_chat "{00FF00}[CarBoom] {926eae}Активирован!"
31@ = 1
SAMP.CmdRet()

Сократил до такого кода. Ничего не изменилось. При вводе /boom крашит.
CLEO:
{$CLEO}
{$NOSOURCE}
0000: NOP

repeat
wait 0
until SAMP.Available()

0AF8: samp add_message_to_chat "{00FF00}[CarBoom] {926eae}CarBoom by Mikha Mikhin activated!" -1
0AF8: samp add_message_to_chat "{00FF00}[CarBoom] {926eae}Введи {08457e}/boom {926eae}для активации"  -1
0B34: samp register_client_command "boom" to_label @boom

while true
wait 0
if
4@ == 1
then
    if
    Actor.Driving($PLAYER_ACTOR)
    then
        8@ = Actor.CurrentCar($PLAYER_ACTOR)
        0224: set_car 8@ health_to 199
        0AF8: samp add_message_to_chat "{00FF00}[CarBoom] {926eae}БУУУМ! Деактивирован!" -1
        wait 1000
        0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 5@ 6@ 7@
        4@ = 0
        else
        Actor.StorePos($PLAYER_ACTOR, 5@, 6@, 7@)
        end
    end
end

:boom
0AF8: samp add_message_to_chat "{00FF00}[CarBoom] {926eae}Активирован!" -1
4@ = 1
SAMP.CmdRet()
 

01EG

Известный
Проверенный
629
354
Слушай, ты как-то криво написал. На глаз смотрю и вижу, что не сработает. У меня в коде непонятно почему крашало, сейчас будет понятно почему крашить :D
Сам не смог записать в переменные и в конце прыгнуть на метку ? Короче, даже проверил. Вот стопроцентно рабочий код. Копирайты сам поставишь, если они вообще нужны, а то ты сам не заметишь, что кар загорится. Бесполезное использование ресурсов.
CLEO:
{$CLEO}
{$NOSOURCE}
0000: NOP

31@ = 0

repeat
wait 0
until 0AFA:  is_samp_available

0B34: samp register_client_command "boom" to_label @boom

:2
wait 0
Actor.StorePos($PLAYER_ACTOR, 25@, 26@, 27@)
if and
31@ == 1
Actor.Driving($PLAYER_ACTOR)
jf @2
  30@ = Actor.CurrentCar($PLAYER_ACTOR)
  0224: set_car 30@ health_to 199
  000B: 25@ += 2.0
  000B: 26@ += 2.0
  wait 500
  0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 25@ 26@ 27@
  31@ = 0
jump @2

:boom
31@ = 1
0B43: samp cmd_ret
 

Mikha Mikhin

Новичок
131
4
Зачем писать
chatmsg "Скрипт активирован" , если мы сами видим, что кар загорелся ? И так же писать chatmsg "Скрипт деактивирован" ?
:pidrila::facepalm:
Скрипт активирован - ещё не значит, что кар загорелся. Смысл активации совсем другой... :facepalm:
 

©Ded_Fedot

КГБ
2,139
1,263
Зачем писать
chatmsg "Скрипт активирован" , если мы сами видим, что кар загорелся ? И так же писать chatmsg "Скрипт деактивирован" ?
:pidrila::facepalm:
Затем что бы знать активирован или нет, но а вообще я имел ввиду ресурсы:pidrila::monkey:
 

kemperrr

Известный
104
2
Как написать в строку для отправки в чат текст, в AHK просто открывали чат {F6} потом пишем текст и если нужно отправить то - {ENTER} если же нет то просто не пишем, как реализовать это в клео?
 

BlackKnigga

Известный
BH Team
922
446
Как написать в строку для отправки в чат текст, в AHK просто открывали чат {F6} потом пишем текст и если нужно отправить то - {ENTER} если же нет то просто не пишем, как реализовать это в клео?
CLEO:
0B79: samp set_chat_input_enabled 1 // Открываем чат
0B76: samp set_chat_input_text "text" // Вставляем текст в чат
 

01EG

Известный
Проверенный
629
354
CLEO:
{$CLEO .cs}
0000: NOP
0001: wait 0 ms

repeat
wait 0
until 0afa:

0B34: samp register_client_command "takeveh" to_label @TakeVeh

while true
wait 0
end

:Takeveh
0B35: samp 0@ = get_last_command_params
0C1A: 0@ = atoi 0@
0B20: samp 0@ = actor_handle_by_samp_player_id 0@
if
00DF:   actor 0@ driving
then
0B2C: samp 1@ = get_vehicle_id_by_car_handle 0@
0AFF: samp 2@ = car_handle_by_samp_vehicle_id 1@
    if
    056E: car 2@ defined
    then
    0B30: samp send_enter_vehicle 1@ as_passenger 0
    wait 200
    036A: put_actor $PLAYER_ACTOR in_car 2@
    02EB: restore_camera_with_jumpcut
    end
end 
0B43: samp cmd_ret
Садит в случайную машину, а не в машину по иду игрока.
Предполагаю, что не правильно узнаю ид машины в которой находится игрок. В общем, что не так ? Нуждаюсь в помощи.
 

hnnssy

Известный
Друг
2,684
2,762
CLEO:
{$CLEO .cs}
0000: NOP
0001: wait 0 ms

repeat
wait 0
until 0afa:

0B34: samp register_client_command "takeveh" to_label @TakeVeh

while true
wait 0
end

:Takeveh
0B35: samp 0@ = get_last_command_params
0C1A: 0@ = atoi 0@
0B20: samp 0@ = actor_handle_by_samp_player_id 0@
if
00DF:   actor 0@ driving
then
0B2C: samp 1@ = get_vehicle_id_by_car_handle 0@
0AFF: samp 2@ = car_handle_by_samp_vehicle_id 1@
    if
    056E: car 2@ defined
    then
    0B30: samp send_enter_vehicle 1@ as_passenger 0
    wait 200
    036A: put_actor $PLAYER_ACTOR in_car 2@
    02EB: restore_camera_with_jumpcut
    end
end
0B43: samp cmd_ret
Садит в случайную машину, а не в машину по иду игрока.
Предполагаю, что не правильно узнаю ид машины в которой находится игрок. В общем, что не так ? Нуждаюсь в помощи.
0B2C: samp 1@ = get_vehicle_id_by_car_handle 0@
Ты пытаешься получить ид машины с хэндла игрока.
03C0: 1@ = actor 0@ car и потом получаешь ид.
 
  • Нравится
Реакции: 01EG

ShadowBroker

Известный
110
27
Как сделать проверку заспавнился ли игрок? Не заспавНЕН а именно заспавнился.
 

Vovich

HOT
Проверенный
717
197
Как сделать проверку заспавнился ли игрок? Не заспавНЕН а именно заспавнился.
Бля, это и есть та проверка, заспавнен ли он он или нет.
Сделай в цикле эту проверку, и когда он заспавнится отключай цикл, в чем проблема?
 

01EG

Известный
Проверенный
629
354
Как по модели машины(в клео после #) получить ее хендл или по ее ГТА шному иду (который на вики пишется) ? Ну типо так ведь не сработает ?
036A: put_actor $PLAYER_ACTOR in_car #FAGGIO
 

BlackKnigga

Известный
BH Team
922
446
Как по модели машины(в клео после #) получить ее хендл или по ее ГТА шному иду (который на вики пишется) ? Ну типо так ведь не сработает ?
036A: put_actor $PLAYER_ACTOR in_car #FAGGIO
Перебираешь все машины в зоне стрима, получаешь их модели опкодом 0441 и сравниваешь.
 

01EG

Известный
Проверенный
629
354
Перебираешь все машины в зоне стрима, получаешь их модели опкодом 0441 и сравниваешь.
CLEO:
while true
wait 0
    if 20@ == 1 // как-то активирую скрипт
    then   
    000A: 0@ += 1
    0AFF: samp 0@ = car_handle_by_samp_vehicle_id 0@
            if and
            0441: 6@ = car #FAGGIO model
            056E: car 6@ defined
            then
            тп в кар и т.д.
            20@ = 0
            end
    end
end