Написал изменения в скрипте, не пашет, помогите!

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
BoBBaH
Posts: 94
Joined: 2006-02-09 11:37:25
Contact:

Написал изменения в скрипте, не пашет, помогите!

Post by BoBBaH »

Играю на ресторе3, у меня скрипт на спарринг, который я взял на форуме, но я еще изменил в нем, чтобы чар брал щит с мечом после отхила, и чтобы если пишет "your dagger is damaged and looks badly damaged" в журнале, то должно переходить на другие части скрипта, которые отхиливают чаров, не берут в руки пуху, меняют сломанный на новый, выкинув старый в первый мешок(по ид), взяв из другого мешка(по ид) новый меч.
Проблема в том, что на сообщение в журнале "your dagger is damaged and looks badly damaged" скрипт никак не реагирует, а просто работает дальше, соответственно не меняет меч, помогите исправить пожалуйста!! Заранее спасибо!

Code: Select all

sub Sparring()    
UO.Exec('warmode 1')
uo.DeleteJournal()
uo.DeleteJournal()
REPEAT
if uo.InJournal('apply bandages to self') then
StopWar()
else
wait(5000)
UO.Attack(Enemy)
end if
until uo.Life<=MinLife or uo.InJournal(STOP1) or uo.InJournal(STOP2) or uo.InJournal('apply bandages to self')
StopWar()
if uo.InJournal('your dagger is damaged and looks badly damaged') then # вот на эту строку никакой реакции, хотя она ключевая для меня
Stop()
else
wait(100)
end if
end sub
Last edited by BoBBaH on 2008-04-18 19:08:45, edited 3 times in total.
BoBBaH
Posts: 94
Joined: 2006-02-09 11:37:25
Contact:

Post by BoBBaH »

Ап!
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

BoBBaH wrote:Ап!


Попробуй так:

Code: Select all

if uo.InJournal('badly damaged')
BoBBaH
Posts: 94
Joined: 2006-02-09 11:37:25
Contact:

Post by BoBBaH »

изменено, не срабатывает...
Last edited by BoBBaH on 2008-04-19 08:15:37, edited 1 time in total.
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

BoBBaH wrote:Я конечно по пробую, но бэдли дамаджед так же может быть и щит, а скрипт все равно будет менять даггеры... Спасибо за ответ если в голову придет еще что из мыслей, буду рад=)


Ну тогда так:

Code: Select all

if uo.InJournal('dagger is damaged')
BoBBaH
Posts: 94
Joined: 2006-02-09 11:37:25
Contact:

Post by BoBBaH »

второе тоже не работает, я думаю мб дело в самой конструкции иф?
предыдущаю строка с Антил прекрастно пашет, но если я вставляю еще антил выдает пассер...
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

BoBBaH wrote:второе тоже не работает, я думаю мб дело в самой конструкции иф?
предыдущаю строка с Антил прекрастно пашет, но если я вставляю еще антил выдает пассер...


А так?

Code: Select all

sub Sparring()    
  UO.Exec('warmode 1')
  uo.DeleteJournal()
  uo.DeleteJournal()
  REPEAT
    if uo.InJournal('apply bandages to self') then
      StopWar()
    else 
      wait(5000)
      UO.Attack(Enemy)
    end if
    if uo.InJournal('your dagger is damaged and looks badly damaged') then # вот на эту строку никакой реакции, хотя она ключевая для меня
      Stop()
    else 
      wait(100)
    end if
  until uo.Life<=MinLife or uo.InJournal(STOP1) or uo.InJournal(STOP2) or uo.InJournal('apply bandages to self')
  StopWar()
end sub
BoBBaH
Posts: 94
Joined: 2006-02-09 11:37:25
Contact:

Post by BoBBaH »

нет не срабатывет :cry:
BoBBaH
Posts: 94
Joined: 2006-02-09 11:37:25
Contact:

Post by BoBBaH »

есть ли еще у кого какие варианты? ну просто очень нужно доделать этот скрипт
BoBBaH
Posts: 94
Joined: 2006-02-09 11:37:25
Contact:

Post by BoBBaH »

Up, ну помогите плз!
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

BoBBaH wrote:Up, ну помогите плз!

Напиши по пунктам что должен делать скрипт,- я тогда мб проще напишу новый чем разбирать ошибки старого
grundick
Posts: 258
Joined: 2006-11-25 17:44:44

Post by grundick »

А может StopWar() очищает журнал?
BoBBaH
Posts: 94
Joined: 2006-02-09 11:37:25
Contact:

Post by BoBBaH »

Это не скрипт а часть скрипта, в ней нужна проверка на журнал если появилось про даггер, то переходим на другую часть скрипта... а сам скрипт уже давно известный всеми юзаемый:

Code: Select all

################################################################### 
#                                                                 #
#                       Sparring  ver. 1.0                        #
#                                                                 #
###################################################################

   VAR Char1='0x00229AEC'      #   ID первого чара
   VAR Char2='0x002540E0'      #   ID второго чара
   VAR MinLife=50              #   минимальная жизнь
   
   VAR TazikType='0x1008'      #   Тип тазика с водой
   VAR BloodBndg='0x0E20'      #   тип кровавых бинтов
   
   VAR Svord='0x0F51'          #Тип оружия, используемый вами
   VAR Sheld='0x1B76'          #Тип щита, используемого вами

##################################################################   
                                                                 #
   VAR Enemy, GO, STOP                                           #
   VAR GO1=  'GOO-1'                                             #
   VAR GO2=  'GOO-2'                                             #
   VAR STOP1='STOP-1'                                            #
   VAR STOP2='STOP-2'                                            #
                                                                 #
##################################################################
sub treee()
UO.AddObject("sunduk")
While UO.Targeting()
 Wait(100)
Wend

UO.AddObject("sunduk1")
While UO.Targeting()
 Wait(100)
Wend
Start()
end sub



sub Start()
uo.DeleteJournal()
    if UO.GetSerial('self')==Char1 then
      Enemy=Char2
      GO=GO2
      STOP=STOP2
    else
      Enemy=Char1
      GO=GO1
      STOP=STOP1
    endif
      uo.DeleteJournal()
      wait(4000)
While not uo.InJournal(GO1) or not uo.InJournal(GO2)
      uo.say(GO)
      wait(3000)
wend     
IF uo.InJournal('Ready') then
      wait(3200)
   Sparring()
else 
      uo.Say('Ready')
      wait(5000)
  Sparring()
end sub   

sub Sparring()   
  UO.Exec('warmode 1')
  uo.DeleteJournal()
  uo.DeleteJournal()
  REPEAT
    if uo.InJournal('apply bandages to self') then
      StopWar()
    else 
      wait(5000)
      UO.Attack(Enemy)
    end if
    if uo.InJournal('your dagger is damaged and looks badly damaged') then # вот на эту строку никакой реакции, хотя она ключевая для меня
      Stop()
    else 
      wait(100)
    end if
  until uo.Life<=MinLife or uo.InJournal(STOP1) or uo.InJournal(STOP2) or uo.InJournal('apply bandages to self')
  StopWar()
end sub   

sub StopWar()   
IF uo.InJournal(STOP1) or uo.InJournal(STOP2) then
  UO.Exec("warmode 0")
  wait(1000)
  UO.Exec("warmode 0")
 Heling()
else
# While not uo.InJournal('apply bandages to self')
#    UO.Say(STOP)
#    UO.Exec("warmode 0")
#    wait(2000)
# wend   
     UO.Say(STOP)
     UO.Exec("warmode 0")
     wait(2000)
     UO.Say(STOP)
     UO.Exec("warmode 0")
     wait(2000)
     UO.Say(STOP)
     UO.Exec("warmode 0")
     wait(2000)
     UO.Say(STOP)
     UO.Exec("warmode 0")
     wait(1000)
     UO.Exec("warmode 0")
     wait(200)
UO.Say(STOP)
     UO.Exec("warmode 0")
     wait(1000)
     UO.Exec("warmode 0")
     wait(200)
end if
 Heling()
end sub 

sub Heling()   
         UO.FindType('0x0E21','0x0000','backpack')
      If UO.GetQuantity('finditem')<50 Then
         UO.FindType('0x0E20','0x0000','backpack')
         UO.WaitTargetType(TazikType)
         UO.UseObject('finditem')
         wait(1000)
      Endif
      while  uo.Life<uo.STR
        uo.disarm()
         wait(200)
         while uo.Life<uo.STR
            uo.bandageself()
            wait(3000)
            bgSword()
            UO.Exec("warmode 0")
         wend
         wait(2000)
      wend     
     UO.Exec("warmode 0")
     wait(200)
     Start()
end sub

sub bgSword()   ; Одевание щита и оружия
UO.Equipt('Rhand',Svord)
    wait(150)
UO.Equipt('Lhand',Sheld)
Endsub

sub Stop()   
IF uo.InJournal(STOP1) or uo.InJournal(STOP2) then
  UO.Exec("warmode 0")
  wait(1000)
  UO.Exec("warmode 0")
 Heling()
else
# While not uo.InJournal('apply bandages to self')
#    UO.Say(STOP)
#    UO.Exec("warmode 0")
#    wait(2000)
# wend   
     UO.Say(STOP)
     UO.Exec("warmode 0")
     wait(2000)
     UO.Say(STOP)
     UO.Exec("warmode 0")
     wait(2000)
     UO.Say(STOP)
     UO.Exec("warmode 0")
     wait(2000)
     UO.Say(STOP)
     UO.Exec("warmode 0")
     wait(1000)
     UO.Exec("warmode 0")
     wait(200)
UO.Say(STOP)
     UO.Exec("warmode 0")
     wait(1000)
     UO.Exec("warmode 0")
     wait(200)
end if
 Hel()
end sub 

sub Hel()   
         UO.FindType('0x0E21','0x0000','backpack')
      If UO.GetQuantity('finditem')<50 Then
         UO.FindType('0x0E20','0x0000','backpack')
         UO.WaitTargetType(TazikType)
         UO.UseObject('finditem')
         wait(1000)
      Endif
      while  uo.Life<uo.STR
        uo.disarm()
         wait(200)
         while uo.Life<uo.STR
            uo.bandageself()
            wait(3000)
            UO.Exec("warmode 0")
         wend
         wait(2000)
      wend     
     UO.Exec("warmode 0")
     wait(200)
main()
bgSword()
Start()
end sub

sub main()
UO.FindType(Svord,'-1','backpack')
If UO.FindCount() > 0 then
UO.MoveItem('finditem', '0', 'sunduk1')
endif
Wait(1000)
UO.FindType(Svord,'-1','sunduk')
If UO.FindCount() > 0 then
UO.MoveItem('finditem', '0', 'backpack')
endif
end sub

Это полная версия того что я бы хотел юзать, но вот в подцикле sub Sparring() не срабатывает функция определения поломки даггера по журналу
BoBBaH
Posts: 94
Joined: 2006-02-09 11:37:25
Contact:

Post by BoBBaH »

Скрипт должен: драться двумя чарами в спарринге, пауза и хилиться по максимуму при остатке определенного кол-ва жизней(указывать в начале скрипта), притом после отхила щит и меч должны одеваться с задержкой, а не стандартной командой инжекта, ибо на сервере установлена задержка на одевание. Далее кушать каждые 20минут, если закончились бинты брать из ящика1(не обязательно), если в журнале появилась надпись "your dagger is damaged and looks badly damaged" чтобы приостанавливался скрипт, после чего оба чара отхиливались до максимума, клали сломанные даггеры в сундук2(только тот у кого появилась такая надпись), брали новый даггер из сундука1. ну и все пожалуй, можно еще добавить замену щита как с даггерами
BoBBaH
Posts: 94
Joined: 2006-02-09 11:37:25
Contact:

Post by BoBBaH »

Ап
Post Reply