Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 11

Тема: GetPlayerPoolSize

  1. #1
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,666
    Репутация:
    2145 ±

    GetPlayerPoolSize

    Описание:
    Возвращает самый большой ID игрока, играющего на сервере.

    Параметры:
    Функция не принимает параметров.

    Возвращаемое значение:
    Возвращает самый большой ID игрока, играющего на сервере, или 0, если сервер пуст.

    Примечания:
    • Данная функция была добавлена в SA:MP 0.3.7 и не работает в более ранних версиях.
    • Функция возвращает 0 в двух случаях: если сервер пуст и если на сервере только один игрок с ID равным нулю.
      Чтобы отличить эти два случая, проверяйте подключение игрока 0:
      PHP код:
      if (GetPlayerPoolSize() == 0// Неоднозначная ситуация.
      {
          if(
      IsPlayerConnected(0) == 0)
              print(
      "На сервере нет ни одного игрока.");
          else
              
      // ...


    Пример использования:
    PHP код:
    CMD:online(playeridparams[])
    {
        
    // Перебор всех игроков на сервере с подсчётом онлайна.
        // Если i-тый игрок подключен, к переменной "c" прибавится 1,
        // если нет - не прибавится ничего.
        
    new 0;
        for (new 
    GetPlayerPoolSize()+1i-- != 0;)
            
    += IsPlayerConnected(i);
        
    // Форматирование и вывод сообщения с результатом.
        
    static const fmt_str[] = "Текущий онлайн: %d игроков";
        new 
    string[sizeof(fmt_str) - 4];
        
    format(stringsizeof(string), fmt_strc);
        return 
    SendClientMessage(playerid, -1string);

    См. также:


    Статью подготовил: Daniel_Cortez

    Специально для Pro-Pawn.ru
    Копирование данной статьи на других ресурсах без разрешения автора запрещено.
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

  2. 4 пользователя(ей) сказали cпасибо:
    $continue$ (18.10.2015)Londlem (18.10.2015)Osetin (18.10.2015)[ForD] (18.10.2015)
  3. #2
    Аватар для Londlem
    Модератор

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Сообщений
    1,360
    Репутация:
    767 ±
    Очередной костыль от kye. Почему в проверке IsPlayerConnected лучше использовать "== 0" нежели "!" перед функцией? Функция возвращает только 2 значения: 1 и 0.

  4. #3
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,666
    Репутация:
    2145 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Очередной костыль от kye. Почему в проверке IsPlayerConnected лучше использовать "== 0" нежели "!" перед функцией? Функция возвращает только 2 значения: 1 и 0.
    При сравнении с нулём после вызова IsPlayerConnected генерируется только одна инструкция перехода (jz/jnz - зависит от случая), а с "!" после IsPlayerConnected происходит сначала отрицание (инструкция not), а только потом переход (jnz/jz). Даже при выключенных оптимизациях (ключ -O1) компилятор оставляет "лишнюю" инструкцию not.
    Если не считать этого, то использование "!" вместо сравнения с 0 - всего лишь дело удобства. Если нужно, могу изменить пример в статье.
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

  5. 2 пользователя(ей) сказали cпасибо:
    Londlem (18.10.2015)Unreal (18.10.2015)
  6. #4
    Аватар для Unreal
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.09.2014
    Сообщений
    116
    Репутация:
    4 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    При сравнении с нулём после вызова IsPlayerConnected генерируется только одна инструкция перехода (jz/jnz - зависит от случая), а с "!" после IsPlayerConnected происходит сначала отрицание (инструкция not), а только потом переход (jnz/jz). Даже при выключенных оптимизациях (ключ -O1) компилятор оставляет "лишнюю" инструкцию not.
    Если не считать этого, то использование "!" вместо сравнения с 0 - всего лишь дело удобства. Если нужно, могу изменить пример в статье.
    я видел что используют даже так
    PHP код:
    if(== IsPlayerConnected(playerid)) 
    оно ведь не отличается от ?
    PHP код:
    if(IsPlayerConnected(playerid) == 0

  7. #5
    Аватар для [ForD]
    Пользователь

    Статус
    Оффлайн
    Регистрация
    14.11.2013
    Адрес
    Свердловская обл.
    Сообщений
    694
    Репутация:
    104 ±
    Цитата Сообщение от Unreal Посмотреть сообщение
    я видел что используют даже так
    PHP код:
    if(== IsPlayerConnected(playerid)) 
    оно ведь не отличается от ?
    PHP код:
    if(IsPlayerConnected(playerid) == 0
    нет,не должно,в данном случае
    PAWN Compiler делает то, что вы приказали ему сделать, а не то, что вы хотели, чтобы он сделал..

    25% времени в программировании уходит на размышления о том, что пользователь может сделать не так.[HR]/Брайан Хьюмс/





    #FIXSAMP

  8. #6
    Аватар для Londlem
    Модератор

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Сообщений
    1,360
    Репутация:
    767 ±
    Unreal, условия читаются данным способом:
    Код:
    левое == правое
    следовательно проверка:
    Код:
    правое == левое
    будет типичной.
    Напоминает коммутативность.

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

    Статус
    Оффлайн
    Регистрация
    24.09.2014
    Сообщений
    116
    Репутация:
    4 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Unreal, условия читаются данным способом:
    Код:
    левое == правое
    следовательно проверка:
    Код:
    правое == левое
    будет типичной.
    Напоминает коммутативность.
    т.е тот код с
    PHP код:
    if(== IsPlayerConnected(playerid)) 
    просто так? или есть и похожие на это "что - либо" ?

    ------ добавлено ---------

    вот нашел. http://pro-pawn.ru/showthread.php?54...d-zcmd)-sscanf
    Последний раз редактировалось Unreal; 18.10.2015 в 21:52.

  10. #8
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,666
    Репутация:
    2145 ±
    Цитата Сообщение от Unreal Посмотреть сообщение
    я видел что используют даже так
    PHP код:
    if(== IsPlayerConnected(playerid)) 
    оно ведь не отличается от ?
    PHP код:
    if(IsPlayerConnected(playerid) == 0
    В обоих случаях сначала выполнится функция IsPlayerConnected, а затем возвращённое ей значение будет сравниваться с нулём.
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

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

    Статус
    Оффлайн
    Регистрация
    24.09.2014
    Сообщений
    116
    Репутация:
    4 ±
    вот что я нашел, может кому будет интересно


    сори за оффтоп
    Pro-pawn.ru

  12. #10
    Аватар для Геннадий Акимов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    23.08.2015
    Адрес
    СССР
    Сообщений
    46
    Репутация:
    1 ±
    А зачем это ? не легче открыть Tab и там посмотреть ?


    С уважением ваш Геннадий Акимов

    Официальная группа в контакте проекта Sprunk: Перейти
    Официальный сайт проекта Sprunk: В разработке
    Примерная дата открытие проекта Sprunk: 1.12.2015

 

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

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

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

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

Ваши права

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