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
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 и делать с помощью него скрипты. [color=red]Урок by RussianCJ
[img]http://sa-mp-fail.at.ua/premium.gif[/img]
Сообщение отредактировал MaNb9K - Понедельник, 27.12.2010, 17:34:07
MaNb9K:- Если ты Копипастиш уроки, будь добр отвечать на вопросы поставленные пользователями, а не то что ты употребил в своей речи! Если незнаеш что это не берись за это вообще. Посты себе набиваеш только и все.. Это мое мнение. Лично если бы мне ответил я бы культурно покрыл матом бы тебя. ДУмаю учтеш данное сообщение! Minzdrav Gang M*FUCKA!!!
Сообщение отредактировал EmporiO - Четверг, 19.05.2011, 18:14:31