Yoko
http://forum.yoko.com.ua/

запись названия элементаля
http://forum.yoko.com.ua/viewtopic.php?f=20&t=12937
Page 1 of 1

Author:  kexwer [ 2007-12-20 22:30:46 ]
Post subject:  запись названия элементаля

вот часть скрипта, отвечающая за запись в текст принт, но почему то он записывает не имя Элементаля, а моё... TWI включён...
Подскажите, как исправить?

Code:
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:
Был выкопан Элементаль - Kex 23:26:26 @ 7.12.20

Author:  stickman [ 2007-12-20 23:34:33 ]
Post subject: 

чтобы узнать его имя нужно его сначала найти uo.findtype

Author:  Mihail [ 2007-12-21 15:47:45 ]
Post subject: 

... а потом кликнуть по нему и сделать чеклаг....

Author:  Kynep [ 2007-12-21 16:00:56 ]
Post subject: 

Mihail wrote:
... а потом кликнуть по нему и сделать чеклаг....


а так низя?
Code:
var name

UO.FindType(...)
name = UO.GetName('finditem')

или обязательно из журнала?

Author:  stickman [ 2007-12-21 16:04:08 ]
Post subject: 

а потом подумать над тем, что написал Cooper и все заработает! :P

Author:  Kynep [ 2007-12-21 16:07:23 ]
Post subject: 

stickman wrote:
а потом подумать над тем, что написал Cooper и все заработает! :P


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

Author:  Mihail [ 2007-12-21 17:19:49 ]
Post subject: 

Kynep wrote:
var name

UO.FindType(...)
name = str(UO.GetName('finditem'))
[/code]
или обязательно из журнала?

если в журнале записи об имени элемента не было то getname не сработает...

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

кстати зачем переводить значение в строку если getname возвращает итак строку?

stickman wrote:
а потом подумать над тем, что написал Cooper и все заработает! :P

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

Author:  Kynep [ 2007-12-21 17:27:13 ]
Post subject: 

Mihail wrote:
если в журнале записи об имени элемента не было то getname не сработает...

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

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


По поводу первого и второго предложений:
Code:
if uo.InJournal('Elemental') then 


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

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

Или я не прав?

(исправил)

Author:  Mihail [ 2007-12-21 19:10:20 ]
Post subject: 

блин вот из-за какой-то фигни прямо дискуссию надо разводить...
на элементалях ДРВ мир клином не сошелся - правильнее учить ньюбов использовать функцию uo.getname только после функции uo.click

Author:  Kynep [ 2007-12-21 20:07:54 ]
Post subject: 

Mihail wrote:
блин вот из-за какой-то фигни прямо дискуссию надо разводить...
на элементалях ДРВ мир клином не сошелся - правильнее учить ньюбов использовать функцию uo.getname только после функции uo.click


Не говори :D

Вот кстати еще примерчик, смотри и додумывай сам:
Code:
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

Author:  kexwer [ 2007-12-23 09:13:31 ]
Post subject: 

Ну вроде разобрался , вроде работает =)
Вот что получилось!

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

Author:  Kynep [ 2007-12-23 09:27:21 ]
Post subject: 

kexwer wrote:
Ну вроде разобрался , вроде работает =)
Вот что получилось!

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


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

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/