#pragma dynamic

Nekro

Терра инкогнита
Сообщения
4,025
Реакции
2,260
Приветствую, подскажите пожалуйста. В одном плагине ловлю звук и наношу урон игроку, но постоянно выкидывает ошибку
C++:
Exception reported: Not enough space on the stack
Именно при нанесении урона, а именно эту ошибку выдаёт строка
C++:
AcceptEntityInput(iPointHurt, "Hurt", attacker);
Исправил эту проблему с помощью
C++:
#pragma dynamic 4366

Весь код к сожалению выложить не могу, но для понимания картины это работает примерно так:
C++:
#pragma dynamic 4366

public void OnPluginStart()
{
    AddNormalSoundHook(SoundsHook);
}

Action SoundsHook(int clients[64], int &numClients, char sample[PLATFORM_MAX_PATH], int &entity, int &channel, float &volume, int &level, int &pitch, int &flags)
{
    if(StrEqual(sample, "weapons/flashbang/grenade_hit1.wav", false))
    {
        AcceptEntityInput(iPointHurt, "Hurt", attacker);
    }
}
Хотелось бы узнать побольше о #pragma dynamic ну и вдруг будут мысли с чего вдруг появилась нехватка места. То есть стоит ли бить тревогу или работает ну и ладно ?
 

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
Приветствую, подскажите пожалуйста. В одном плагине ловлю звук и наношу урон игроку, но постоянно выкидывает ошибку
C++:
Exception reported: Not enough space on the stack
Именно при нанесении урона, а именно эту ошибку выдаёт строка
C++:
AcceptEntityInput(iPointHurt, "Hurt", attacker);
Исправил эту проблему с помощью
C++:
#pragma dynamic 4366

Весь код к сожалению выложить не могу, но для понимания картины это работает примерно так:
C++:
#pragma dynamic 4366

public void OnPluginStart()
{
    AddNormalSoundHook(SoundsHook);
}

Action SoundsHook(int clients[64], int &numClients, char sample[PLATFORM_MAX_PATH], int &entity, int &channel, float &volume, int &level, int &pitch, int &flags)
{
    if(StrEqual(sample, "weapons/flashbang/grenade_hit1.wav", false))
    {
        AcceptEntityInput(iPointHurt, "Hurt", attacker);
    }
}
Хотелось бы узнать побольше о #pragma dynamic ну и вдруг будут мысли с чего вдруг появилась нехватка места. То есть стоит ли бить тревогу или работает ну и ладно ?
Видимо фиксированная по дефолту память вся забивается резко и ты расширяешь ее диапазон динамически при помощи этой инструкции. А выделил ты 4366*4 байт
 
Сверху Снизу