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

Makkoy1708

Новичок
18
4
Пишу довольно годненький скриптик, полностью кидать его не буду. Проблема заключается в регистрации команды.
Сначала хотел сделать активацию и деактивацию скрипта через команду, потом передумал и решил сделать подсказку по функциям скрипта через диалоговое окно.
Вот что я писал:

0B34: samp register_client_command "info" to_label @cmd

while true
wait 0
end


:cmd
wait 0
0B3B: samp show_dialog id 45 caption "info" text "TYT TEXT TIPO" button_1 "ESC" button_2 "ESC" style "DIALOG_STYLE_MSGBOX"

При вводе /info намертво зависает игра. Прошу помочь с созданием диалогового окна с инфой о скрипте по команде /info.
CLEO:
{$CLEO}
0000:
repeat
wait 0
until Samp.Available()
0B34: samp register_client_command "info" to_label @cmd

repeat
wait 0
    if 0@ == 1
    then
    0B3B: samp show_dialog id 45 caption "info" text "TYT TEXT TIPO" button_1 "ESC" button_2 "ESC" style 0
    end
    0@ = 0
until false

:cmd
0@ = 1
Samp.CmdRet()
 

Buhani4

Новичок
26
0
Хелпаните по другому поводу. Сделал пиар скрипта в чат, ну то бишь при загрузке сампа будет выдаваться вся информация о скрипте в чат...
Все нормально вроде...
Потом я сделал по команде /info вывод инфы о скрипте в чат, т.е. в первый раз это был пиар, мол там мой дискорд, скайп, ник, автор и т.д., а /info - руководство по скрипту. Фишка в том, что выдает варнинги после написания /info, но сам текст появляется, хотя только на один раз, второй раз уже не работает /info.


CLEO:
0B34: samp register_client_command "info" to_label @cmd_mycmd

WHILE TRUE
  wait 0
   if 0@ == TRUE
    then
0AF8: samp add_message_to_chat "==========================================" color 4B0082
0AF8: samp add_message_to_chat "Àêòèâàöèÿ/äåàêòèâàöèÿ ñêðèïòà: ANIM ÷èò êîäîì" color 4B0082
0AF8: samp add_message_to_chat "Èñïîëüçîâàíèå ñêðèïòà: R" color 4B0082
0AF8: samp add_message_to_chat "==========================================" color 4B0082
      0@ = FALSE
    end
END


:cmd_mycmd
   0@ = TRUE
   0B35: samp 1@ = get_last_command_params
0B43: samp cmd_ret
 
Последнее редактирование модератором:

Buhani4

Новичок
26
0
Тут еще одна проблема. Данная команда /info отвечает за вывод инфы о скрипте в чат или диалог. Но samp.cmdret ( ) обновляет команду, т.е. скрипт идет заного. То что ниже - не работает.

Т.е., то, что после samp.cmdret ( ) не пашет
 

D3.Pheonix

🎹
Модератор
2,817
1,598
Тут еще одна проблема. Данная команда /info отвечает за вывод инфы о скрипте в чат или диалог. Но samp.cmdret ( ) обновляет команду, т.е. скрипт идет заного. То что ниже - не работает.

Т.е., то, что после samp.cmdret ( ) не пашет
Нихуя не понятно, покажи
 

HUGERAIN

Новичок
26
4
Есть какой-то опкод, который может вернуть тру или фолс, если между игроками есть какой-то объект?

есть какой-то опкод, чтобы делал это:
10@ = 1@ - 2@
типа записывает в 10, значение которое получилось когда мы от 1@ отняли 2@
 

DonkRage

Известный
406
114
Можно ли как-то увеличить количество переменных? Мне не хватает
 

D3.Pheonix

🎹
Модератор
2,817
1,598
Можно read/write опкод на изменение цвета полоски армора?
[Memory] GTA SA HUD Addresses - GTAG Forum(https://gtagmodding.com/forums/index.php?showtopic=265)
Почитай, там все четко расписано

Можно ли как-то увеличить количество переменных? Мне не хватает
Массив. Если не шаришь, у Таира есть гайд на ютубе

Есть какой-то опкод, который может вернуть тру или фолс, если между игроками есть какой-то объект?

есть какой-то опкод, чтобы делал это:
10@ = 1@ - 2@
типа записывает в 10, значение которое получилось когда мы от 1@ отняли 2@
1.
CLEO:
06BD: no_obstacles_between 3@ 4@ 5@ and 6@ 7@ 8@ solid 0 car 0 actor 0 object 1 particle 0

2.
CLEO:
//1@ = 228
//2@ = 1337
10@ = 1@
10@ -= 2@
 
  • Нравится
Реакции: HUGERAIN

HUGERAIN

Новичок
26
4
Пацаны, какого фига? При спавне игрок куда-то тпшится, все моргает, а потом крашит
Код:
{$CLEO .cs}
0000: 
:SampAV
wait 0
if 
0AFA:  is_samp_available
jf @SampAV
:Prover
wait 0
if and
80DF:  not actor $PLAYER_ACTOR driving
0B61:  samp is_local_player_spawned
jf @Prover
00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@
00A0: store_actor $PLAYER_ACTOR position_to 4@ 5@ 6@
0087: 10@ = 3@
0063: 10@ -= 6@
if
0019:   10@ > 20
then
0AF8: samp add_message_to_chat "1337" color 0xFFFFFFF
else_jump @Prover 
end
 

D3.Pheonix

🎹
Модератор
2,817
1,598
Пацаны, какого фига? При спавне игрок куда-то тпшится, все моргает, а потом крашит
Код:
{$CLEO .cs}
0000:
:SampAV
wait 0
if
0AFA:  is_samp_available
jf @SampAV
:Prover
wait 0
if and
80DF:  not actor $PLAYER_ACTOR driving
0B61:  samp is_local_player_spawned
jf @Prover
00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@
00A0: store_actor $PLAYER_ACTOR position_to 4@ 5@ 6@
0087: 10@ = 3@
0063: 10@ -= 6@
if
0019:   10@ > 20
then
0AF8: samp add_message_to_chat "1337" color 0xFFFFFFF
else_jump @Prover
end
Ты же на метках пишешь, then end не в тему
И если у тебя float, то и сравнение > тоже float. И зах свои корды 2 раза записывать

CLEO:
{$CLEO .cs}
0000:


:SampAV
wait 0
if
0AFA:  is_samp_available
jf @SampAV

while true
wait 0
if and
80DF:  not actor $PLAYER_ACTOR driving
0B61:  samp is_local_player_spawned
then
00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@
00A0: store_actor $PLAYER_ACTOR position_to 4@ 5@ 6@
0087: 10@ = 3@
0063: 10@ -= 6@
    if
      10@ > 20.0
    then
       0AF8: samp add_message_to_chat "1337" color 0xFFFFFFF
     end
end
 
Последнее редактирование:
  • Нравится
Реакции: HUGERAIN

Buhani4

Новичок
26
0
Ну смотри, машина. У меня есть скрипт, в котором присутствует /info, выводящая информацию. Функция по созданию команды info стоит в самом начале, после проверки загрузки сампа. В конце этой команды стоит samp.cmdret ( ) - обновляет проверку команды. А после скрипта на команду идет уже самое главное, например текст в чат.

Сейчас напишу что-нибудь левое - но по принципу похожее:

CLEO:
{$CLEO}
0000:

thread "Buhanka"
if not 0@ = SAMP.Base()
then 0A93: end_custom_thread
end
while not SAMP.Available()
wait 100
end


0B34: samp register_client_command "info" to_label @cmd_mycmd

WHILE TRUE
  wait 0
   if 0@ == TRUE
    then
0AF8: samp add_message_to_chat "==========================================" color 0x4B0082
0AF8: samp add_message_to_chat "ТУТ ТЕКСТ" color 0x4B0082
0AF8: samp add_message_to_chat "ТУТ ТОЖЕ ТЕКСТ" color 0x4B0082
0AF8: samp add_message_to_chat "==========================================" color 0x4B0082
      0@ = FALSE
    end
END  


:cmd_mycmd
   0@ = TRUE
   0B35: samp 1@ = get_last_command_params

:noname_1
wait 0
if
key_down 18
then
print "daun" 1000
else
jump @noname_1
end

jump @noname_1


Если писать так, как выше - работает команда, но не работает скрипт ниже, т.к. все циклится на команде.

И доп. вопрос. Если я создаю диалог, как сделать так, чтобы определенные части текста были с новой строки. Например я хочу, чтобы диалог выглядел вот так:

============================================
Автор: даун
Активация: мозгом
Спасибо спонсору: 8005553535
============================================

А получается вот так:

============================================
Автор: даун Активация: мозгом Спасибо спонсору: 8005553535
============================================
 

хуесос)

Известный
263
63
Ну смотри, машина. У меня есть скрипт, в котором присутствует /info, выводящая информацию. Функция по созданию команды info стоит в самом начале, после проверки загрузки сампа. В конце этой команды стоит samp.cmdret ( ) - обновляет проверку команды. А после скрипта на команду идет уже самое главное, например текст в чат.

Сейчас напишу что-нибудь левое - но по принциппохожее:

CLEO:
{$CLEO}
0000:

thread "Buhanka"
if not 0@ = SAMP.Base()
then 0A93: end_custom_thread
end
while not SAMP.Available()
wait 100
end


0B34: samp register_client_command "info" to_label @cmd_mycmd

WHILE TRUE
  wait 0
   if 0@ == TRUE
    then
0AF8: samp add_message_to_chat "==========================================" color 0x4B0082
0AF8: samp add_message_to_chat "ТУТ ТЕКСТ" color 0x4B0082
0AF8: samp add_message_to_chat "ТУТ ТОЖЕ ТЕКСТ" color 0x4B0082
0AF8: samp add_message_to_chat "==========================================" color 0x4B0082
      0@ = FALSE
    end
END 


:cmd_mycmd
   0@ = TRUE
   0B35: samp 1@ = get_last_command_params

:noname_1
wait 0
if
key_down 18
then
print "daun" 1000
else
jump @noname_1
end

jump @noname_1


Если писать так, как выше - работает команда, но не работает скрипт ниже, т.к. все циклится на команде.

И доп. вопрос. Если я создаю диалог, как сделать так, чтобы определенные части текста были с новой строки. Например я хочу, чтобы диалог выглядел вот так:

============================================
Автор: даун
Активация: мозгом
Спасибо спонсору: 8005553535
============================================

А получается вот так:

============================================
Автор: даун Активация: мозгом Спасибо спонсору: 8005553535
============================================

Насчёт второго. Пишешь format 29@ "текст%cтекст" 0xA
 

D3.Pheonix

🎹
Модератор
2,817
1,598
@Buhani4 наклепал наугад всякие опкоды. Иди смотри, желательно с первого урока, если тебе это действительно надо. Если нет - заказывай в другой теме, без обид. Не с 0af9 копирайтов надо начинать... Еще и прячешь что то там, впарить хочешь кому то дичь ? :trollface2:
DarkP1xel(https://m.youtube.com/user/xX0xC0D3RXx)
 

HUGERAIN

Новичок
26
4
Ты же на метках пишешь, then end не в тему
И если у тебя float, то и сравнение > тоже float. И зах свои корды 2 раза записывать

CLEO:
{$CLEO .cs}
0000:


:SampAV
wait 0
if
0AFA:  is_samp_available
jf @SampAV

while true
wait 0
if and
80DF:  not actor $PLAYER_ACTOR driving
0B61:  samp is_local_player_spawned
then
00A0: store_actor $PLAYER_ACTOR position_to 1@ 2@ 3@
00A0: store_actor $PLAYER_ACTOR position_to 4@ 5@ 6@
0087: 10@ = 3@
0063: 10@ -= 6@
    if
      10@ > 20.0
    then
       0AF8: samp add_message_to_chat "1337" color 0xFFFFFFF
     end
end
Ничего не поменялось, дальше все моргает дико.
Коорды я 2 раза записал потому что мне нужно чтобы их потом сравнить. Типа если я телепортировался больше чем на 20 метров, мне выводилось сообщение.
но все равно мне кажется что я это неправильно сделла
 

D3.Pheonix

🎹
Модератор
2,817
1,598
Ничего не поменялось, дальше все моргает дико.
Коорды я 2 раза записал потому что мне нужно чтобы их потом сравнить. Типа если я телепортировался больше чем на 20 метров, мне выводилось сообщение.
но все равно мне кажется что я это неправильно сделла
Так а где твоя телепортация? Мы ванги ?Тут вижу только запись кордов 2 раза и вычитание высоты, которая врядли будет больше 20. А, ну еще ты одну F забыл в цвете добавить