Текущая версия SA-MP: 0.3.7


IP: 77.220.180.96:7777
  Новые сообщения · Поиск
  • Страница 1 из 1
  • 1
Модератор форума: KaTacTpOqpa  
Создания дисконнект сообщения!
Polcar Сообщение # 1  | 08:37:53
Руководитель проекта SM
Администраторы
Сообщений: 788
Репутация: 323
Case - команда, которая проверяет переменную на то число, которое будет использоваться
во время public-а, в котором есть эта команда.
Code
case <число>;

Switch - команда, в которой указана переменная, в которой надо проверять число, которое
указано в case-ах.
Code
switch (<переменная>);

Что-ж, ради тренировки создадим в паблике
Code
OnPlayerDisconnect

кейсы на различие между
отключениями игроков от сервера. Сначала создадим переменные, в которые будут записываться
имена игроков и текст для сообщения в чате:
Code
new PlayerName[30], str[256];

Теперь укажем переменную, которую будет проверять кейсы (в данном случае команда будет
проверять ID причины отключения игрока):
Code
switch (reason)

Теперь откроем новый поток с помощью { и начнём перебирать числа (вариантов отключения
игрока всего три). Начнём с причины под ID 0(Таймаут):

case 0:

Затем ещё раз открываем новый поток и пишем действия, которые будут выполняться, если
именно это число будет записано в переменной. К примеру приведу такой вариант:

Code
GetPlayerName(playerid, PlayerName, 30);  
format(str, 256, "%s покинул сервер (Timeout)", PlayerName);     
SendClientMessageToAll(0xAFAFAFAA, str);

Теперь закройте поток с помощью }. После всего этого паблик должен выглядить вот так:
Code
public OnPlayerDisconnect(playerid, reason)     
{     
            new PlayerName[30], str[256];     
            switch (reason)     
        {     
        case 0:     
          {     
            GetPlayerName(playerid, PlayerName, 30);     
            format(str, 256, "%s покинул сервер (Timeout)", PlayerName);     
            SendClientMessageToAll(0xAFAFAFAA, str);     
        }  
       return 1;  
}

После этого проделайте всё тоже самое с ID 1 (Leaving) и 2 (Kicked)...После этого
закройте все 3 потока в один поток с помощью ещё одного } и после этого окончательный
вид должен быть таким:
Code
public OnPlayerDisconnect(playerid, reason)     
{     
            new PlayerName[30], str[256];     
            switch (reason)     
        {     
        case 0:     
          {     
            GetPlayerName(playerid, PlayerName, 30);     
            format(str, 256, "%s покинул сервер (Timeout)", PlayerName);     
            SendClientMessageToAll(0xAFAFAFAA, str);     
        }     
        case 1:     
        {     
            GetPlayerName(playerid, PlayerName, 30);     
            format(str, 256, "%s покинул сервер (Leaving)", PlayerName);     
            SendClientMessageToAll(0xAFAFAFAA, str);     
        }     
        case 2:     
        {     
            GetPlayerName(playerid, PlayerName, 30);     
            format(str, 256, "%s покинул сервер (Kicked)", PlayerName);     
            SendClientMessageToAll(0xAFAFAFAA, str);     
            }     
        }  
        return 1;  
}

Вот всё и готово! Заходите в игру и проверяйте с помощью других игроков =).
Сегодня вы научились использовать case и делать с помощью него скрипты.
Урок by RussianCJ



  • Страница 1 из 1
  • 1
Поиск: