Это теги для компилятора. А вещественные числа вообще подтянуты разработчиком сампа со стороны и существуют лишь благодаря функциям, которые отдельно работают с этими числами. Вот тебе простое доказательство
PHP код:
main()
{
new int;
int = _:1.5;//"сбросим" тэг, дабы компилятор не ругался
printf("\n\n%0.1f\n\n", int);//Выведем нашу целочисленную переменную, используя спецификатор вещественного типа
}
В консоли ты увидишь "1.5", хотя, казалось бы, мы пытаемся просунуть в целочисленную переменную вещественный тип данных.
То же самое и с bool
PHP код:
main()
{
new bool:var;
var = bool:7;
printf("\n\n%d\n\n", var);//Отобразит "7", хотя, по идее, в переменную типа boolean нельзя записать значения, отличные от true/false
}
Pawn - не типизированный язык.
UPD: И да, это не означает, что нужно повсеместно использовать эту "фичу" языка. Тэги для того и были придуманы, чтоб:
1) Защитить скриптера от возможных ошибок при записи одних "типов" данных в места, не предназначенные для этого.
2) Улучшить читаемость.
Автор:
Вот
тут я как-то писал для одного нехорошего человека функцию, которая позволяла бы, вроде, делать форматирование запросов сразу внутри этой функции
(писал уже давно и сейчас лень вникать. Но код, сразу говорю, не самый лучший, ибо это больше эксперимент, который заброшен на пол пути и не доведён до ума). И там видно как можно реализовать определение типа переданного аргумента