- 4,815
- 6,515
Повторю вопрос: Как получить sPos кара с /dl ?
Синхронизируй и sPos станет равным cPos, а cPos можно даже без СФ получить
Повторю вопрос: Как получить sPos кара с /dl ?
искать игроков нужно через память,. Ники это строка, а не дробь.
{$CLEO .cs}
0000: NOP
03A4: "DoneUp"
0002: jump @Done
:Done
wait 0
if and
056D: actor $Player_ACTOR defined
0AB0: key_pressed 113
jf @Done
0ACD: "Radius Players ~G~ ON" time 1000
wait 500
018C: play_sound 1057 at 0.0 0.0 0.0
jump @Done2
:Done2
wait 0
056D: actor $Player_ACTOR defined
0AB0: not key_pressed 114
jf @Done2
04C4: store_coords_to 1@ 2@ 3@ from_actor $Player_ACTOR with_offset 0.0 0.0 0.0
0AF2: 4@ = get_float_from_ini_file "cleo\radiys.ini" section "Nick" key "NICK"
0AE1: 0@ = random_actor_near_point 1@ 2@ 3@ in_radius 10.0 find_next 1 pass_deads 1
Как получить и записать в локальную переменную свой Ping, Nick, ID
0@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
1@ = SAMP.GetPlayerNickname(0@)
2@ = SAMP.GetPlayerPing(0@)
Ты так долго будешь учиться.Ничего не понял( Помогите дописать, исправить, очень нужно такое КЛЕО, а некому помочь, буду благодарен, с меня 5 репы)
Код:0@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR) 1@ = SAMP.GetPlayerNickname(0@) 2@ = SAMP.GetPlayerPing(0@)
0@ - ID
1@ - Nick
2@ - Ping
таким способом в переменную почему-то записывается игрок с ID 0 на сервере т.е не я
таким способом в переменную почему-то записывается игрок с ID 0 на сервере т.е не я
{$CLEO .cs}
//-------------MAIN---------------
0000: NOP
thread "DoneUp"
jump @DoneUp_329
:DoneUp_329
wait 0
0B34: samp register_client_command 'ffind' to_label @DoneUp_372
jump @DoneUp_329
:DoneUp_372
wait 0
SAMP.IsCommandTyped(12@)
if
0AD4: 4@ = scan_string 12@ format "%i" 16@
else_jump @DoneUp_595
if
16@ >= 0
else_jump @DoneUp_820
if
16@ <= 500
else_jump @DoneUp_8200
if
SAMP.IsPlayerConnected(16@)
else_jump @DoneUp_703
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
0AF9: "/find %d" 16@
wait 5000
SAMP.CmdRet
:DoneUp_595
wait 0
0AF8: samp add_message_to_chat "{FF3333}Неверный формат. {FFFFFF}Правильно: {99FF33}/ffind ID" color 16777215
SAMP.CmdRet
:DoneUp_703
wait 0
0AF8: samp add_message_to_chat "{FF3333}[Ошибка]: {FFFFFF}Игрок: {99FF33}%i{FFFFFF}, не подключён." color 16777215 16@
SAMP.CmdRet
:DoneUp_820
wait 0
0AF8: samp add_message_to_chat "{FF3333}[Ошибка]: {FFFFFF}ID игрока не может быть отрицательным." color 16777215
SAMP.CmdRet
:DoneUp_8200
wait 0
0AF8: samp add_message_to_chat "{FF3333}[Ошибка]: {FFFFFF}ID игрока не может быть больше {99FF33}500{FFFFFF}." color 16777215
SAMP.CmdRet
Кидай код.
{$CLEO}
{$NOSOURCE}
{$INCLUDE SF}
if not 31@ = samp.Base()
then
end_thread
else
while not samp.Available()
wait 100
end
end
alloc 0@ 256
0B6D: render 4@ = create_font "Arial" height 10 flags 12
while true
wait 0
1@ = samp.GetSAMPPlayerIDByActorHandle($player_actor)
2@ = samp.GetPlayerNickname(1@)
3@ = samp.GetPlayerPing(3@)
0ad3: 1@ "Nick: %s%cId: %d%cPing: %d" 2@ 10 1@ 10 3@
render.DrawText(4@,1@,10, 480, -1)
end
Не используй стринговые переменные. Они выделяют по 8 и 16 байт. Лучше через 0ac8 выдели память и юзай её как стринговую. Вот тебе пример 0ac8 и рабочий код, того что ты хотел сделать.
Код:{$CLEO} {$NOSOURCE} {$INCLUDE SF} if not 31@ = samp.Base() then end_thread else while not samp.Available() wait 100 end end alloc 0@ 256 0B6D: render 4@ = create_font "Arial" height 10 flags 12 while true wait 0 1@ = samp.GetSAMPPlayerIDByActorHandle($player_actor) 2@ = samp.GetPlayerNickname(1@) 3@ = samp.GetPlayerPing(3@) 0ad3: 1@ "Nick: %s%cId: %d%cPing: %d" 2@ 10 1@ 10 3@ render.DrawText(4@,1@,10, 480, -1) end
C этим кодом экран моргает