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

Реклама


 
IP:176.32.36.96:7777 Ha6op adm,liderov + bonuse.

**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 100руб/мес, Текстовая 50руб/мес.
Страница 4 из 4 ПерваяПервая ... 234
Показано с 31 по 37 из 37
  1. #31
    Аватар для Londlem
    Модератор

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,361
    Репутация:
    767 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Если GetMaxPlayers вернёт 0, всё будет очень печально.
    С чего бы GetMaxPlayers вернёт 0?

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,527
    Репутация:
    2050 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    С чего бы GetMaxPlayers вернёт 0?
    Перепутал с GetPlayerPoolSize (2 часа ночи, что ещё сказать...)
    Впрочем, не помешало бы использовать эту функцию вместо GetMaxPlayers.
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

  3. #33
    Аватар для Londlem
    Модератор

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,361
    Репутация:
    767 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Впрочем, не помешало бы использовать эту функцию вместо GetMaxPlayers.
    Таки-да, в таком случае можно будет предотвратить лишние итерации в цикле.

  4. #34
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,138
    Репутация:
    1263 ±
    А ещё можно создать новый итератор в foreach и проверять только тех, кто действительно авторизируется :3 Но это уж совсем для извращенцев.
    Я бы всё же остановился на варианте с индивидуальными таймерами или убивал бы таймер, если на данный момент никто не авторизируется. Как-то попусту гонять цикл, как по мне, не комильфо
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,527
    Репутация:
    2050 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    А ещё можно создать новый итератор в foreach и проверять только тех, кто действительно авторизируется :3 Но это уж совсем для извращенцев.
    Итератор займёт 4004 байта (MAX_PLAYERS + 1 ячеек). Сомнительная польза, особенно на фоне того, что Londlem изначально решил сэкономить с размером массива под время.


    Цитата Сообщение от DeimoS Посмотреть сообщение
    Я бы всё же остановился на варианте с индивидуальными таймерами или убивал бы таймер, если на данный момент никто не авторизируется. Как-то попусту гонять цикл, как по мне, не комильфо
    PHP код:
    static auth_countdown_time[MAX_PLAYERS char];
    static 
    auth_countdown_total_players 0;
    static 
    auth_countdown_func_name[] = !"@__AuthCountdownTimer";
    static 
    auth_countdown_timer;


    StartAuthCountdown(playeridtime)
    {
        
    auth_countdown_time{playerid} = time;
        if (
    auth_countdown_total_players++ == 0)
            
    auth_countdown_timer SetTimer(auth_countdown_func_name1000true);
    }

    StopAuthCountdown(playerid)
    {
        
    auth_countdown_time{playerid} = 0;
        if (--
    auth_countdown_total_players == 0)
            
    KillTimer(auth_countdown_timer);
    }

    @
    __AuthCountdownTimer();
    @
    __AuthCountdownTimer()
    {
    #if defined foreach && !defined FOREACH_NO_PLAYERS
        
    foreach(Player:i)
    #else
        
    static i;
        for (
    GetPlayerPoolSize() + 1i-- != 0;) if (IsPlayerConnected(i))
    #endif
        
    {
            if ((
    auth_countdown_time{i} != 0) && (--auth_countdown_time{i} == 0))
            {
                
    SendClientMessage(i,-1,"Время на регистрацию/авторизацию истекло.");
                
    Kick(i);
            }
        }

    И так я случайно изобрёл новый инклуд. Опять.
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

  6. Пользователь сказал cпасибо:
    Nurick (03.05.2016)
  7. #36
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,138
    Репутация:
    1263 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Итератор займёт 4004 байта (MAX_PLAYERS + 1 ячеек). Сомнительная польза, особенно на фоне того, что Londlem изначально решил сэкономить с размером массива под время.
    Ну, во-первых, зависит от того, какое число скрывается за MAX_PLAYERS :D

    Во-вторых, если ставить перед собой цель сделать максимально "лёгкий" код, боясь выделить пару лишних байт, то да - такой метод не подойдёт. Но, как по мне, быстродействие и минимальна нагрузка оправдывают подобный жор памяти.
    Тем более, что такой итератор можно использовать не только для цикла, но и реализовать другие системы (например, проверку на авторизацию сделать более функциональней, проверяя наличие игрока в итераторе). Зависит от конкретной ситуации
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  8. #37
    Аватар для SliM
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.11.2015
    Сообщений
    34
    Репутация:
    9 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    быстродействие и минимальна нагрузка оправдывают подобный жор памяти.
    согласен, лучше потратить дешевую память, в наше то время, чем золотое процессорное время.

 

 
Страница 4 из 4 ПерваяПервая ... 234

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

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

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

Ваши права

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