Помогите пожалуста поправить скрипт на БС.

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
G-Light
Posts: 7
Joined: 2005-07-01 07:16:48
Location: Ethereal Portal
Contact:

Помогите пожалуста поправить скрипт на БС.

Post by G-Light »

Помогите опознать ошибку, я думаю что это возможно из-за того что у меня не стоит где то галочка в мейне или наоборот стоит та что мешает его работе. Скрипт видит первую меню но даггер в этой менюшке не начинает производить выводится таргет. Я его щелкаю на инготу и только тогда даггер делается. Но цикла нет. Помогите увидить ошибку почему производство даггера останавливается на таргете. Менюшка выглядит так, как только открывается называется Swords & Blades => dagger.
; Чар берет из сундука 1 пустой мешок, кладет этот мешок в сундук 2,
; берет из сундука 2 инготы, крафтит из них даггеры и складывает эти даггеры
; в этот мешок в сундуке 2. Если инги в сундуке 2 или пустые мешки
; кончились - выход
;
sub Blacksmithy()
VAR Sunduk1 = '0x401CCC95' ; Сериал сундука с пустыми мешками
VAR Sunduk2 = '0x401509F1' ; Сериал пустого сундука
VAR Meshok = '0x0E76' ; Тип мешка
VAR Logi = '0x1BEF' ; Тип ингов
VAR Rubanok = '0x13E3' ; Тип инструмента блексмита
VAR Udochka = '0x0F51' ; Тип даггера
VAR Kolvo = 1000 ; Брать ингов (3 инга = 1 ножик)
VAR MeshSer, j, k
While TRUE
UO.FindType( Logi, -1, Sunduk2 ) ; Ищем инги в сундуке 2
UO.Grab( Str( Kolvo ), 'finditem' ) ; Кладем инги в пак
wait( 2000 )
If UO.FindCount() == 0 Then
UO.Print("Logs not found, script terminated")
return
Endif
UO.FindType( Meshok, -1, Sunduk1 ) ; Ищем мешок в сундуке 1
MeshSer = UO.GetSerial( 'finditem' )
UO.Grab( '1', 'finditem' ) ; Кладем его в бэкпак
wait( 2000 )
UO.MoveItem( MeshSer, 0, Sunduk2 )
wait( 2000 )
While UO.Count( Logi ) > 3 ; Пока в паке есть инги
UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' ingov' )
UO.DeleteJournal()
UO.CancelMenu()
UO.WaitMenu('Swords & Blades', 'dagger')
UO.UseType( Rubanok )
k = 0
while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
k = k + 1
wait(500)
wend
; Wait( 14000 )
; Скрафтили даггер
; Сразу переложим ее в мешок
if UO.Count( Udochka ) > 0 then
UO.FindType( Udochka, -1, 'backpack' )
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 2000 )
UO.Print( 'dagger perelozhen' )
end if
Wend
Wend
end sub
Arsuri
Posts: 62
Joined: 2005-02-25 13:31:26
Location: DRW, [Hussars]
Contact:

Post by Arsuri »

Если используешь инструмент, то необходимо указать на какой ресурс его применять. Вставь эту строку:

Code: Select all

uo.WaitTargetType(Logi)

после:

Code: Select all

UO.WaitMenu('Swords & Blades', 'dagger') 


Либо вместо инструмента сразу использовать ресурсы. Вместо:

Code: Select all

UO.UseType( Rubanok )

прописать:

Code: Select all

UO.UseType(Logi)
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

Code: Select all

; Чар берет из сундука 1 пустой мешок, кладет этот мешок в сундук 2, 
; берет из сундука 2 инготы, крафтит из них даггеры и складывает эти даггеры
; в этот мешок в сундуке 2. Если инги в сундуке 2 или пустые мешки
; кончились - выход
;
sub Blacksmithy()
VAR Sunduk1 = '0x401CCC95' ; Сериал сундука с пустыми мешками
VAR Sunduk2 = '0x401509F1' ; Сериал пустого сундука
VAR Meshok = '0x0E76' ; Тип мешка
VAR Logi = '0x1BEF' ; Тип ингов
VAR Rubanok = '0x13E3' ; Тип инструмента блексмита
VAR Udochka = '0x0F51' ; Тип даггера
VAR Kolvo = 1000 ; Брать ингов (3 инга = 1 ножик)
VAR MeshSer, j, k
While TRUE
UO.FindType( Logi, -1, Sunduk2 ) ; Ищем инги в сундуке 2
UO.Grab( Str( Kolvo ), 'finditem' ) ; Кладем инги в пак
wait( 2000 )
If UO.FindCount() == 0 Then
UO.Print("Logs not found, script terminated")
return
Endif
UO.FindType( Meshok, -1, Sunduk1 ) ; Ищем мешок в сундуке 1
MeshSer = UO.GetSerial( 'finditem' )
UO.Grab( '1', 'finditem' ) ; Кладем его в бэкпак
wait( 2000 )
UO.MoveItem( MeshSer, 0, Sunduk2 )
wait( 2000 )
While UO.Count( Logi ) > 3 ; Пока в паке есть инги
UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' ingov' )
UO.DeleteJournal()
UO.CancelMenu()
UO.WaitMenu('Swords & Blades', 'dagger')
uo.waittargettype(Logi)
UO.UseType( Rubanok )
k = 0
while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
k = k + 1
wait(500)
wend
; Wait( 14000 )
; Скрафтили даггер
; Сразу переложим ее в мешок
if UO.Count( Udochka ) > 0 then
UO.FindType( Udochka, -1, 'backpack' )
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 2000 )
UO.Print( 'dagger perelozhen' )
end if
Wend
Wend
end sub
Сделал дело - флуди смело !!!
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

Arsuri wrote:Если используешь инструмент, то необходимо указать на какой ресурс его применять. Вставь эту строку:

Code: Select all

uo.WaitTargetType(Logi)

после:

Code: Select all

UO.WaitMenu('Swords & Blades', 'dagger') 


Либо вместо инструмента сразу использовать ресурсы. Вместо:

Code: Select all

UO.UseType( Rubanok )

прописать:

Code: Select all

UO.UseType(Logi)

Мдаа
Опоздал я.
Сделал дело - флуди смело !!!
G-Light
Posts: 7
Joined: 2005-07-01 07:16:48
Location: Ethereal Portal
Contact:

Post by G-Light »

Большое вам спасибо, скрипт работает. Конечно есть интересные ньюансы. Но все же скрипт работает хорошо.

Если вам не сложно скажите пожалуста как вот скрипт узнает что попытка неудалась у нас скилл бс руссифицировали. При неудачной попытке пишется "Ваша попытка провалилась...".
Очень вот интересна эта система.

ПиСи спасибо за помощь. :roll:
Arsuri
Posts: 62
Joined: 2005-02-25 13:31:26
Location: DRW, [Hussars]
Contact:

Post by Arsuri »

Code: Select all

while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )


Попробуй заменить так:

Code: Select all

while NOT UO.InJournal('You put') AND NOT UO.InJournal('Ваша попытка провалилась...') AND ( k < 30 )


ХЗ, как будет обрабатываться руссифицированная месага... Пробуй.
G-Light
Posts: 7
Joined: 2005-07-01 07:16:48
Location: Ethereal Portal
Contact:

Post by G-Light »

Всем спасибо, скрипт работает и выглядит теперь вот так:
; Чар берет из сундука 1 пустой мешок, кладет этот мешок в сундук 2,
; берет из сундука 200 ингот, крафтит из них щиты и складывает эти щиты
; в этот мешок в сундуке 2. Если инги в сундуке 2 или пустые мешки
; кончились - выход
;
sub Blacksmithy()
VAR Sunduk1 = '0x401CCC95' ; Сериал сундука с пустыми мешками
VAR Sunduk2 = '0x401509F1' ; Сериал пустого сундука
VAR Meshok = '0x0E76' ; Тип мешка
VAR Logi = '0x1BEF' ; Тип ингов
VAR Rubanok = '0x13E3' ; Тип инструмента блексмита
VAR Udochka = '0x1B72' ; Тип щита
VAR Kolvo = 200 ; Брать ингов (10 инга = 1 щит)
VAR MeshSer, j, k
While TRUE
UO.FindType( Logi, -1, Sunduk2 ) ; Ищем инги в сундуке 2
UO.Grab( Str( Kolvo ), 'finditem' ) ; Кладем инги в пак
wait( 2000 )
If UO.FindCount() == 0 Then
UO.Print("Ingots not found, script terminated")
return
Endif
UO.FindType( Meshok, -1, Sunduk1 ) ; Ищем мешок в сундуке 1
MeshSer = UO.GetSerial( 'finditem' )
UO.Grab( '1', 'finditem' ) ; Кладем его в бэкпак
wait( 2000 )
UO.MoveItem( MeshSer, 0, Sunduk2 )
wait( 2000 )
While UO.Count( Logi ) > 3 ; Пока в паке есть инги
UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' ingov' )
UO.DeleteJournal()
UO.CancelMenu()
UO.Exec("waitmenu 'Blacksmithing' 'Shields' 'Shields' (2)")
uo.waittargettype(Logi)
UO.UseType( Rubanok )
k = 0
while NOT UO.InJournal('Вы успешно сделали bronze shield') AND NOT UO.InJournal('Ваша попытка провалилась...') AND ( k < 30 )
k = k + 1
wait(14000)
wend
; Wait( 14000 )
; Скрафтили щит
; Сразу переложим ее в мешок
if UO.Count( Udochka ) > 0 then
UO.FindType( Udochka, -1, 'backpack' )
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 2000 )
UO.Print( '!!!BRONZE SHIELD PERELOJEN!!!' )
end if
Wend
Wend
end sub
G-Light
Posts: 7
Joined: 2005-07-01 07:16:48
Location: Ethereal Portal
Contact:

Post by G-Light »

[Bugs]
Заметил в макросе небольшую но устранимую проблему.
Максимум у меня получается брать 700-900 инготов, после израсходования инготов макрос вместе с новой пачкой инготов берет и новую сумку. Так смысл заключается в том чтоб правильно поставить проверку чтоб он не брал новую сумку пока не будет в ней кол-во итемов 225. Может кто нить помоч? А пока я пробую найти вариант ее устарнения, если получится сделать его уникальным, выложу результат...
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

такой скрипт уже есть
просто брать инготы надо по мере того как они закончились (для даггеров <3)
а мешок нада менять когда сабж вылетает что мол итемов лишка уже
это 2 разные операции просто и не надо их одновременно анализировать и обрабатывать.
Сделал дело - флуди смело !!!
G-Light
Posts: 7
Joined: 2005-07-01 07:16:48
Location: Ethereal Portal
Contact:

Post by G-Light »

Askaneli wrote:такой скрипт уже есть
просто брать инготы надо по мере того как они закончились (для даггеров <3)
а мешок нада менять когда сабж вылетает что мол итемов лишка уже
это 2 разные операции просто и не надо их одновременно анализировать и обрабатывать.

сенк, попробую что нить с этим сделать.
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

G-Light wrote:
Askaneli wrote:такой скрипт уже есть
просто брать инготы надо по мере того как они закончились (для даггеров <3)
а мешок нада менять когда сабж вылетает что мол итемов лишка уже
это 2 разные операции просто и не надо их одновременно анализировать и обрабатывать.

сенк, попробую что нить с этим сделать.

Да и ваще не вижу смысла копить даггеры в пакетиках.
Лучше их сразу плавить.
Сделал дело - флуди смело !!!
G-Light
Posts: 7
Joined: 2005-07-01 07:16:48
Location: Ethereal Portal
Contact:

Post by G-Light »

Askaneli wrote:
G-Light wrote:
Askaneli wrote:такой скрипт уже есть
просто брать инготы надо по мере того как они закончились (для даггеров <3)
а мешок нада менять когда сабж вылетает что мол итемов лишка уже
это 2 разные операции просто и не надо их одновременно анализировать и обрабатывать.

сенк, попробую что нить с этим сделать.

Да и ваще не вижу смысла копить даггеры в пакетиках.
Лучше их сразу плавить.

так у меня др. макрос на плавку из сумочек. :)
Чтот у меня с твоим вариантом не получается сделать скрипт. Пришлось ИзиУо совместно прикрепить чтоб докладывал ресурс в пак. а То с сумками трабла. Вот с ИзиУо все вроде оптимально :)
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

G-Light wrote:
Askaneli wrote:
G-Light wrote:
Askaneli wrote:такой скрипт уже есть
просто брать инготы надо по мере того как они закончились (для даггеров <3)
а мешок нада менять когда сабж вылетает что мол итемов лишка уже
это 2 разные операции просто и не надо их одновременно анализировать и обрабатывать.

сенк, попробую что нить с этим сделать.

Да и ваще не вижу смысла копить даггеры в пакетиках.
Лучше их сразу плавить.

так у меня др. макрос на плавку из сумочек. :)
Чтот у меня с твоим вариантом не получается сделать скрипт. Пришлось ИзиУо совместно прикрепить чтоб докладывал ресурс в пак. а То с сумками трабла. Вот с ИзиУо все вроде оптимально :)

да сразу плавить надо а не копить в сумочках.
Сделал дело - флуди смело !!!
G-Light
Posts: 7
Joined: 2005-07-01 07:16:48
Location: Ethereal Portal
Contact:

Post by G-Light »

2 Askaneli
Уговорил, буду апдейт скрипта делать. :roll:
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Там, что-то гвоорили про русские мессаги - не забываем про shwojournal!
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Askaneli wrote:
G-Light wrote:
Askaneli wrote:такой скрипт уже есть
просто брать инготы надо по мере того как они закончились (для даггеров <3)
а мешок нада менять когда сабж вылетает что мол итемов лишка уже
это 2 разные операции просто и не надо их одновременно анализировать и обрабатывать.

сенк, попробую что нить с этим сделать.

Да и ваще не вижу смысла копить даггеры в пакетиках.
Лучше их сразу плавить.


Дык не надо было брать в качестве основы скритп на карпу. Где вы видели карпу с переплавкой логов?
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Может я тупой, но "переплавка логов" это как?
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

Edred wrote:
Askaneli wrote:
G-Light wrote:
Askaneli wrote:такой скрипт уже есть
просто брать инготы надо по мере того как они закончились (для даггеров <3)
а мешок нада менять когда сабж вылетает что мол итемов лишка уже
это 2 разные операции просто и не надо их одновременно анализировать и обрабатывать.

сенк, попробую что нить с этим сделать.

Да и ваще не вижу смысла копить даггеры в пакетиках.
Лучше их сразу плавить.


Дык не надо было брать в качестве основы скритп на карпу. Где вы видели карпу с переплавкой логов?

Энто было желание АФФТОРА.
Сделал дело - флуди смело !!!
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

Destruction wrote:Может я тупой, но "переплавка логов" это как?

ГЫЫЫЫЫЫЫЫЫ
Чит такой просто. Мона также логи из воды ловить киркой :D
Сделал дело - флуди смело !!!
Post Reply