Не так давно меня спрашивали о возможности сделать на основе SL:NET гибридную систему, совмещающую с себе и возможность создавать сервера (хост-функция), и возможность подключаться к созданному серверу - чтобы всё это было в одном и том же скрипте.
Выше выкладывался пример чата, который имеет стандартную модель работы: несколько клиентов и отдельный сервер. Сейчас же мной публикуется скрипт, который имеет гибридную систему работы. Один из клиентов может стать сервером, а остальные подключиться к нему. При этом и клиент, ставший сервером, и все остальные клиенты будут иметь возможность видеть и отправлять сообщения.
Также в данном примере продемонстрирована система подключения и отключения клиентов, а также автоматическое исключение клиент в случае, если никаких входящих пакетов с его стороны не обнаружено на протяжение 30 секунд, т.е. система бездействия пользователя.
/chat.host [chat name] - стать хостом чата, т.е. создать новый чат для подключения
/chat.connect [chat IP] - присоединиться к созданному кем-то чату
/ch [chat message] - отправить свое сообщение в чат, к которому вы подключены
Для работы этого примера требуется SA:MP, ибо, как можно догадаться, он привязан к SA:MP чату.
Система автоматического отключения иногда не срабатывает, но это не так страшно - система бездействия всё сделает.