Чекер

Статус
В этой теме нельзя размещать новые ответы.

IZDATXXX

Известный
Автор темы
Проверенный
172
252
Идея такова: сделать чекер npc и фри слотов сервера .
Скрипт первый раз срабатывает некорректно, а второй раз крашит.
В чем здесь загвоздка?
CLEO:
{$CLEO}
{$NOSOURCE}
0B34: samp register_client_command "npcheck" to_label @Npcheck
0BDE: 0

:Npcheck
wait 0
0006: 0@ = -1   //Счетчик id
0006: 1@ = 0    //Счетчик пустых слотов
0006: 2@ = 0    //Счетчик npc
0006: 3@ = 0    //Счетчик игроков
:Counter
0@ += 1
if 0@ == 1001
then
    0@ = 0
    0AB1: call_scm_func @Result 3 1@ 2@ 3@
    0B43:
end
if
0B23:  samp is_player_connected 0@
then //Если игрок подключен
    if
    0B64:  samp is_player 0@ npc
    then //Если игрок бот
        2@ += 1
        goto @Counter
    else //Если игрок не бот
        3@ += 1
        goto @Counter
    end
else //Если игрок не подключен
    1@ += 1
    goto @Counter
end

:Result //0@ = free slots. 1@ = npc's count. 2@ = player's count.
0AF8: samp add_message_to_chat "Free slots: %d" color 0x008080 0@
0AF8: samp add_message_to_chat "NPC's: %d" color 0x008080 1@
0AF8: samp add_message_to_chat "Players: %d" color 0x008080 2@
0AB2: ret 0
Решено
 
Последнее редактирование:

serhiyrubin

Известный
396
106
Код:
{$CLEO}
{$INCLUDE SF}
0000:

repeat
wait 0
until Samp.Available()

0B34: samp register_client_command "npcheck" to_label @Npcheck

while true
wait 0
end

:Npcheck
0006: 1@ = 0    //Счетчик пустых слотов
0006: 2@ = 0    //Счетчик npc
0006: 3@ = 0    //Счетчик игроков
for 0@ = 0 to 1001
    if 0B23:  samp is_player_connected 0@
    then
        if 0B64:  samp is_player 0@ npc
        then
        2@ += 1
        else
        3@ += 1
        end
    else
    1@ += 1
    end
end
0AF8: samp add_message_to_chat "Free slots: %d" color 0x008080 1@
0AF8: samp add_message_to_chat "NPC's: %d" color 0x008080 2@
0AF8: samp add_message_to_chat "Players: %d" color 0x008080 3@
cmdret
Так наверно
 

kuleer

Участник
86
13
Идея такова: сделать чекер npc и фри слотов сервера .
Скрипт первый раз срабатывает некорректно, а второй раз крашит.
В чем здесь загвоздка?
CLEO:
{$CLEO}
{$NOSOURCE}
0B34: samp register_client_command "npcheck" to_label @Npcheck
0BDE: 0

:Npcheck
wait 0
0006: 0@ = -1   //Счетчик id
0006: 1@ = 0    //Счетчик пустых слотов
0006: 2@ = 0    //Счетчик npc
0006: 3@ = 0    //Счетчик игроков
:Counter
0@ += 1
if 0@ == 1001
then
    0@ = 0
    0AB1: call_scm_func @Result 3 1@ 2@ 3@
    0B43:
end
if
0B23:  samp is_player_connected 0@
then //Если игрок подключен
    if
    0B64:  samp is_player 0@ npc
    then //Если игрок бот
        2@ += 1
        goto @Counter
    else //Если игрок не бот
        3@ += 1
        goto @Counter
    end
else //Если игрок не подключен
    1@ += 1
    goto @Counter
end

:Result //0@ = free slots. 1@ = npc's count. 2@ = player's count.
0AF8: samp add_message_to_chat "Free slots: %d" color 0x008080 0@
0AF8: samp add_message_to_chat "NPC's: %d" color 0x008080 1@
0AF8: samp add_message_to_chat "Players: %d" color 0x008080 2@
0AB2: ret 0
Решено
Ты или не ищешь лёгких путей, или не знаешь о существовании цикла FOR?
 
Статус
В этой теме нельзя размещать новые ответы.