В любой инклюд, либо в дальний конец листочка:
PHP код:
#error FATAL ERROR
Вид для печати
В любой инклюд, либо в дальний конец листочка:
PHP код:
#error FATAL ERROR
не даст запустить мод :0PHP код:
//в main
for(new i; i != 1; i++) if(!i) i--;
Хотел ещё в прошлом году написать статью, но не знал, в каком разделе её лучше опубликовывать. Только сейчас посмотрел на эту тему и вспомнил про ту завалявшуюся заготовку статьи.
Welp...
Существуют несколько опкодов AMX, имеющих код 0.
- code
- data
- dump
- stksize
Они используются только компилятором Pawn на этапе генерации кода и внутрь генерируемого файла (.amx) не попадают.
Впрочем, с помощью директивы #emit можно заставить компилятор не удалять эти опкоды.
Это приведёт к тому, что "нулевые" опкоды попадут в .amx, а виртуальная машина не распознает их и откажется выполнять скрипт:PHP код:
#emit code
#emit data
#emit dump
#emit stksize
Код HTML:Script[gamemodes/guf.amx]: Run time error 22: "AMX not initialized (or doubly initialized)"
Number of vehicle models: 0
Update :)
лол, рекурсия бывает не бесконечная?Цитата:
Бесконечная рекурсия
Какой-то не совсем удачный пример, по моему... Функция зациклиться сама на себе же и получится именно бесконечная.
А вот так, например, можно создать имитацию цикла для двух чисел:
Это уже будет подконтрольная рекурсияPHP код:
stock ForeachFunction(min_value, max_value)
{
static Start;
if(max_value < min_value)
{
printf("[Error ForeachFunction]: Значение максимального аргумента меньше значения минимального (%i|%i)", min_value, max_value);
return 1;
}
else if(max_value == min_value && !Start)
{
printf("[Error ForeachFunction]: Значение максимального аргумента равно значению минимального (%i|%i)", min_value, max_value);
return 1;
}
else if(min_value != max_value)
{
Start = 1;
printf("-min_value(%i) != max_value(%i)", min_value, max_value);
ForeachFunction(++min_value, max_value);
return 1;
}
else return printf("min_value(%i) == max_value(%i)", min_value, max_value), Start = 0;
}
main()
{
print("\n");
ForeachFunction(5, 10);
print("\n");
}