Просьба ... с определением появившегося чара на экране ...

Anything and all.

Moderators: Murderator+, Murderator

Lesnik
Posts: 34
Joined: 2006-04-18 14:34:42
Location: Березники
Contact:

Просьба ... с определением появившегося чара на экране ...

Post by Lesnik »

Умные люди ... Нужен кусок скрипта, который будет определять, что на экране появился другой чар ... и затем выполнять что то дальше ... Что то дальше я знаю ... Незнаю как определить появление чара! ...
Просьба помочь ...
My Game is Ultima online on DRW!
Lesnik
Posts: 34
Joined: 2006-04-18 14:34:42
Location: Березники
Contact:

Post by Lesnik »

Просьба учесть еще то что сижу по gprs так что лагаю, и шард DRW. Заранее спасибо.
My Game is Ultima online on DRW!
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Возвращает 1 если обнаружит чара.

Code: Select all

Sub Scan()
#################
var i
 Dim scan[2]
  scan[1] = '0x0190'   ; мужик
  scan[2] = '0x0191'   ; баба         
  uo.set( 'finddistance', '14' )
    for i = 1 to 2
       uo.findtype( scan[i], '-1', 'ground' )
           if uo.findcount() then
             return 1        
           endif
    next
  return 0
endsub


З.Ы.
Это же надо таким извращенцем быть, чтобы в УО через gprs играть :)
Lesnik
Posts: 34
Joined: 2006-04-18 14:34:42
Location: Березники
Contact:

Post by Lesnik »

условие в моем скрипте как прописать?

if [условие] then [следующее действие]

условие?

1 скрипт чему возвращает переменной i?
My Game is Ultima online on DRW!
Lesnik
Posts: 34
Joined: 2006-04-18 14:34:42
Location: Березники
Contact:

Post by Lesnik »

кстати а не получиться так что скрипт будет находить и моего чара и выполнять следующее действие? мне нужно только других чаров.
My Game is Ultima online on DRW!
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

пропиши гденить в начале основного скрипта

Code: Select all

uo.ignore('self')

А теперь чтобы проверять наличине чаров:

Code: Select all

 if Scan() == 1 then
    ; тут твои действия
 endif
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Code: Select all

Sub Scan() 
#################
var i
Dim scan[2]
   scan[1] = '0x0190'   ; ìóæèê
   scan[2] = '0x0191'   ; áàáà         
   uo.set( 'finddistance', '14' )
   uo.ignore("self", "on")
   for i = 1 to 2
            uo.findtype( scan[i], '-1', 'ground' )
                 if uo.findcount() then
         uo.ignore("self", "off")
                   return 1         
                 endif
       next
   uo.ignore("self", "off")
     return 0
end sub

В случаи 1 можно воспользоватсяуказателем finditem
Lesnik
Posts: 34
Joined: 2006-04-18 14:34:42
Location: Березники
Contact:

Post by Lesnik »

этот скрипт не работает ... у меня был вариант с элементарным расхайдом, т.е. как токо меня расхайдили .... улетаю по рунке в дом и то под присмотром ни разу не умер ... с вашим скриптом уже 2 раза умер ... просьба предложить другие варианты .....

Суть: стою в хайде копаю .... при появлении любого чара ... улетаю по рунке ... весь скрипт писать ненадо ... нужен токо кусок отвечающий за поиск появившего чара!

Заранее спасибо! ...

P.S. желательно чтобы в момент появления чара я уже кастовал рекол ...
My Game is Ultima online on DRW!
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Как убивают то? если чары в полиморфе то не уувидишь...
если с большой дистанции бъют то увеличь файнд дистенс...
а вообще можно превязаться к инджорналу
Lesnik
Posts: 34
Joined: 2006-04-18 14:34:42
Location: Березники
Contact:

Post by Lesnik »

в том то все и дело .... что убивать могут как угодно ... но перед тем как убить они же появляются на экране ... вот мне и нужет скрипт при котором при появлении кого бы то ни было мой чар срывался по рунке ...
My Game is Ultima online on DRW!
Lesnik
Posts: 34
Joined: 2006-04-18 14:34:42
Location: Березники
Contact:

Post by Lesnik »

сейчас стоит элементарная привязка нa if UO.InJournal('revealed') then .... улетаю, хотел сделать на You see ... почему то не работает ... видимо эти слова не входят в инжурнал ... хотя в журнале пишуться ...
My Game is Ultima online on DRW!
SLAK
Posts: 182
Joined: 2005-08-19 16:12:23
Contact:

Post by SLAK »

Lesnik wrote:сейчас стоит элементарная привязка нa if UO.InJournal('revealed') then .... улетаю, хотел сделать на You see ... почему то не работает ... видимо эти слова не входят в инжурнал ... хотя в журнале пишуться ...

Code: Select all

   IF Uo.InJournal(" ",1) and str(Uo.IsNPC(Uo.JournalSerial(0)))=="1" then 
Lesnik
Posts: 34
Joined: 2006-04-18 14:34:42
Location: Березники
Contact:

Post by Lesnik »

SLAK если не трудно поясни написанное ... что есть что ...
My Game is Ultima online on DRW!
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Да и мне тоже интересно что за второй парамтер в InJournale...
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Code: Select all

#################
; Модуль сканирования.
Sub Scan()
#################
  var i, j, Rser
  var time = uo.time()
   var a1 = 'man'
   var a2 = 'woman'
   var a3 = 'ophidian warrior'
   var a4 = 'deamon'
   var a5 = 'dragon'
   var a6 = 'Quas' 
     Dim scan[5]
     scan[1] = '0x0190'   ; мужик
     scan[2] = '0x0191'   ; баба
     scan[3] = '0x0056'   ; орфидиан
     scan[4] = '0x0009'   ; демон
     scan[5] = '0x000C'   ; дракон
    j = 0   
      for i = 1 to 5
        uo.findtype( scan[i], '-1', 'ground' )
          if uo.findcount() then         
               Rser = uo.getserial( 'finditem' )
               uo.textprint( time, 'Нападение! Id: ' , Rser, 'Имя: ' , uo.getname(Rser))
               j = 1                  
          endif
      next     
    if j == 1 or \
      uo.injournal( a1 ) or \
      uo.injournal( a2 ) or \
      uo.injournal( a3 ) or \
      uo.injournal( a4 ) or \
      uo.injournal( a5 ) or \
      uo.injournal( a6 )    \
    then
      uo.playwav('alarm.wav')   
      uo.print( 'Alarm!!!' )   
      return 1
    else
      return 0
    endif   
endsub
SLAK
Posts: 182
Joined: 2005-08-19 16:12:23
Contact:

Post by SLAK »

Украл данное творение с чьегото скрипта(Дон Спила кажись). Что значит второй параметр самому интересно, но всегда работало.
Условие ищет в журнале пробел(А он наверно во всех ситемных месагах есть) и проверяет породило ли это сообщение живое существо, сюда только добавь игнорить свои месаги и всё тип-топ будит. Я использую подобную конструкцию в гвардилках обычно.
ЗЫ: Нада включить ТВИ иначе непашет :wink:
SLAK
Posts: 182
Joined: 2005-08-19 16:12:23
Contact:

Post by SLAK »

Нашёл тот топик, Автор Дон Спил, но он отозвал скрипт(стёр). Нашёл скрипт(выложу только интересующую нас функцию) у себя на компе(by Don SpiL):

Code: Select all

sub Control() 
VAR Enemy,msg,Name_Of_Killer
uo.setglobal("stop","no")
While 1==1
   IF Uo.InJournal(" ",1) and str(Uo.IsNPC(Uo.JournalSerial(0)))=="1" then #
      msg=UO.Journal(0)
      Enemy=Uo.JournalSerial(0)
      Name_Of_Killer=Uo.GetName(Enemy)
   IF Uo.GetNotoriety(Enemy)==6 or Uo.GetNotoriety(Enemy)==5 or Uo.GetNotoriety(Enemy)==4 or Uo.InJournal("elemental")

or Uo.InJournal('reaper') or uo.injournal("is attacking you") then
      IF Name_Of_Killer<>Masta and Name_Of_Killer<>"Freeman" and Name_Of_Killer<>"Koldun" and

Name_Of_Killer<>"Zhoporvatel" and Name_Of_Killer<>"fG" and Name_Of_Killer<>"Flatra" then
                 Uo.deletejournal()
                  rectohome(Name_Of_Killer)#Сваливаем домой
                  else
                  uo.say(Name_Of_Killer)
                  uo.say("Privet ot"+" "+Masta)
                  Uo.deletejournal()
                  wait(200)
      end IF
   end IF
            If msg==(Masta+":"+" "+"stop makr") then
      uo.exec("terminate all")
            end if
         Uo.deletejournal()
        wait(200)
      end IF
   wait(200)
   wend
end sub
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Меня просто поражает манера написания скрипта:

Code: Select all

str(Uo.IsNPC(Uo.JournalSerial(0)))=="1" then#

Code: Select all

Uo.IsNPC(Uo.JournalSerial(0)) then


Code: Select all

IF Uo.GetNotoriety(Enemy)==6 or Uo.GetNotoriety(Enemy)==5 or Uo.GetNotoriety(Enemy)==4

Code: Select all

IF Uo.GetNotoriety(Enemy) > 3
SLAK
Posts: 182
Joined: 2005-08-19 16:12:23
Contact:

Post by SLAK »

Аффтар скрипта не я, ГетНоториети я как и ты пишу :wink:
И ваще щас более интересно, что значит второй параметр в uo.InJournal(str,1)
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

SLAK wrote:Аффтар скрипта не я, ГетНоториети я как и ты пишу :wink:
И ваще щас более интересно, что значит второй параметр в uo.InJournal(str,1)

Нету второго параметра, а его подстановка не несёт никакой пользы.
Post Reply