Boss_Driver
Новичок
- 5
- 0
Как сделать проверку, находится ли актер на пассажирском/водительском месте?
{$CLEO .cs}
thread "AutoPara"
0001: 3000
while true
wait 0
if 056D: actor $PLAYER_ACTOR defined
then
if and
80DF: actor $PLAYER_ACTOR driving
02D8: actor $PLAYER_ACTOR current_weapon == 46
then
0AB1: call_scm_func @dist 0 4@
if and
4@ > 48.056
4@ < 58.84562
then
0AB1: call_scm_func @Open 0 true
0af8: "Парашют раскрыт" 0xFFFFFF
else
if 4@ > 58.84562
then
4@ -= 58.84562
0af8: "Парашют откроется через %.2f м" 0xFFFFFF 4@
end
end
end
end
end
:dist
00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 2@
02CE: 3@ = ground_z_at 0@ 1@ 2@
050A: 4@ = distance_between_XYZ 0@ 1@ 2@ and_XYZ 0@ 1@ 3@
0AB2: ret 1 4@
:Open
0AA2: 31@ = load_library "User32.dll"
0AA4: 30@ = get_proc_address "keybd_event" library 31@
0AA5: call 30@ num_params 4 pop 0 0 0 0 1
wait 40
0AA5: call 30@ num_params 4 pop 0 0 2 0 1
0af8: "Клавиша нажата" 0xFFFFFF
ret 0
У него же параметре в функе получаются.0AB1: call_scm_func @Open 0 true
Параметров то передается нуль... зачем так делать? :(
00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 2@
У него же параметре в функе получаются.
Код:00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 2@
Это в первой функе, во второй - ничего не возвращается и не требует параметров.
делал без true, и пробовал подгружать функу в начале и далее вызывать только 0AA5, умирать игрок перестал, но парашют так и не раскрылся
Ребят такой вопрос, юзаю я SF 3.0 хочу узнать где находяться такие опкоды? 0b39,0af8,0ac9? какая версия сф?Код:0ac8: 1@ = 32 0B39: samp get_current_server_address 1@ port 2@ 0af8: "%s %d" 0xFFFFFF 1@ 2@ 0ac9: 1@
Справка, читай внимательнее тему SAMPFUNCS.Ребят такой вопрос, юзаю я SF 3.0 хочу узнать где находяться такие опкоды? 0b39,0af8,0ac9? какая версия сф?
И можно ли объеденить опкоды из SF 3.0 , 3.1 в 1 целое?
{$CLEO .cs}
0000: NOP
:0
if not 0@ = SAMP.Base()
then 0A93: end_custom_thread
end
while not SAMP.Available()
wait 100
03F0: enable_text_draw 1
10@ = Render.CreateFont("Arial", 10, 0)
end
goto @1
:1
wait 5000
0AF8: samp add_message_to_chat "GO" color 2@
Render.DrawText(10@, "LOOOOOl", 500, 600, 0xFFFF6600)
goto @0
Написал новый быдлокод
Текст показываеться на 0.0001 секунды и пропадает, как мне отрендерить его 1 раз что бы он там остался и обновлялся? допустим вместо LOOOOl будет хп актера.Код:{$CLEO .cs} 0000: NOP :0 if not 0@ = SAMP.Base() then 0A93: end_custom_thread end while not SAMP.Available() wait 100 03F0: enable_text_draw 1 10@ = Render.CreateFont("Arial", 10, 0) end goto @1 :1 wait 5000 0AF8: samp add_message_to_chat "GO" color 2@ Render.DrawText(10@, "LOOOOOl", 500, 600, 0xFFFF6600) goto @0
{$CLEO}
const
FCR_NONE = 0x0
FCR_BOLD = 0x1
FCR_ITALICS = 0x2
FCR_BORDER = 0x4
FCR_SHADOW = 0x8
FCR_UNDERLINE = 0x10
FCR_STRIKEOUT = 0x20
end
0000:
repeat
wait 400
until 0AFA: is_samp_structures_available
30@ = Render.CreateFont("Tahoma", 12, FCR_BORDER) // Подготавливаем шрифт для рендера
SAMP.GetScreenResolution(0@, 1@) // Получаем разрешение экрана
0@ /= 2 // Делим на 2 ось X разрешения
1@ /= 2 // Делим на 2 ось Y разрешения
while true
wait 0
3@ = Render.FontDrawLength(30@, "Text") // Получаем длину текста(в пикселях или в чём там...)
3@ /= 2 // Больше точности
0A8F: 2@ = 0@ - 3@ // Отнимаем от половины разрешения экрана длину текста.
Render.DrawText(30@, "Text", 2@, 1@, 0xFFffffff) // Рисуем текст по середине экрана
end
:SendFakePosOnFoot
0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B24: samp 3@ = get_player_ptr 3@
3@ += 109
0AC8: 4@ = allocate_memory_size 68
0C10: memcpy destination 4@ source 3@ size 68
0C0D: struct 4@ offset 6 size 4 = 0@
0C0D: struct 4@ offset 10 size 4 = 1@
0C0D: struct 4@ offset 14 size 4 = 2@
0B3D: raknet 5@ = new_bit_stream
0B40: raknet bit_stream 5@ write PACKET_PLAYER_SYNC type BS_TYPE_BYTE size 1
0B40: raknet bit_stream 5@ write 4@ type BS_TYPE_ARRAY size 68
0B42: raknet send bit_stream 5@ priority PRIORITY_HIGH reliability UNRELIABLE_SEQUENCED ordering_channel 0
0B3E: raknet delete_bit_stream 5@
0AC9: free_allocated_memory 4@
0AB2: 0