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 и все заработает! :P

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


А что тут собстна думать?? :D Делать надо!! :D :D

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 и все заработает! :P

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

Posted: 2007-12-21 17:27:13
by Kynep
Mihail wrote:если в журнале записи об имени элемента не было то getname не сработает...

и кстати элемент может быть не один, а если это не важно то для сокращения кода проще использовать преобразоание типа в объект и т.д.

работает это только в том случае если элемент у тебя появился в зоне видимости после запуска скрипта


По поводу первого и второго предложений:

Code: Select all

if uo.InJournal('Elemental') then 


после этого вставляется поиск по типу, а если надо можно преобразовать в обьект. А если не один, можно игнорить и искать снова, все зависит от фантазии афтора ))) :D

по поводу последнего, на ДРВ они вроде всегда появляются в зоне видимости, если они там ни чего не поменяли.

Или я не прав?

(исправил)

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


Не говори :D

Вот кстати еще примерчик, смотри и додумывай сам:

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'))


Ну вот и славно. Только не пойму зачем тебе его цвет?