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
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
спасибо! про удалание части строки и отступы - не слышал
