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

Vadik220v

Новичок
20
0
Может можно так?
0C16: 2@ = strtok string1 1@ string2 "(" // 1@ - строка в которой id.
0C16: 2@ = strtok string1 0 string2 ")"
0AD4: 4@ = scan_string 2@ format "%d" 2@ //IF and SET
 

PoccoJI

Новичок
135
10
Вот еще один вопрос
Можно ли загрузить группу педов которые хранятся в 5@?
 

FYP

Известный
Администратор
1,758
5,731
Может можно так?
0C16: 2@ = strtok string1 1@ string2 "(" // 1@ - строка в которой id.
0C16: 2@ = strtok string1 0 string2 ")"
0AD4: 4@ = scan_string 2@ format "%d" 2@ //IF and SET
лучше так, скорость значительно выше и более правильное решение, к тому же ещё и с проверкой на то, что это нужная строка:
Код:
// 0@ - строка с сообщением
if and
0C18: 2@ = strstr string1 0@ string2 ">> ÏÌ îò "
0C19: 2@ = strcspn string1 0@ string2 "("
then
2@++
0C1A: 1@ = atoi 2@
end
Вот еще один вопрос
Можно ли загрузить группу педов которые хранятся в 5@?
что ты имеешь в виду под словом "загрузить"?
 

FYP

Известный
Администратор
1,758
5,731
FYP, поставить на карту
используя эти опкоды в цикле перебираешь всех педов и делаешь с ними всё, что угодно
07F6: get_group 260@ number_of_leaders_to 262@ number_of_members_to 261@
07AF: $PLAYER_GROUP = player $PLAYER_CHAR group
092B: 8@ = group $PLAYER_GROUP member 6@
 

hnnssy

Известный
Друг
2,684
2,750
Как найти ид в данной строке не зная ник?
Код:
>> ПМ от Vova_Makarchuk(963): tpme
Попробуй так:
В 3@ получаешь эту строку, и далее код:
Код:
if and
0C18: 4@ = strstr string1 3@ string2 ">> ПМ от"
then
for 0@ = 0 to 1000
    if 0B23: samp is_player_connected 0@
    then
    0B36: samp 1@ = get_player_nickname 0@
        if 0C18: 4@ = strstr string1 3@ string2 1@
        then
            msg "%s[%d] 0xff0000 1@ 0@           
        end
    end
end
end
 

forcusss

Новичок
8
0
Помогите пожалуйста. Скрипт работает на SF 3.0, но там нельзя свернуть окно alt+enter (не только у меня), а это критически важно.
Скрипт не работает на SF 3.1.1, но сворачивание есть. (Игра просто виснет намертво при активации)
Кто-то может переделать это говно на 3.1.1 что бы оно там нормально работало?
Буду очень, очень благодарен!

Код:
{$CLEO .cs}
 
//-------------MAIN---------------
0000: NOP   
03A4: name_thread "By Joker"   
 
if not 0@ = SAMP.Base()   
then 0A93: end_custom_thread   
end   
 
while not SAMP.Available()   
       wait 100   
end   
 
0B34: samp register_client_command "botSF" to_label @Noname_91
 
while true    
       wait 0   
    end       
 
:Noname_2
0001: wait 0 ms   
00D6: if and
0256:   player $PLAYER_CHAR defined   
00DF:   actor $PLAYER_ACTOR driving   
0AB0:   key_pressed 73   
0AB0:   key_pressed 89   
004D: jump_if_false @Noname_2   
03C0: 2@ = actor $PLAYER_ACTOR car   
018C: play_sound 1058 at 0.0 0.0 0.0   
00BC: show_text_highpriority GXT 'CHEAT1' time 1000 flag 1    
0001: wait 2500 ms   
0002: jump @Noname_91   
 
:Noname_91
0173: set_actor $PLAYER_ACTOR Z_angle_to 6@   
04D7: set_actor $PLAYER_ACTOR locked 1   
00D6: if   
00DF:   actor $PLAYER_ACTOR driving   
004D: jump_if_false @Noname_145   
03C0: 30@ = actor $PLAYER_ACTOR car   
0175: set_car 30@ Z_angle_to 6@   
0519: set_car 30@ locked 1   
 
:Noname_145
0001: wait 0 ms    
00A1: put_actor $PLAYER_ACTOR at 1635.7 -1152.7 15.0
0001: wait 1400 ms    
00A1: put_actor $PLAYER_ACTOR at 1585.69 -1157.89 15.0
0001: wait 1400 ms    
00A1: put_actor $PLAYER_ACTOR at 1570.88 -1091.34 14.0
0001: wait 1400 ms    
00A1: put_actor $PLAYER_ACTOR at 1527.92 -1038.84 15.0
0001: wait 1400 ms    
00A1: put_actor $PLAYER_ACTOR at 1449.66 -1031.97 13.0
0001: wait 1400 ms    
00A1: put_actor $PLAYER_ACTOR at 1376.38 -1033.95 17.0
0001: wait 1400 ms    
00A1: put_actor $PLAYER_ACTOR at 1359.99 -984.11 18.0
0001: wait 1400 ms    
00A1: put_actor $PLAYER_ACTOR at 1352.36 -928.98 24.0
0001: wait 1400 ms    
00A1: put_actor $PLAYER_ACTOR at 1279.94 -921.6 32.0
0001: wait 1400 ms    
00A1: put_actor $PLAYER_ACTOR at 1196.17 -935.83 34.0
0001: wait 1400 ms    
00A1: put_actor $PLAYER_ACTOR at 1142.26 -942.31 33.0
0001: wait 1000 ms    
0002: jump @Noname_91
 

Dark_Knight

Me, me and me.
Друг
4,065
2,079
Попробуй так:
В 3@ получаешь эту строку, и далее код:
Код:
if and
0C18: 4@ = strstr string1 3@ string2 ">> ПМ от"
then
for 0@ = 0 to 1000
    if 0B23: samp is_player_connected 0@
    then
    0B36: samp 1@ = get_player_nickname 0@
        if 0C18: 4@ = strstr string1 3@ string2 1@
        then
            msg "%s[%d] 0xff0000 1@ 0@         
        end
    end
end
end

Перебирать всех игроков как по мне бред. Попробую сегодня способ Фипа и скажу как получилось.
 

Dark_Knight

Me, me and me.
Друг
4,065
2,079
Как выполнить команду для игроков в зоне стрима /sethp ID 160?
Та подожди ты еще денек. Будет тебе такое щастье, а так.
Код:
for 0@ = 0 to 99
wait 0
    if samp.IsPlayerConnected(0@)
    then 0B20: samp 1@ = actor_handle_by_samp_player_id 0@
        if 056D: 1@
        then 0af9: "/sethp %d 160" 0@
        end
    end
end
 

[Nexus]

Известный
41
2
Та подожди ты еще денек. Будет тебе такое щастье, а так.
Код:
for 0@ = 0 to 99
wait 0
    if samp.IsPlayerConnected(0@)
    then 0B20: samp 1@ = actor_handle_by_samp_player_id 0@
        if 056D: 1@
        then 0af9: "/sethp %d 160" 0@
        end
    end
end


Крашит :C

Код:
{$CLEO .cs}
thread 'rheal'
wait 0
 
0B34: samp register_client_command "rheal" to_label @rheal
 
while true
wait 0
 
end
 
:rheal
0B35: samp 0@ = get_last_command_params
for 0@ = 0 to 99
wait 0
    if samp.IsPlayerConnected(0@)
    then 0B20: samp 1@ = actor_handle_by_samp_player_id 0@
        if 056D: 1@
        then 0af9: "/sethp %d 160" 0@
        end
    end
end
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
Крашит :C

Код:
{$CLEO .cs}
thread 'rheal'
wait 0
 
0B34: samp register_client_command "rheal" to_label @rheal
 
while true
wait 0
 
end
 
:rheal
0B35: samp 0@ = get_last_command_params
for 0@ = 0 to 99
wait 0
    if samp.IsPlayerConnected(0@)
    then 0B20: samp 1@ = actor_handle_by_samp_player_id 0@
        if 056D: 1@
        then 0af9: "/sethp %d 160" 0@
        end
    end
end


Я уже 2 ошибки нашел...
 

Dark_Knight

Me, me and me.
Друг
4,065
2,079
Попробуй так:
В 3@ получаешь эту строку, и далее код:
Код:
if and
0C18: 4@ = strstr string1 3@ string2 ">> ПМ от"
then
for 0@ = 0 to 1000
    if 0B23: samp is_player_connected 0@
    then
    0B36: samp 1@ = get_player_nickname 0@
        if 0C18: 4@ = strstr string1 3@ string2 1@
        then
            msg "%s[%d] 0xff0000 1@ 0@       
        end
    end
end
end
Сильно долго ищет.
лучше так, скорость значительно выше и более правильное решение, к тому же ещё и с проверкой на то, что это нужная строка:
Код:
// 0@ - строка с сообщением
if and
0C18: 2@ = strstr string1 0@ string2 ">> ÏÌ îò "
0C19: 2@ = strcspn string1 0@ string2 "("
then
2@++
0C1A: 1@ = atoi 2@
end
Крашит.


Может можно так?
0C16: 2@ = strtok string1 1@ string2 "(" // 1@ - строка в которой id.
0C16: 2@ = strtok string1 0 string2 ")"
0AD4: 4@ = scan_string 2@ format "%d" 2@ //IF and SET
Твой способ вообще вырезает все после ника