Cleo работает, но есть ошибка, работает коряво

Hitzel1920

Участник
Автор темы
38
5
Ребят привет, пишу клео, учусь, главная мысль клео: при нажатие [q] или [e] или [x] достается определенное оружие. Есть подобные клео которые вроде имеют такую же функцию, но на цифры, я решил сделать только на буквы. Все работало отлично, но хотел дополнить его так как столкнулся следующим в игре, что когда пишешь что-то в чат, при написание ты нажимаешь данные клавиши (q или e или x) и достается оружие, так еще хуже то, что на сервере авто-отыгровка оружия и у меня "минус чат", дополнить хотел следующим, чтобы клео функционировало при нажатие F11, то есть пока не нажму F11 я могу использовать клавиши как захочу, но когда нажму F11 то клавиши q - e -x выполняют функцию которую указал.
ПРОБЛЕМА - ОШИБКА:
когда нажимаю F11 то скрипт срабатывает на 5 секунд, потом не функционирует пока опять не нажму f11. Я предполагаю, что ошибся либо в условии либо в "Jump" не правильно построил логику. Помогите пожалуйста, подскажите о велике, могучие, всесильные, великодушные, мудрые, умные, красивые, смешные, целеустремленные, в чем я допустил ошибку или как исправить или где ошибка.
Вот сам код:

Код:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0001: wait 0 ms
0000: NOP

:Noname_29
wait 0
if
0AB0:   key_pressed 0x7A
jf @Noname_29
0ACD: show_text_highpriority "QEX.Dannzo: ~G~ON" time 1000
wait 1000
018C: play_sound 1139 at 0.0 0.0 0.0
jump @Noname_240

:Noname_240
wait 0
if
8AB0:   not key_pressed 0x7A
jf @Noname_364
00D6: if
0AB0:   key_pressed 81
004D: jump_if_false @Noname_232
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 22
0002: jump @Noname_71
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 22

:Noname_71
00D6: if
0491:   actor $PLAYER_ACTOR has_weapon 23
004D: jump_if_false @Noname_103
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 23

:Noname_103
00D6: if
0491:   actor $PLAYER_ACTOR has_weapon 24
004D: jump_if_false @Noname_232
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 24 

:Noname_232
wait 0
if
8AB0:   not key_pressed 0x7A
jf @Noname_364
0001: wait 0 ms
00D6: if
0AB0:   key_pressed 88
004D: jump_if_false @Noname_266
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 30
0002: jump @Noname_293
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 30

:Noname_293
00D6: if
0491:   actor $PLAYER_ACTOR has_weapon 31
004D: jump_if_false @Noname_266
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 31 

:Noname_266
wait 0
8AB0:   not key_pressed 0x7A
jf @Noname_364
0001: wait 0 ms
00D6: if
0AB0:   key_pressed 69
004D: jump_if_false @Noname_300
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 25
0002: jump @Noname_182
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 25

:Noname_182
00D6: if
0491:   actor $PLAYER_ACTOR has_weapon 26
004D: jump_if_false @Noname_214
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 26

:Noname_214
00D6: if
0491:   actor $PLAYER_ACTOR has_weapon 27
004D: jump_if_false @Noname_300
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 27
 
:Noname_300
wait 0
8AB0:   not key_pressed 0x7A
jf @Noname_364
0001: wait 0 ms
00D6: if
0AB0:   key_pressed 49
004D: jump_if_false @Noname_364
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
0002: jump @Noname_364
 
:Noname_364
0ACD: show_text_highpriority "QEX.Dannzo: ~R~OFF" time 228
wait 228
018C: play_sound 1139 at 0.0 0.0 0.0
jump @Noname_29

также не знаю куда добавить вот это значение, так как думал, что дело в нем и только в нем

Код:
00D6: if
0256:   player $PLAYER_CHAR defined

пожалуйста подскажите о велике, могучие, всесильные, великодушные, мудрые, умные, красивые, смешные, целеустремленные, в чем я допустил ошибку или как исправить или где ошибка.
 
Решение
По поводу активации и деактивации.
В начале скрипта, после строки
CLEO:
0000: NOP
Задай переменной (любой) значение 0 (скрипт активирован типо) и сделай регистрацию команды активации / деактивации:
CLEO:
@10 = 0
0B34: samp register_client_command "rpgun" to_label @cmd
Теперь после ввода команды /rpgun скрипт будет прыгать на метку @cmd, в конце скрипта добавь код:
CLEO:
:cmd
0B12: 10@ = 10@ XOR 1 // Переменной 10@ присваиваем 1 (если 0) и наоборот
if 10@ == 0 // Если переменная 10@ равна нулю
    then // Тогда
        0AF8: samp add_message_to_chat "RPgun on" color 0xFFFFFF // Отправляем сообещние то что скрипт включен
    else // Если команда была введена второй раз
        0AF8: samp add_message_to-chat "RPgun off" color 0xFFFFFF...

Impossible In Rage

Известный
955
248
Ребят привет, пишу клео, учусь, главная мысль клео: при нажатие [q] или [e] или [x] достается определенное оружие. Есть подобные клео которые вроде имеют такую же функцию, но на цифры, я решил сделать только на буквы. Все работало отлично, но хотел дополнить его так как столкнулся следующим в игре, что когда пишешь что-то в чат, при написание ты нажимаешь данные клавиши (q или e или x) и достается оружие, так еще хуже то, что на сервере авто-отыгровка оружия и у меня "минус чат", дополнить хотел следующим, чтобы клео функционировало при нажатие F11, то есть пока не нажму F11 я могу использовать клавиши как захочу, но когда нажму F11 то клавиши q - e -x выполняют функцию которую указал.
ПРОБЛЕМА - ОШИБКА:
когда нажимаю F11 то скрипт срабатывает на 5 секунд, потом не функционирует пока опять не нажму f11. Я предполагаю, что ошибся либо в условии либо в "Jump" не правильно построил логику. Помогите пожалуйста, подскажите о велике, могучие, всесильные, великодушные, мудрые, умные, красивые, смешные, целеустремленные, в чем я допустил ошибку или как исправить или где ошибка.
Вот сам код:

Код:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0001: wait 0 ms
0000: NOP

:Noname_29
wait 0
if
0AB0:   key_pressed 0x7A
jf @Noname_29
0ACD: show_text_highpriority "QEX.Dannzo: ~G~ON" time 1000
wait 1000
018C: play_sound 1139 at 0.0 0.0 0.0
jump @Noname_240

:Noname_240
wait 0
if
8AB0:   not key_pressed 0x7A
jf @Noname_364
00D6: if
0AB0:   key_pressed 81
004D: jump_if_false @Noname_232
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 22
0002: jump @Noname_71
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 22

:Noname_71
00D6: if
0491:   actor $PLAYER_ACTOR has_weapon 23
004D: jump_if_false @Noname_103
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 23

:Noname_103
00D6: if
0491:   actor $PLAYER_ACTOR has_weapon 24
004D: jump_if_false @Noname_232
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 24

:Noname_232
wait 0
if
8AB0:   not key_pressed 0x7A
jf @Noname_364
0001: wait 0 ms
00D6: if
0AB0:   key_pressed 88
004D: jump_if_false @Noname_266
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 30
0002: jump @Noname_293
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 30

:Noname_293
00D6: if
0491:   actor $PLAYER_ACTOR has_weapon 31
004D: jump_if_false @Noname_266
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 31

:Noname_266
wait 0
8AB0:   not key_pressed 0x7A
jf @Noname_364
0001: wait 0 ms
00D6: if
0AB0:   key_pressed 69
004D: jump_if_false @Noname_300
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 25
0002: jump @Noname_182
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 25

:Noname_182
00D6: if
0491:   actor $PLAYER_ACTOR has_weapon 26
004D: jump_if_false @Noname_214
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 26

:Noname_214
00D6: if
0491:   actor $PLAYER_ACTOR has_weapon 27
004D: jump_if_false @Noname_300
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 27

:Noname_300
wait 0
8AB0:   not key_pressed 0x7A
jf @Noname_364
0001: wait 0 ms
00D6: if
0AB0:   key_pressed 49
004D: jump_if_false @Noname_364
01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0
0002: jump @Noname_364

:Noname_364
0ACD: show_text_highpriority "QEX.Dannzo: ~R~OFF" time 228
wait 228
018C: play_sound 1139 at 0.0 0.0 0.0
jump @Noname_29

также не знаю куда добавить вот это значение, так как думал, что дело в нем и только в нем

Код:
00D6: if
0256:   player $PLAYER_CHAR defined

пожалуйста подскажите о велике, могучие, всесильные, великодушные, мудрые, умные, красивые, смешные, целеустремленные, в чем я допустил ошибку или как исправить или где ошибка.
Во первых слишком много лести , во вторых сделай проверку на то что чат не открыт (отрицательные опкоды начинаются с 8)
Во первых слишком много лести , во вторых сделай проверку на то что чат не открыт (отрицательные опкоды начинаются с 8)
Если хочешь сделать активацию / деактивацию то есть куча видосов , в частности от Дарк Пикселя
 

Vintik

Через тернии к звёздам
Проверенный
1,545
1,017
Во всех метках, где есть
CLEO:
00D6: if
0491:   actor $PLAYER_ACTOR has_weapon...
После строки
CLEO:
004D: jump_if_false @Noname_...
Добавь
CLEO:
00D6: if
    SAMP.ChatInputOpened()
004D: jump_if_false @Noname_[тот же нонейм]
Надеюсь, помог
 
Последнее редактирование:

Hitzel1920

Участник
Автор темы
38
5
Всем привет попробовал способы, которые посоветовали Предполагаю, что вот это как раз и поможет в моей проблеме, не решил только активацию и диз активацию клео, но думаю с Божьей помощью смогу справиться с данной задачей. Всем спасибо.
P.S. я не льстил, это типо шутки было. Мол люди которые посвятили себя этому им же мало кто говорил хороших слов, а сколько игроков играют с их работами... Так шо не лесть, просто по приколу написал очень много хороших слов.
Насчет активации или диз активации уже задумался, так как если есть опкод который проверят открыт чат или нет то оно в принципе не нужно даже, хотя с другой стороны... хз.

00D6: if and
not SAMP.ChatInputOpened()
Во первых слишком много лести , во вторых сделай проверку на то что чат не открыт (отрицательные опкоды начинаются с 8)

Если хочешь сделать активацию / деактивацию то есть куча видосов , в частности от Дарк Пикселя
Спасибо большое, переписал убрал не нужное, добавил проверку чата

00D6: if and
not SAMP.ChatInputOpened()

и все заработало, как нужно, даже активация не нужна по идеи теперь, я ее добавлял так как не знал, что есть условие так сказать которое проверяет открыт чат или нет и из-за этого занимался херней по принципу нажать кнопку клео активировалось. К сожалению так и не понял как сделать чтобы клео включалось или выключалось надо будет чекнуть дарк пикселя наверное какого-то ютубера, где наверное он объясняет как это работает. Надеюсь найду, все равно спасибо большое тебе и всем кто подсказывал
 
Последнее редактирование:

Vintik

Через тернии к звёздам
Проверенный
1,545
1,017
По поводу активации и деактивации.
В начале скрипта, после строки
CLEO:
0000: NOP
Задай переменной (любой) значение 0 (скрипт активирован типо) и сделай регистрацию команды активации / деактивации:
CLEO:
@10 = 0
0B34: samp register_client_command "rpgun" to_label @cmd
Теперь после ввода команды /rpgun скрипт будет прыгать на метку @cmd, в конце скрипта добавь код:
CLEO:
:cmd
0B12: 10@ = 10@ XOR 1 // Переменной 10@ присваиваем 1 (если 0) и наоборот
if 10@ == 0 // Если переменная 10@ равна нулю
    then // Тогда
        0AF8: samp add_message_to_chat "RPgun on" color 0xFFFFFF // Отправляем сообещние то что скрипт включен
    else // Если команда была введена второй раз
        0AF8: samp add_message_to-chat "RPgun off" color 0xFFFFFF // Отправляем сообщение то что скрипт выключен
end
0B43: samp cmd_ret // просто нужная штука)
Ну и теперь там, где ты добавил проверку на открытый чат, добавь проверку "включен ли скрипт?"
CLEO:
if @10 == 0
Эта сама проверка, дальше jf и куда там прыгать (так же, как и проверка чата)

P. S. не забывай отмечать лучший ответ)
 
  • Нравится
Реакции: Hitzel1920

Hitzel1920

Участник
Автор темы
38
5
По поводу активации и деактивации.
В начале скрипта, после строки
CLEO:
0000: NOP
Задай переменной (любой) значение 0 (скрипт активирован типо) и сделай регистрацию команды активации / деактивации:
CLEO:
@10 = 0
0B34: samp register_client_command "rpgun" to_label @cmd
Теперь после ввода команды /rpgun скрипт будет прыгать на метку @cmd, в конце скрипта добавь код:
CLEO:
:cmd
0B12: 10@ = 10@ XOR 1 // Переменной 10@ присваиваем 1 (если 0) и наоборот
if 10@ == 0 // Если переменная 10@ равна нулю
    then // Тогда
        0AF8: samp add_message_to_chat "RPgun on" color 0xFFFFFF // Отправляем сообещние то что скрипт включен
    else // Если команда была введена второй раз
        0AF8: samp add_message_to-chat "RPgun off" color 0xFFFFFF // Отправляем сообщение то что скрипт выключен
end
0B43: samp cmd_ret // просто нужная штука)
Ну и теперь там, где ты добавил проверку на открытый чат, добавь проверку "включен ли скрипт?"
CLEO:
if @10 == 0
Эта сама проверка, дальше jf и куда там прыгать (так же, как и проверка чата)

P. S. не забывай отмечать лучший ответ)
Боже от души, топ.
По поводу активации и деактивации.
В начале скрипта, после строки
CLEO:
0000: NOP
Задай переменной (любой) значение 0 (скрипт активирован типо) и сделай регистрацию команды активации / деактивации:
CLEO:
@10 = 0
0B34: samp register_client_command "rpgun" to_label @cmd
Теперь после ввода команды /rpgun скрипт будет прыгать на метку @cmd, в конце скрипта добавь код:
CLEO:
:cmd
0B12: 10@ = 10@ XOR 1 // Переменной 10@ присваиваем 1 (если 0) и наоборот
if 10@ == 0 // Если переменная 10@ равна нулю
    then // Тогда
        0AF8: samp add_message_to_chat "RPgun on" color 0xFFFFFF // Отправляем сообещние то что скрипт включен
    else // Если команда была введена второй раз
        0AF8: samp add_message_to-chat "RPgun off" color 0xFFFFFF // Отправляем сообщение то что скрипт выключен
end
0B43: samp cmd_ret // просто нужная штука)
Ну и теперь там, где ты добавил проверку на открытый чат, добавь проверку "включен ли скрипт?"
CLEO:
if @10 == 0
Эта сама проверка, дальше jf и куда там прыгать (так же, как и проверка чата)

P. S. не забывай отмечать лучший ответ)
блин вроде все понял, но чет руки не оттуда растут что ли, можешь примером показать в один код как это должно выглядеть или любое клео где это работает.
у меня пишет не верное выражение
хотя вроде все, разобрался с ошибкой спасибочки
 
Последнее редактирование:
  • Нравится
Реакции: Vintik