• Страница 1 из 1
  • 1
Создаем сообщения
ZioHikДата: Суббота, 15.10.2011, 22:29 | Сообщение # 1
.::Offline::.
http://u.to/N46EAw
Сообщений: 831
[ 82 ]
Награды: 29

Статус отсутствует
Case - команда, которая проверяет переменную на то число, которое будет использоваться
во время public'а, в котором есть эта команда.

Code

case <число>;


Switch - команда, в которой указана переменная, в которой надо проверять число, которое
указано в case'ах.

Code
switch (<переменная>);


Что-ж, ради тренировки создадим в паблике OnPlayerDisconnect кейсы на различие между
отключениями игроков от сервера. Сначала создадим переменные, в которые будут записываться
имена игроков и текст для сообщения в чате:

Code
new PlayerName[30], str[256];


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

Code
switch (reason)


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

Code
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'ы и делать с помощью них скрипты.

Автор: mweb.
 
SeeneДата: Пятница, 22.03.2013, 19:24 | Сообщение # 2
.::Offline::.
Бандит
Сообщений: 21
[ 0 ]
Награды: 0

Статус отсутствует
классно, збс. happy happy спс
 
Smile_daysДата: Понедельник, 27.05.2013, 16:48 | Сообщение # 3
.::Offline::.
Новичок
Сообщений: 10
[ 0 ]
Награды: 0

Статус отсутствует
Помогло
 
gyff1978Дата: Воскресенье, 27.09.2015, 19:42 | Сообщение # 4
.::Offline::.
Новичок
Сообщений: 1
[ 0 ]
Награды: 0

Статус отсутствует
Помогло вроде нет ошибок
 
мася2821Дата: Воскресенье, 11.10.2015, 09:26 | Сообщение # 5
.::Offline::.
Новичок
Сообщений: 5
[ 0 ]
Награды: 0

Статус отсутствует
чёт не получается =(
 
  • Страница 1 из 1
  • 1
Поиск:


Copyright www.SAMP-TEAM.com (c) 2009-2024
Правила использования материалов сайта

При копировании материалов из нашего сайта
ссылка на www.SAMP-TEAM.com обязательна!
Нарушители правил будут строго наказаны!

Хостинг от uCoz   
Для корректного просмотра мы рекомендуем Вам использовать браузер Google Chrome.
Яндекс.Метрика
Яндекс.Метрика