Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 10 из 133 ПерваяПервая ... 8 9 10 11 12 20 60 110 ... ПоследняяПоследняя
Показано с 91 по 100 из 1325
  1. #91
    Аватар для Kazoox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    25.04.2014
    Сообщений
    121
    Репутация:
    3 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Просто возвращает значение из структуры pPlayerPool. Само значение изменяется при отключении игрока (после вызова OnPlayerDisconnect).
    И тем не менее лучше использовать foreach?

  2. #92
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Kazoox Посмотреть сообщение
    И тем не менее лучше использовать foreach?
    Конечно. Ты избавляешься от лишних итераций, избавляешься от проверок IsPlayerConnected и IsPlayerNPC.
    Кстати, если ты планируешь использовать NPC, то использование GetPlayerPoolSize вообще теряет смысл, так как ID у NPC начинаются с последнего.

    Более того, foreach - это не просто перебор игроков, это целая библиотека, которая позволяет создавать новые итераторы. Вот, например, перебор транспорта: http://pro-pawn.ru/showthread.php?13...нспорта
    Вот так я использую foreach для работы со слотами банды:
    PHP код:
    static
        
    Iterator:LoadedGangs<MAX_GANG>

    stock Gang_IsActive(gangid)
    {
        return 
    Iter_Contains(LoadedGangsgangid);
    }

    stock Gang_SetActiveStatus(gangidbool:statusbool:safe false, &next_value 0)
    {
        if (
    status) {
            
    Iter_Add(LoadedGangsgangid);
        } else {
            if (
    safe) {
                
    Iter_SafeRemove(LoadedGangsgangidnext_value);
            } else {
                
    Iter_Remove(LoadedGangsgangid);
            }
        }
    }

    stock Gang_GetFreeSlot()
    {
        return 
    Iter_Free(LoadedGangs);

    Так с членами банды:
    PHP код:
    new
        
    Iterator:LoadedGangMembers[MAX_GANGS]<MAX_GANG_SIZE>;

    GangMember_OnGameModeInit()
    {
        
    Iter_Init(LoadedGangMembers);
    }

    stock GangMember_IsActive(gangidmemberid)
    {
        return 
    Iter_Contains(LoadedGangMembers[gangid], memberid);
    }

    stock GangMember_SetActiveStatus(gangidmemberidbool:statusbool:safe false, &next_value 0)
    {
        if (
    status) {
            
    Iter_Add(LoadedGangMembers[gangid], memberid);
        } else {
            if (
    safe) {
                
    Iter_SafeRemove(LoadedGangMembers[gangid], memberidnext_value);
            } else {
                
    Iter_Remove(LoadedGangMembers[gangid], memberid);
            }
        }
    }

    stock GangMember_GetFreeSlot(gangid)
    {
        return 
    Iter_Free(LoadedGangMembers[gangid]);

    Применений масса.
    Последний раз редактировалось ziggi; 07.03.2016 в 16:06.

  3. Пользователь сказал cпасибо:
    Kazoox (07.03.2016)
  4. #93
    Аватар для Alexok
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.03.2016
    Сообщений
    9
    Репутация:
    1 ±
    Вопрос: в чём разница между sscanf и sscanf2 кроме версии? Какую версию использовать желательнее?

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

    Статус
    Оффлайн
    Регистрация
    16.11.2015
    Сообщений
    116
    Репутация:
    10 ±
    Цитата Сообщение от Alexok Посмотреть сообщение
    Вопрос: в чём разница между sscanf и sscanf2 кроме версии? Какую версию использовать желательнее?
    Полагаю что sscanf2

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

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Alexok Посмотреть сообщение
    Вопрос: в чём разница между sscanf и sscanf2 кроме версии? Какую версию использовать желательнее?
    sscanf написан на Pawn, sscanf2 на C++. Использовать, конечно, следует sscanf2.

  7. Пользователь сказал cпасибо:
    Kazoox (07.03.2016)
  8. #96
    Аватар для Alexok
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.03.2016
    Сообщений
    9
    Репутация:
    1 ±
    Где-то на форуме говорилось, что PVar лучше использовать для "недолго-хранящихся" данных. Был совет, например, для проверки авторизации игрока, создавать массив. Верна ли данная теория? И в таком случае, для хранения ID секундного таймера игрока, например, лучше использовать массив на MAX_PLAYERS?

  9. #97
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Alexok Посмотреть сообщение
    Где-то на форуме говорилось, что PVar лучше использовать для "недолго-хранящихся" данных. Был совет, например, для проверки авторизации игрока, создавать массив. Верна ли данная теория? И в таком случае, для хранения ID секундного таймера игрока, например, лучше использовать массив на MAX_PLAYERS?
    Об этом говорилось здесь. И там объяснялось почему эта "теория" верна.
    Ну если таймер существует всё время, пока игрок находится на сервере, какой профит от использования pVar?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  10. #98
    Аватар для Alexok
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.03.2016
    Сообщений
    9
    Репутация:
    1 ±
    Никакого, я полагаю. Просто я думаю, как же всё же лучше хранить его, в PVar или в массиве. Его ведь надо удалить при выходе игрока с сервера. Таймеры работ, я полагаю, можно хранить в PVar, а вот уже секундный таймер игрока в массиве, верно?
    Последний раз редактировалось Alexok; 07.03.2016 в 22:23.

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

    Статус
    Оффлайн
    Регистрация
    25.04.2014
    Сообщений
    121
    Репутация:
    3 ±
    menu1.txt сам удаляется из папки scriptfiles, вероятнее всего после рестарта, но точно не ясно. Как исправить?

  12. #100
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Такой вопрос, если сделать макрос какой нибудь и он будет использоваться во многих участках кода,
    то он как то повлияет на быстродействие компилирования или быстродействие в самой игре?
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

 

 
Страница 10 из 133 ПерваяПервая ... 8 9 10 11 12 20 60 110 ... ПоследняяПоследняя

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

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

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

Ваши права

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