Sign in to follow this  
Followers 0

3 posts in this topic

Знаете ли вы, что можно хранить не более 32 переменных, которые могут принимать значения логического типа true/false, в одной переменной? Вы не только сэкономите память, но также наведете порядок в своем коде. С использованием char можно будет хранить только 8 флагов!

Если у вас есть, допустим, 100 переменных логического типа, то вы будете использовать 195 Кб пространства. Используя 4 массива с флагами, вы затратите только 8 Кб. Результат будет тот же, но вы сэкономите 187 Кб пространства.


Объявление:

enum
    PlayerFlags: (<< = 1)
    {
        LOGGED = 1, //очень важно, чтобы значение первой константы было 1
        ANIMLOADING,
        RESPAWN
    };

new
    PlayerFlags:Player[MAX_PLAYERS];

 

Как это используется:

//приравняет все флаги к 0
Player[playerid] = PlayerFlags:0;
 
//значение флага ANIMLOADING будет истина (1)
Player[playerid] |= ANIMLOADING;

 

//значение флага ANIMLOADING будет ложь (0)
Player[playerid] &= ~ANIMLOADING;

 

//установит противоположное значение флага ANIMLOADING
Player[playerid] ^= ANIMLOADING;

 

//вернет значение флага ANIMLOADING
Player[playerid] & ANIMLOADING;

 

Автор: Slice

Перевод данной версии: @m1n1vv 

Edited by DEST
Причина: правки

Share this post


Link to post
Share on other sites

Лишние сообщения почищены. Не обратил внимание, что это перевод. А значит, содержание будет примерно одинаково (в сети есть практически такой же перевод от 2014 года). Авторство поправил. 

Share this post


Link to post
Share on other sites

АВТОМАТИЧЕСКИ СФОРМИРОВАННОЕ СООБЩЕНИЕ:

Данная тема была перемещена модерацией или администрацией портала PAWNO-RUS.RU! 

Перемещена из: "Скриптинг PAWN > Готовые решения"

Перемещена в: "Скриптинг PAWN > Уроки"

 

С уважением, ваш Бот! 

Если вы НЕ согласны с переносом данной темы в раздел "Скриптинг PAWN > Уроки", пожалуйтесь на это сообщение в жалобе указав причины вашего недовольства. Спасибо. 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Ruman
      By Ruman
      Приветствую! У меня вопрос, связанный с загрузкой игрового аккаунта, просто я делаю регистрацию свою по уроку но в этом уроке функции MySQL из версии R39. Естественно при нажатии F5 выдаёт это:
      D:\Users\Ruman\Desktop\Time RP\gamemodes\project.pwn(1373) : error 017: undefined symbol "cache_get_field_content_int" D:\Users\Ruman\Desktop\Time RP\gamemodes\project.pwn(1374) : error 017: undefined symbol "cache_get_field_content_int" Код:
      forward LoadAcc(playerid); public LoadAcc(playerid) {     player_info[playerid][ID] = cache_get_field_content_int(0, "id", dbHandle);     player_info[playerid][LEVEL] = cache_get_field_content_int(0, "level", dbHandle); } Просто мне нужна другая версия данной функции под R40.
       
      Спасибо тем, что всегда рад помочь! 
       
      P.S Просто с MySQL я вообще в целом не знаком, поэтому так много вопросов.
    • Ruman
      By Ruman
      Здравствуйте! У меня появился 1 вопрос, связанный с MySQL. Короче я тут делал кое-что в своей системе регистрации (иногда я делал по уроку системы регистрации) и когда я переписал одну строчку, то выдало мне это:
      D:\Users\Ruman\Desktop\Time RP\gamemodes\project.pwn(869) : error 017: undefined symbol "mysql_function_query" Короче если не ошибаюсь, то это связанно с загрузкой пароля из БД.
       
      Вот и строчки кода это самой функции:
      format(query1, sizeof(query1), "SELECT * FROM `users` WHERE `NAME` = '%s'", player_info[playerid][NAME]); mysql_function_query(dbHandle, query1, true, "LoadAcc", "i", playerid);  И когда я изменил строчку номер 2 то вроде не выдавало ошибок.
       
      Изменённая строчка:
      format(query1, sizeof(query1), "SELECT * FROM `users` WHERE `NAME` = '%s'", player_info[playerid][NAME]); // Не изменялась mysql_query(dbHandle, query1, true, "LoadAcc", "i",playerid); Версия MySQL: R40
       
      Скажите пожалуйста, а после измены оно будет работать так как именно задумано? (Загрузка пароля)
       
      +  не обижу!
    • Telly_Hensen
      By Telly_Hensen
      Приветствую зрители форума, хочу слить здание МВД как на малиновки в точь точь.
      Причина слива - работа мне не пригодилась.
      Сразу говорю что это НОВЫЙ ОБЪЕКТ, думаю все знают как его добавить в мап конструктор/текстур студио.
      Кому понравилась работа, прошу поставить +сик.
      Так же у меня много таких объектов как на малиновки.
      С вас актив, с меня дальше слив объектов.
      Скачивание - МВД.rar
      Думаю скрины не пригодятся, если вам интересно как выглядит здание МВД - ютуб в помощь