Вопросы по CLEO-скриптингу

SR_team

like pancake
BH Team
4,720
6,376
Почему порт сервера отображается правильно, а название и IP нет?
CLEO:
alloc 17@ 128
0B3A: samp 16@ = get_current_server_name
    0B39: samp get_current_server_address 18@ port 19@
   format 17@ = "| Server Name: %s | IP: %d : %d|" 16@ 18@ 19@
    0B6F: render font 0@ draw_text 17@ pos 0 410 color 0xffff0000
с ip все просто - ты в int пишешь, а он в строке (%s). А вообще попробуй выделить им память, не уверен, что там указатели
 

Xample

Новичок
89
1
подскажите почему не работает? по идее в чате должно же писаться что фпс 20 установлен, может както опкодом устанавливать фпс?

Код:
{$CLEO}
0000:
wait 5000

:test1         
wait 0
if
0965: actor $PLAYER_ACTOR swimming
jf @test1

0AF9: samp say_msg "/fpslimit 20"
0ACC: show_text_lowpriority "FPS limit 20" time 500

:test2         
wait 0
if
0965: actor $PLAYER_ACTOR swimming
jf @next
jump @test2
:next
0AF9: samp say_msg "/fpslimit 90"
0ACC: show_text_lowpriority "FPS limit 90" time 500

jump @test1
 

SR_team

like pancake
BH Team
4,720
6,376
подскажите почему не работает? по идее в чате должно же писаться что фпс 20 установлен, может както опкодом устанавливать фпс?

Код:
{$CLEO}
0000:
wait 5000

:test1        
wait 0
if
0965: actor $PLAYER_ACTOR swimming
jf @test1

0AF9: samp say_msg "/fpslimit 20"
0ACC: show_text_lowpriority "FPS limit 20" time 500

:test2        
wait 0
if
0965: actor $PLAYER_ACTOR swimming
jf @next
jump @test2
:next
0AF9: samp say_msg "/fpslimit 90"
0ACC: show_text_lowpriority "FPS limit 90" time 500

jump @test1
Потому что это локальная команда, а ты ее на сервер отправляешь
 

next23012

Новичок
59
6
Как тут быть, если надо в команде вводить 2 значения? (например: /fkill 5 24) 5 работает, но нужно еще для 24
PHP:
0B34: samp register_client_command "fkill" to_label @fkill
:fkill
SAMP.IsCommandTyped(0@)
0AD4: 1@ = scan_string 0@ format "%d" 29@  
0AFE: samp send_death_by_player 29@ with_reason 30@
 
  • Нравится
Реакции: Pawka_SS

Unknown13

Новичок
19
0
Как сделать, чтобы в какую-то переменную записался ид ближайшего игрока? Помогите пожалуйста :)
 

Woofing Giraffe

Активный
402
49
Как сделать, чтобы в какую-то переменную записался ид ближайшего игрока? Помогите пожалуйста :)
Как я думаю, в цикле поставить проверку на то что игрок в зоне стрима, а потом вычислять между тобой и ними расстояние, которое меньше, получаешь ид.
 

DubStep_

Известный
292
52
Как сделать, чтобы в какую-то переменную записался ид ближайшего игрока? Помогите пожалуйста :)
CLEO:
/*
if 
call @NearPlayer 0 0@ 
   then
   0af8: "Id: %d" -1 0@
   else
   0af8: "No players" -1 
end 
*/
:NearPlayer
for 0@ = 0 to 1000 step 1
    if 0B23:  samp is_player_connected 0@
    then
        if 0B20: samp 0 = actor_handle_by_samp_player_id 0@
        then ret 0@
        end
    end
end
ret 0
 

Unknown13

Новичок
19
0
CLEO:
/*
if
call @NearPlayer 0 0@
   then
   0af8: "Id: %d" -1 0@
   else
   0af8: "No players" -1
end
*/
:NearPlayer
for 0@ = 0 to 1000 step 1
    if 0B23:  samp is_player_connected 0@
    then
        if 0B20: samp 0 = actor_handle_by_samp_player_id 0@
        then ret 0@
        end
    end
end
ret 0

Код:
{$CLEO .cs}
{$INCLUDE SF}
0000: NOP
wait 2000

while true
wait 0
if
key_down 114
then
  if
  call @NearPlayer 0 0@
   then
   0af8: "Id: %d" -1 0@
   call @key_unpress1 1 key 114
  
   else
   0af8: "No players" -1
   call @key_unpress1 1 key 114
end
end
end
:NearPlayer
for 0@ = 0 to 1000 step 1
    if 0B23:  samp is_player_connected 0@
    then
        if 0B20: samp 0 = actor_handle_by_samp_player_id 0@
        then ret 0@
        end
    end
end
ret 0

:key_unpress1
while key_down 1@
    wait 0
end
ret 0
Что-то в моем коде не так. Я хотел сделать, чтоб при нажатии F3(114 номер) мне выдавало либо ид ближайшего игрока, либо то, что игроков рядом нет. Помоги, пожалуйста :)
 

hnnssy

Известный
Друг
2,684
2,752
Советчики, так вы получите ИД игрока с найменьшим идом, который есть в стриме.
0AB5: store_actor $player_actor closest_vehicle_to 0 closest_ped_to 0@
 

hnnssy

Известный
Друг
2,684
2,752
/rpos и курсором указываешь место, нажимаешь ЛКМ и рендер остаётся там.
CLEO:
{$CLEO}
0000:

const
CPOS_X = 1@
CPOS_Y = 2@
end
reg_cmd "rpos" @rpos

0B6D: render 30@ = create_font "Tahoma" height 9 flags 5

while true
wait 0
    0B6F: render font 30@ draw_text "_prokhorov просто бог" pos CPOS_X CPOS_Y color 0xFF000000
    if 29@ == 1
    then
        0B8D: samp set_cursor_mode 1
        0B5E: get_cursor_pos CPOS_X CPOS_Y
        if key 1
        then 29@ = 0
            0B8D: samp set_cursor_mode 0
        end
    end
end

:rpos
29@ = 1
cmd_ret