Для тех, кто не может найти документацию по языку Pascal - переходим по следующим ссылкам и читаем:
Электронный учебник по языку Pascal
Справочник по функциям Delphi
И еще один справочник по функциям Delphi
Электронные книги по языкам программирования Pascal и Delphi
P.S. Если вы нашли документацию лучше - добавляйте свои ссылки.
Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
Язык Pascal
Ребят, будте аккуратны, некоторые архивы заражены вредоносными скриптами.
Вот тут, http://borlpasc.narod.ru/turbo_pacs.htm есть много полезного по Паскалю
Вот тут, http://borlpasc.narod.ru/turbo_pacs.htm есть много полезного по Паскалю
Некоторые особенности Паскаля в стелсе и стелса в игре
Паскаль скрипт – довольно строгий язык. В частности, вам стоит обратить внимание, что вы не сможете запустить скрипт, в котором используются функции с опущенными параметрами (все параметры надо явно задавать), также нельзя передавать параметром не тот формат данных, который требуется. Например, вы не сможете (в отличие от инжекта) использовать целые числа вместо булевских выражений (true и false), вы не сможете к строке добавить число – вам надо это число преобразовать в строку и потом прибавлять.
Кстати, сразу о параметрах. Зачастую в параметрах требуется указать цвет, а для вас цвет объекта может быть несущественнен. Укажите тогда $FFFF в качестве цвета, это означает любой цвет. Работает со всеми командами, где требуется задать цвет.
В Стелсовском Паскале нет присваивания значений массиву списком. То есть конструкция:
MyArray[1..5] := (1,2,3,4,5);
Работать не будет. Значения в массив можно заносить только поэлементно.
Стелс, в отличие от обычного клиента, не контролирует количество итемов в контейнере. На обычном клиенте практически невозможно положить в контейнер больше 255 итемов, при этом в ряде комбинаций «версия сервера-версия клиента» открытие контейнера, в котором больше 255 итемов просто приводит к крешу клиента. Например, такое наблюдается на Sphere 0.55i + Client 2.0.3. А 56-ая Сфера с этим же клиентом такие контейнеры открывает нормально, но положить в них уже ничего нельзя. Так вот, Стелсу это по фиг. Он положит итемы в такой контейнер. И легко. У меня при отладкескриптов иногда до 1000 объектов оказывается в контейнере. Будьте внимательны, особенно, если на вашем шарде за макросные программы банят.
В обычном клиенте (и, соответственно, в скриптах инжекта) если вы откроете какой-то контейнер, то клиент (и инжект) запомнит содержимое этого контейнера и вы сможете его использовать вне зависимости от того, лежит ли этот контейнер в исходном месте или вы переместили его в другое место. В Стелсе не так. Если вы переместите этот контейнер в новое место – вам надо заново открыть его, чтобы использовать его содержимое.
Потом еще буду дополнять тему...
Паскаль скрипт – довольно строгий язык. В частности, вам стоит обратить внимание, что вы не сможете запустить скрипт, в котором используются функции с опущенными параметрами (все параметры надо явно задавать), также нельзя передавать параметром не тот формат данных, который требуется. Например, вы не сможете (в отличие от инжекта) использовать целые числа вместо булевских выражений (true и false), вы не сможете к строке добавить число – вам надо это число преобразовать в строку и потом прибавлять.
Кстати, сразу о параметрах. Зачастую в параметрах требуется указать цвет, а для вас цвет объекта может быть несущественнен. Укажите тогда $FFFF в качестве цвета, это означает любой цвет. Работает со всеми командами, где требуется задать цвет.
В Стелсовском Паскале нет присваивания значений массиву списком. То есть конструкция:
MyArray[1..5] := (1,2,3,4,5);
Работать не будет. Значения в массив можно заносить только поэлементно.
Стелс, в отличие от обычного клиента, не контролирует количество итемов в контейнере. На обычном клиенте практически невозможно положить в контейнер больше 255 итемов, при этом в ряде комбинаций «версия сервера-версия клиента» открытие контейнера, в котором больше 255 итемов просто приводит к крешу клиента. Например, такое наблюдается на Sphere 0.55i + Client 2.0.3. А 56-ая Сфера с этим же клиентом такие контейнеры открывает нормально, но положить в них уже ничего нельзя. Так вот, Стелсу это по фиг. Он положит итемы в такой контейнер. И легко. У меня при отладкескриптов иногда до 1000 объектов оказывается в контейнере. Будьте внимательны, особенно, если на вашем шарде за макросные программы банят.
В обычном клиенте (и, соответственно, в скриптах инжекта) если вы откроете какой-то контейнер, то клиент (и инжект) запомнит содержимое этого контейнера и вы сможете его использовать вне зависимости от того, лежит ли этот контейнер в исходном месте или вы переместили его в другое место. В Стелсе не так. Если вы переместите этот контейнер в новое место – вам надо заново открыть его, чтобы использовать его содержимое.
Потом еще буду дополнять тему...
насчет массивов. в pascalScript работают так называемы динамические массивы, и присваивание им списка -
проблемы возникают если это массив не из ordinal типов/string, а из записей, но это обходиться путем создания функции-конструктора для такой записи -
Code: Select all
var a : array of integer;
begin
a := [0, 1, 2, 3, 4]; //получиться массив на 5 элементов
end.
Code: Select all
type myPoint = record
x, y : integer;
end;
function makePoint(x, y : integer) : myPoint;
begin
result.x := x;
result.y := y;
end;
var a : array of myPoint;
begin
a := [makePoint(0,0), makePoint(100,100)];
end.
а инициализировать переменную в блоке Var можно?
а если нельзы, то не подскажете если строгое правило инициализации переменных по умолчанию.
допустим :
будет ли IsInit равным false?
а если нельзы, то не подскажете если строгое правило инициализации переменных по умолчанию.
допустим :
Code: Select all
var
IsInit:boolean;
нетBeren wrote:а инициализировать переменную в блоке Var можно?
вообще в классическом паскале значение переменной до инициализации неопределено, но делфи и паскаль скрипт инициализируют переменные нулями. строки будут пустые, булевые - false'ом, а всякие integer, byte & тд нулями. Таким образом IsInit будет falseBeren wrote: а если нельзы, то не подскажете если строгое правило инициализации переменных по умолчанию.
допустим :будет ли IsInit равным false?Code: Select all
var IsInit:boolean;