Page 1 of 1
Написал изменения в скрипте, не пашет, помогите!
Posted: 2008-03-27 14:07:20
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
Posted: 2008-04-18 19:07:30
by BoBBaH
Ап!
Posted: 2008-04-18 19:15:57
by Kynep
BoBBaH wrote:Ап!
Попробуй так:
Posted: 2008-04-19 07:57:34
by BoBBaH
изменено, не срабатывает...
Posted: 2008-04-19 08:06:24
by Kynep
BoBBaH wrote:Я конечно по пробую, но бэдли дамаджед так же может быть и щит, а скрипт все равно будет менять даггеры... Спасибо за ответ если в голову придет еще что из мыслей, буду рад=)
Ну тогда так:
Code: Select all
if uo.InJournal('dagger is damaged')
Posted: 2008-04-19 08:19:08
by BoBBaH
второе тоже не работает, я думаю мб дело в самой конструкции иф?
предыдущаю строка с Антил прекрастно пашет, но если я вставляю еще антил выдает пассер...
Posted: 2008-04-19 08:52:04
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
Posted: 2008-04-19 09:10:51
by BoBBaH
нет не срабатывет

Posted: 2008-04-21 12:02:00
by BoBBaH
есть ли еще у кого какие варианты? ну просто очень нужно доделать этот скрипт
Posted: 2008-05-03 09:19:43
by BoBBaH
Up, ну помогите плз!
Posted: 2008-05-03 13:17:01
by Scripts Writer
BoBBaH wrote:Up, ну помогите плз!
Напиши по пунктам что должен делать скрипт,- я тогда мб проще напишу новый чем разбирать ошибки старого
Posted: 2008-05-03 14:54:12
by grundick
А может StopWar() очищает журнал?
Posted: 2008-05-03 20:22:51
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() не срабатывает функция определения поломки даггера по журналу
Posted: 2008-05-03 20:31:23
by BoBBaH
Скрипт должен: драться двумя чарами в спарринге, пауза и хилиться по максимуму при остатке определенного кол-ва жизней(указывать в начале скрипта), притом после отхила щит и меч должны одеваться с задержкой, а не стандартной командой инжекта, ибо на сервере установлена задержка на одевание. Далее кушать каждые 20минут, если закончились бинты брать из ящика1(не обязательно), если в журнале появилась надпись "your dagger is damaged and looks badly damaged" чтобы приостанавливался скрипт, после чего оба чара отхиливались до максимума, клали сломанные даггеры в сундук2(только тот у кого появилась такая надпись), брали новый даггер из сундука1. ну и все пожалуй, можно еще добавить замену щита как с даггерами
Posted: 2008-05-07 21:00:01
by BoBBaH
Ап