Page 1 of 1
запись названия элементаля
Posted: 2007-12-20 22:30:46
by kexwer
вот часть скрипта, отвечающая за запись в текст принт, но почему то он записывает не имя Элементаля, а моё... TWI включён...
Подскажите, как исправить?
Code: Select all
if uo.InJournal('Elemental') then
uo.PlayWav(DisturbingSound)
uo.GetStatus('uo.JournalSerial(0)')
uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0)))
uo.TextOpen()
uo.TextPrint('Был выкопан Элементаль - '+uo.GetName(uo.JournalSerial(0)) +Space +Time)
uo.Exec('terminate Mining')
wait(500)
uo.Exec('terminate RecallRune')
uo.Exec('terminate DropOre')
# убиваем элемента #
Вот Что выдаёт в текстпринте
Code: Select all
Был выкопан Элементаль - Kex 23:26:26 @ 7.12.20
Posted: 2007-12-20 23:34:33
by stickman
чтобы узнать его имя нужно его сначала найти uo.findtype
Posted: 2007-12-21 15:47:45
by Mihail
... а потом кликнуть по нему и сделать чеклаг....
Posted: 2007-12-21 16:00:56
by Kynep
Mihail wrote:... а потом кликнуть по нему и сделать чеклаг....
а так низя?
Code: Select all
var name
UO.FindType(...)
name = UO.GetName('finditem')
или обязательно из журнала?
Posted: 2007-12-21 16:04:08
by stickman
а потом подумать над тем, что написал Cooper и все заработает!

Posted: 2007-12-21 16:07:23
by Kynep
stickman wrote:а потом подумать над тем, что написал Cooper и все заработает!

А что тут собстна думать??

Делать надо!!

Posted: 2007-12-21 17:19:49
by Mihail
Kynep wrote:var name
UO.FindType(...)
name = str(UO.GetName('finditem'))
[/code]
или обязательно из журнала?
если в журнале записи об имени элемента не было то getname не сработает...
и кстати элемент может быть не один, а если это не важно то для сокращения кода проще использовать преобразоание типа в объект и т.д.
кстати зачем переводить значение в строку если getname возвращает итак строку?
stickman wrote:а потом подумать над тем, что написал Cooper и все заработает!

а нубам слова не давали, они должны читать и мотать на ус
работает это только в том случае если элемент у тебя появился в зоне видимости после запуска скрипта
Posted: 2007-12-21 17:27:13
by Kynep
Mihail wrote:если в журнале записи об имени элемента не было то getname не сработает...
и кстати элемент может быть не один, а если это не важно то для сокращения кода проще использовать преобразоание типа в объект и т.д.
работает это только в том случае если элемент у тебя появился в зоне видимости после запуска скрипта
По поводу первого и второго предложений:
после этого вставляется поиск по типу, а если надо можно преобразовать в обьект. А если не один, можно игнорить и искать снова, все зависит от фантазии афтора )))
по поводу последнего, на ДРВ они вроде всегда появляются в зоне видимости, если они там ни чего не поменяли.
Или я не прав?
(исправил)
Posted: 2007-12-21 19:10:20
by Mihail
блин вот из-за какой-то фигни прямо дискуссию надо разводить...
на элементалях ДРВ мир клином не сошелся - правильнее учить ньюбов использовать функцию uo.getname только после функции uo.click
Posted: 2007-12-21 20:07:54
by Kynep
Mihail wrote:блин вот из-за какой-то фигни прямо дискуссию надо разводить...
на элементалях ДРВ мир клином не сошелся - правильнее учить ньюбов использовать функцию uo.getname только после функции uo.click
Не говори
Вот кстати еще примерчик, смотри и додумывай сам:
Code: Select all
sub zhdem()
var ser
uo.deletejournal()
while not UO.Dead()
if UO.InJournal('Elemental') then
ser = uo.journalserial('Elemental')
UO.asmLogAdd('mining_log.txt', UO.asmGetDate('dd:mm:yy') + ' в ' + UO.asmGetTime('hh:nn:ss') + ' ты выкопал ' + UO.GetName(ser))
else
wait(50)
endif
wend
endsub
Posted: 2007-12-23 09:13:31
by kexwer
Ну вроде разобрался , вроде работает =)
Вот что получилось!
Code: Select all
if uo.InJournal('Elemental') then
uo.exec('usetype 0x0f0e 0x0631')
uo.PlayWav(DisturbingSound)
wait(4000)
if uo.Waiting() then
uo.CancelTarget()
end if
uo.FindType('0x0B3C',-1,'ground')
uo.click('finditem')
wait(500)
tColor = uo.getcolor('finditem')
UO.asmLogAdd('MiningLog.txt', UO.asmGetDate('dd/mm/yy')+" - "+UO.asmGetTime('hh:nn:ss')+" - "+"Был выкопан Элементаль - "+uo.getname('finditem'))
Posted: 2007-12-23 09:27:21
by Kynep
kexwer wrote:Ну вроде разобрался , вроде работает =)
Вот что получилось!
Code: Select all
if uo.InJournal('Elemental') then
uo.exec('usetype 0x0f0e 0x0631')
uo.PlayWav(DisturbingSound)
wait(4000)
if uo.Waiting() then
uo.CancelTarget()
end if
uo.FindType('0x0B3C',-1,'ground')
uo.click('finditem')
wait(500)
tColor = uo.getcolor('finditem')
UO.asmLogAdd('MiningLog.txt', UO.asmGetDate('dd/mm/yy')+" - "+UO.asmGetTime('hh:nn:ss')+" - "+"Был выкопан Элементаль - "+uo.getname('finditem'))
Ну вот и славно. Только не пойму зачем тебе его цвет?