И снова прощу помощи.)

Ask for help

Moderators: Murderator+, Murderator

Post Reply
MacTepeo
Posts: 52
Joined: 2007-04-14 16:11:34
Location: Москоу
Contact:

И снова прощу помощи.)

Post by MacTepeo »

итак, снова озадачил себя -)
суть проблемы:
щас бегаю на шарде, где люди активно используют скрытие каста, причем есть много вариаций
1) uo.msg(' ') три раза - самя простая.
2) uo.msg(' An Ex Por') - с разными вариациями
3) спам uo.msg(' An Ex Por') с разными цветами, которые могут совпадать с цветом обычных кастов. + с разной последовательностью.

вобщем пытался найти решение:

Code: Select all

sub DetectCast()
uo.DeleteJournal()
var i,EnemyMag,H1,H2,EnName,color
EnemyMag = '0x0000000'
Dim Cast[39]
Cast[1]='Uus Jux'
Cast[2]='Rel Wis'
Cast[3]='In Por Ylem'
Cast[4]='Des Mani'
Cast[5]='Uus Sanct'
Cast[6]='In Nox'
Cast[7]='Rel Por'
Cast[8]='In Sanct Ylem'
Cast[9]='Vas Uus Sanct'
Cast[10]='Des Sanct'
Cast[11]='In Flam Grav'
Cast[12]='Por Ort Grav'
Cast[13]='Ort Rel'
Cast[14]='Kal Ort Por'
Cast[15]='An Grav'
Cast[16]='Kal In Ex'
Cast[17]='In Jux Sanct'
Cast[18]='Por Corp Wis'
Cast[19]='An Ex Por'
Cast[20]='In Nox Grav'
Cast[21]='Kal Xen'
Cast[22]='An Ort'
Cast[23]='Corp Por'
Cast[24]='Vas Ort Flam'
Cast[25]='An Lor Xen'
Cast[26]='In Ex Grav'
Cast[27]='Wis Quas'
Cast[28]='Vas Ort Grav'
Cast[29]='In Sanct Grav'
Cast[30]='Kal Vas Flam'
Cast[31]='Vas Rel Por'
Cast[32]='Ort Sanct'
Cast[33]='Vas An Ort'
Cast[34]='Flam Kal Des Ylem'
Cast[35]='In Vas Por'
Cast[36]='Vas Corp Por'
Cast[37]='An Corp'
Cast[38]='Agr'
While 1 > 0
 for i=1 to 38
  if UO.InJournal(Cast[i]) then
  if uo.journalcolor(uo.injournal(Cast[i]))=='0x03B2' then

   EnemyMag = UO.JournalSerial(UO.InJournal(Cast[i]))
  H1 = uo.GetSerial(EnemyMag)
  H2 = uo.GetSerial('laststatus')
  EnName = uo.GetName('laststatus')
  if H1 == H2 then
   uo.charprint('0x002d',"*" + Cast[i] + "*")
   UO.DeleteJournal()
  endif
  endif
endif
 next
 wait(100)
wend
end sub
 


но скрипт почти не выдает сообщения кастов, тоесть шансы сдетектить каст ~30% причем я так и не понял от чего это зависит.

суть проблемы : заставить скрипт выдавать сообщения произносимые именно персонажем, а не скриптами хозяина. пробовал тупо фильтровать по цвету, но получалось не эффективно.
korzh
Posts: 220
Joined: 2007-04-26 23:35:15

Post by korzh »

Code: Select all

  if uo.journalcolor( uo.injournal( Cast[i] ) - 1 ) == '0x03B2' then 
  EnemyMag = UO.JournalSerial( UO.InJournal( Cast[i] ) - 1 )

ЗЫ читаем хелп по команде uo.injournal()
MacTepeo
Posts: 52
Joined: 2007-04-14 16:11:34
Location: Москоу
Contact:

Post by MacTepeo »

почитал.. не понял.)
korzh
Posts: 220
Joined: 2007-04-26 23:35:15

Post by korzh »

Описание: InJournal •

Синтакс: number uo.InJournal(text)
Тема: Команды скриптов Ключевые слова: uoscript, journal

Ищет в журнале Injection строку, в которой встречается text, и возвращает её номер плюс 1, или возвращает 0 если такая строка с момента последнего удаления журнала DeleteJournal не обнаружена. Номер может быть использован в дальнейшем для функций Journal, JournalSerial, SetJournalLine (не забыть отнять единицу).
Post Reply