- 2,696
- 1,469
Справку для чего делали?Как сделать что бы он не только устанавливал , но и нажимал на него?
0B47: samp close_current_dialog_with_button 1
Справку для чего делали?Как сделать что бы он не только устанавливал , но и нажимал на него?
Перед тем как посылать диалогу выбор элемента, необходимо удастовериться о том, что диалог существует(т.е в данный момент открыт). Возможно причина в этом. Обратите внимание на опкод:Непомогло, серавно не выберает
0BAB: dialog 1@ is_exists
0B4E: samp 1@ = get_current_dialog_id
У вас в INI файле содержатся координаты, следовательно тип переменной должен быть float, вы же пытаетесь получить целое значение INT, не удивительно, что игрок бежит в другие координаты, обратите внимание на опкодКто поможет в исправлении кода? Вот кусок кода :
Вот код из ini файла:Код:0AF0: 1@ = get_int_from_ini_file "CLEO\COORDS_GO.INI" section "FIRST" key "X" 0AF0: 2@ = get_int_from_ini_file "CLEO\COORDS_GO.INI" section "FIRST" key "Y" 0AF0: 3@ = get_int_from_ini_file "CLEO\COORDS_GO.INI" section "FIRST" key "Z"
Но при активации (Код:[FIRST] X =633.6808 Y =857.9966 Z =-42.5359
)Код:05D3: task_go_straight_to_coord $PLAYER_ACTOR coord 1@ 2@ 3@ mode 6 time 500000
Игрок идет кудато за пределы мира, не в точку, а в океан, далекоо далекоо.... Помогите исправить, в чем проблема? Наверное в опкоде 0af0 надо заменить int на другое значение, но не знаю какое.
0AF2: 0@ = get_float_from_ini_file "cleo\config.ini" section "SectionName" key "floatKey"
У вас в INI файле содержатся координаты, следовательно тип переменной должен быть float, вы же пытаетесь получить целое значение INT, не удивительно, что игрок бежит в другие координаты, обратите внимание на опкод
Код:0AF2: 0@ = get_float_from_ini_file "cleo\config.ini" section "SectionName" key "floatKey"
0AF0: 1@ = get_float_from_ini_file "CLEO\COORDS_GO.ini" section "FIRST" key "X"
Будте внимательней, вам необходим опкод 0AF2, но вы по прежнему исспользуете 0AF0Поставил флоат,
Не помогло, все равно идет не туда. Если обьявить 1@, 2@, 3@ как координаты X,Y,Z соответственно, то он работает нормально, если брать значение 1@ из ини, он идет не туда.Код:0AF0: 1@ = get_float_from_ini_file "CLEO\COORDS_GO.ini" section "FIRST" key "X"
Будте внимательней, вам необходим опкод 0AF2, но вы по прежнему исспользуете 0AF0
//Текст в опкоде, к примеру "get_float_from_ini_file" по большому счёту не имеет значения, он лишь подсказывает что делает конкретный опкод и какие параметры принимает.
Подскажите, как узнать координаты игрока, и записать их в файл/буфер обмена?;(
actor.storepos($player_actor, 0@, 1@, 2@)
if 8aab: "cleo\pos.txt"
then 3@ = file.Open("cleo\pos.txt", "wt")
else
if 3@ == 0
then 3@ = file.Open("cleo\pos.txt", "at")
end
end
0AD9: write_formatted_text "X : %02f | Y : %02f | Z : %02f%c" in_file 3@ 0@ 1@ 2@ 10
Будешь писать уебанский текстом, получишь.Код:actor.storepos($player_actor, 0@, 1@, 2@) if 8aab: "cleo\pos.txt" then 3@ = file.Open("cleo\pos.txt", "wt") else if 3@ == 0 then 3@ = file.Open("cleo\pos.txt", "at") end end 0AD9: write_formatted_text "X%:%02f | Y:%02f | Z:%02f%c" in_file 3@ 0@ 1@ 2@ 10
Он же в буфер просил и у тебя опечатка в последней строке
{$CLEO}
0000: NOP
thread "mark"
:0
wait 0
if 0AFA: is_samp_structures_available
jf @0
0AF7: get_samp_base_to 25@
0b34: samp register_client_command "mark" @1 // команда
while true
wait 0
end
:1
wait 0
0B35: samp 0@ = get_last_command_params
0AD4: 1@ = scan_string 0@ format "%d" 2@
if 056D: actor 2@ defined
then
3@ = SAMP.GetPlayerNickname(2@)
0B20: samp 4@ = actor_handle_from_samp_playerid 2@
actor.StorePos(4@, 5@, 6@, 7@) //пишем нахождение актера в координаты
018A: 8@ = create_checkpoint_at 5@ 6@ 7@
03BC: 9@ = create_sphere_at 5@ 6@ 7@ radius 2.0
0AF8: samp add_message_to_chat "Игрок %d отмечен на карте" 3@
else
0AF8: samp add_message_to_chat "Игрок вне зоны стрима"
end
0b43:
В клео пока нуль, целый день убил чтоб написать это так как такого простого клео не нашел готового... Крашит, не могу проверку этого стрима сделать.. поправьте пожалуйста, а лучше еще и объяснить что не так)
[/quote]if 056D: actor 2@ defined
че за странная проверка[/CODE]
{$CLEO}
0000: NOP
thread "mark"
if not 0@ = SAMP.Base()
then 0A93: end_custom_thread
end
while not SAMP.Available()
wait 100
end
0b34: samp register_client_command "mark" @1 // команда
while true
wait 0
end
:1
0B35: samp 0@ = get_last_command_params
0AD4: 0@ = scan_string 0@ format "%d" 1@
if 0B23: samp is_player_connected 1@
then
if
0B20: samp 2@ = actor_handle_from_samp_playerid 1@
then
actor.StorePos(2@, 3@, 4@, 5@) //пишем нахождение актера в координаты
018A: 6@ = create_checkpoint_at 3@ 4@ 5@
03BC: 7@ = create_sphere_at 3@ 4@ 5@ radius 2.0
0AF8: samp add_message_to_chat "Игрок %d отмечен на карте" -1 1@
else
0AF8: samp add_message_to_chat "Игрок вне зоны стрима" -1
end
end
cmd_ret
Как сделать вывод ID'oв всех близко стоящих игроков в радиусе ~10 - ~20 метров .
Примерно так :
Allax[228]
Ashot[777]
Mrazish[123]
Или тупо в строчку хотя бы .
В чат .
00A0: store_actor $PLAYER_ACTOR position_to 7@ 8@ 9@
for 0@ = 0 to 1000
if 0B23: samp is_player_connected 0@
then
if
0B20: samp 1@ = actor_handle_by_samp_player_id 0@
then
00A0: store_actor 1@ position_to 2@ 3@ 4@
050A: 5@ = distance_between_XYZ 7@ 8@ 9@ and_XYZ 2@ 3@ 4@
if
5@ <= 20.0 // Тут радиус
then
0B36: samp 6@ = get_player_nickname 0@
msg "%s[%d]" -1 6@ 0@
end
end
end
end