RASTAMAN

Операторы

В теме 2 сообщения

В данном уроке я опишу операторы. С операторами все скриптеры связываются ежедневно, так как они являются ключом, в развязке функций.

Первый оператор о котором стоит написать, так как погружаясь в тему глубже, мы увидим примеры использования с одними из них:

&& – значение на понятный нам язык звучит как "И";
|| – значение на понятный нам язык звучит как "ИЛИ";

Спойлер

if(PlayerInfo[playerid][pAdmin] > 3 && PlayerInfo[playerid][pExp] < 2) { // Уровень админа должен быть не менее 3, и Exp не менее 2.
SCM(playerid, COLOR_WHITE, "Отказано в доступе, минимальные требования 3 уровень админа и Exp не менее 2");
return 1;
}

if(money < 30 || money > 50) {
SCM(playerid, COLOR_WHITE, "Сумма должна быть не менее 30 и не более 50");
return 1;
}

 


Что-же один из первых вариантов мы рассмотрели, хотел бы затронуть такой оператор как "если":
В коде можно встретить, в любой функции нашего направления такое начало строки как if и else, если перевести данные слова на русский язык мы получим такие определения как если и иначе.
 

Спойлер

CMD:sklad(playerid, params[])
{
    if(WeaponSkladClosed)
    {
        WeaponSkladClosed = 0;
        SendClientMessage(playerid, COLOR_YELLOW,"Вы открыли склад");
    }
    else
    {
        WeaponSkladClosed = 1;
        SendClientMessage(playerid, COLOR_YELLOW,"Вы закрыли склад");
    }
     return 1;
}

 

В предыдущем примере мы с вами увидели такой оператор как "=", перейдём к данному разделу сейчас, чтобы не упустить данный оператор из виду.

! – значение на понятный нам язык звучит как "НЕ".

> – больше;
< – меньше;
>= – больше либо равно;
<= – меньше либо равно;
== – равно;
!= – не равно.
(Пример использования мы видим выше, где = 0 даёт параметр открытого склада, а = 1 закрытого.)

Следующий оператор:

for(new i = 0; i < MAX_PLAYERS; i++)

Раскладываем всё по полкам:
for - оператор цикла;
new i = 0 - создаём новую переменную и приравниваем её к нулю;
i < MAX_PLAYERS - переменная меньше MAX_PLAYERS(максимальное количество игроков);
i++ - прибавляем по одному(сканируем игроков).


Оператор "?" - return переменная ? если да : если нет.
 

Спойлер

publics RegCheck(playerid)
{
        new r, f;
        cache_get_data(r, f);
        return r ? d_login(playerid) : d_reg;
}

 

И последние операторы в данной теме, while и do/while:
Цикличные операторы, различие между ними в том что do/while выполнится гарантированно один раз.

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


Ссылка на сообщение
Поделиться на другие сайты

АВТОМАТИЧЕСКИ СФОРМИРОВАННОЕ СООБЩЕНИЕ:

Данная тема была перемещена модерацией или администрацией портала PAWNO-RUS.RU! 

Перемещена из: "Скриптинг PAWN > Готовые решения"

Перемещена в: "Скриптинг PAWN > Уроки"

 

С уважением, ваш Бот! 

Если вы НЕ согласны с переносом данной темы в раздел "Скриптинг PAWN > Уроки", пожалуйтесь на это сообщение в жалобе указав причины вашего недовольства. Спасибо. 

 

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

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

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

  • Похожий контент

    • gooding
      От gooding


      Скачать файл PAR RP | Доработанный мод Cruela RP | Без багов
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
      Основа данного мода: Cruela RP
       
       

      Добавил gooding Добавлено 20.11.2024 Категория Моды Автор GOODING (Я)  
    • gooding
      От gooding
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
      Основа данного мода: Cruela RP
       
       

    • Max Luilchack
      От Max Luilchack
      Нужен человек который сможет сделать примерную карту Украины для сервера crmp mobile. Если есть желающие пишите в дс: lamarlml
    • Yashich
      От Yashich
      Возникла проблема, не работает команда /giverank Что здесь может работать не так? Заранее спасибо за ответ)
      Вот строки кода связанные с этой командой (мод Аризона)
       
      CMD:giverank(playerid, params[]) {     if(PI[playerid][pMember]<=0)return 0;     if(PI[playerid][pRank] < 9 && PI[playerid][pLeader] == 0) return SCM(playerid, COLOR_RED, !"Отказано в доступе!");     if(sscanf(params,"ud",params[0],params[1])) return SCM(playerid, COLOR_RED, !"Используйте: /giverank [id] [rank]");     if(!ProxDetectorS(8.0, playerid, params[0])) return SCM(playerid, COLOR_GREY, !"Вы должны находиться рядом с игроком!");     if(PI[params[0]][pLeader] > 0 ) return SCM(playerid, COLOR_RED, !"Вы не можете изменять ранг лидеру");     if(params[1] < 1) return SCM(playerid, COLOR_GREY, !"Нельзя повысить до этого ранга");     if(Clother[params[0]]!=-1)return 0;     if(GetPlayerVirtualWorld(playerid)!=GetPlayerVirtualWorld(params[0]))return 0;     if(!IsPlayerConnected(params[0])) return SCM(playerid, COLOR_GREY, !"Игрок не найден");     if(PI[playerid][pRank] <= PI[params[0]][pRank]) return SCM(playerid, COLOR_GREY, !"Вы не можете повысить/понизить этого игрока");     if(PI[playerid][pRank] == 9 && params[1] > 8) return SCM(playerid, COLOR_RED, !"Нельзя выдать ранг больше 8");     if(params[1] > 9) return SCM(playerid, COLOR_GREY, !"Нельзя повысить до этого ранга");     if(PI[params[0]][pMember] != PI[playerid][pMember]) return SCM(playerid, COLOR_GREY, !"Игрок находиться в другой организации!");     str_1[0] = EOS;     f(str_1,100,"Лидер %s %s до %i ранга",PN(playerid),PI[params[0]][pRank] > params[1] ? ("понизил"):("повысил"),params[1]);     SCM(params[0],COLOR_LIGHTBLUE,str_1);     f(str_1,100,"Вы %sи игрока %s до %i ранга",PI[params[0]][pRank] > params[1] ? ("понизил"):("повысил"),PN(params[0]),params[1]);     SCM(playerid,COLOR_LIGHTBLUE,str_1);     PI[params[0]][pRank] = params[1];     UpdatePlayerDataInt(params[0], "Rank", params[1]);     if(PI[params[0]][pSex] == 2) if(TeamDuty{params[0]}) SetPlayerSkinEx(params[0],GOrgSkins[GetTeamID(params[0])][params[1]]), TogglePlayerControllable(params[0],true);     else if(TeamDuty{params[0]}) SetPlayerSkinEx(params[0],MOrgSkins[GetTeamID(params[0])][params[1]]), TogglePlayerControllable(params[0],true);     return 1; }