Page 1 of 2
Ищу функцию обновления имен находящихся рядом чаров
Posted: 08.05.2011 8:32
by shinma
Вопрос такой. чар видит только один раз ники на экране и заносит в журнал. Есть ли функция которая специально засвечивает все ники которые есть на экране в журнал.
просто скрипт такой
1 - Обновляю таймер начала просмотра журнала
2 - какое либо действие занимающее время
3 - сверяю таймер если за это время в журнале показалась строка с заранее указанным ником НПС/ИГРОКА то оборвать цикл и продолжить выполнение кода после цикла.
НО!!!! если по какому то не чайному событию все таки ники в журнал заносятся ДО: "1 - Обновляю таймер начала просмотра журнала" то скрипт тупо не срабатывает. Есть ли функция которая обновит все ники НПС/Игроков на экране в таком цикле и чтобы они занеслись в журнал и скрипт все таки сработал?
Posted: 08.05.2011 8:40
by SuperPups
Есть команда 'resend в клиенте. Она обновляет все.
Posted: 08.05.2011 8:57
by Alex
такой команды нет, и я думаю это не лучший вариант.
у тебя есть 2 инструмента:
1. FindType
2. GetDistance
в FindType забей типы человеков, собери массив ID, а потом проверяй рядом они или нет
Posted: 08.05.2011 8:57
by shinma
по умолчанию в клиенте вообще нет команд. это только если на сервере админы написали проверку на ввод буков в чат и соответствующее действие в ответ от сервера.
Posted: 08.05.2011 8:57
by Vizit0r
нет такой команды. то, что этот кстыль есть на АОПе - это личные проблемы АОПа.
shinma - кривая постановка вопроса. не в ту сторону роешь. рой в сторону FindType - там не будет зависеть от того, когда появились. Возможно ивенты появления PC (NPC) помогут тебе
Posted: 08.05.2011 9:03
by Alex
ухты, ивенты появления PC (NPC) эту круто,
http://stealth.od.ua/wiki/doku.php?id=event
evUpdateChar, evDrawObject : [ID] - отрисовка чара (не обязательно нашего!)
эти ивенты? и еще вопрос, они стрельнут если NPC пропал из виду, а потом вернулся? иными словами это ивенты появляния в списке стелса или появления в пределах экрана?

Posted: 08.05.2011 9:04
by shinma
действие происходит мгновенно.
в общем вот алгоритм
1 - repeat
ctime := Now;
2 - идем рубить деревья
3 - until InJournalBetweenTimes('ИМЯ', ctime, Now)>= 0;
когда скрипт заходит в цикл репит журнал не всегда записывает рядом стоящих. Это уже хз почему. наверно против таких ботоводеров как я. Но факт, что иногда запись в журнал не заносится. А мне надо чтобы чар мгновенно среагировал и побежал от этого сраного Энта. Я просто не знаю это самое FindType в моем цикле не замедлит ли реакцию хотябы на тех кто все таки нормально в журнал заносится?
ОООО придумал а если я хочу делать всю проверку журнала полную так сказать даже до ctime := Now;. и после проверки стрирать журнал. чтобы в новой проверки не отобразился повтор. так можно?
Posted: 08.05.2011 9:07
by Alex
наоборот - ускорит

Posted: 08.05.2011 9:09
by shinma
ок спасибо за наводку а то чар то уже сам себя оживляет закупается итд но ладно бы от ПК умирал но от НПС это ппц нубство.
Posted: 08.05.2011 9:20
by Vizit0r
я не уверен, что работает быстрее - findtype или перебор строк журнала - но, если findtype и медленнее, то ненамного.
я бы все же в сторону ивентов смотрел

Posted: 08.05.2011 9:25
by shinma
скажем так я посмотрел на эвенты и ничего там не понял как это evUpdateChar в скрипт вставить и использовать.
Posted: 08.05.2011 9:30
by Vizit0r
пример смотрел в FAQ ?
Posted: 08.05.2011 9:34
by shinma
procedure Unicode_Speech(text,SenderName : String; SenderID : Cardinal);
begin
AddToSystemJournal('Event! Unicode Speech: SenderID = $'+ IntToHex(SenderID,8) + ' ; SenderName = ' + SenderName + '; SenderText : ' + text);
end;
SetEventProc(evUnicodeSpeech,'Unicode_Speech'); //Почему в процедуре обьявляются три переменные, а на деле ей передается только одна'Unicode_Speech'. и зачем нужна вообще тогда SetEventProc если я могу просто вызвать Unicode_Speech(с параметрами);
вот я это не понял
Posted: 08.05.2011 9:39
by Alex
есть всезнающий оракул SetEventProc, он знает где и что и когда происходит вокруг.
А ты к этому оракулу обращается с просьбой, - "когда увидиш что кто-то рядом болтает, плиз вызови мою функцию Unicode_Speech"
Posted: 08.05.2011 9:41
by shinma
это можно в любом месте скрипта вводить..... а точнее в самом его старте и типа можно забыть? он отдельно будет ... как бы выразится... типа в параллельном потоке пахать, но как событие произойдет вызовет функцию? так?