Page 1 of 1

Спарринг-скрипт

Posted: 2004-06-02 12:28:28
by Russian
Прислали мне такой замысловатый скрипт под две сессии инжи с использованием EasyUO. Смысл заключается в том, что скрипт отслеживает кол-во хитов у обоих персонажей, и при опускании оных ниже 65 оба чара выключают боевой режим и начинают лечиться. Когда полностью вылечатся - снова начинают драться. Вроде бы все работает... но недолго. То есть спарринг может длиться минут 20, иногда полчаса, в течение которых оба чара исправно лечатся и дерутся. Но почему-то в какой-то момент скрипт перестает замечать прохождение одним из персонажей (или обоими) заветного рубежа (в данном случае - 65 хитов) и один из чаров, как следствие, умирает, поскольку боевой режим не был выключен. В чем может быть проблема? Ситуацию усложнает использование EasyUO, я ее никогда в руках не держал, так что просто поставил, прописал в регистре и запустил. Может быть, ее как-то нужно настроить? Хотя, если ее вообще не запускать, ничего не меняется.

Скрипт такой:

sub sreset()
UO.SetEasyUO(80,"1")
UO.SetEasyUO(90,"1")
end sub

sub sparring()
VAR Char1='0x000A2A07'
VAR Char2='0x000A1790'
VAR Enemy, ESelf, EEnemy


if UO.GetSerial('self')==Char1 then
Enemy=Char2
EEnemy=90
ESelf=80
else
Enemy=Char1
EEnemy=80
ESelf=90
endif

UO.SetEasyUO(ESelf,"0")

while NOT UO.Dead()

repeat
wait(500)
until UO.GetEasyUO(ESelf)=="0" AND UO.GetEasyUO(EEnemy)=="0"

UO.Exec("warmode 1")
UO.Attack(Enemy)

while UO.Life>=65 AND UO.GetEasyUO(EEnemy)=="0"
wait(100)
wend

UO.SetEasyUO(ESelf,"1")
UO.Exec("warmode 0")

while UO.Life<UO.Str
UO.Exec("warmode 0")
healing()
wait(6000)
wend

UO.SetEasyUO(ESelf,"0")

wend

end sub

sub healing()
UO.SetArm('CWeapon')
UO.Exec("bandageself")
wait(600)
UO.Arm('CWeapon')
; UO.Equipt('Rhand','0x13E3')
end sub

Posted: 2004-06-03 13:52:38
by Edred
Изя здесь не нужна, нужны только глобальные переменные от нее, прописанные в регистри

Posted: 2004-06-03 17:34:43
by Savage
Старая версия. Я уж и не помню в чем там глюк был.

В пак чарам суем вепон одинакого типа и в руки даем образец ну и щит если паринг еще не прокачен. Бандажки и тазик для стирки кровяшек.

Чар запоминает при старте что он держал в руках и будет после лечения поднимать эти вещи.

Code: Select all

sub sreset()
   UO.SetEasyUO(80,"1")
   UO.SetEasyUO(90,"1")
end sub


sub sparring()
   VAR Char1='0x0009267C'
   VAR Char2='0x00068998'
   VAR Enemy, ESelf, EEnemy
   VAR Weapon, Shield, WpnType, ShldType
   VAR TazikType='0x1008',BloodBndg='0x0E20'
   VAR MinLife=60
   

   if UO.GetSerial('self')==Char1 then
      Enemy=Char2
      EEnemy=90
      ESelf=80
   else
      Enemy=Char1
      EEnemy=80
      ESelf=90
   endif

   Weapon=UO.ObjAtLayer('Rhand')
   If Weapon<>"" Then
      WpnType=UO.GetGraphic(Weapon)
   Endif

   Shield=UO.ObjAtLayer('Lhand')
   If Shield<>"" Then
      ShldType=UO.GetGraphic(Shield)
   Endif
   
   UO.SetEasyUO(ESelf,"0")

   while NOT UO.Dead()
   
      repeat
         wait(500)
      until UO.GetEasyUO(ESelf)=="0" AND UO.GetEasyUO(EEnemy)=="0"
      
      UO.Exec("warmode 1")
      UO.Attack(Enemy)
      
      while UO.Life>=MinLife AND UO.GetEasyUO(EEnemy)=="0"
         wait(100)
      wend

      UO.SetEasyUO(ESelf,"1")
      UO.Exec("warmode 0")
      wait(1000)
      UO.Exec("warmode 0")

      UO.FindType('0x0E21','0x0000','backpack')
      If UO.GetQuantity('finditem')<20 Then
         UO.FindType('0x0E20','0x0000','backpack')
         UO.WaitTargetType(TazikType)
         UO.UseObject('finditem')
         wait(1000)
      Endif

      while UO.Life<UO.Str
         UO.DeleteJournal()
         UO.BandageSelf()
         Repeat
            wait(500)
         Until UO.InJournal('put') OR UO.InJournal('help') OR UO.InJournal('cure')
      wend

      If Shield<>"" Then
         UO.Equipt('Lhand',ShldType)
         wait(2000)
      Endif

      If Weapon<>"" Then
         UO.Equipt('Rhand',WpnType)
         wait(2000)
      Endif
      
      UO.UseSkill('Spirit Speak')
      wait(3000)
      UO.SetEasyUO(ESelf,"0")
   wend
end sub


Posted: 2004-06-03 20:00:29
by Скрипт
если можно написать где что нада поменять был бы очень признателен

Posted: 2004-06-04 10:42:23
by Russian
Спасибо, Саваж!

Posted: 2004-06-04 14:17:37
by Savage
Менять нужно только вот эти строки:
VAR Char1='0x0009267C'
VAR Char2='0x00068998'

то есть задать серийники чаров. скрипт одинаков для обоих клиентов то есть менять местами серийники не надо!!!

Чаров ставим рядом, с одного 1 раз запускаем sreset и на обоих sparring или сразу спарринг а потом второго чара подводим к первому.

Posted: 2004-06-07 12:31:47
by Скрипт
а что с изи уо делать ? :)

Posted: 2004-06-07 15:37:29
by Savage
Запустить вот это:
http://www.jetta.ru/easy.reg

Posted: 2004-06-07 16:51:19
by Скрипт
без разницы где запускать ?
и он кушает и пьёт рефрешки если чегото мало ?

Posted: 2004-06-07 17:59:13
by Скрипт
через время чары тупо стояли и смотрели друг на друга после того как я отаканул один просто убил другова

Posted: 2004-06-08 19:40:58
by Savage
1) возможно у тя беда с переключателями: www.jetta.ru/inj-switch.jpg
2)кончились бандажки у какого-то чара

Posted: 2004-06-09 19:24:12
by Haxor
Savage wrote:1) возможно у тя беда с переключателями: www.jetta.ru/inj-switch.jpg
2)кончились бандажки у какого-то чара



a pochemu on ne mojet binti ?

Posted: 2004-06-09 19:26:21
by Savage
Очень даже моет, проверь тип тпзика, может у вас другой и процедура помывки у нас - использовать кровяшки и таргет на тазик.

Posted: 2004-06-10 16:41:12
by Haxor
ja vot napisal skript na chistku bintov a to skript ne chistit. no cherez nekotoroe vremja 2 chara tupo vtikajut na drug druga bez war rezhima


sub binta()
while not uo.Dead()
UO.waittargettype('0x1008')
UO.usetype('0x0E20')
wait(20000)
wend
end sub

Posted: 2004-06-10 22:54:47
by Haxor
ne s bintami problema a skript prosto ostonavlivaetsa

Posted: 2004-06-11 18:56:54
by Savage
Я этим скриптом около 30-ти чаров прокачал. Х.з. че у тебя не так...

Posted: 2004-06-20 14:53:59
by Alamir
а у меня просто стоят и все..да же биться не начинают...