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

BlackKnigga

Известный
BH Team
922
445
Почему этот участок говна всегда меня крашит? 0xFF996633 - цвет ника вояки на арп
CLEO:
0B2B: samp 28@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B37: samp 29@ = get_player_color 28@
    IF  0C14: strcmp string1 29@ string2 "0xFF996633"
    THEN
         0AC6: 31@ = label @Buffer_Voenkomat offset
         0B3B: samp show_dialog id 520 caption "Министерство Обороны" text 31@ button_1 "Далее" button_2 "Отмена" style 2
    END
Цвет возвращается числом, а не строкой
 
  • Нравится
Реакции: user116675

BlackKnigga

Известный
BH Team
922
445
это тайна древнего бога хоткея. В сб проводишь обряд: ставишь курсор перед 0x и нажимаешь ctrl+h
Но бтв этого делать не обязательно ибо число в разных системах счисления остаётся самим собой. К тому же цвет в хекс проще понимать
 

Azller Lollison

я узбек
Друг
1,343
2,271
Пиздец у меня подпекает уже от своего скрипта.
Короче, стало почему-то так, что первые 2 строчки показывает инфу об мутах, когда должно 1 строка об ответах,а вторая об другом чем-то (проверял, там всё равно мут)
и когда ввожу любую команду в скрипте, то уже вместо мута показывает кик, и уже первые 3 строчки. Что делать, кроме как юзать костыли?
Пожалуйста, сделайте что нибудь, почему оно так багается?
CLEO:
{$CLEO}
{$NOSOURCE}
0000:

const
    DIALOG_STYLE_MSGBOX = 0 // С текстом
    DIALOG_STYLE_INPUT = 1 // С полем для ввода текста
    DIALOG_STYLE_LIST = 2 // Со списком
    DIALOG_STYLE_PASSWORD = 3 // С полем для ввода текста, текст заменяется точками
    DIALOG_STYLE_TABLIST = 4 // Похож на DIALOG_STYLE_LIST, но может быть разбит на несколько колонок
    DIALOG_STYLE_TABLIST_HEADERS = 5 // Тот же, что и DIALOG_STYLE_TABLIST, но имеет заголовки для колонок
end

:Samp
wait 600
   SAMP.Available
jf @Samp
wait 5000
0AF8: "{FBBC3C}AT | {FFFFFF}Автор: Azller." 0xFBBC3C
0AF8: "{FBBC3C}AT | {FFFFFF}Скрипт был успешно загружен." 0xFBBC3C
0AF8: "{FBBC3C}AT | {FFFFFF}Большая просьба, не пытаться подкручивать себе значения." 0xFBBC3C
0AF8: "{FBBC3C}AT | {FFFFFF}Старшая администрация может смотреть Вашу точную статистику." 0xFBBC3C
0AF8: "{FBBC3C}AT | {FFFFFF}Приятного администрирования <3" 0xFBBC3C
0B34: samp register_client_command "ans" to_label @ans
0B34: samp register_client_command "mute" to_label @mute
0B34: samp register_client_command "kick" to_label @kick
0B34: samp register_client_command "jail" to_label @jail
0B34: samp register_client_command "warn" to_label @warn
0B34: samp register_client_command "ban" to_label @ban
0B34: "dlg" @dialog
0AAC: 15@ = load_audiostream "cleo\Song\smb_jump-small.mp3"
0AAC: 16@ = load_audiostream "cleo\Song\smb_coin.mp3"


WHILE TRUE
wait 0
    IF 0B3C: samp is_dialog_responded id 5 button 1@ list_item 3@ input_text 0
    THEN
        if 1@ == 1
        then
              log "открылся"
              log "%d" 3@
              if 3@ == 0
              then
              0AAD: set_mp3 16@ perform_action 1
                      alloc 20@ 512
                      alloc 6@ 512
                      alloc 4@ 512
                      alloc 8@ 512
                      0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Ans" key "AnsPoint"
                      0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Ans" key "AnsStr"
                      0AA5: call 0x8220AD num_params 4 pop 4 params 4@ 3@v "%d %s" 6@
                      0AF4: 8@ = read_string_from_ini_file "cleo\at.ini" section "Ans" key "AnsNick"
                      0ad3: format_stirng 20@ = "Текст ответа смотреть в .ini!%cКол-во ответов: %d%cКакому был ответ: {FBBC3C}%s" 0xA 5@ 0xA 8@
                      0B3B: samp show_dialog id 321 caption "{FBBC3C}AT by Azller v1.0a | Ans Stats" text 20@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
                      free 20@
                      free 6@
                      free 4@
                      free 8@
              end
              if 3@ == 1
              then
                      alloc 20@ 512
                      alloc 6@ 512
                      alloc 4@ 512
                      alloc 8@ 512
                      0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Ans" key "AnsPoint"
                      0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Ans" key "AnsStr"
                      0AA5: call 0x8220AD num_params 4 pop 4 params 4@ 3@v "%d %s" 6@
                      0AF4: 8@ = read_string_from_ini_file "cleo\at.ini" section "Ans" key "AnsNick"
                      0ad3: format_stirng 20@ = "Текст ответа смотреть в .ini!%cКол-во ответов: %d%cКакому был ответ: {FBBC3C}%s" 0xA 5@ 0xA 8@
                      0B3B: samp show_dialog id 3214 caption "{FBBC3C}AT by Azller v1.0a | Ans Stats" text 20@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
                      free 20@
                      free 6@
                      free 4@
                      free 8@              
              end
              if 3@ == 2
              then
                      alloc 20@ 512
                      alloc 6@ 512
                      alloc 4@ 512
                      alloc 8@ 512
                      0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Ans" key "AnsPoint"
                      0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Ans" key "AnsStr"
                      0AA5: call 0x8220AD num_params 4 pop 4 params 4@ 3@v "%d %s" 6@
                      0AF4: 8@ = read_string_from_ini_file "cleo\at.ini" section "Ans" key "AnsNick"
                      0ad3: format_stirng 20@ = "Текст ответа смотреть в .ini!%cКол-во ответов: %d%cКакому был ответ: {FBBC3C}%s" 0xA 5@ 0xA 8@
                      0B3B: samp show_dialog id 3214 caption "{FBBC3C}AT by Azller v1.0a | Ans Stats" text 20@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
                      free 20@
                      free 6@
                      free 4@
                      free 8@
              end
              if 3@ == 3
              then
                      alloc 22@ 512
                      alloc 6@ 512
                      alloc 4@ 512
                      alloc 8@ 512
                      0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Kick" key "KickPoint"
                      0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Kick" key "KickStr"
                      0AA5: call 0x8220AD num_params 4 pop 4 params 4@ 3@v "%d %s" 6@
                      0AF4: 8@ = read_string_from_ini_file "cleo\at.ini" section "Kick" key "KickNick"
                      0ad3: format_stirng 22@ = "Причину последнего кика смотреть в .ini!%cКол-во киков: %d%cКого кикнули: {FBBC3C}%s" 0xA 5@ 0xA 8@
                      0B3B: samp show_dialog id 2203 caption "{FBBC3C}AT by Azller v1.0a | Kick Stats" text 22@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
                      free 22@
                      free 6@
                      free 4@
                      free 8@
              end
              if 3@ == 4
              then
                      alloc 21@ 512
                      alloc 6@ 512
                      alloc 4@ 512
                      alloc 7@ 512
                      alloc 8@ 512
                      0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Mute" key "MutePoint"
                      0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Mute" key "MuteStr"
                      0AA5: call 0x8220AD num_params 5 pop 5 params 7@ 2@v 3@v "%d %d %s" 6@
                      0AF4: 8@ = read_string_from_ini_file "cleo\at.ini" section "Mute" key "MuteNick"
                      0ad3: format_stirng 21@ = "Причину последнего мута смотреть в .ini!%cКол-во мутов: %d%cНа сколько минут был выдан мут: %d%cКому был выдан мут: {FBBC3C}%s" 0xA 5@ 0xA 2@ 0xA 8@
                      0B3B: samp show_dialog id 1212 caption "{FBBC3C}AT by Azller v1.0a | Mute Stats" text 21@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
                      free 21@
                      free 6@
                      free 4@
                      free 7@
                      free 8@
              end
              if 3@ == 5
              then
                      alloc 0@ 512
                      alloc 6@ 512
                      alloc 4@ 512
                      alloc 8@ 512
                      0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Warn" key "WarnPoint"
                      0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Warn" key "WarnStr"
                      0AA5: call 0x8220AD num_params 4 pop 4 params 4@ 3@v "%d %s" 6@
                      0AF4: 8@ = read_string_from_ini_file "cleo\at.ini" section "Warn" key "WarnNick"
                      0ad3: format_stirng 0@ = "Текст причины смотреть в {FBBC3C}.ini!%cКол-во варнов: {FBBC3C}%d%cКому выдали варн: {FBBC3C}%s%c" 0xA 5@ 0xA 8@ 0x0
                      0B3B: samp show_dialog id 112304 caption "{FBBC3C}AT by Azller v1.0a | Warn Stats" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
                      free 0@
                      free 6@
                      free 4@
                      free 8@
              end
              if 3@ == 6
              then
                      alloc 23@ 512
                      alloc 6@ 512
                      alloc 4@ 512
                      alloc 7@ 512
                      alloc 8@ 512
                      0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Jail" key "JailPoint"
                      0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Jail" key "JailStr"
                      0AA5: call 0x8220AD num_params 5 pop 5 params 7@ 2@v 3@v "%d %d %s" 6@
                      0AF4: 8@ = read_string_from_ini_file "cleo\at.ini" section "Jail" key "JailNick"
                      0ad3: format_stirng 23@ = "Причину последнего присона смотреть в .ini!%cКол-во присонов: %d%cНа сколько минут был посажен игрок: %d%cКого посадили: {FBBC3C}%s" 0xA 5@ 0xA 2@ 0xA 8@
                      0B3B: samp show_dialog id 13304 caption "{FBBC3C}AT by Azller v1.0a | Prison Stats" text 23@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
                      free 23@
                      free 6@
                      free 4@
                      free 7@
                      free 8@
              end
              if 3@ == 7
              then
                      alloc 25@ 512
                      alloc 6@ 512
                      alloc 4@ 512
                      alloc 7@ 512
                      alloc 8@ 512
                      0AF0: 5@ = get_int_from_ini_file "cleo\at.ini" section "Ban" key "BanPoint"
                      0AF4: 6@ = read_string_from_ini_file "cleo\at.ini" section "Ban" key "BanStr"
                      0AA5: call 0x8220AD num_params 5 pop 5 params 7@ 2@v 3@v "%d %d %s" 6@
                      0AF4: 8@ = read_string_from_ini_file "cleo\at.ini" section "Ban" key "BanNick"
                      0ad3: format_stirng 0@ = "Причину последнего бана смотреть в .ini!%cКол-во банов: %d%cНа сколько дней был выдан бан: %d%cКому дали бан: %s" 0xA 5@ 0xA 2@ 0xA 8@
                      0B3B: samp show_dialog id 12346 caption "{FBBC3C}AT by Azller v1.0a | Ban Stats" text 0@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
                      free 25@
                      free 6@
                      free 4@
                      free 7@
                      free 8@  
              end
        end
    END
END


:ans
   SAMP.IsCommandTyped(0@)
alloc 5@ 256
0B35: samp 4@ = get_last_command_params
0AD3: 5@ = format "%s" 4@
0AD4: 14@ = scan_string 0@ format "%d %s" 12@ 13@
if
14@ == 2
jf @error
0B36: samp 8@ = get_player_nickname 12@
0AF5: write_string 5@ to_ini_file "cleo\at.ini" section "Ans" key "AnsStr"
0AF5: write_string 8@ to_ini_file "cleo\at.ini" section "Ans" key "AnsNick"
wait 5
0AF9: samp say_msg "./ans %s" 4@
0AAD: set_mp3 16@ perform_action 1
0AF0: 3@ = get_int_from_ini_file "cleo\at.ini" section "Ans" key "AnsPoint"
0A8E: 6@ = 3@ + 1
0AF1: write_int 6@ to_ini_file "cleo\at.ini" section "Ans" key "AnsPoint"
0AC9: free_allocated_memory 5@
SAMP.CmdRet()

:mute
   SAMP.IsCommandTyped(0@)
alloc 5@ 256
0B35: samp 4@ = get_last_command_params
0AD3: 5@ = format "%s" 4@
0AD4: 14@ = scan_string 0@ format "%d %d %s" 12@ 13@ 15@
if
14@ == 3
jf @error
0B36: samp 8@ = get_player_nickname 12@
0AF5: write_string 5@ to_ini_file "cleo\at.ini" section "Mute" key "MuteStr"
0AF5: write_string 8@ to_ini_file "cleo\at.ini" section "Mute" key "MuteNick"
wait 5
0AF9: samp say_msg "./mute %s" 4@
0AAD: set_mp3 16@ perform_action 1
0AF0: 3@ = get_int_from_ini_file "cleo\at.ini" section "Mute" key "MutePoint"
0A8E: 6@ = 3@ + 1
0AF1: write_int 6@ to_ini_file "cleo\at.ini" section "Mute" key "MutePoint"
0AC9: free_allocated_memory 5@
SAMP.CmdRet()

:kick
   SAMP.IsCommandTyped(0@)
alloc 5@ 256
0B35: samp 4@ = get_last_command_params
0AD3: 5@ = format "%s" 4@
0AD4: 14@ = scan_string 0@ format "%d %s" 12@ 13@
if
14@ == 2
jf @error
0B36: samp 8@ = get_player_nickname 12@
0AF5: write_string 5@ to_ini_file "cleo\at.ini" section "Kick" key "KickStr"
0AF5: write_string 8@ to_ini_file "cleo\at.ini" section "Kick" key "KickNick"
wait 5
0AF9: samp say_msg "./kick %s" 4@
0AAD: set_mp3 16@ perform_action 1
0AF0: 3@ = get_int_from_ini_file "cleo\at.ini" section "Kick" key "KickPoint"
0A8E: 6@ = 3@ + 1
0AF1: write_int 6@ to_ini_file "cleo\at.ini" section "Kick" key "KickPoint"
0AC9: free_allocated_memory 5@
SAMP.CmdRet()

:jail
   SAMP.IsCommandTyped(0@)
alloc 5@ 256
0B35: samp 4@ = get_last_command_params
0AD3: 5@ = format "%s" 4@
0AD4: 14@ = scan_string 0@ format "%d %d %s" 12@ 13@ 15@
if
14@ == 3
jf @error
0B36: samp 8@ = get_player_nickname 12@
0AF5: write_string 5@ to_ini_file "cleo\at.ini" section "Jail" key "JailStr"
0AF5: write_string 8@ to_ini_file "cleo\at.ini" section "Jail" key "JailNick"
wait 5
0AF9: samp say_msg "./pridon %s" 4@
0AAD: set_mp3 16@ perform_action 1
0AF0: 3@ = get_int_from_ini_file "cleo\at.ini" section "Jail" key "JailPoint"
0A8E: 6@ = 3@ + 1
0AF1: write_int 6@ to_ini_file "cleo\at.ini" section "Jail" key "JailPoint"
0AC9: free_allocated_memory 5@
SAMP.CmdRet()

:warn
   SAMP.IsCommandTyped(0@)
alloc 5@ 256
0B35: samp 4@ = get_last_command_params
0AD3: 5@ = format "%s" 4@
0AD4: 14@ = scan_string 0@ format "%d %s" 12@ 13@
if
14@ == 2
jf @error
0B36: samp 8@ = get_player_nickname 12@
0AF5: write_string 5@ to_ini_file "cleo\at.ini" section "Warn" key "WarnStr"
0AF5: write_string 8@ to_ini_file "cleo\at.ini" section "Warn" key "WarnNick"
wait 5
0AF9: samp say_msg "./warn %s" 4@
0AAD: set_mp3 16@ perform_action 1
0AF0: 3@ = get_int_from_ini_file "cleo\at.ini" section "Warn" key "WarnPoint"
0A8E: 6@ = 3@ + 1
0AF1: write_int 6@ to_ini_file "cleo\at.ini" section "Warn" key "WarnPoint"
0AC9: free_allocated_memory 5@
SAMP.CmdRet()

:ban
   SAMP.IsCommandTyped(0@)
alloc 5@ 256
0B35: samp 4@ = get_last_command_params
0AD3: 5@ = format "%s" 4@
0AD4: 14@ = scan_string 0@ format "%d %d %s" 12@ 13@ 15@
if
14@ == 3
jf @error
0B36: samp 8@ = get_player_nickname 12@
0AF5: write_string 5@ to_ini_file "cleo\at.ini" section "Ban" key "BanStr"
0AF5: write_string 8@ to_ini_file "cleo\at.ini" section "Ban" key "BanNick"
wait 5
0AF9: samp say_msg "./ban %s" 4@
0AAD: set_mp3 16@ perform_action 1
0AF0: 3@ = get_int_from_ini_file "cleo\at.ini" section "Ban" key "BanPoint"
0A8E: 6@ = 3@ + 1
0AF1: write_int 6@ to_ini_file "cleo\at.ini" section "Ban" key "BanPoint"
0AF5: write_string 4@ to_ini_file "cleo\at.ini" section "Ban" key "BanStr"
0AC9: free_allocated_memory 5@
SAMP.CmdRet()

:error
0AAD: set_mp3 15@ perform_action 1
0AF8: "{FBBC3C}AT | {FFFFFF}Вы ввели неверное кол-во аргументов. Команда не была засчитана." 0xFBBC3C
0AC9: free_allocated_memory 5@
SAMP.CmdRet()

:dialog
0AC6: 30@ = label @hex offset
0B3B: samp show_dialog id 5 caption "{FBBC3C}Admin Tools by Azller v1.0a" text 30@ button_1 "Выбрать" button_2 "Закрыть" style DIALOG_STYLE_LIST
SAMP.CmdRet()

:hex
hex
"Добро пожаловать, админ\n"
"Ниже предоставлена вся статистика\n"
"Информация о ответах\n"
"Информация о киках\n"
"Информация о мутах\n"
"Информация о варнах\n"
"Информация о присонах\n"
"Информация о банах\0"
end
 

ShadowBroker

Известный
110
27
Как сделать что бы хук (0BE3) бесконечно выполнялся при 0ADC: test_cheat "BLOWUP" и отключался так же
Активацию запилить короче
 

kraft1k

Вынь х*й из головы и все получится © hnnssy
Друг
1,479
1,163

Dark_Knight

Me, me and me.
Друг
4,065
2,079
Вроде должно работать, просил друга проверить - тож крашит, спрашивал у Таира на счёт этого, он говорит чтобы друг SF 5.3.3 поставил.
Как получал цвет ника: тут
Что в текстовике: tyt
Верно же все. Ты сравнение не правильно вообще делаешь. Ты строковое значение, которое занимает 10 байт сравниваешь с 4 байтам. Вот как надо.
CLEO:
0B2B: samp 28@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B37: samp 29@ = get_player_color 28@
var
29@ : int
end
     IF  29@  == 0xFF996633
     THEN
          0AC6: 31@ = label @Buffer_Voenkomat offset
          0B3B: samp show_dialog id 520 caption "Министерство Обороны" text 31@ button_1 "Далее" button_2 "Отмена" style 2
     END
Если компилятор будет матерится, то строку сравнения замени на эту.
CLEO:
IF 003B: 29@  == 0xFF996633
 

Citrus

Новичок
2
0
Помогите пожалуйста, надо сделать проверку на оружие. Если оно есть в данный момент в руках, то отыгрывается РП. Я написал только про 3id оружия (дубинка). Знаю, что в интернете этого много, но хочу сам разобраться. Код написал, а компилятор выдаёт ошибку. Что только не добавлял. Опкоды поставил
CLEO:
{$CLEO}
{$NOSOURCE}
0000: NOP
:1
wait 0
if 
player.Defined($PLAYER_CHAR) 
jf @1
actor.HasWeapon($PLAYER_ACTOR) 3 // вот тут не очень понял что писать, по идее оружие id3
0AF9: samp say_msg "/me снял дубинку с поясного держателя"
end
Заранее спасибо
 
Последнее редактирование: