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

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 3 из 3
  1. #1
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

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

    GetStackSize - узнать размер стека

    Очень простая функция, которая, как понятно из названия, узнаёт размер стека у скрипта.
    PHP код:
    stock GetStackSize()
    // by Daniel_Cortez (www.pro-pawn.ru)
        
    const    BYTES_TO_ADD = (cellbits/charbits);
        
    #emit    lctrl        2
        #emit    move.alt
        #emit    lctrl        3
        #emit    sub
        #emit    add.c        BYTES_TO_ADD
        #emit    retn
        
    return 0;


    Полезно, если Вы устали от ложных багрепортов из-за того, что у кого-то не работает RLS и эти кто-то винят во всех его багах Ваш инклуд/плагин.
    В этом случае можно сделать так, чтобы ваша работа просто не запускалась на нубомодах, в которых используется #pragma dynamic - problem solved.
    PHP код:
    // по умолчанию размер стека - 16384 байта, если больше - использовалась #pragma dynamic
    if(GetStackSize() > 16384)
    {
        print(
    "Noob gamemode detected");
        
    SendRconCommand("exit");

    Внимание! Данный способ не будет работать в фильтрскриптах - для них сервер выделяет отдельные секции стека.

    Автор: Daniel_Cortez

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

  2. 14 пользователя(ей) сказали cпасибо:
    #ball (10.11.2014)$continue$ (09.11.2014)codeo (10.11.2014)franked (17.02.2016)Lombardo (09.11.2014)Londlem (09.11.2014)MR_BEN (09.11.2014)Nurick (10.11.2014)Osetin (10.11.2014)Prolific (02.03.2016)Rasta (10.11.2014)Salvacore (09.11.2014)Unreal (09.11.2014)[ForD] (10.11.2014)
  3. #2
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    А если у меня код оптимизирован, но всё равно нужно выделить больше памяти для стека? Например, есть массивы, в которых хранится описание сервера. Или же просто куча мелких массивов заполнили стек?
    P.S. Это просто первые пришедшие на ум примеры
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,666
    Репутация:
    2145 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    А если у меня код оптимизирован, но всё равно нужно выделить больше памяти для стека? Например, есть массивы, в которых хранится описание сервера.
    Разбить описание на глобальные строковые переменные длиной до 512 символов (всё равно на больших строках стоковый компилятор крашит), затем скрепить их воедино, как показано здесь.

    Цитата Сообщение от DeimoS Посмотреть сообщение
    Или же просто куча мелких массивов заполнили стек?
    Насколько мелких? И сколько вызовов? Или под "мелкими" имелись в виду массивы по 256 или 512 ячеек, да ещё и в рекурсивной функции, небось? В любом случае это не нормально.
    В реальных же условиях, если грамотно рассчитывать размер локальных массивов и, по возможности, упаковывать данные, будет довольно трудно попасть в ситуацию, в которой не уложишься в 4096 ячеек.
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

 

 

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

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

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

Ваши права

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