Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 121 из 133 ПерваяПервая ... 21 71 111 119 120 121 122 123 131 ... ПоследняяПоследняя
Показано с 1,201 по 1,210 из 1325
  1. #1201
    Аватар для execution
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Видел как некоторые осуществляют операции со сдвигами для получения оптимизации памяти.

    1. enum(<<= 1)
    2. {
    3. test_1 = 1,
    4. test_2
    5. }
    6.  
    7. new
    8. someTest;
    9.  
    10. stock SomeFuncTest(id)
    11. {
    12. someTest |= 1 << id;
    13.  
    14. }


    Но не могу понять как поступить, если мне понадобиться сохранить в бд. (смотрел мануалы по побитовым операциям, всё равно затруднительно).

    Предполагаю:

    1. Ячейка с полем Binary.
    2. Сдвигать >>= и сохранять,что сомнительно..

  2. #1202
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от execution Посмотреть сообщение
    Видел как некоторые осуществляют операции со сдвигами для получения оптимизации памяти.

    1. enum(<<= 1)
    2. {
    3. test_1 = 1,
    4. test_2
    5. }
    6.  
    7. new
    8. someTest;
    9.  
    10. stock SomeFuncTest(id)
    11. {
    12. someTest |= 1 << id;
    13.  
    14. }


    Но не могу понять как поступить, если мне понадобиться сохранить в бд. (смотрел мануалы по побитовым операциям, всё равно затруднительно).

    Предполагаю:

    1. Ячейка с полем Binary.
    2. Сдвигать >>= и сохранять,что сомнительно..
    Подобная "экономия" памяти не стоит даже того времени, что ты уже потратил на попытки разобраться в вопросе. Так что я бы тебе советовал не забивать себе голову этим и просто работать с обычными переменными (для них, банально, обновлять значение проще: как в самом моде, так и в БД). В SA-MP реальной пользы от побитовых операций с обычными переменными нет никакой, ибо и без них мод обычно даже 1/5 всей памяти хостинга не потребляет, если ты сам не наговнокодишь, выделяя её впустую.

    Ну а если конкретно по вопросу - использовать соответствующее поле. Правда, как я уже подметил ранее, это странная затея, ибо напрямую через базу, например, уже нормально не поработать со значениями конкретной "переменной". Уж лучше создать 10 отдельных полей и 10 отдельных переменных - от этого сервер не начнёт падать из-за нехватки памяти.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  3. Пользователь сказал cпасибо:
    execution (09.08.2019)
  4. #1203
    Аватар для Outsider
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.03.2017
    Сообщений
    82
    Репутация:
    0 ±
    Компилятор виснет при использовании дефайна со строкой любого размера. Проблема почему-то только в одном файле проекта, в соседнем её нет.

    Причём:
    SendClientMessage(playerid, X11_GREY_80, !ACCOUNT_LOGIN_MESSAGE_1); - не зависает

    SendClientMessage(playerid, X11_GREY_80, ACCOUNT_LOGIN_MESSAGE_1); - зависает

    Версия компилятора от zeex последняя.

  5. #1204
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Outsider Посмотреть сообщение
    Компилятор виснет при использовании дефайна со строкой любого размера. Проблема почему-то только в одном файле проекта, в соседнем её нет.

    Причём:
    SendClientMessage(playerid, X11_GREY_80, !ACCOUNT_LOGIN_MESSAGE_1); - не зависает

    SendClientMessage(playerid, X11_GREY_80, ACCOUNT_LOGIN_MESSAGE_1); - зависает

    Версия компилятора от zeex последняя.
    Вообще стоит подождать ответа тех, кто знаком с внутренностями компилятора и активно в них копается, но, как вариант, попробуй этот самый файл переместить в директорию "поближе" или же уменьшить длину имени файла.
    Компилятор очень плохо дружит с длинными путями до файлов. Правда, у меня такое проявлялось только в том, что инклуд просто не подключался к основному скрипту, хотя компилятор, при этом, никаких ошибок не выдавал. Возможно, у тебя тоже всё связано с этим (по крайней мере слова про то, что в соседнем файле всё нормально, навивают именно на это).


    А вообще лучше строки помещать не в макросы, а в массивы. Сейчас у тебя каждое место, в котором ты указал свой макрос - отдельная строка, которая потребляет свою память. А если поместить строку в массив и вызывать уже его - эта самая строка будет уже в одном экземпляре и уже во всём коде ты будешь обращаться к этой самой строке.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  6. Пользователь сказал cпасибо:
    Outsider (15.08.2019)
  7. #1205
    Аватар для Outsider
    Пользователь

    Статус
    Оффлайн
    Регистрация
    06.03.2017
    Сообщений
    82
    Репутация:
    0 ±
    По поводу того, что файл не подключается: я тоже об этом сначала подумал, но нет, без использования макросов все работает правильно, так что вряд ли проблема в этом. Эти два файла (в одном из которых все реботает) лежат в одной директории. Единственное различие: файл с которым нет проблемы подключается перед проблемным. Только что вычитал о директиве которая вроде как выделает больше памяти компилятору (?) #pragma dynamic, мб проблема просто в том что я пишу на компе с i3 и 5 гб озу и компилятору чего-то не хватает. Потому что до сих пор не нашёл ни на одном из тематических форумах такой же проблемы.

    Кстати, за инфу спасибо, не буду делать слишком большую вложенность, потому что желание было.
    За массивы тоже, думал что при использовании дефайнов наоборот экономлю.

  8. #1206
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Код:
    #pragma dynamic
    определяет размер стэка, а не память для компилятора.

    Покажи как макрос-то выглядит вообще. Может проблема в самом коде, а компилятор виснет из-за того, что код создаёт слишком много ошибок.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    06.03.2017
    Сообщений
    82
    Репутация:
    0 ±
    Да нет, с кодом нормально всё. Тем более если учитывать странную магию с работой одного и того же кода в разных файлах.

    бтв вот
    PHP код:
    #define ACCOUNT_LOGIN_MESSAGE_1  GREEN_1"[Помощь]:"GREY_80" Введите /mm для открытия меню игрока. И /commands для вывода списка команд." 
    - - - Добавлено - - -

    Кстати забыл упомянуть, что использованием переменных вместо дефайнов проблема улетучилась.

  10. #1208
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Скинь ещё макросы GREEN_1 и GREY_80. Интересно попробовать повторить проблему
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    06.03.2017
    Сообщений
    82
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Скинь ещё макросы GREEN_1 и GREY_80. Интересно попробовать повторить проблему
    Это y_colors

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

    Статус
    Оффлайн
    Регистрация
    09.03.2018
    Сообщений
    255
    Репутация:
    24 ±
    Не могу понять в чём проблема.

    Когда пишу в чат два символа "))", то text_action записывается "улыбаетс", то есть не вся трока. Как бы я не игрался с условиями, где-то не будет дописываться. Пробовал увеличить размер массива и бестолку.

    PHP код:
    if (text[1] == '\0' || text[2] == '\0')
    {
        new
            
    text_action[20];
        
        switch (
    text[0])
        {
            case 
    ')':
            {
                
    text_action text[1] == ')' ? ("смеётся") : ("улыбается");
            }
            case 
    '(':
            {
                
    text_action text[1] == '(' ? ("расстроен(-а)") : ("грустит");
            }
            case 
    ':': if (text[1] == 'D'text_action "хохочет";
        }

        if (
    text_action[0] != '\0')
        {
            
    strcat((stringer[0] = EOSstringer), Name(playerid));
            
    strcat(stringer" ");
            
    strcat(stringertext_action);

            
    ProxDetector(15.0playeridstringer0xDD90FFFF);
            
    SetPlayerChatBubble(playeridtext_action0xDD90FFFF15.010000);
            
            return 
    0;
        }


 

 
Страница 121 из 133 ПерваяПервая ... 21 71 111 119 120 121 122 123 131 ... ПоследняяПоследняя

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

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

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

Ваши права

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