Раз:
Code: Select all
FindType(StrToInt(DailyTypes.strings[Idx3]), Ground)
if GetFoundItems(Items) > 0 then
[XXX]: Compiler: [Error] (test.sc at 460:1): "end" expected but "if" found ;
Error line is: "if GetFoundItems(Items) > 0 then "
точки с запятой нет
Code: Select all
repeat
wait(1000)
p:=p+1;
12:06:29:307 [Natka]: Compiler: [Error] ( at 85:7): "until" expected but "p" found ;
Error line is: " p:=p+1; "
то же самое
Code: Select all
function GoToObject(Object: Cardinal): Boolean;
[XXX]: Compiler: [Error] (test.sc at 355:19): Identifier expected but "Object" found ;
Error line is: " function GoToObject(Object: Cardinal): Boolean; "
Object - это ключевое слово языка, оно не может быть названием параметра или переменной!
Code: Select all
var
Items_arr : Array of Cardinal;
function GetFoundItems(var Items: Array of Cardinal): Integer;
...
if GetFoundItems(Items_arr) > 0 then
опа, и ошибка выполнения(Exec Error) тут! При этом компилятор пропустит такую конструкцию.
должно быть:
type TItemArr = Array of Cardinal;
var
Items_arr : TItemArr;
function GetFoundItems(var Items: TItemArr): Integer;
...
if GetFoundItems(Items_arr) > 0 then
это неочевидно, но это факт - динамические массивы нельзя передавать параметрами, надо определять его как тип. Var param при этом использовать необязательно, динамический массив - это и так указатель по сути своей.
В предыдущих версиях это тоже было актуально, кстати.
Code: Select all
22:15:13:102 [Rdor Sems]: Compiler: [Error] ( at 338:14): Identifier expected but ";" found ;
Error line is: " Time := 0;; "
22:15:13:102 [Rdor Sems]: Compiling failed
всё написано в ошибке - две точки с запятой.