Закрыть Привет! Если вы читаете это - Вы еще не зарегистрированы. Это займет не больше минуты. Нажмите здесь, чтобы пройти регистрацию в несколько простых шагов, чтобы пользоваться всеми возможностями нашего форума. Обратите внимание, запрещены непристойные, матерные, бессмысленные (цифры, случайный набор букв) ники. Удачи!

Тема: Пример админ авторизации с помощью foreach (y_iterate)

Показано с 1 по 3 из 3

  1. #1
    Зарегистрированый

    Аватар для PawnoLabs

    Статус: Оффлайн
    Регистрация:04.05.2018
    Сообщений:33
    Репутация:2 [+/-] 

    Пример админ авторизации с помощью foreach (y_iterate)

    Привет, дорогой пользователь форума Pawno Info.
    Хотим познакомить тебя с полезной библиотекой под названием foreach.
    foreach - это библиотека предоставляющая набор функций для создания итераторов.

    1.1.Установка
    Библиотека foreach идет в наборе библиотек YSI под названием y_iterate. В качестве примера установки, мы будем рассматривать утилиту sampctl, которую мы успешно используем в нашей команде. Для установки комплекса библиотек YSI достаточно выполнить команду:
    PHP код:
    sampctl package install pawn-lang/YSI-Includes 
    Запрошенные библиотеки будут успешно загружены и добавлены в ваш проект за считанные минуты, для подключения y_iterate (прим. ред foreach) в ваш игровой режим необходимо использовать обычную инструкцию include.
    PHP код:
    #include <YSI\y_iterate> 
    Таким образом необходимая библиотека под названием foreach успешно добавлена в ваш игровой режим для дальнейшего её использования в вашем проекте.

    2.1.Создание итератора
    В качестве примера использования итераторов, мы напишем с вами не большую систему выхода администраторов на дежурство. И так, для инициализации итератора, нам необходимо создать переменную с тегом Iterator, в нашем случае это будет переменная под названием AdminDuty:
    PHP код:
    new Iterator:AdminDuty<MAX_PLAYERS>; 
    Таким образом, мы создали переменную под итератор AdminDuty с количеством элементов равному MAX_PLAYERS.

    2.2.Добавление/удаление значений
    И так, переходим к следующему шагу, это управление списком нашего итератора, будем добавлять и убирать из списка итератора наших администраторов. Для этого мы создадим команду выхода на дежурство под названием /aduty, сначала нам необходимо будет проверить, находится ли уже наш администратор на дежурстве, для этого нам поможет функция Iter_Contains(Iterator, value) - данная функция проверяет наличие значения в списке нашего итератора, например:
    PHP код:
    if (Iter_Contains(AdminDutyplayerid)) {
        
    SendClientMessage(playerid, -1"Вы находитесь на админ-дежурстве."); // В случае, если значение playerid удасться найти в списке
    } else {
        
    SendClientMessage(playerid, -1"Вы не находитесь на админ-дежурстве."); // В случае, если значение playerid не удасться найти в списке

    И так после того, как мы узнали как проверить есть ли в нашем списке указанный администратор, нам необходимо добавить или убрать из нашего списка администратора, который вводит команду /aduty, для этого нам понадобятся такие функции, как Iter_Add(Iterator, value) - добавляет значение в список итератора и Iter_Remove(Iterator, value) - убирает значение из списка итератора, рассмотрим пример с нашей командой:
    PHP код:
    CMD:aduty(playeridparams[])
    {
        if (
    Iter_Contains(AdminDutyplayerid))
        {
            
    Iter_Remove(AdminDutyplayerid);
            
    SendClientMessage(playerid, -1"Вы успешно покинули свое админ-дежурство.");
        }
        else
        {
            
    Iter_Add(AdminDutyplayerid);
            
    SendClientMessage(playerid, -1"Вы успешно зашли на свое админ-дежурство.");
        }
        return 
    1;

    2.3.Перебор элементов из списка
    Вот мы и подошли к заключительно части нашего мануала, мы уже узнали как добавить и убрать игрока администратора в наш список, узнали как проверить находится ли администратор в нашем списке, в этой части мы узнаем как осуществить перебор нашего списка и отправить всем администраторам из нашего списка сообщение. Для этого нам поможет конструкция foreach(variable : iterator), которую мы разберем на примере чата администраторов:
    PHP код:
    CMD:achat(playeridparams[])
    {
        if (
    isnull(params))
            return 
    SendClientMessage(playerid, -1"Используйте: /achat [сообщение]");

        new 
    str[144];
        
    format(strsizeof(str), "%s (%d): %s"ReturnPlayerName(playerid), playeridparams);

        foreach (new 
    AdminDuty) {
            
    SendClientMessage(i, -1str);
        }
        return 
    1;

    * Полный код мануала можно найти в специальном репозитории на GitHub.
    ** Данный мануал является пробной темой, если она будет интереса, мы продолжим выпускать уроки на тему YSI, foreach, sampctl и др.


    Так же, мы не написали о плюсах и минусах использования foreach, о ситуациях в которых его стоит использовать и т.д. поэтому скорее всего мы напишем более подробный урок, с рассмотрением всем функционалом, когда придумаем, как это лучше сделать, а пока вы можете почитать более подробную информацию о foreach и технических особенностях в теме на официальном форуме мультиплеера.
    Последний раз редактировалось PawnoLabs; 12.07.2018 в 12:20.
  2. 1 пользователь сказал cпасибо PawnoLabs за это полезное сообщение:

    kondrik228 (12.07.2018)

  3. #2
    Заблокирован

    Аватар для Velaso

    Статус: Оффлайн
    Регистрация:29.04.2018
    Адрес:ZONE 51
    Сообщений:110
    Репутация:13 [+/-] 
    Молодец,обьяснил хорошо
  4. #3
    Пользователь

    Аватар для kondrik228

    Статус: Оффлайн
    Регистрация:06.08.2017
    Адрес:localhost
    Сообщений:389
    Репутация:24 [+/-] 
    + заслужил, молодец.

Пользователи, которые читали эту тему: 70

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
В обязанности Администрации не входит контроль легальности или нелегальности передаваемой информации (любой, включая, но не ограничиваясь, информацией передаваемой между пользователями, внутренней пересылки информации в виде различных ссылок, текстов или архивов), определение прав собственности или законности передачи, приема или использования этой информации.
Администрация не несёт никакой ответственности за пользователей и модер состав форума!
читы хаки samp-rp advanvce скачать pawn скриптинг моды скрипты гарант s0beit cs 1.6 0.3x читы World of Tanks Баги samp-rp,читы samp-rp,аккаунты самп-рп Скриптинг PAWNO SA-MP IV-MP MTA уроки помощь создание сервер моды скрипты плагины cleo читы читинг собейт s0beit sobeit моды для sa-mp скрипты для sa-mp pawno скриптинг pawno скрипты pawno моды iv-mp скриптинг iv-mp скрипты iv-mp моды мод godfather Моды SAMP как установить машины для gta 4 Моды гта 4 Моды GTA 4 скачать моды для GTA 4 скрипты и моды GTA 4 скачать скрипты SAMP моды SAMP на русском языке где можно скачать Pen1 LS скачать Pen1 Fugitive скачать The Godfather rp roleplay samp-rp скачать бесплатно создать sa-mp сервер создать мод sa-mp создать скрипт в pawno gta-iv gta-v gta-sa gta-3 gta-III gta-4 gta-5 gta-vc mta mta-dm mta-race mta-sa pawno инфо info информация ru помощь в pawno ошибки pawno сервер павно gta-iv крэк gta-iv патч gta-v демо gta-v трейлер gta-iv keygen скрипты gta sa gta 4 multiplayer gta san adnreas multiplayer sa-mp forum форум о sa-mp форум о pawno русский sa-mp русское pawno русификатор реклама раскрутка сервера пиар сервера sa-mp мониторинг gta-sa ошибки в pawno pawno errors sa-mp 0.3c SA-MP 0.3d Играть в гта по сети моды для сампа скрипты самп Моды гта 4 Моды GTA 4 скачать моды для GTA 4 скрипты и моды GTA 4 скачать скрипты SAMP моды SAMP на русском языке где можно скачать Pen1 LS скачать Pen1 Fugitive скачать The Godfather Все моды SAMP у нас взлом вк hack rat android instagram twitter хак хакер лайфхак рынок продажа ddos защита услуги администратор root linux ubuntu mac android андроид прошивка без ограничений advance arizona читы 4g безлимит