Page 1 of 1

Работа с журналом - получение информации..

Posted: 2006-04-04 16:06:01
by Mihail
Возможно ли получить информацию из журнала кроме как
набрав ,showjournal и вручную скопировав текст? :)
Надо чтобы выглядело примерно так:

Code: Select all

if uo.injouranal('Поздоровайся с: *тут должно быть чье-то имя - к примеру Vasya*') then 
uo.msg('привет '+*имя которое должно быть в первом сообщении - в данном случае Vasya*)
end if

Posted: 2006-04-04 17:04:57
by Edred
А хелп почитать? Слабо?
http://yoko.netroof.net/help/help.php?l ... =InJournal

Posted: 2006-04-07 18:23:49
by Mihail
ты не понял, мне не известно то что надо получиь из журнала..
допустим мне сказали

ПРИВЕТ МЕНЯ ЗОВУТ ВАСЯ!

вот у меня заложено

Code: Select all

if uo.injournal('ПРИВЕТ МЕНЯ ЗОВУТ') then
gname="получаем текст в журнале идущий после фразы "ПРИВЕТ МЕНЯ ЗОВУТ ")
uo.msg(gname+' ПРИВЕТ, А Я ФЕДЯ')
end if

короче надо получить инфу в журнале идущуюю после заданной фразы

Posted: 2006-04-07 18:50:47
by Grin
Ну ы тчно в хелпе был?;)
Что InJournal возвращет?;)
Номер строки +1
Так теперь выдергивай строку и расчленяй;) опять такие как выдернуть всю чстроку в хелп;)

Posted: 2006-04-07 21:08:01
by Mihail
фишка в том, что я не знаю какое мне имя скажут...
если не сложно напишите плиз - как это будет выглядеть?

Posted: 2006-04-07 21:16:33
by Grin
InJournal ищет подстроку... тебе не надо искать строку с именем ана найти только часть ее...

Posted: 2006-04-08 01:23:40
by Destruction

Code: Select all

if uo.injournal("Привет! Меня завут ") then
   var str = uo.journal(uo.injournal("Привет! Меня завут ")-1)
   str = left(str,18) ; примитивно выдёргиваем ник, можно и покруче.
   uo.msg("Привет "+str+", а я Петя.")
endif

Posted: 2006-04-08 01:37:54
by admir
Если чары - люди то таким макаром не получиться ,определить имя - по гетнейму при включенном тви , а обращение на ключевое слово допустим hi

Posted: 2006-04-08 01:44:24
by Grin
Почему не получится то?
Имя это часть сообщения...

Posted: 2006-04-08 09:53:55
by Mihail
Почти, но не совсем :)
ладно, вобщем истиная идея была такова:
Есть 2 чара, которые состоят в пати, допустим идет бой 2 на 2, и одному из членов пати почти удалось добить соперника - нужно лишь одновременно с партнером кастануть ФС в него, но партнер естественно не в курсе.. вот поэтому нужен примерно такой скрипт:
1 чел, который почти убил противника:

Code: Select all

sub fsparty()
uo.click('lasttarget')
uo.sayu('.. FS: '+uo.getname('lasttarget')) # говорим в пати - что надо скастовать ФС по "имени противника, который у нас значится в качества ласттаргета"
end sub

2-ой чел, который, должен скастовать этот самый ФС

Code: Select all

sub iffs()
if uo.injournal('FS: ') then
uo.deletejournal()
All Names # не знаю, есть такая функция в инже или нет - но если что можно из клиента
if uo.injournal('ИМЯ ВРАГА') then
uo.getserial или uo.journalserial() #надо узнать серийник врага
uo.cast('Flamestrike',?????) #где ????? = противник
uo.deletejournal()
end if
end if
end sub


вобщем я смутно представляю себе как это выглядит, но думаю что сделать такое вполне возможно... :(

Posted: 2006-04-08 10:31:39
by admir
:) по имени чара - ненадожно . использую getserial('lasttarget')
и передавай циферки с ключевой командой ,
чар принимает фразу и в зависимости от ключа команды делает что-то,
из фразы вырезаеться серийник и копируеться в lasttarget
set('lasttarget','my_id')

работа со строками :

Mid(строка, позиция, число букв) - позиция считается от 0 - вырезает часть из СТРОКИ начиная с ПОЗИЦИИ на КОЛИЧЕСТВО ПОЗИЦИЙ.
LTrim - убрать пробелы слева
RTrim - справа
Trim - слева и справа

Posted: 2006-04-08 11:47:28
by Grin
во вы извращаетесь

Code: Select all

var Friend=''
sub SendFS()
   uo.msg('..fs'+uo.GetSerial('lasttarget')) #хз как в парти отправить(непомню)
end sub
sub SyncFS()
var n
var target
   while not uo.Dead()
       wait(100)
       n=uo.Injournal('fs')
       if n then
          if uo.JournalSerial(n-1)==Friend then
             target=right(uo.Journal(n-1), 10)
             uo.Cast('flames...', target)# вписат ьправельно спел;)
          end if
          uo.SetJournalLine(n-1, "")
       end if
   wend
end sub

Friend='' - тот кто шлет сообщение

Posted: 2006-04-09 00:59:32
by Mihail
спасибо! про удалание части строки и отступы - не слышал :)