Надо тогда сообщать сайз при использовании функции, а в функции использовать int овое значение.
Прям как в с++
Надо тогда сообщать сайз при использовании функции, а в функции использовать int овое значение.
Прям как в с++
Skype: itsukekaname;
Хостинг скриншотов
У меня тоже ошибку выдаёт что делать?
Да типо сайз не известенПри компиляции?
проблему нашел, но она решима только через плагин, а его очень не хочется задействовать
можно сделать так:
но, нужно соблюдать последовательность обьявленных переменныхPHP код:
new var;
do
{
#emit STACK 4
}
while(var);
#pragma unused var
тоесть:
PHP код:
#define delete(%0) \
do \
{ \
#emit STACK 4 \
} \
while(%0)
#define delete_arr(%0); \
while(strlen(%0)) \
{ \
#emit STACK 8 \
}
public OnGameModeInit()
{
new integer = 41;
new Float:floating = 41.2;
new bool:boolean = true;
new array[10] = "abcdefghi";
delete_arr(array); // удаляем массив array первым, так как он был обьявлен ПОСЛЕДНИМ
delete(boolean);
delete(floating);
delete(integer);
}
[1:03:15 | Изменены 1:03:25] SDraw: есть идеи блокнуть установщику сцампа доступ к системной папке?
[1:03:45 | Изменены 1:03:51] SDraw: а то эта падла файлы directx заменяет внаглую
[1:08:38] Vladislav Barabash: поставь файлы директа в ридонли
[1:09:14] Vladislav Barabash: chmod r-x d3*.dll
С макросами не компилит. Сделал так:
Итог:PHP код:
public OnGameModeInit()
{
new var = 512;
new str[] = "Удаляй меня полностью!";
while( strlen( str ) )
{
#emit STACK 8
}
do
{
#emit STACK 4
}
while( var );
return 1;
}
PHP код:
[16:17:45] [debug] Run time error 7: "Stack underflow"
[16:17:45] [debug] Stack pointer (STK) is 0x4AD8, stack top (STP) is 0x4AD4
[16:17:45] [debug] AMX backtrace:
[16:17:45] [debug] #0 000001a0 in public OnGameModeInit () from new.amx
вообще, для работы функции в идеале, нужно скопировать все содержимое стека ПОСЛЕ конечного индекса удаляемого массива, и вставить все ДО него, чтобы стек можно было чистить с конца.
удаление интегеров/float/bool вроде бы работает
[1:03:15 | Изменены 1:03:25] SDraw: есть идеи блокнуть установщику сцампа доступ к системной папке?
[1:03:45 | Изменены 1:03:51] SDraw: а то эта падла файлы directx заменяет внаглую
[1:08:38] Vladislav Barabash: поставь файлы директа в ридонли
[1:09:14] Vladislav Barabash: chmod r-x d3*.dll
вообще, чистка стека через emit не самая лучшая затея
а если чистить через плагин, мы все-равно выделим в стеке место под пересылку в плагин (рекурсия, мда)
[1:03:15 | Изменены 1:03:25] SDraw: есть идеи блокнуть установщику сцампа доступ к системной папке?
[1:03:45 | Изменены 1:03:51] SDraw: а то эта падла файлы directx заменяет внаглую
[1:08:38] Vladislav Barabash: поставь файлы директа в ридонли
[1:09:14] Vladislav Barabash: chmod r-x d3*.dll