Перейти к содержанию
Авторизация  
Devin Coleman

Урок №14 – Сообщение о входе или выходе игрока с сервера

Рекомендуемые сообщения

Devin Coleman

Итак, по сути, этот урок повторение и закрепление 11 урока. Сейчас я покажу, как выдавать

в чат всем игрокам сообщение о входе или выходе игрока на сервере. Для начала создадим две

константы.

#define COLOR_GREEN 0x33AA33AA //ЗЕЛЕНЫЙ
#define COLOR_RED 0xAA3333AA //КРАСНЫЙ
Создаем их, чтобы не писать HEX-код цвета, которым будет выделено сообщение мы будем

писать имя константы вместо кода. Теперь пишем скрипт сообщения, когда игрок подключился к

серверу, скрипт приведен ниже:

public OnPlayerConnect(playerid)
{
new plname[MAX_PLAYER_NAME];
new string[40];
GetPlayerName(playerid,plname,24);
format(string,sizeof(string),"*** %s присоединился . (ID:%d)",plname,playerid);
SendClientMessageToAll(COLOR_GREEN,string);
return 1;
}
Для вас сделать сообщение о входе игрока на сервер, думаю, не составит труда, потому что

тут все понятно. Переходим к другой части скрипта – «Сообщение о выходе игрока из сервера» (по

причинам).

Рассмотрим автовызываемую функцию OnPlayerDisconnect.

public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
Reason – это причина отключения от сервера. Данный параметр может принимать 3

значения: 0 – принудительно отключился по причине ошибки клиента или иной другой ошибки. 1

– покинул игру самостоятельно, 2 – был кикнут администратором.

Для того чтобы правильно выдать сообщение, тут нам нужен оператор switch, а проверять

значение мы будем у параметра reason. Если вы хорошо поняли 9 урок, думаю, вам тут все будет

понятно. В зависимости от значения параметра reason, в чат будет выдаваться всем игрокам

определенное сообщение с указанием причины отключения игрока. Скрипт будет выглядеть

следующим образом:

 

public OnPlayerDisconnect(playerid, reason)
{
new string[64], plname[25];
switch(reason)
{
case 0:
{
GetPlayerName(playerid,plname,24);
format(string,sizeof(string), "*** %s вылетел с сервера.(ID:%d)",plname,playerid);
SendClientMessageToAll(COLOR_RED,string);
}
case 1:
{
GetPlayerName(playerid,plname,24);
format(string,sizeof(string), "*** %s решил уйти . (ID:%d)",plname,playerid);
SendClientMessageToAll(COLOR_RED,string);
}
case 2:
{
GetPlayerName(playerid,plname,24);
format(string,sizeof(string), " %s кикнут (ID:%d) ",plname,playerid);
SendClientMessageToAll(COLOR_RED,string);
}
}
return 1;
}
Итак, я думаю тут у вас не возникнет сложностей, то переходим к следующему уроку.

 

Автор Cloud

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.