Yoko

All sides of Injection
It is currently 2025-12-04 01:25:42

All times are UTC+02:00




Post new topic  Reply to topic  [ 14 posts ] 
Author Message
 Post subject: Хелп с ПВМ
PostPosted: 2006-11-08 01:13:11 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
Пробовал написать скрипт на догонялку мобов и их килл, чтот никак.
Нужно чтоб подошол к мобу 0х0000 в плотную и убил его. Да и финдистанс максимум чтоб
(тоесть не только если моб рядом). Если кому не сложно, подскажите пожалуйста.

_________________
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog


Top
   
 Post subject:
PostPosted: 2006-11-08 02:12:46 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
Помогите хотябы немного переделать готовый. Просто нужно чтоб после убийства 1 зверюшки скрипт вырубалсябы.

Code:
sub Attack() 
uo.set('finddistance','10')
DIM R[5]
R[1] = 0x0006 # Тип зверя.
R[2] = 0x0006
R[3] = 0x0006
R[4] = 0x0006
R[5] = 0x0006
VAR LastTimer, Attack
var a
repeat
for a=1 to 5
UO.DeleteJournal()
UO.FindType(R[a],-1,'ground')
if UO.FindCount("finditem")>0 then
Attack=UO.GetSerial('finditem')
UO.Exec('warmode 1')
UO.Attack(Attack)
WalkN(0,0,Attack)
LastTimer=UO.Timer()
repeat
wait(2000)
until uo.dead(Attack) or UO.InJournal('Body') OR LastTimer+150<UO.Timer()
endif
wait(500)
next
wait(200)
until uo.dead()
end sub

sub Ranger()
var skin = 1; êà÷àòü ñêèíèíã
var loot = 0; ëóòèòü òåëî
var loop = 1; àâòîìàò
var dagger = 0x0F51
var body

UO.DeleteJournal()
repeat
repeat
wait(100)
until UO.InJournal("Body of")
body = UO.JournalSerial(UO.InJournal("Body of")-1)
UO.DeleteJournal()
if skin then
if UO.GetDistance(body) <= 2 then
UO.WarMode(0)
UO.SetArm('skin')
UO.WaitTargetObject(body)
UO.UseType(dagger)
wait(1000)
else
endif
UO.WarMode(0)
UO.SetArm('skin')
UO.WaitTargetObject(body)
UO.UseType(dagger)
wait(1000)
endif

if loot then
if UO.GetDistance(body) <= 2 then
F_Loot()
else
endif
endif

if skin then
UO.Arm('Weapon')# Íàäåíüòå îðóæèå áëèæíåãî áîÿè ââåäèòå ñëîâà ,setarm Weapon
endif
UO.WarMode(1)
until not loop
endsub


sub F_Loot()
DIM R[14]
var c
R[1]=0x0df8; øåðñòü
R[2]=0x1078; êîæà
R[3]=0x0EED; äåíüãè
R[4]=0x09AA; ïàíäîðû
R[5]=0x0F85; GI
R[6]=0x0F7B; BM
R[7]=0x0F8C; SA
R[8]=0x0F7A; BP
R[9]=0x0F84; GA
R[10]=0x0F88; NS
R[11]=0x0F8D; SS
R[12]=0x0F86; MR
R[13]=0x1BD1; ïåðüÿ
R[14]=0x0F8F; Volcanic Ash

for c=1 to 14
repeat
uo.findtype(R[c],"-1","lastcorpse")
if UO.FindCount()>0 and Uo.GetDistance("lastcorpse")<=4 then
UO.Grab("0","finditem")
wait(1200)
end if
until UO.FindCount()<1
wait(10)
next
endsub

sub Numb(num)
if num>=0 then
return num
else
return num*(-1)
end if
end sub

sub WalkN(x,y,Target)
VAR i,StepSucess
VAR dx,dy,Exit=0

While Exit<>1
If Target<>"" Then
dx=UO.GetX(Target)-UO.GetX()
dy=UO.GetY(Target)-UO.GetY()
If UO.GetDistance(Target)<2 Then
Exit=1
Endif
Else
dx=x-UO.GetX()
dy=y-UO.GetY()
If dx==0 AND dy==0 Then
Exit=1
Endif

Endif

If dx<>0 AND dy<>0 Then
If dx>0 AND dy>0 Then
StepSucess=Go(3,40,300);SE - DownArrow
Endif

If dx>0 AND dy<0 Then
StepSucess=Go(1,39,300);NE - RightArrow
Endif

If dx<0 AND dy>0 Then
StepSucess=Go(5,37,300);SW - LeftArrow
Endif

If dx<0 AND dy<0 Then
StepSucess=Go(7,38,300);WN - UpArrow
Endif

Endif

If dx<>0 AND dy==0 Then
If dx>0 Then
StepSucess=Go(2,34,300);E - PgDown
If StepSucess==-1 Then
StepSucess=Go(3,40,300);SE - DownArrow
If StepSucess==-1 Then
StepSucess=Go(1,39,300);NE - RightArrow
Endif
Endif
Endif

If dx<0 Then
StepSucess=Go(6,36,300);W - Home
If StepSucess==-1 Then
StepSucess=Go(7,38,300);WN - UpArrow
If StepSucess==-1 Then
StepSucess=Go(5,37,300);SW - LeftArrow
Endif
Endif
Endif
Endif


If dx==0 AND dy<>0 Then
If dy>0 Then
StepSucess=Go(4,35,300);S - End
If StepSucess==-1 Then
StepSucess=Go(3,40,300);SE - DownArrow
If StepSucess==-1 Then
StepSucess=Go(5,37,300);SW - LeftArrow
Endif
Endif
Endif

If dy<0 Then
StepSucess=Go(0,33,300);N - PgUp
If StepSucess==-1 Then
StepSucess=Go(7,38,300);WN - UpArrow
If StepSucess==-1 Then
StepSucess=Go(1,39,300);NE - RightArrow
Endif
Endif
Endif
Endif
Wend
end sub


sub Go(dir,key,walkwait)
VAR x,y

x=UO.GetX()
y=UO.GetY()

while UO.GetDir()<>dir
UO.Press(key)
wait(walkwait)
If UO.GetDir()<>dir Then
Endif
wend

UO.Press(key)
wait(walkwait)

If x==UO.GetX() AND y==UO.GetY() Then
Endif

If x==UO.GetX() AND y==UO.GetY() Then
return -1
Else
return 1
Endif
end sub

_________________
ДРВ

Spoiler

_________________

Антарес

Spoiler|Gostrabaiter|Umhra|Slog


Top
   
 Post subject:
PostPosted: 2006-11-08 07:47:55 
Offline
Expert!
User avatar

Joined: 2005-09-14 15:31:58
Posts: 2152
Location: Latvia
отвечу по теме...
Code:
if uo.injournal('body') then
uo.deletejournal()
..
endif

_________________
Уроки языка Injection
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net


Top
   
 Post subject:
PostPosted: 2006-11-08 10:38:21 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
Это к чему??
Моб не умер еще, при чем тут его боди? Мне нужно его по типу найти на максимальном расстоянии, подойти и убить.

_________________
ДРВ

Spoiler

_________________

Антарес

Spoiler|Gostrabaiter|Umhra|Slog


Top
   
 Post subject:
PostPosted: 2006-11-08 13:02:32 
Offline
Expert!
User avatar

Joined: 2005-09-14 15:31:58
Posts: 2152
Location: Latvia
Quote:
Просто нужно чтоб после убийства 1 зверюшки скрипт вырубалсябы.

_________________
Уроки языка Injection
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net


Top
   
 Post subject:
PostPosted: 2006-11-08 13:17:20 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
NMY wrote:
Quote:
Просто нужно чтоб после убийства 1 зверюшки скрипт вырубалсябы.


Он думает как подойти, а не как скрипт закончить видимо.

2Поиск + если найдено то готу(файндайтим) уже не модно нынче? + вармод. А вообще-смотри аналог в скрипте на кил ентов. Там есть что посмотреть.


Top
   
 Post subject:
PostPosted: 2006-11-08 14:27:56 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
Да по отдельности почти все есть, думаю что со сборкой тоже вопросов небудет. Незнаю как подходить в плотную и бить. Покажите на примере выше написаного.

_________________
ДРВ

Spoiler

_________________

Антарес

Spoiler|Gostrabaiter|Umhra|Slog


Top
   
 Post subject:
PostPosted: 2006-11-08 14:30:50 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
В журнале регистр имеет значение?
Code:
until uo.dead(Attack) or UO.InJournal('Body') OR LastTimer+150<UO.Timer()

_________________
ДРВ

Spoiler

_________________

Антарес

Spoiler|Gostrabaiter|Umhra|Slog


Top
   
 Post subject:
PostPosted: 2006-11-08 15:24:36 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
Нашел в закромах родины, не помню под какой шард писал. Ищет и убивает бижайших овец режит их... Стоит под коректировать.
На том шарде нельзя было резать пока не будешь в ПИСЕ
Убивались овци с кулака (это было очень быстро чем с кинжала, даи ломалось там оружие хорошо)
Был еще прикол что по полю на чем то подобном бегали другие люди, поэтому было решено бижать ближайшей во что бы то не стало;) и если ее убъют раньше то шерсть мы снимим все равно первыми%)
По умолчанию иследуется радиус 20 от точки на котороит стоит чар. если даже в той точке где он стоит в радиусе 20 никого не было найдено то он возвращается на свое место, откуда был запущен скрипт.
Ходилка самое быстрое что может быть без проверок, без супер обходов;) только на нормальных пространставх;)
Code:
sub Abs(num)
   if num < 0 then
      return -num
   end if
   return num
end sub

sub Sig(num)
   if num < 0 then
      return -1
   else
      if num == 0 then
         return 0
      endif
   endif
return 1
end sub
      
sub MoveToXY(x, y, prec)
   var dx, dy
   dim Key[9]
      Key[0]=37
      Key[1]=35
      Key[2]=40
      Key[3]=36
      Key[4]=12
      Key[5]=34
      Key[6]=38
      Key[7]=33
      Key[8]=39
      dx=x-uo.GetX()
      dy=-y+uo.GetY()
   while (Abs(dx) > prec) or (Abs(dy) > prec)
      dx=x-uo.GetX()
      dy=-y+uo.GetY()
      uo.Press(Key[(sig(dy)+1)*3+1+sig(dx)])
      wait(10)
   wend
end sub   

sub MoveTo(object, prec)
   var dx, dy
   dim Key[9]
      Key[0]=37
      Key[1]=35
      Key[2]=40
      Key[3]=36
      Key[4]=12
      Key[5]=34
      Key[6]=38
      Key[7]=33
      Key[8]=39
   while uo.GetDistance(object) > prec
      dx=uo.GetX(object)-uo.GetX()
      dy=-uo.GetY(object)+uo.GetY()
      uo.Press(Key[(sig(dy)+1)*3+1+sig(dx)])
      wait(10)
   wend
end sub   

sub KillIt()
   var animal=0x00CF
   var n=1
   var x=uo.GetX()
   var y=uo.GetY()
   uo.ignorereset()
   uo.forget('far')
   uo.forget('counters')
   uo.SetGlobal('KillCount', 0)
   
   Repeat
      wait(10)
      uo.Set('finddistance', n)
      uo.FindType(animal, -1, 'ground')
      if uo.FindCount() then
         wait(100)
         if uo.IsNPC('finditem') then
            uo.info('finditem')
            while uo.IsNPC('finditem')
               if uo.GetDistance('finditem') > 1 then
                  MoveTo('finditem', 1)
                  uo.attack('finditem')
               end if
               wait(100)
            wend
            uo.SetGlobal('KillCount', val(uo.GetGlobal('KillCount'))+1)
            uo.forget('finditem')
            uo.warmode(0)
            uo.waittargetobject('lastcorpse')
            uo.usetype(0x0F51)
            while uo.waiting()
               wait(100)
            wend
            uo.disarm()
            n=1
         else
            uo.Ignore('finditem')
         end if
      else
         n=n+1
         if n > 20 then
            if (uo.GetX() <> x) or (uo.GetY() <> y) then
               MoveToXY(x, y, 1)
            end if
            n=1
         end if
      end if
   Until uo.Dead()
end sub

sub Stat()
   uo.charprint(257, 'От ваших рук погибло: '+uo.GetGlobal('KillCount')+' невинных овец')
end sub


Top
   
 Post subject:
PostPosted: 2006-11-08 16:29:29 
Offline
Expert!
User avatar

Joined: 2004-04-04 11:13:54
Posts: 1205
Location: Балаково, Саратовская обл.
viewtopic.php?p=44296#44296

В ходилке ставим вайттайм = 0 и включаем алвайс ран.


Top
   
 Post subject:
PostPosted: 2006-11-08 16:36:41 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
Это на антарес =)))
Все работает кул. Спасибо.

_________________
ДРВ

Spoiler

_________________

Антарес

Spoiler|Gostrabaiter|Umhra|Slog


Top
   
 Post subject:
PostPosted: 2006-11-08 20:05:13 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
А можно сделать чтоб скрипт тот что я привел в пример, после сообщения "Body", вырубалсябы ????

P.S. Все. Спасибо. Сделал, работает отлично.

_________________
ДРВ

Spoiler

_________________

Антарес

Spoiler|Gostrabaiter|Umhra|Slog


Top
   
 Post subject:
PostPosted: 2006-11-08 21:12:23 
Offline
Expert!
User avatar

Joined: 2005-09-14 15:31:58
Posts: 2152
Location: Latvia
slonopotam wrote:
А можно сделать чтоб скрипт тот что я привел в пример, после сообщения "Body", вырубалсябы ????

P.S. Все. Спасибо. Сделал, работает отлично.


viewtopic.php?p=52928#52928

_________________
Уроки языка Injection
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net


Top
   
 Post subject:
PostPosted: 2006-11-09 01:57:49 
Offline
User avatar

Joined: 2006-08-05 14:09:06
Posts: 270
Я в смысле на моем примере показать :) но всеравно спасибо.

_________________
ДРВ

Spoiler

_________________

Антарес

Spoiler|Gostrabaiter|Umhra|Slog


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 2 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