Хелп с ПВМ
Moderators: Murderator+, Murderator
-
- Posts: 270
- Joined: 2006-08-05 14:09:06
- Contact:
Хелп с ПВМ
Пробовал написать скрипт на догонялку мобов и их килл, чтот никак.
Нужно чтоб подошол к мобу 0х0000 в плотную и убил его. Да и финдистанс максимум чтоб
(тоесть не только если моб рядом). Если кому не сложно, подскажите пожалуйста.
Нужно чтоб подошол к мобу 0х0000 в плотную и убил его. Да и финдистанс максимум чтоб
(тоесть не только если моб рядом). Если кому не сложно, подскажите пожалуйста.
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
-
- Posts: 270
- Joined: 2006-08-05 14:09:06
- Contact:
Помогите хотябы немного переделать готовый. Просто нужно чтоб после убийства 1 зверюшки скрипт вырубалсябы.
Code: Select all
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
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
отвечу по теме...
Code: Select all
if uo.injournal('body') then
uo.deletejournal()
..
endif
Уроки языка Injection
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net
-
- Posts: 270
- Joined: 2006-08-05 14:09:06
- Contact:
Просто нужно чтоб после убийства 1 зверюшки скрипт вырубалсябы.
Уроки языка Injection
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net
-
- Posts: 2259
- Joined: 2005-04-19 18:00:29
- Location: Московская область
- Contact:
-
- Posts: 270
- Joined: 2006-08-05 14:09:06
- Contact:
-
- Posts: 270
- Joined: 2006-08-05 14:09:06
- Contact:
В журнале регистр имеет значение?
Code: Select all
until uo.dead(Attack) or UO.InJournal('Body') OR LastTimer+150<UO.Timer()
ДРВ
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Spoiler
_________________
Антарес
Spoiler|Gostrabaiter|Umhra|Slog
Нашел в закромах родины, не помню под какой шард писал. Ищет и убивает бижайших овец режит их... Стоит под коректировать.
На том шарде нельзя было резать пока не будешь в ПИСЕ
Убивались овци с кулака (это было очень быстро чем с кинжала, даи ломалось там оружие хорошо)
Был еще прикол что по полю на чем то подобном бегали другие люди, поэтому было решено бижать ближайшей во что бы то не стало;) и если ее убъют раньше то шерсть мы снимим все равно первыми%)
По умолчанию иследуется радиус 20 от точки на котороит стоит чар. если даже в той точке где он стоит в радиусе 20 никого не было найдено то он возвращается на свое место, откуда был запущен скрипт.
Ходилка самое быстрое что может быть без проверок, без супер обходов;) только на нормальных пространставх;)
На том шарде нельзя было резать пока не будешь в ПИСЕ
Убивались овци с кулака (это было очень быстро чем с кинжала, даи ломалось там оружие хорошо)
Был еще прикол что по полю на чем то подобном бегали другие люди, поэтому было решено бижать ближайшей во что бы то не стало;) и если ее убъют раньше то шерсть мы снимим все равно первыми%)
По умолчанию иследуется радиус 20 от точки на котороит стоит чар. если даже в той точке где он стоит в радиусе 20 никого не было найдено то он возвращается на свое место, откуда был запущен скрипт.
Ходилка самое быстрое что может быть без проверок, без супер обходов;) только на нормальных пространставх;)
Code: Select all
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
-
- Posts: 270
- Joined: 2006-08-05 14:09:06
- Contact:
-
- Posts: 270
- Joined: 2006-08-05 14:09:06
- Contact:
slonopotam wrote:А можно сделать чтоб скрипт тот что я привел в пример, после сообщения "Body", вырубалсябы ????
P.S. Все. Спасибо. Сделал, работает отлично.
viewtopic.php?p=52928#52928
Уроки языка Injection
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net
-
- Posts: 270
- Joined: 2006-08-05 14:09:06
- Contact: