Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 11
  1. #1
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±

    По циклу while

    Приветствую всех, уважаемый посетители Pro Pawn!
    И у меня возник вопрос, на счёт while, как и где его используют? Не нагружает ли он сервер?

    Если можно, покажите нормальный пример использование.
    Заранее спасибо!

  2. #2
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Если бы какой-либо из циклов нагружал сервер, то вряд-ли бы его вообще создали. Цикл может нагружать сервер в том случае, если использование нецелесообразно, неверно построенный код, возможно плохая оптимизация.

    Примеры:
    PHP код:
    // Пример использования цикла for:
    for(new 010i++)
        
    printf("%i"i);

    // Пример использования цикла while:
    new
        
    0;

    while(
    10)
    {
        
    printf("%i"i);
        
    i++;
    }

    // Пример использования цикла do while:
    new
        
    0;

    do
    {
        
    printf("%i"i);
        
    i++;
    }
    while(
    10); 
    В каждом из циклов код сработает 10 раз.
    Последний раз редактировалось L0ndl3m; 04.10.2014 в 22:56.

  3. #3
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Этот пример, я как раз то и находил...
    Но мне нужен хороший пример например, я сейчас хочу сделать перелистывание игроков в слежке, как мне пропускать кого нет на сервере?
    Мне подсказали что через цикл while

  4. #4
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Это можно реализовать с помощью любого цикла:
    PHP код:
    for(new ид_игрока_за_которым_следит_админ[playerid] + 1MAX_PLAYERSi++)
    {
        if(!
    IsPlayerConnected(i) || /* ещё условие, благодаря которому, мы пропустим итерацию */)
            continue;

        
    // Функция_наблюдения(i);

    С помощью цикла while примерно так:
    PHP код:
    new
        
    ид_игрока_за_которым_следит_админ[playerid];

    while(++
    MAX_PLAYERS)
    {
        if(!
    IsPlayerConnected(i) || /* ещё условие, благодаря которому, мы пропустим итерацию */)
            continue;

        
    // Функция_наблюдения(i);


  5. #5
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Сделал с помощью цикла while, но как сделать повтор? Тоесть если последний игрок то начанала заново.

  6. #6
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±
    Цитата Сообщение от Bublik_Public Посмотреть сообщение
    Сделал с помощью цикла while, но как сделать повтор? Тоесть если последний игрок то начанала заново.
    ???

    PHP код:

    new = -;
    while( ++
    != MAX_PLAYERS ){
    if( !
    IsPlayerConnected) )
    continue ;

    if( 
    == MAX_PLAYERS // запуск повтора
    = -1;

    Последний раз редактировалось Seregamil; 05.10.2014 в 19:21.

  7. #7
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    А вроде MAX PLAYERS по дефолту ровно 500 то есть до 500 не как не дойдёт, если же будет 499 игроков будет в онлайне то, повтора не будет, не? Или я ошибаюсь?

  8. #8
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±
    Цитата Сообщение от Bublik_Public Посмотреть сообщение
    А вроде MAX PLAYERS по дефолту ровно 500 то есть до 500 не как не дойдёт, если же будет 499 игроков будет в онлайне то, повтора не будет, не? Или я ошибаюсь?
    А зачем нам 500 id, если игрон под id = 0 является первым игроком на сервере?

  9. #9
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Зайду с ноутбука поверю, спасибо.

  10. #10
    Аватар для Seregamil
    Проверенный

    Статус
    Оффлайн
    Регистрация
    21.11.2013
    Сообщений
    551
    Репутация:
    274 ±

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •