Stealth Client Forum
http://stealth.od.ua/forum/

Ошибки перевода скриптов со старых версий в Стелс 7
http://stealth.od.ua/forum/viewtopic.php?f=6&t=4107
Страница 1 из 1

Автор:  Vizit0r [ 14.10.2016 10:29 ]
Заголовок сообщения:  Ошибки перевода скриптов со старых версий в Стелс 7

Информация по тем синтаксическим ошибкам, которые могут появиться при запуске скриптов в 7м стелсе (пример куска кода + ошибка + описание).

Раз:
Код:
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 "

точки с запятой нет



Код:
    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; "

то же самое


Код:
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 - это ключевое слово языка, оно не может быть названием параметра или переменной!


Код:
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 при этом использовать необязательно, динамический массив - это и так указатель по сути своей.
В предыдущих версиях это тоже было актуально, кстати.



Код:
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

всё написано в ошибке - две точки с запятой.


Появится еще что-то популярное - дополню.

Автор:  cpiker [ 14.03.2017 12:45 ]
Заголовок сообщения:  Re: Ошибки перевода скриптов со старых версий в Стелс 7

12:29:13:781 [Dior]: UO-Files path incorrect, some functions disabled (char moving, map, clicocs etc.)
12:29:13:785 [Dior]: Character Dior Connected.
12:29:17:744 [Dior]: Compiling
12:29:17:869 [Dior]: Compiler: [Error] (Dior.sc at 413:17): "end" expected but "UseSkill" found ;
Error line is: " UseSkill('Spirit Speak'); "
12:29:17:870 [Dior]: Compiling failed
12:29:17:871 [Dior]: Script Dior.sc stopped successfuly
12:30:32:664 [Dior]: Compiling
12:30:32:681 [Dior]: Compiler: [Error] (Dior.sc at 413:17): "end" expected but "UseSkill" found ;
Error line is: " UseSkill('Spirit Speak'); "
12:30:32:720 [Dior]: Compiling failed
12:30:32:720 [Dior]: Script Dior.sc stopped successfuly
12:33:09:233 [Dior]: Compiling
12:33:09:250 [Dior]: Compiler: [Error] (Dior.sc at 413:17): "end" expected but "UseSkill" found ;
Error line is: " UseSkill('Spirit Speak'); "
12:33:09:259 [Dior]: Compiling failed
12:33:09:260 [Dior]: Script Dior.sc stopped successfuly
12:34:17:853 [Dior]: Character Dior Disconnected.+

Как это понять?
пытался старый скрипт запустить на новом стелсе

Автор:  nah nah [ 14.03.2017 14:04 ]
Заголовок сообщения:  Re: Ошибки перевода скриптов со старых версий в Стелс 7

Vizit0r писал(а):
Код:
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 "

точки с запятой нет

ну очень похоже

Страница 1 из 1 Часовой пояс: UTC + 2 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/