лучше так, скорость значительно выше и более правильное решение, к тому же ещё и с проверкой на то, что это нужная строка:Может можно так?
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, поставить на карту
Попробуй так:Как найти ид в данной строке не зная ник?
Код:>> ПМ от Vova_Makarchuk(963): tpme
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
{$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
Попробуй так:
В 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
Я в скрипте так и делал, всё нормально.Перебирать всех игроков как по мне бред. Попробую сегодня способ Фипа и скажу как получилось.
Та подожди ты еще денек. Будет тебе такое щастье, а так.Как выполнить команду для игроков в зоне стрима /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
Та подожди ты еще денек. Будет тебе такое щастье, а так.
Код: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
{$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
Крашит :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
Сильно долго ищет.Попробуй так:
В 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
Там моментально ведь. Задержки нет.Сильно долго ищет.