Page 1 of 1

проверка системного журнала на наличие фразы

Posted: 02.05.2010 12:08
by MuDaCk
При помощи какой команды стелс может узнать есть ли надпись в системном журнале? В хелпе нашел фразу IsSystemMsg('What is the new name',Time,Now). Но стелс отказывается её воспринимать. Стелс последний из не Бет.
P.S. С прошедшим :wink:

Posted: 02.05.2010 15:51
by MuDaCk

Code: Select all

program emo;
var 
   FBegin:TDateTime; 
Begin
 
  wait(1000)
AddToSystemJournal(GetCliloc(Findtype($1111,backpack)));  // $11111111
UOSay(GetCliloc(Findtype($1111,backpack))) // хочу чтобы данные с гетклилок только я или скрипт мог читать
wait(1000)
if (InJournalBetweenTimes('rex', FBegin, Now) <> -1) then
begin 
uosay('ыфывфыв') // uosay- для проверки
end

End.
можно ли както достать обратно из системного журнала или можно ли както написать это в обычный журнал, но чтобы другие игроки не видели мою билиберду?
Грубо говоря мне необходимо результат команды гетклилок разбить на части и использовать в дальнейшем в скриптах. например:

Tooltip: | 11 Bark Fragment | Weight: 11 stones

Code: Select all

если слово барк есть, то делаем ам
если слово стоунс есть, то делаем бемс

Posted: 04.05.2010 17:43
by Vizit0r
такой путь - это примерно как правой ногой чесать левое ухо

позже напишу как

Posted: 04.05.2010 18:48
by MuDaCk
Визитор, ведь если я видел только как правой и левой ногами чешутся, то мне будет тяжело придумать новый способ :( . Буду очень признателен за новый вариант.

Posted: 05.05.2010 7:30
by Vizit0r
долго читал, пытался понять, зачем готовую строку, возвращаемую GetCliloc, говорить в уо, потом уже из журнала вытаскивать...не понял :)

Code: Select all

program emo; 
var 
   aa : String;

Begin //main begin
aa := GetCliloc(Findtype($1111,backpack)));  // $11111111 
//а тут начинается кусок работы со строками. например:
if (BMSearch(1,aa,'Bark') > 0) then 
begin 
//какое-то действие
end 

End.
по работе со строками - обрубание строк, и т.д.

http://stealth.od.ua/forum/viewtopic.php?p=5614#5614
+ чуть выше
{String functions}
function BMSearch(StartPos: Integer; const S,P: String): Integer; // Возвращает первое вхождение подстроки в строке
procedure StrBreakApart(const S,Delimeter: String; Parts: TStrings); // Режет строку S на подстроки, используя разделитель Delimeter. Результат запишет в Parts

Posted: 05.05.2010 15:08
by MuDaCk
Спасибо. Я просто в строках вообще не разбирался. теперь хоть чуть-чуть буду понимать. Я лобась :oops: . Расшифруйте, пожалуйста, абревиатуру BM в BMSearch(просто для себя, на будущее).

Posted: 05.05.2010 15:18
by Vizit0r

Code: Select all

{алгоритм Бойера-Мура
ф-ия возвращает первое вхождение подстроки в строку
работает быстро
Например:
BMSearch(1, 'dsade', 'de')
в данном примере ф-ия возвратит число 4
1 - это позиция с которой ищем подстроку в строке}