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

JakeBat

Известный
12
0
{$CLEO .cs}
0000: NOP
0662: NOP "###############################"
0662: NOP "###### Cleo by Koò ######"
0662: NOP "##### For Cheat-master.ru #####"
0662: NOP "###############################"


repeat
wait 150
until 0afa:

mess "• /fdtime {00DD00}[ñåêóíäû] [÷àñû] [ìèíóòû] [äåíü] [ìåñÿö] [ãîä]" -1
mess "• CLEO by {DD0000} Êîò"
mess "• For {0000DD} Cheat-Master.ru"
0ACF: show_formatted_styled_text "~w~Cleo by ~r~Kot~n~~w~For ~b~Cheat-Master.ru" time 3000 style 1
newcmd "fdtime" @Send

WHILE TRUE
wait 0
if 0@ == true
then
005a: 9@ += 3@
0016: 9@ \= 60
0af8: "Âû îòûãðàëè çà ÷àñ %d ñåêóíä (~%d ìèíóò)" -1 3@ 9@
0ACF: show_formatted_styled_text "~w~%d:%d ~n~~b~%d-%d-%d" time 5000 style 2 4@ 5@ 6@ 7@ 8@
end
0@ = false
END



:send
cmdparams 1@
scanstr 2@ 1@ "%d%d%d%d%d%d" 3@ 4@ 5@ 6@ 7@ 8@
if 2@ >= 6
then
0@ = true
end
cmdret

hex
9aFF





Мне нужно поменять ~w~ на ~y~ при компиляции не могу найти mess cmdparams scanstr cmdret помогите
 

Zoxan_Twist

Новичок
126
29
не могу найти mess cmdparams scanstr cmdret
Вот тебе те опкоды которых тебе так не хватало.
Русский текст там заменишь с учетом кодировки.
Так хоть компилироваться будет :D
Код:
{$CLEO .cs}
0000: NOP
0662: NOP "###############################"
0662: NOP "###### Cleo by Koo ######"
0662: NOP "##### For Cheat-master.ru #####"
0662: NOP "###############################"


repeat
wait 150
until 0afa:

0AF8: mess "• /fdtime {00DD00}[naeoiau] [?anu] [ieioou] [aaiu] [ianyo] [aia]" -1
0AF8: mess "• CLEO by {DD0000} Eio"
0AF8: mess "• For {0000DD} Cheat-Master.ru"
0ACF: show_formatted_styled_text "~w~Cleo by ~r~Kot~n~~w~For ~b~Cheat-Master.ru" time 3000 style 1
0B34: newcmd "fdtime" @Send


WHILE TRUE
wait 0
if 0@ == true
then
005a: 9@ += 3@
0016: 9@ \= 60
0af8: "Au ioua?aee ca ?an %d naeoia (~%d ieioo)" -1 3@ 9@
0ACF: show_formatted_styled_text "~w~%d:%d ~n~~b~%d-%d-%d" time 5000 style 2 4@ 5@ 6@ 7@ 8@
end
0@ = false
END



:send
0B35: cmdparams 1@

0AD4: scanstr 2@ 1@ "%d%d%d%d%d%d" 3@ 4@ 5@ 6@ 7@ 8@

if 2@ >= 6
then
0@ = true
end
cmdret

hex
9aFF
 

Zoxan_Twist

Новичок
126
29
Функция отсюда не работает.
Переведена на 0.3.7
Функция с примитивным примером использования:
Код:
{$CLEO .cs}
0000:
0001: 5000

while true
    wait 0
    0AB1: @getChatEntryColor 1 id 99 to 1@
    0AF8: samp add_message_to_chat "Color ARGB: 0x%X" color 1@ 1@
    wait 1500
end
:getChatEntryColor
1@ = SAMP.Base() // SAMP Base
1@ += 0x21A0E4 // stChatInfo
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0
1@ += 306 // stChatEntry
0@ *= 252 // sizeof stChatEntry
005A: 1@ += 0@ //
1@ += 244 // Color
0A8D: 1@ = read_memory 1@ size 4 virtual_protect 0 // HEX Color
0AB2: ret 1 1@
 
Последнее редактирование:

b396778

Новичок
2
0
Привет,вопрос такой: к примеру есть бесконечный цикл, в котором при соблюдении какого-то условия выполняется определенной действие. Но в итоге получилось так, что оно успевает выполнится раз 5.
CLEO:
while true
wait 0
0226: 0@ = actor $PLAYER_ACTOR health
if 0@ < 50
then 0223: 
set_actor $PLAYER_ACTOR health_to 100
end
end
пробовал в конце цикла ставить задержку в одну секунду, но тогда происходит такое, что скрипт вообще может не восстановить здоровье. Как можно решить это?
 
Последнее редактирование:

01EG

Известный
Проверенный
629
354
Привет,вопрос такой: к примеру есть бесконечный цикл, в котором при соблюдении какого-то условия выполняется определенной действие. Но в итоге получилось так, что оно успевает выполнится раз 5.
CLEO:
while true
    wait 0
    0226: 0@ = actor $PLAYER_ACTOR health
    if 0@ < 50
    then 0223: set_actor $PLAYER_ACTOR health_to 100
    end
end
пробовал в конце цикла ставить задержку в одну секунду, но тогда происходит такое, что скрипт вообще может не восстановить здоровье. Как можно решить это?
Попробуй перезаписывать переменную 0@, после восстановления жизней. Тогда у тебя будет получаться, что твои жизни будут пополняться очень-очень быстро и получиться такого рода GM, который работает через пополнение жизней. Имей ввиду, что на многих проэктах после пополнения жизней кикает :C
 
  • Нравится
Реакции: b396778

01EG

Известный
Проверенный
629
354
После ввода команды пишет только, то что записало в 3@, после этого меня кидает в СампФанковский Баг(ну типо я СиДжеем появляюсь где-то в ЛС)
CLEO:
{$CLEO}
0000: NOP
1@ = 0

repeat
wait 400
until 0AFA:  is_samp_available

0B34: samp register_client_command "flood" to_label @Flood

while true
wait 0
if 1@ == 1
then
0af9: 3@ 5@
wait 4@
end
end

:Flood
0B35: 2@ = get_last_command_params
alloc 3@ 32
alloc 5@ 32
0AA5: call 0x8220AD num_params 5 pop 5 params 4@v 3@ 5@ "%s %s %i" 2@
0B12: 1@ = 1@ XOR 1
if 1@ == 1
then
print "start" -1
else
free 3@
free 5@
end
0B43: samp cmd_ret
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,468
1 переменная - 1 использование 0af9.
 

byebye

Участник
45
6
Этот опкод будет проверять скин и если это НЕ он, то скрипт пойдет дальше, так?
8500: player $PLAYER_CHAR skin == "GIMPLEG" on_bodypart 17
И еще, если мне в if and нужно более 7 условий, как быть? Я скины там проверяю, их около 14
 
Последнее редактирование:

Zoxan_Twist

Новичок
126
29
И еще, если мне в if and нужно более 7 условий, как быть?
Юзай цикл и будет тебе счастье
набросал тебе немного кода с использованием.

Код:
:GetData
/*
call @GetData 1 in 0@ out 1@
Входящие параметры:
0@ - ID ячейки в масиве [int]
Исходящие параметры:
1@ - ID скина           [int]
*/
0AC6: 1@ = label @BuferSkin offset
0@ *= 4
0C0E: 2@ = array 1@ element 0@
ret 1 2@

:WriteData
/*
call @WriteData 2 in 0@ 1@
Входящие параметры:
0@ - ID ячейки в масиве [int]
1@ - ID скина           [int]
Исходящие параметры:
Ничего не возвращает
*/
0AC6: 10@ = label @BuferSkin offset
0@ *= 4
0C0F: array 10@ element 0@ = 1@
ret 0

:BuferSkin
hex
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //     {0,1,2,3}
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //     {4,5,6,7}
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //     {8,9,10,11}
    00 00 00 00 00 00 00 00 0                       //     {12,13}
end
 
Последнее редактирование:
  • Нравится
Реакции: byebye

BlackKnigga

Известный
BH Team
922
446
Этот опкод будет проверять скин и если это НЕ он, то скрипт пойдет дальше, так?
8500: player $PLAYER_CHAR skin == "GIMPLEG" on_bodypart 17
Этот опкод проверяет игрока на одетые вещи в указанной части тела. Для проверки скина юзай 02F2
 
  • Нравится
Реакции: byebye