Yoko

All sides of Injection
It is currently 2024-04-19 01:57:27

All times are UTC+02:00




Post new topic  Reply to topic  [ 20 posts ] 
Author Message
PostPosted: 2004-04-23 09:31:29 
Offline

Joined: 2004-04-12 13:16:17
Posts: 51
Люди, суть в том что я плаваю на лодке хочу сделать так что если меня атакует какаято гадость--то я отаковал её и запустил следовательно боевой скрипт с хиллингом.
Мне нужно пару или не пару строк))) чтобы он Атаковал ту гадость которая нападает!!! ПРоблема в том что Надпись в журнале я так понимаю должна быть последней или как?


Top
   
PostPosted: 2004-04-23 14:15:11 
Offline
User avatar

Joined: 2004-04-06 12:27:32
Posts: 118
Лучше сделать проверку журнала после каждого броска удочки, тоесть если в журнале появиться например You see a sea serpent тогда написать так
if UO.InJournal('You see a sea serpent ') then
killit()
endif
и тут уже пишешь скрипт атаки с хилингом.
Не забывай удалять журнал, а то он будет каждый раз находить You see a sea serpent эту фразу и пытаться найти монстра...воть


Top
   
PostPosted: 2004-04-23 14:58:43 
Offline

Joined: 2004-04-12 13:16:17
Posts: 51
Сенкс.
а удалять журнал в конце боя?


Top
   
PostPosted: 2004-04-23 15:35:14 
Offline
User avatar

Joined: 2004-04-06 12:27:32
Posts: 118
Журнал лучше чистить при любом удобном случае, главеное не переусердствовать
вот тебе пример скрипта атаки
тоесть когда у меня в журнале типа что я выловил си монстра у мя идёт скрипт атаки, вот он сам

Code:
sub killsea()

   VAR LastTimer, Sea
   
   UO.UnSetcatchbag()
   LastTimer=UO.Timer()

   UO.UseType('0x1B76') ; Heater
   wait(1000)
   UO.UseType('0x13FF') ; Kryss
   wait(500)

   UO.DeleteJournal()
   UO.Exec('warmode 1')

   UO.FindType('0x0096',-1,'ground')
   Sea=UO.GetSerial('finditem')
   UO.Attack(Sea)
   repeat
      wait(1000)
      If UO.Life<90 Then
      repeat
         UO.Bandageself()
         wait(700)
         UO.UseType('0x1B76') ; Heater
         wait(1000)
         UO.UseType('0x13FF') ; Kryss
         wait(2500)
         UO.Attack(Sea)
      until UO.Life>=115
      Endif

; так много повторов атаки потому что монстр имеет привычку уплывать когда его подкоцаеш малёха
   until UO.IsNPC(Sea)==0
   wait(3000)


   UO.Attack(Sea)
   UO.FindType('0x0096',-1,'ground') ; ищет тип монстра
   If UO.GetQuantity('finditem')>0 Then ; если его больше нуля
      wait(500)
      UO.Attack(Sea)
      killsea()
   Endif

   UO.Exec('warmode 0')
   wait(1000)

   UO.Print("Sdoh skotina!")
   UO.SetEasyUO(99,'0')

   LastTimer=UO.Timer()
   if UO.Life<119 then
      repeat
         UO.BandageSelf()
         wait(4000)
                   until UO.Life>119 OR LastTimer+300<UO.Timer()

   UO.Print("Killing Done!")

end sub


воть тебе пример. но он под мой шард, тебе наверно не подойдёт. но сама идея >>>


Top
   
PostPosted: 2004-04-23 15:42:26 
Offline

Joined: 2004-04-12 13:16:17
Posts: 51
хых) круто написано)) но я новичёк)) я геморойно но уверенно делаю простенькие скрипты)
поэтому вопрос!
Как Встать в ВАР мод и потом как выйти из него!???
И как сделать чтоб он атаковал то что выловит(сиа серпент ватер элементаль и т.д.)
UO.Exec('warmode 1')
UO.Exec('warmode 0')
так понял это и есть в вар мод и из вара.
Тока остаётся чтоб он именно атакавал монстра.
а вот монстра как обозначить?
просто имя его?
Или узнать его TYPE и через findType потом атаковать?


Top
   
PostPosted: 2004-04-23 16:30:48 
Offline
User avatar

Joined: 2004-04-06 12:27:32
Posts: 118
sub killsea()

VAR Sea - даём имя переменной

UO.UnSetcatchbag() ; отменяем приёмный контейнер,на всякий, в моём скрипте надо

UO.UseType('0x1B76') ; Heater берём оружие и щит
wait(1000)
UO.UseType('0x13FF') ; Kryss
wait(500)

UO.DeleteJournal() ; чистим журнал
UO.Exec('warmode 1') ; идём в вар мод

UO.FindType('0x0096',-1,'ground') ; ищем на земле(ground) предмет типа 0x0096 с цветом -1 (тоесть любой)
Sea=UO.GetSerial('finditem') присваиваем к Sea сериал найденной вещи (команда на 1 выше) чтобы далее атаковать её. Тоесть атаковать си монстра
UO.Attack(Sea) ; непосредсвенно атакуем его
repeat ; повторять действие (надо указать сколько раз, либо ДО чего. У мя до смерти монстра)
wait(1000) пауза
If UO.Life<90 Then если жизни менее 90 идёт лечение
repeat повторять лечение до жизи более 115
UO.Bandageself() - лечить себя
wait(700)
UO.UseType('0x1B76') ; Heater щит
wait(1000)
UO.UseType('0x13FF') ; Kryss меч
wait(2500)
UO.Attack(Sea) атака монстра
until UO.Life>=115 закрытие repeat(повтора) условие его закрытия
Endif закрытие Если(if)


until UO.IsNPC(Sea)==0 закрытие repeat'a . Тоетсь когда НПЦ с сериал номером (который мы ваще брали) не существует, тоесть его ноль, то повтор закрываеться
wait(3000)


UO.Attack(Sea) атака монстра
UO.FindType('0x0096',-1,'ground') поиск монстра по типу
If UO.GetQuantity('finditem')>0 Then если нашёл больше нуля
wait(500) то
UO.Attack(Sea) атака опять его
killsea()
Endif закрытие если, если монстра ноль, то идёт далее, что ниже

UO.Exec('warmode 0') выключение вара
wait(1000)

UO.Print("Sdoh skotina!") уо пишет что монстр умер
loot() это скрипт лута, у меня свой...
wait(3000)


if UO.Life<119 then "если" жизни мало, лечиться до 119 хп (120 у меня максимум)
repeat
UO.BandageSelf() лечение
wait(4000)
until UO.Life>119 условие закрытия репита
endif конец "Если"
UO.DeleteJournal() чистка журнала
UO.Press(118) - F8 кнопка в УО забиндена на CloseGumps, тоесть закрытие всех открытых гампов, тоесть Папердол, корпус монстра итд чтобы не мешали рыбачить потом. Но если труп не открыт то это не зачем
UO.Print("Killing Done!") Уо пишет - всё круто =)
end sub конец

надеюсь более менее понятно.
зы. Я сам инжект неделю всего юзаю. Если что не так ,прошу не ругать!


Top
   
PostPosted: 2004-04-23 19:37:48 
Offline

Joined: 2004-04-12 13:16:17
Posts: 51
Слух! спасиб огромное здорово расписал!
Буду химичить)))
Часть у тебя возьму)))
Ещё раз спасибо!
Кое-что нового узнал!


Top
   
PostPosted: 2004-04-23 23:23:31 
Offline

Joined: 2004-04-12 13:16:17
Posts: 51
Слух вот сделал а терь не запускается, где-то крутая ошибка!!!!


#sub killsea()
#VAR Sea
#UO.Arm ("1") #òóò áóäåò ìå÷
#UO.DeleteJournal()
#UO.Exec('warmode 1')
#UO.FindType('0x0096',-1,'ground')
#Sea=UO.GetSerial('finditem')
#UO.Attack(Sea)
#repeat
#wait(1000)
#if UO.Heal<=75 then
#UO.Bandageself()
#wait(200)
#UO.Arm ("1")
#wait(3000)
#UO.Attack(Sea)
#Until UO.Life>=100
#endif

#Until UO.IsNPC(Sea)==0
#Wait(3000)

#UO.Attack(Sea)
#UO.FindType('0x0096',-1,'ground')
#If UO.GetQuantity('finditem')>0 Then
#Wait(500)
#UO.Attack(Sea)
#killsea()
#Endif

#UO.Exec('warmode 0')
#wait(1000)

#if UO.Life<114 then
#repeat
#UO.BandageSelf()
#wait(4000)
#until UO.Life>114
#endif
#UO.DeleteJournal()
#UO.Arm ("2") #òóò áóäåò óäî÷êà
#endsub


Top
   
PostPosted: 2004-04-23 23:33:21 
Offline
User avatar

Joined: 2004-04-06 12:27:32
Posts: 118
#repeat
#wait(1000)
#if UO.Heal<=75 then
#UO.Bandageself()
#wait(200)
#UO.Arm ("1")
#wait(3000)
#UO.Attack(Sea)
#Until UO.Life>=100
#endif

#Until UO.IsNPC(Sea)==0
#Wait(3000)


вот этот момент
У тебя не хватает одного Репита, который надо вставить тут
#if UO.Heal<=75 then
ТУТ
#UO.Bandageself()
чтобы повторялось лечение до #Until UO.Life>=100
вроде так


Top
   
 Post subject: no UO.Heal
PostPosted: 2004-04-24 07:51:21 
Offline
User avatar

Joined: 2004-04-17 23:02:41
Posts: 48
Location: Odessa, Ukraine
try using UO.Life

Искренне Ваш, Тотус Маньяковски.

_________________
...thinking - 37% complete...


Top
   
 Post subject: Re: no UO.Heal
PostPosted: 2004-04-24 10:40:32 
Offline

Joined: 2004-04-12 13:16:17
Posts: 51
Такс Это исправил, всё равно....
#Until UO.IsNPC(Sea)==0
#Wait(3000)
как тока это удалил сразу скрипт стал ВКЛЮЧАТЬСЯ! раньше не включался вооще.
у меня вопрос какой блок репита он закрывает???
т.к. там выше

repeat
wait(1000)
if UO.Life<=75 then
UO.Bandageself()
wait(200)
UO.Arm ("1")
wait(3000)
UO.Attack(Sea)
Until UO.Life>=100

Вот репеат закрыт!
а следующие эти две строчки! что они закрывают то?


Top
   
 Post subject: Re: no UO.Heal
PostPosted: 2004-04-24 10:41:27 
Offline

Joined: 2004-04-12 13:16:17
Posts: 51
блин я слепой ты написал а я тормоз! ща вставлю!]


Top
   
 Post subject: Re: no UO.Heal
PostPosted: 2004-04-24 11:38:01 
Offline

Joined: 2004-04-12 13:16:17
Posts: 51
Последний вопрос!
UO.FindType('0x0096',-1,'ground') ; ищем на земле(ground) предмет типа 0x0096 с цветом -1 (тоесть любой)

Это тип СИА серпент? Если да то тогда мне придётся ещё делать ТИП ВАТЕР элементаля и Скелета Кинга!
Или это пофиг чо?


Top
   
 Post subject: Re: no UO.Heal
PostPosted: 2004-04-24 12:10:41 
Offline
User avatar

Joined: 2004-04-06 12:27:32
Posts: 118
это мой тип си серпента, на твоём шарде он может быть другой. я ждал пока выловлю скелета или елементаля, потом узнавал их тип ,info и делал 3 скрипта под каждого монстра. и когда у мя в журнале было типа Вы выловили скелета у мя шло killskeletal если монстра killelem итд


Top
   
 Post subject: Re: no UO.Heal
PostPosted: 2004-04-24 12:45:45 
Offline

Joined: 2004-04-12 13:16:17
Posts: 51
Слух работает.
Тока Трабл!
Until UO.IsNPC(Sea)==0
он не обращает внимание на это , тобиш он подлечился и давай дальше скрипт считывать........
ТОбиш перестаёт драться...
Я заблочил эту строчку, тогда он полностью убивает тварь.
но конешно дальше потом не ловит.


repeat
UO.Attack(Sea)
wait(1000)
While UO.Life<=90
UO.Bandageself()
wait(200)
UO.Arm ("1")
wait(3000)
UO.Attack(Sea)
Wend
#Until UO.IsNPC(Sea)==0
Wait(1000)

Короче я сделал чтоб он лечился пока хитов у него меньше либо равно 90, так удобнее
Как видеш цикл РЕПЕАТ тока 1 остался.
И надо чтоб он останавливался на #Until UO.IsNPC(Sea)==0
но он как бы забивает на хто МОЛ 0 этих штук и дальше читает скрипт!!?
Чо делать?


Top
   
 Post subject: Re: no UO.Heal
PostPosted: 2004-04-24 12:57:14 
Offline

Joined: 2004-04-12 13:16:17
Posts: 51
Until UO.IsNPC(Sea)==0 может надо не так а
Until UO.IsNPC('Sea')==0 так сделать?


Top
   
 Post subject: Re: no UO.Heal
PostPosted: 2004-04-24 16:30:01 
Offline

Joined: 2004-04-12 13:16:17
Posts: 51
#=======> Áîé íà ëîäêå SEA
sub killsea()
VAR Sea
UO.Arm ("1") #òóò áóäåò ìå÷
UO.DeleteJournal()
UO.Exec('warmode 1')
UO.FindType('0x0096',-1,'ground')
Sea=UO.GetSerial('finditem')

repeat
UO.Attack(Sea)
wait(1000)
While UO.Life<=90
UO.Bandageself()
wait(200)
UO.Arm ("1")
wait(3000)
UO.Attack(Sea)
Wend
#Until UO.IsNPC(Sea)==0
#Wait(1000)

UO.Attack(Sea)
UO.FindType('0x0096',-1,'ground')
#If UO.GetQuantity('finditem')>0 Then
if UO.FindCount()>0 and Uo.GetDistance("finditem")<=2 then
Wait(1000)
UO.Attack(Sea)
killsea()
Endif
Until UO.Life<90


UO.Exec('warmode 0')
wait(1000)

if UO.Life<104 then
repeat
UO.BandageSelf()
wait(3000)
until UO.Life>104
endif


UO.DeleteJournal()
UO.Arm ("2") #òóò áóäåò óäî÷êà
endsub


Короче ипался ипался я ВОТ так заработала!
Да кстате ТИП СИА серпент у нас совпадает дай плиз ТИП ВАТЕР элементаля и Скелета!


Top
   
 Post subject:
PostPosted: 2004-04-24 18:54:12 
Offline
User avatar

Joined: 2004-04-08 16:06:21
Posts: 29
лучше узнай их командой инфо: ,info
так не ошибешься -)


Top
   
 Post subject:
PostPosted: 2004-04-24 22:32:52 
Offline

Joined: 2004-04-12 13:16:17
Posts: 51
Вот тока незагвоздка)) выловить их надо для началу!
А потом всёравно фигня в конце зацикливается и постоянно берёт удочку вруки и так безконечно*(((
вот полный код


sub killsea()
VAR Sea
UO.Arm ("1")
UO.DeleteJournal()
UO.Exec('warmode 1')
UO.FindType('0x0096',-1,'ground')
Sea=UO.GetSerial('finditem')

Kill:

repeat
UO.Attack(Sea)
wait(3000)
While UO.Life<=90
UO.Bandageself()
wait(200)
UO.Arm ("1")
wait(3000)
UO.Attack(Sea)
Wend
#Until UO.IsNPC(Sea)==0 -эта бяка неработает!!!!!!!!!!!!!!!!!!!!!!!!!!
#Wait(1000)

UO.FindType('0x0096',-1,'ground')
if UO.FindCount()>0 and Uo.GetDistance("finditem")<=2 then
Wait(3000)
Goto Kill
Endif
Until UO.Life>90


UO.Exec('warmode 0')
wait(1000)

if UO.Life<104 then
repeat
UO.BandageSelf()
wait(3000)
Until UO.Life>104
endif

UO.DeleteJournal()
Wait(1000)
UO.DisArm ("1")
Wait(2000)
endsub


Top
   
 Post subject:
PostPosted: 2004-04-25 00:18:56 
Offline
User avatar

Joined: 2004-04-06 12:27:32
Posts: 118
Code:
sub killsea()

   VAR LastTimer, Sea
   
   UO.UnSetcatchbag()
   LastTimer=UO.Timer()

   UO.UseType('0x1B76') ; Heater
   wait(1000)
   UO.UseType('0x13FF') ; Kryss
   wait(500)

   UO.DeleteJournal()
   UO.Exec('warmode 1')

   UO.FindType('0x0096',-1,'ground')
   Sea=UO.GetSerial('finditem')
   UO.Attack(Sea)
   repeat
      wait(1000)
      If UO.Life<90 Then
      repeat
         UO.Bandageself()
         wait(700)
         UO.UseType('0x1B76') ; Heater
         wait(1000)
         UO.UseType('0x13FF') ; Kryss
         wait(2500)
         UO.Attack(Sea)
      until UO.Life>=115
      Endif


   until UO.IsNPC(Sea)==0
   wait(3000)


   UO.Attack(Sea)
   UO.FindType('0x0096',-1,'ground')
   If UO.GetQuantity('finditem')>0 Then
      wait(500)
      UO.Attack(Sea)
      killsea()
   Endif

   UO.Exec('warmode 0')
   wait(1000)

   UO.Print("Sdoh skotina!")
   UO.SetEasyUO(99,'0')
   loot()
   wait(3000)

   LastTimer=UO.Timer()
   if UO.Life<119 then
      repeat
         UO.BandageSelf()
         wait(4000)
      until UO.Life>119 OR LastTimer+300<UO.Timer()
   endif
   UO.DeleteJournal()
   UO.Press(118)
   UO.Print("Killing Done!")
end sub


вот всё работает. Втсавь только своё оружие...
0x0096 - a deep sea serpent
0x0038 - скелет с топором
0X0032 - скелет без всего
0x0096 - a sea serpent
0x0010 - a water elemental


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 20 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 47 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited