Покажи код.legend2360, не работает, сначала идут варнинги, а потом краш.
Покажи код.legend2360, не работает, сначала идут варнинги, а потом краш.
Нужно определить, находятся ли игроки в зоне стрима. Например мне нужно сделать такой код:
Если игрок/игроки есть в зоне стрима (в зоне прорисовки), то например вывести сообщение в чат, иначе не выводить.
Не подскажете как это реализовать?
{$CLEO}
0000:
while not Samp.Available()
wait 400
end
0B34: samp register_client_command "mycmd" to_label @cmd_mycmd
0BDE: pause_thread 0
:cmd_mycmd
0B35: samp 0@ = get_last_command_params
if 0AD4: 1@ = scan_string 0@ format "%d" 2@
then
0B20: samp 3@ = actor_handle_by_samp_player_id 2@
if 056D: actor 3@ defined
then
0af8: "Игрок в зоне стрима!" -1
end
end
0B43: samp cmd_ret
Держи, при вводе /cid (любой ид) - выведет инфу, подключен или нет игрок под данным идом... Если просто ввести /cid - то выведет в чат всех кто подключен. (Правда не влезет)xXx2o1o, вот код, но я там ничего не менял почти)):
PHP:{$CLEO} 0000: NOP :MM wait 0 0B20: samp 1@ = actor_handle_by_samp_player_id 0@ if 056D: actor 1@ defined then 0AF8: samp add_message_to_chat "Message" color -1 end jump @MM
{$Cleo}
0000:
0662: "DS"
repeat
wait 0
until Samp.Available()
0B34: samp register_cmd "cid" @cmd
while true
wait 0
if 30@ == true
then
0B35: samp 1@ = get_last_command_params
if 0ad4: 1@ 1@ "%d" 2@
then
if Samp.IsPlayerConnected(2@)
then
0af8: chat_message "Игрок под ид %d подключен к серверу" 0xffffff 2@
else
0af8: chat_message "Игрок под ид %d не подключен к серверу" 0xffffff 2@
end
else
for 0@ = 0 to 1000
if Samp.IsPlayerConnected(0@)
then
0af8: chat_message "Игрок под ид %d подключен к серверу" 0xffffff 2@
end
end
end
30@ = false
end
end
:cmd
30@ = true
Samp.CmdRet()
{$Cleo}
0000:
0662: "DS"
repeat
wait 0
until Samp.Available()
0B34: samp register_cmd "cid" @cmd
while true
wait 0
if 30@ == true
then
0B35: samp 1@ = get_last_command_params
if 0ad4: 1@ 1@ "%d" 2@
then
if Samp.IsPlayerConnected(2@)
then
1@ = Samp.GetActorHandleByPlayerID(2@)
if 056D: actor 1@ defined
then
0af8: chat_message "Игрок под ид %d в зоне стрима" 0xffffff 2@
else
0af8: chat_message "Игрок под ид %d не в зоне стрима" 0xffffff 2@
end
end
else
for 0@ = 0 to 1000
if Samp.IsPlayerConnected(0@)
then
1@ = Samp.GetActorHandleByPlayerID(0@)
if 056D: actor 1@ defined
then 0af8: chat_message "Игрок под ид %d в зоне стрима" 0xffffff 2@
end
end
end
end
30@ = false
end
end
:cmd
30@ = true
Samp.CmdRet()
Я только половину кода понял, я еще не умею писать такие Cleo, только учусь)). Можешь выделить для меня оттуда проверку, находится ли игрок в зоне стрима?Держи, при вводе /cid (любой ид) - выведет инфу, подключен или нет игрок под данным идом... Если просто ввести /cid - то выведет в чат всех кто подключен. (Правда не влезет)
Бля сорян. Не дочитал что нужна проверка в зоне стрима :)PHP:{$Cleo} 0000: 0662: "DS" repeat wait 0 until Samp.Available() 0B34: samp register_cmd "cid" @cmd while true wait 0 if 30@ == true then 0B35: samp 1@ = get_last_command_params if 0ad4: 1@ 1@ "%d" 2@ then if Samp.IsPlayerConnected(2@) then 0af8: chat_message "Игрок под ид %d подключен к серверу" 0xffffff 2@ else 0af8: chat_message "Игрок под ид %d не подключен к серверу" 0xffffff 2@ end else for 0@ = 0 to 1000 if Samp.IsPlayerConnected(0@) then 0af8: chat_message "Игрок под ид %d подключен к серверу" 0xffffff 2@ end end end 30@ = false end end :cmd 30@ = true Samp.CmdRet()
PHP:{$Cleo} 0000: 0662: "DS" repeat wait 0 until Samp.Available() 0B34: samp register_cmd "cid" @cmd while true wait 0 if 30@ == true then 0B35: samp 1@ = get_last_command_params if 0ad4: 1@ 1@ "%d" 2@ then if Samp.IsPlayerConnected(2@) then 1@ = Samp.GetActorHandleByPlayerID(2@) if 056D: actor 1@ defined then 0af8: chat_message "Игрок под ид %d в зоне стрима" 0xffffff 2@ else 0af8: chat_message "Игрок под ид %d не в зоне стрима" 0xffffff 2@ end end else for 0@ = 0 to 1000 if Samp.IsPlayerConnected(0@) then 1@ = Samp.GetActorHandleByPlayerID(0@) if 056D: actor 1@ defined then 0af8: chat_message "Игрок под ид %d в зоне стрима" 0xffffff 2@ end end end end 30@ = false end end :cmd 30@ = true Samp.CmdRet()
For $MyCounter = 0 to 1000
1@ = Samp.GetActorHandleByPlayerID($MyCounter)
If 056D: actor 1@ defined
then
0AF8: samp add_message_to_chat "yes" color -1
End
End
Можешь выделить для меня оттуда проверку, находится ли игрок в зоне стрима?
В 2@ должен находиться id игрока.PHP:if Samp.IsPlayerConnected(2@) then 1@ = Samp.GetActorHandleByPlayerID(2@) if 056D: actor 1@ defined then 0af8: chat_message "Игрок под ид %d в зоне стрима" 0xffffff 2@ else 0af8: chat_message "Игрок под ид %d не в зоне стрима" 0xffffff 2@ end end
Ты используешь глобальную переменную. Такая переменная может использоваться не только твоим скриптом, но и главным скриптом игры и другими скриптами, что вызывает конфликт. Поэтому в скриптах принято использовать только локальные переменные — 0@ - 31@. Помимо них еще есть два таймера - 32@ и 33@, но они тебе тут ни к чему.Одни варнинги, а потом краш, почему же?)(
Пихаешь в циклПарни подскажите какойнить клео скрипт, чтобы логировал весь текст чата в файл, если не существует, помогите зделать, хотябы логирование 98 строки, т.к. на 99 идёт сообщение кто проверил обьявление, а на 98 само обьявление
Этот опкод изменяет 98строкуПихаешь в цикл
0B74: samp set_chat_string 98 text 2@ prefix 3@ color 4@ prefix_color 5@
И там же сканишь текст
Это намот, с тебя посылка, жду..oops. Исправил
http://gtag.gtagaming.com/opcode-database/opcode/0458/Можно ли определить что игрок целится в объект?