Advanced Resistance

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Advanced Resistance

Post by Destruction »

Code: Select all

sub Resist()
; (c) Destruction, v1.0
Var CastT = 1200 ; тип тайла на который кастуем
Var CastX = 1328 ; координата X тайла на который кастуем
Var CastY = 1055 ; координата Y тайла на который кастуем
Var CastZ = 7    ; координата Z тайла на который кастуем
Var StayX = 1328 ; место для отхила и каста по X
Var StayY = 1056 ; место для отхила и каста по Y
Var ManaCast = 11 ; нужно маны на спелл
Var Spell = "Fire Field" ; кастуемый спелл
Var GoType = "X" ; по какой координате ходить
Var GoDist = 2 ; как далеко ходить, от точки каста
Var Damage = 5 ; максимальный урон наносимый огненной стеной
Repeat
   MyGo(StayX,StayY)
   MyCheckReag()
   CheckMana(ManaCast)
   FullHeal()
   Medit()
   MyGroundCast(Spell, CastT, CastX, CastY, CastZ)
   MyRWalker(CastX,CastY,GoType,GoDist,Damage)
   MyGoFromField(CastX, CastY, GoType, StayX, StayY)
Until uo.SkillVal("Magic Resistance",1) > 999
End Sub

Sub MyGoFromField(x, y, t, sX, sY)
var GoX, GoY
If t == "x" || t == "X" Then
   If sY > y Then
      GoY = uo.GetY()+1
   Else
      GoY = uo.GetY()-1
   End If
   GoX = uo.GetX()
Else
   If sX > x Then
      GoX = uo.GetX()+1
   Else
      GoX = uo.GetX()-1
   End If
   GoY = uo.GetY()
End If
MyGo(GoX, GoY)
End Sub

Sub MyRWalker(x, y, t, d, dmg)
Var Field = "0x398C" ; тип огненной стены
Var Count = 7 ; Количество появляющихся огненных стен
var GoX = x, GoY = y, dist
MyGo(x, y)
While uo.GetHP() > 60 && uo.CountGround(Field) >= Count
   dist = Math.Round((uo.GetHP()-60)/dmg)
   If dist > d Then
      dist = d
   End If
   If t == "X" || t == "x" Then
      GoX = GoX - dist
      GoY = GoY
   Else
      GoX = GoX
      GoY = GoY - dist
   EndIf
   MyGo(GoX, GoY)
   If uo.GetHP() < 60 || uo.CountGround(Field) < Count Then
      return
   End If
   dist = Math.Round((uo.GetHP()-60)/dmg)
   If dist > d*2 Then
      dist = d*2
   End If
   If t == "X" || t == "x" Then
      GoX = GoX + dist
      GoY = GoY
   Else
      GoX = GoX
      GoY = GoY + dist
   EndIf
   MyGo(GoX, GoY)
   If uo.GetHP() < 60 || uo.CountGround(Field) < Count Then
      return
   End If
   dist = Math.Round((uo.GetHP()-60)/dmg)
   If dist > d Then
      dist = d
   End If
   If t == "X" || t == "x" Then
      GoX = GoX - dist
      GoY = GoY
   Else
      GoX = GoX
      GoY = GoY - dist
   EndIf
   MyGo(GoX, GoY)
WEnd
End Sub

Sub Math.Round(val)
var i=1
While Not Right(Left(str(val),i),1) == "."
   If i > StrLen(str(val)) Then
      Return val
   End If
   i = i + 1
WEnd
Return val(Left(str(val),i-1))
endsub

Sub MyCheckReag()
Var c, i, ReagCount = 4 ; количество типов реагентов
Var ReagCnt = "0x40021A29" ; ID сумки с реагентами
DIM Reagents[val(str(ReagCount))]
Reagents[0] = "0x0F8C" ; Sulfurous Ash
Reagents[1] = "0x0F7A" ; Black Pearls
Reagents[2] = "0x0F8D" ; Spider Silk
Reagents[3] = "0x0E21" ; Bandage
For i=0 To ReagCount-1
   uo.FindType(Reagents[i])
   If uo.FindCount() Then
      c = uo.GetQuantity("finditem")
   Else
      c = 0
   End If
   While c < 50
      uo.FindType(Reagents[i],"-1",ReagCnt)
      If Not uo.FindCount() Then
         uo.Print("Reagents Not Found!")
         uo.Exec("terminate all")
      End If
      uo.MoveItem("finditem",str(50-c),"backpack")
      checklag()
      uo.FindType(Reagents[i])
      If uo.FindCount() Then
         c = uo.GetQuantity("finditem")
      Else
         c = 0
      End If
   WEnd
Next
End Sub

Sub MyGroundCast(s, t, x, y, z)
Var Field = "0x398C" ; тип огненной стены
Var Count = 7 ; Количество появляющихся огненных стен
Var Mana
While uo.CountGround(Field) < Count
   Mana = uo.Mana
   uo.WaitTargetTile(t, x, y, z)
   uo.Cast(s)
   While Mana == uo.Mana
      Wait(100)
   WEnd
WEnd
End Sub

Sub FullHeal()
Var s = "Вы полечили себя."
Var f = "Вам не удалось полечить себя."
Var w = "Вы пока не можете пользоваться бинтами снова."
While uo.GetHP() < uo.GetMaxHP()
   deljournal(s+"|"+f+"|"+w)
   uo.WaitTargetObject('self')
   uo.UseType('bandage')
   Repeat
      Wait(100)
   Until uo.InJournal(s+"|"+f+"|"+w)
   If uo.InJournal(w) Then
      Wait(500)
   End If
WEnd
End Sub

Sub CheckMana(ManaCast)
While uo.Mana < ManaCast
   uo.UseSkill("Meditation")
   wait(100)
WEnd
End Sub

Sub MyGo(GoX, GoY)
Var CurX, CurY, Dir = MyGetDir(GoX, GoY)
DIM Dirs[10]
Dirs[1] = 35 ; End
Dirs[2] = 40 ; Down
Dirs[3] = 34 ; PgDown
Dirs[6] = 39 ; Right
Dirs[9] = 33 ; PgUp
Dirs[8] = 38 ; Up
Dirs[7] = 36 ; Home
Dirs[4] = 37 ; Left
DIM sDir[10]
sDir[3] = 2
sDir[2] = 3
sDir[1] = 6
sDir[0] = 9
sDir[7] = 8
sDir[6] = 7
sDir[5] = 4
sDir[4] = 1
While Dir
   CurX = uo.GetX()
   CurY = uo.GetY()
   If Not sDir[uo.GetDir()] == Dir Then
      uo.Press(Dirs[Dir],2)
   Else
      uo.Press(Dirs[Dir])
   End If
   While uo.GetX() == CurX && uo.GetY() == CurY
      wait(100)
   WEnd
   Dir = MyGetDir(GoX, GoY)
WEnd
endsub

Sub MyGetDir(x, y)
Var cx, cy
x = -(uo.GetX() - x)
y = -(uo.GetY() - y)
cx = x
cy = y 
If cx <= 0 Then
   cx = -cx
End If
If cy <= 0 Then
   cy = -cy
End If
If cx+cy Then
   If x>0 && y>0 && x==y  Then
      Return 2
   End If
   If x>0 && cx>cy Then
      Return 3
   End If
   If x>0 && y<0 && cx==cy Then
      Return 6
   End If
   If y<0 && cy>cx Then
      Return 9
   End If
   If x<0 && y<0 && x==y Then
      Return 8
   End If
   If x<0 && cx>cy Then
      Return 7
   End If
   If x<0 && y>0 && cx==cy Then
      Return 4
   End If
   If y>0 && cy>cx Then
      Return 1
   End If
Else
   Return False
End If
End Sub

Sub Medit()
While uo.Mana < uo.Int
   uo.UseSkill("Meditation")
   Wait(300)
WEnd
End Sub

Во, шедевр нах!

Чар кастует стенку, ходит по ней, когда хитов меньше 60 или пропала хоть одна стенка - отходит, отхиливается, если надо - ставит новую стенку..

Вобщем сами разбирайтесь, вроде работает..

Помывку бинтов потом как-нить воткну, ибо ща савсем лень.
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Мдя, шедевр... ЗА исключением того, что на многих шардах нельзя качать резист на своих же стенках... Или на стрелках на себя и пр.
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Edred wrote:Мдя, шедевр... ЗА исключением того, что на многих шардах нельзя качать резист на своих же стенках... Или на стрелках на себя и пр.

Ну разрезать на два скрипта думаю все могут :lol:
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Оффтопик ON.

Дест, ответь на личку.

Оффтопик OFF
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Edred wrote:Оффтопик ON.

Дест, ответь на личку.

Оффтопик OFF

Оффтопик ON.
Я тебе в асю ответил, ежедевно..
Оффтопик OFF
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Оффтопик ON.

Дык ты запрос на авторизацию отправь, иначе все в треш, реклама задолбала...

Оффтопик OFF
Qualis Eram
Posts: 104
Joined: 2005-04-16 23:33:13
Contact:

Re: Advanced Resistance

Post by Qualis Eram »

Destruction: Слушай а можешь сделать... чтобы чар бегал по определнным координатам доупсти (1980-1989 тут стоит фаер филд) рядом есть чистый тайл без филда 1979 он заходит в него кастует на себя полиморф в дракона и начинает бегать (1980-1989 тут стоит фаер филд) если спал полиморф он бежит в этот тайл 1979 отхиливается т.к хп упали же по огню побежавшись... кастует полиморф и по новой.
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Re: Advanced Resistance

Post by Destruction »

Qualis Eram wrote:Destruction: Слушай а можешь сделать... чтобы чар бегал по определнным координатам доупсти (1980-1989 тут стоит фаер филд) рядом есть чистый тайл без филда 1979 он заходит в него кастует на себя полиморф в дракона и начинает бегать (1980-1989 тут стоит фаер филд) если спал полиморф он бежит в этот тайл 1979 отхиливается т.к хп упали же по огню побежавшись... кастует полиморф и по новой.

Нифига не понял, у меня работает - мне хорошо.

Скажи не что нужно написать, а что доработать.
BigMouseI
Posts: 93
Joined: 2006-04-15 09:00:35

Re: Advanced Resistance

Post by BigMouseI »

Destruction wrote:
Qualis Eram wrote:Destruction: Слушай а можешь сделать... чтобы чар бегал по определнным координатам доупсти (1980-1989 тут стоит фаер филд) рядом есть чистый тайл без филда 1979 он заходит в него кастует на себя полиморф в дракона и начинает бегать (1980-1989 тут стоит фаер филд) если спал полиморф он бежит в этот тайл 1979 отхиливается т.к хп упали же по огню побежавшись... кастует полиморф и по новой.

Нифига не понял, у меня работает - мне хорошо.

Скажи не что нужно написать, а что доработать.


Кароче ему нужно, чтобы чар отходил, морф в дракона, затем бегает по файр филду в нём(+проверка на тип себя) если разморф, то сразу отбегает, хелится и по кругу дальше :D
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Воткнуть после

Code: Select all

   MyGo(StayX,StayY) 


Но отбегать он будет только тогда, когда закончаться хиты (меньше 60), чтобы совсем круто - надо еще

Code: Select all

Sub MyRWalker(
подредактировать.

Там просто, если руки есть - то пять строчек можно сделать.
ghost_hnt
Posts: 156
Joined: 2006-02-03 19:32:33

Post by ghost_hnt »

а можете сделать каст со свитка?!
ЦСКА- чЕмПиОн, кто не верит, тот ...... (нехороший человек)
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Поимейте совесть и посмотрите функцию MyGroundCast.

Сделать могу, но мне лень.
ghost_hnt
Posts: 156
Joined: 2006-02-03 19:32:33

Post by ghost_hnt »

Destruction wrote:Поимейте совесть и посмотрите функцию MyGroundCast.

Сделать могу, но мне лень.

все не надо разобрались уже\)
ЦСКА- чЕмПиОн, кто не верит, тот ...... (нехороший человек)
Fuzz noise
Posts: 5
Joined: 2007-05-30 12:38:31

Post by Fuzz noise »

Сделать могу, но мне лень.[/quote]

я понимаю что ты ленивый конечно=)) но ты можешь помоч человеку который тупил над твоим скрипт 2е суток и нефига несмог зелать чтоб он не качтовал а просто бегал по стенке и обегал хелицца... а отдельный саб на то чтобы другой чар кастовал под бегуна фаер филд. помоги плиз=) и еще вопрос как каоординаты тайлов брать если я в доме качаюсь, а там не беруться с пола координаты....
:oops: :?:
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

Fuzz noise wrote:
Сделать могу, но мне лень.


я понимаю что ты ленивый конечно=)) но ты можешь помоч человеку который тупил над твоим скрипт 2е суток и нефига несмог зелать чтоб он не качтовал а просто бегал по стенке и обегал хелицца... а отдельный саб на то чтобы другой чар кастовал под бегуна фаер филд. помоги плиз=) и еще вопрос как каоординаты тайлов брать если я в доме качаюсь, а там не беруться с пола координаты....
:oops: :?:

Code: Select all

   MyGo(StayX,StayY)
   MyCheckReag()
   CheckMana(ManaCast)
   FullHeal()
   Medit()
   MyGroundCast(Spell, CastT, CastX, CastY, CastZ)
   MyRWalker(CastX,CastY,GoType,GoDist,Damage)
   MyGoFromField(CastX, CastY, GoType, StayX, StayY)

Все вроде названо нормально какие проблемы :)
Удаляем мусор типо MyGroundCast, MyCheckReag, CheckMana и т.д.
Соответственно во втором случае оставляем только это.
The End.
Post Reply