Case - команда, которая проверяет переменную на то число, которое будет использоваться во время public, в котором есть эта команда.
case <число>;
Switch - команда, в которой указана переменная, в которой надо проверять число, которое указано в case'ах.
Quote
switch (<переменная>);
Ради тренировки создадим в паблике
Quote
OnPlayerDisconnect
кейсы на различие между отключениями игроков от сервера. Сначала создадим переменные, в которые будут записываться имена игроков и текст для сообщения в чате:
Code
new PlayerName[30], str[256];
Теперь укажем переменную, которую будет проверять кейсы (в данном случае команда будет проверять ID причины отключения игрока):
Code
switch (reason)
теперь откроем новый поток с помощью { и начнем перебирать числа (вариантов отключения игрока всего три). Начнём с причины под ID 0 (Таймаут):
Code
case 0:
Затем еще раз открываем новый поток и пишем действия, которые будут выполняться, если именно это число будет записано в переменной. К примеру приведу такой вариант:
Теперь закройте поток с помощью }. После всего этого паблик должен выглядеть вот так:
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'ы и делать с помощью них скрипты.