Это всё потому-то сервер доверяет игрокам, а не Local. Тут нужна синхронизация.Загрузил, активировал - игроки падают, кровь течет, но хп как были так и остались(( Есть идеи как реализовать убийство других игроков?
Это всё потому-то сервер доверяет игрокам, а не Local. Тут нужна синхронизация.Загрузил, активировал - игроки падают, кровь течет, но хп как были так и остались(( Есть идеи как реализовать убийство других игроков?
{$CLEO}
thread 'd'
0000:
if 8AF7: get_samp_base_to 33@
then 0A93: end_custom_thread
end
repeat
wait 400
until 0AFA: is_samp_structures_available
0AF8: samp add_message_to_chat "Ìåìîñû" 0xff9a0a
wait 20
0AF8: samp add_message_to_chat "/ass" 0xff9a0a
0B34: samp register_client_command "ass" to_label @fmw
while true
wait 0
end
:fmw
0B44: samp 9@ = create_3d_text "piw-piw" color 1@ position 2@ 3@ 4@ view_distance 5@ show_behind_walls 6@ attached_to_player 7@ attached_to_vehicle 8@
SAMP.CmdRet()
http://blasthack.net/wiki/opcodes:0b44Ребят, как прикрепить 3d text к машине ? если можно, то на примере
{$CLEO .cs}
0000: NOP
Thread "MyLife"
0B34: samp register_client_command "мучитель" to_label @Cmd
While true
Wait 0
If 10@ == 1
Then
For 0@ = 0 To 1000
If 0B2F: samp get_streamed_out_player_pos 0@ to $X $Y $Z
Then
Actor.PutAt($PLAYER_ACTOR, $X, $Y, $Z)
Wait 1000
End
End
End
End
:Cmd
0B12: 10@ = 10@ XOR 1
Samp.CmdRet()
А как получить координаты игрока по ид?
Чтобы на них потом тп.
0B20: samp 1@ = actor_handle_by_samp_player_id 0@
00A0: store_actor 1@ position_to 2@ 3@ 4@
Этот опкод работает только если сервер это разрешает.Нашел один опкод - 0B2F, получаю координаты, а потом телепортируюсь по ним, но он как то странно телепортируется, как-будто не ко всем игрокам, а к третьей части:
Так ты не сможешь телепортироваться к игроку который вне зоны стрима.Код:0B20: samp 1@ = actor_handle_by_samp_player_id 0@ 00A0: store_actor 1@ position_to 2@ 3@ 4@
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}
//-------------MAIN---------------
0662: printstring "FINDPLAYERS"
thread "FINDPLAYERS"
wait 0
:FINDPLAYERS_34
wait 0
if and
key_down 70
key_down 80
jf @FINDPLAYERS_34
:FINDPLAYERS_57
wait 0
if or
not key_down 70
not key_down 80
jf @FINDPLAYERS_57
018C: play_sound 1058 at 0.0 0.0 0.0
00BC: show_text_highpriority GXT 'CHEAT1' time 2000 flag 1 // Ќњ¦-koљ ak¦њўњpoўa®
:FINDPLAYERS_116
wait 0
10@ = 12224240
:FINDPLAYERS_130
0A8E: 14@ = 10@ + 28 // int
0A8D: 18@ = read_memory 14@ size 4 virtual_protect 0
if or
18@ == 2
18@ == 3
jf @FINDPLAYERS_967
0A8D: 17@ = read_memory 10@ size 4 virtual_protect 0
0A8E: 11@ = 10@ + 28 // int
0A8C: write_memory 11@ size 4 value 3 virtual_protect 0
00BE: text_clear_all
01E3: show_text_1number_styled GXT 'NUMBER' number 18@ time 10 style 5 // ~1~
if
17@ == 500
jf @FINDPLAYERS_256
goto @FINDPLAYERS_967
:FINDPLAYERS_256
0A8E: 14@ = 10@ + 8 // int
0A8D: 20@ = read_memory 14@ size 4 virtual_protect 0
0A8E: 14@ = 10@ + 12 // int
0A8D: 21@ = read_memory 14@ size 4 virtual_protect 0
0A8E: 14@ = 10@ + 16 // int
0A8D: 22@ = read_memory 14@ size 4 virtual_protect 0
05BC: AS_actor $PLAYER_ACTOR jump 1
083C: set_actor $PLAYER_ACTOR velocity_in_direction_XYZ 0.0 0.0 50.0
wait 200
Actor.PutAt($PLAYER_ACTOR, 20@, 21@, 22@)
wait 100
Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
0395: clear_area 1 at 0@ 1@ 2@ radius 999.0
gosub @FINDPLAYERS_1068
if
056D: actor 23@ defined
jf @FINDPLAYERS_904
if
Actor.Driving(23@)
jf @FINDPLAYERS_767
if
04A9: actor 23@ driving_heli
jf @FINDPLAYERS_603
04C4: store_coords_to 20@ 21@ 22@ from_actor 23@ with_offset 0.0 1.0 1.9
Actor.PutAt($PLAYER_ACTOR, 20@, 21@, 22@)
wait 100
04C4: store_coords_to 20@ 21@ 22@ from_actor 23@ with_offset 0.0 1.0 1.8
Actor.PutAt($PLAYER_ACTOR, 20@, 21@, 22@)
wait 100
04C4: store_coords_to 20@ 21@ 22@ from_actor 23@ with_offset 0.0 1.0 2.0
Actor.PutAt($PLAYER_ACTOR, 20@, 21@, 22@)
goto @FINDPLAYERS_904
:FINDPLAYERS_603
wait 0
if
Actor.Driving(23@)
jf @FINDPLAYERS_767
04C4: store_coords_to 20@ 21@ 22@ from_actor 23@ with_offset 0.0 1.0 1.2
Actor.PutAt($PLAYER_ACTOR, 20@, 21@, 22@)
wait 100
04C4: store_coords_to 20@ 21@ 22@ from_actor 23@ with_offset 0.0 1.0 1.2
Actor.PutAt($PLAYER_ACTOR, 20@, 21@, 22@)
wait 100
04C4: store_coords_to 20@ 21@ 22@ from_actor 23@ with_offset 0.0 1.0 1.2
Actor.PutAt($PLAYER_ACTOR, 20@, 21@, 22@)
goto @FINDPLAYERS_904
:FINDPLAYERS_767
04C4: store_coords_to 20@ 21@ 22@ from_actor 23@ with_offset 1.0 0.0 0.8
Actor.PutAt($PLAYER_ACTOR, 20@, 21@, 22@)
wait 100
04C4: store_coords_to 20@ 21@ 22@ from_actor 23@ with_offset 1.0 0.0 0.8
Actor.PutAt($PLAYER_ACTOR, 20@, 21@, 22@)
wait 100
04C4: store_coords_to 20@ 21@ 22@ from_actor 23@ with_offset 1.0 0.0 0.8
Actor.PutAt($PLAYER_ACTOR, 20@, 21@, 22@)
:FINDPLAYERS_904
018C: play_sound 1057 at 0.0 0.0 0.0
:FINDPLAYERS_924
wait 0
if and
key_down 70
key_down 80
jf @FINDPLAYERS_924
018C: play_sound 1058 at 0.0 0.0 0.0
:FINDPLAYERS_967
10@ += 40
if
10@ > 12231240
jf @FINDPLAYERS_130
goto @FINDPLAYERS_116
:FINDPLAYERS_1002
wait 0
if or
not key_down 70
not key_down 80
jf @FINDPLAYERS_1002
018C: play_sound 1057 at 0.0 0.0 0.0
00BC: show_text_highpriority GXT 'CHEAT8' time 2000 flag 1 // Ќњ¦-koљ o¦kћ«¤e®
goto @FINDPLAYERS_34
:FINDPLAYERS_1068
0AB3: var 900 = 0
0AB3: var 901 = 0
run "FINDPLAYER.S"
:FINDPLAYERS_1099
wait 80
if or
not key_down 70
not key_down 80
jf @FINDPLAYERS_1195
0AB4: 28@ = var 900
if
not 28@ == 0
jf @FINDPLAYERS_1099
0AB4: 23@ = var 901
if
056D: actor 23@ defined
jf @FINDPLAYERS_1179
goto @FINDPLAYERS_1193
:FINDPLAYERS_1179
29@ = -1
goto @FINDPLAYERS_1193
:FINDPLAYERS_1193
return
:FINDPLAYERS_1195
0ABA: end_custom_thread_named 'FINDPLAYER'
goto @FINDPLAYERS_1179
wait 16777216
hex
4D 4F 0F 42 59 20 53 48 41 47 47 59 00 59 27 08
36 54 00 4E 53 0F 4E 45 57 52 4F 43 4B 53 54 41
52 2E 44 4F 2E 41
end
jf
hex
00 65 09 32 30 31
end
0882: NOP
hex
48 45 58 02 00 01 65 FB
{$CLEO .cs}
//—————————————————————————MAIN—————————————————————————
0000: NOP
Thread "MyLife"
0B34: samp register_client_command "мучитель" to_label @Cmd
End
While true
Wait 0
If 10@ == 1
Then
For $Actors = 0 To 1000
If 0B20: samp $Zone = actor_handle_by_samp_player_id $Actors
Then
If 056D: actor $Zone defined
Then
If 00A0: store_actor $Actors position_to $X $Y $Z
Then
Actor.PutAt($PLAYER_ACTOR, $X, $Y, $Z)
Wait 1000
End
End
End
End
End
End
:Cmd
0B12: 10@ = 10@ XOR 1
Samp.CmdRet()
{$CLEO .cs}
//—————————————————————————MAIN—————————————————————————
0000: NOP
Thread "MyLife"
0B34: samp register_client_command "мучитель" to_label @Cmd
End
While true
Wait 0
If 10@ == 1
Then
For $Actors = 0 To 1000
If 0B20: samp $Zone = actor_handle_by_samp_player_id $Actors
Then
If 056D: actor $Zone defined
Then
If 00A0: store_actor $Zone position_to $X $Y $Z
Then
Actor.PutAt($PLAYER_ACTOR, $X, $Y, $Z)
Wait 1000
End
End
End
End
End
End
:Cmd
0B12: 10@ = 10@ XOR 1
Samp.CmdRet()
{$CLEO .cs}
0000: NOP
0B34: samp register_client_command "мучитель" to_label @Cmd
While true
Wait 0
If 10@ == 1
Then
For 0@ = 0 To 1000
If Samp.IsPlayerConnected(0@)
Then
If 0B20: samp 1@ = actor_handle_by_samp_player_id 0@
Then
If 056D: actor 1@ defined
Then
If 00A0: store_actor 1@ position_to 2@ 3@ 4@
Then
Actor.PutAt($PLAYER_ACTOR, 2@, 3@, 4@)
Print "Torment..." 100
Wait 1000
End
End
End
End
End
End
End
:Cmd
0B12: 10@ = 10@ XOR 1
Samp.CmdRet()
{$CLEO .cs}
0000:NOP
repeat
wait 0
until Samp.Available()
0B34: samp register_client_command "ferma" to_label @cmd
:3
wait 0
if 10@ == 1
jf @3
jump @4
:4
wait 0
0ACC: show_text_lowpriority "BOT Ferma ~g~ON" time 1000
jump @1
:1
while true
wait 0
if 10@ == 1
then
Actor.StorePos($PLAYER_ACTOR, 3@, 4@, 5@)
0AB1: call @StoreClosestMarkerPos 0 X 7@ Y 8@ Z 9@
0AB3: var 740 = 2
wait 1000
05D3: AS_actor $PLAYER_ACTOR goto_point 7@ 8@ 9@ mode 6 time 30000 ms
wait 2000
if 10@ == 0
then
10@ = 0
0AB3: var 740 = 0
0ACC: show_text_lowpriority "BOT Ferma ~r~OFF" time 1000
0687: clear_actor $PLAYER_ACTOR task
goto @3
end
end
end
:cmd
0B12: 10@ = 10@ XOR 1
Samp.CmdRet()
:storeclosestmarkerpos
12@ = 9999.0
for 0@ = 0 to 31
0085: 1@ = 0@
1@ *= 160
1@ += 0xC7DD58
1@ += 48
0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0
1@ += 4
0A8D: 3@ = read_memory 1@ size 4 virtual_protect 0
1@ += 4
0A8D: 4@ = read_memory 1@ size 4 virtual_protect 0
00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
050A: 8@ = distance_between_XYZ 2@ 3@ 4@ and_XYZ 5@ 6@ 7@
if
0025: 12@ > 8@
then
0087: 12@ = 8@
0087: 9@ = 2@
0087: 10@ = 3@
0087: 11@ = 4@
end
end
0AB2: ret 3 9@ 10@ 11@