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

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