Page 2 of 8
Re: Re:
Posted: 07.08.2011 21:14
by Scripts Writer
Unholy wrote:Scripts Writer wrote:
Всё хорошо написал, единственная поправочка:
Все это можно вместить в 10 слов "Называйте переменные так, чтоб вы понимали что в них хранится."
Я бы изменил на "Называйте переменные так, чтоб не только вы понимали что в них хранится,
но и другие пользователи, которые, возможно, будут читать и в дальнейшем сопровождать Ваш код. Особенно, это важно, когда
с момента разработки проходит длительное время и становится сложно разобраться, для чего и где в дальнейшем эта переменная могла использоваться. Так же, не лишним, будут комментарии к Вашему коду."
П.С. Я тоже недавно перечитывал свои уроки, которые писал на форуме Inject'a примерно в твоём же возрасте. Улыбался. 2006 год, 16 лет, ну да.
Re: Скриптинг в Stealth для чайников.
Posted: 18.11.2011 7:13
by jian
Подскажите, функции работы с журналом поддерживают регулярки? Найденные подстроки могут вернуть? Или есть для этого другие ф-и в стелсе?
Re: Скриптинг в Stealth для чайников.
Posted: 18.11.2011 7:33
by CFA
jian wrote:Подскажите, функции работы с журналом поддерживают регулярки? Найденные подстроки могут вернуть? Или есть для этого другие ф-и в стелсе?
Регуляток нет, но можно объединить несколько строк с помощью '|' - например InJournal('word1|word2') функция вернет индекс строки в журнале, или -1 если ничего не найдено. Саму строку можно получить с помощью функции Journal(StringIndex : Integer) : String
Все функции работы с журналом можно посмотреть в
вики, но описание/примеры есть не для всех.
Re: Скриптинг в Stealth для чайников.
Posted: 18.11.2011 10:41
by jian
CFA wrote:jian wrote:Подскажите, функции работы с журналом поддерживают регулярки? Найденные подстроки могут вернуть? Или есть для этого другие ф-и в стелсе?
Регуляток нет, но можно объединить несколько строк с помощью '|' - например InJournal('word1|word2') функция вернет индекс строки в журнале, или -1 если ничего не найдено. Саму строку можно получить с помощью функции Journal(StringIndex : Integer) : String
Все функции работы с журналом можно посмотреть в
вики, но описание/примеры есть не для всех.
Т.е. минимальный размер - строка? Или можно разбить на подстроки, пусть без регулярок, просто по пробелам допустим? И получить нужную подстроку (слово) из строки по индексу? Конкретно интересует получение цифр из строки, т.е. потом потребуется преобразование типа, оно возможно будет вообще?
Re: Скриптинг в Stealth для чайников.
Posted: 18.11.2011 11:41
by CFA
Да, конечно это все возможно. Получил строку, разбил на части сам (функции Pos, Copy) или в помощью встроенной функции (StrBreakApart).
Стелс использует в качестве скриптового языка почти полноценный Pascal.
Re: Скриптинг в Stealth для чайников.
Posted: 20.11.2011 20:15
by jian
procedure StrBreakApart(const S,Delimeter: String; Parts: TStrings); // Режет строку S на подстроки, используя разделитель Delimeter. Результат запишет в Parts
Возникает закономерный вопрос - что же такое этот Parts? array of char? Как его объявить чтобы пользоваться результатом работы StrBreakApart? Или как к нему обратиться, если он объявляется автоматически?
Re: Скриптинг в Stealth для чайников.
Posted: 20.11.2011 21:11
by Alex
jian wrote:
procedure StrBreakApart(const S,Delimeter: String; Parts: TStrings); // Режет строку S на подстроки, используя разделитель Delimeter. Результат запишет в Parts
Возникает закономерный вопрос - что же такое этот Parts? array of char? Как его объявить чтобы пользоваться результатом работы StrBreakApart? Или как к нему обратиться, если он объявляется автоматически?
вот так:
Code: Select all
Program StrBreakApartDemo;
var i : Integer;
SL : TStringList;
Begin
{Before working with TStringList Object - You must CREATE it!}
SL := TStringList.Create;
StrBreakApart('This is a StrBreakApart Demo', ' ', SL);
if SL.Count > 0 then for i := 0 to SL.Count - 1 do
begin
AddToSystemJournal(SL.Strings[i]);
end;
{Note:
When you finish working with TStringList Object - You must FREE it!}
SL.Free;
End.
Re: Скриптинг в Stealth для чайников.
Posted: 20.11.2011 21:47
by jian
Спасибо! Нельзя ли этот пример в вики внести?
Вообще гугление показало, что это что-то из дельфи? На будущее интересуюсь просто, т.к. гуглил вопросы с обяз. упоминанием паскаля.
Re: Скриптинг в Stealth для чайников.
Posted: 21.11.2011 0:08
by Alex
добавил пример в вики) это не из делфи, кто-то из наших ребят добавил такую функцию в стелс =)
Re: Скриптинг в Stealth для чайников.
Posted: 21.11.2011 12:41
by jian
Подскажите еще, как правильней будет работать с журналом с т.з. надёжности срабатывания:
первый вариант:
Code: Select all
ClearJournal;
UOSay('.ph');
wait(300);
StrBreakApart(LastJournalMessage, ' ', SL);
или второй:
Code: Select all
UOSay('.ph');
StrBreakApart(Journal(InJournal('Power Hour')), ' ', SL);
Re: Скриптинг в Stealth для чайников.
Posted: 24.11.2011 11:54
by Miralex
jian wrote:
Вообще гугление показало, что это что-то из дельфи?
Источник:
http://delphiworld.narod.ru/base/str_sep.html
Alex, угадай кто добавил...
Re: Скриптинг в Stealth для чайников.
Posted: 24.11.2011 12:16
by Alex
похоже что ты)) но может и Визитор, не знаю
jian, вот
по этой ссылке есть список функций для работы с журналом(раздел Обзор журнала), надежнее всего InJournalBetweenTimes
Re: Скриптинг в Stealth для чайников.
Posted: 08.09.2016 15:27
by GeeZeR
То ли я перегрелся то ли глюк, короче сохранил простой скрипт в файле Cast.sc
Code: Select all
PROGRAM Cast;
BEGIN
Cast('Cure');
END.
Пытаюсь запустить и мне выдаёт:
13:59:41:576 [UO Evolution (Drac)]: Compiling
13:59:41:626 [UO Evolution (Drac)]: Compiler: [Error] (Cast.sc at 3:12): Cannot apply () to "Cast" ;
Error line is: " Cast('Cure'); "
13:59:41:628 [UO Evolution (Drac)]: Compiling failed
13:59:41:629 [UO Evolution (Drac)]: Script Cast.sc stopped successfuly
Шард: UO Evolution
Клиент: 7.0.13.4
Re: Скриптинг в Stealth для чайников.
Posted: 08.09.2016 15:59
by drabadan
GeeZeR wrote:То ли я перегрелся то ли глюк, короче сохранил простой скрипт в файле Cast.sc
Code: Select all
PROGRAM Cast;
BEGIN
Cast('Cure');
END.
Пытаюсь запустить и мне выдаёт:
13:59:41:576 [UO Evolution (Drac)]: Compiling
13:59:41:626 [UO Evolution (Drac)]: Compiler: [Error] (Cast.sc at 3:12): Cannot apply () to "Cast" ;
Error line is: " Cast('Cure'); "
13:59:41:628 [UO Evolution (Drac)]: Compiling failed
13:59:41:629 [UO Evolution (Drac)]: Script Cast.sc stopped successfuly
Шард: UO Evolution
Клиент: 7.0.13.4
в редакторе в каком сохранял, мб чота не то с кодировочками?
Re: Скриптинг в Stealth для чайников.
Posted: 08.09.2016 16:26
by GeeZeR
В родном вот только что перенабрал и в новый файл сохранил - та же хрень, не нравятся ему скобки... Стелс 7.6.2.
Причём UseSkill(); - нормально всё, а Cast(); не пашет