- 212
- 196
Спасибо. Щас чекну через вики)Например через 0BC0.
Спасибо. Щас чекну через вики)Например через 0BC0.
0BCA: samp send_click_textdrawКак отправлять нажатие по любому существующему текстдраву?
Хорошо, а как нажать на текстдрав не зная его id?0BCA: samp send_click_textdraw
Узнать его идХорошо, а как нажать на текстдрав не зная его id?
Какой опкод узнает id ближайшего игрока ?
Описание:
Возвращает дистанцию и ид ближайшего игрока.
Код:
Код::get_id_nearest_player // FOR ALL PEDS 3@ = 1000.0 // Max. distance 4@ = 0xFFFFFF // Nearest player handle / id 0A8D: 0@ = read_memory 0xB74490 size 4 virtual_protect 0 0@ += 4 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 for 1@ = 0 to 35584 step 0x100 0A8D: 2@ = read_memory 0@ size 1 virtual_protect 0 0@++ if and 2@ >= 0x00 2@ < 0x80 then 005A: 2@ += 1@ if or 003C: $PLAYER_ACTOR == 2@ // LOCAL_PLAYER == REMOTE_PLAYER 856D: NOT actor 2@ defined // REMOTE PLAYER IS NOT DEFINED then continue end 0AB1: call @distanceBetweenActor 1 remote_player_handle 2@ retr_dist_to 5@ if 0025: 3@ > 5@ // Max. dist > cur. then 0087: 3@ = 5@ // Max. dist = cur. 0085: 4@ = 2@ // Save remote player handle end end end if 4@ = SAMP.GetSAMPPlayerIDByActorHandle(4@) then 0485: return_true else 059A: return_false end 0AB2: ret 2 3@ 4@ :distanceBetweenActor Actor.StorePos(0@, 1@, 2@, 3@) Actor.StorePos($PLAYER_ACTOR, 4@, 5@, 6@) 050A: 7@ = distance_between_XYZ 4@ 5@ 6@ and_XYZ 1@ 2@ 3@ 0AB2: ret 1 7@
Использование:
Код:{$CLEO} 0001: wait 0 ms 0662: "by legend2360" 0662: "BlastHack - cheating is art" while not SAMP.Available() wait 400 end while true wait 0 if 0AB1: call @get_id_nearest_player 0 retr_to fdist 0@ sid 1@ then 0AD1: show_formatted_text_highpriority "Player %d ; dist %.2f" 0 1@ 0@ end end
UPD 24.11: Перезаписал функу, лучше так, чем через пул сампа :)
:0000: NOP
Noname_2
0001: wait 150 ms
0AFA: is_samp_available
004D: jump_if_false @Noname_2
0002: jump @2
:2
wait 0
0AB0: key_pressed 82
004D: jump_if_false @23
0002: jump @Noname_30
:Noname_30
0001: wait 0 ms
00A0: store_actor $PLAYER_ACTOR position_to 7@ 8@ 9@
0006: 0@ = 0
:Noname_73
0B23: samp is_player_connected 0@
0B20: samp 1@ = actor_handle_by_samp_player_id 0@
00A0: store_actor 1@ position_to 2@ 3@ 4@
050A: 5@ = distance_between_XYZ 7@ 8@ 9@ and_XYZ 2@ 3@ 4@
8021: not 5@ > 3.0
0AF9: samp say_msg "/healon %d 100" 0@
0001: wait 2000 ms
jump @5
:5
wait 0
jump @23
:Noname_281
0002: jump @2
:23
jump @2
Потому что ты херню написал. Чекаешь только ид 0, непонятно как используешь 0B23 и другие условные опкоды.Почему не срабатывает на ближайший id ?
Код::0000: NOP Noname_2 0001: wait 150 ms 0AFA: is_samp_available 004D: jump_if_false @Noname_2 0002: jump @2 :2 wait 0 0AB0: key_pressed 82 004D: jump_if_false @23 0002: jump @Noname_30 :Noname_30 0001: wait 0 ms 00A0: store_actor $PLAYER_ACTOR position_to 7@ 8@ 9@ 0006: 0@ = 0 :Noname_73 0B23: samp is_player_connected 0@ 0B20: samp 1@ = actor_handle_by_samp_player_id 0@ 00A0: store_actor 1@ position_to 2@ 3@ 4@ 050A: 5@ = distance_between_XYZ 7@ 8@ 9@ and_XYZ 2@ 3@ 4@ 8021: not 5@ > 3.0 0AF9: samp say_msg "/healon %d 100" 0@ 0001: wait 2000 ms jump @5 :5 wait 0 jump @23 :Noname_281 0002: jump @2 :23 jump @2
Как узнать "object handle" моей лодки, если я в ней сижу?
03C0: 0@ = actor $PLAYER_ACTOR vehicle_handle
Благодарю! Мои мысли были верны... Меня смутил мой куратор(учитель), что нужен не 03C0. Но теперь все стало на свои места и я могу продолжить модернизировать свой скрипт.CLEO:03C0: 0@ = actor $PLAYER_ACTOR vehicle_handle