Yoko
http://forum.yoko.com.ua/

Помогите пожалуста поправить скрипт на БС.
http://forum.yoko.com.ua/viewtopic.php?f=20&t=4366
Page 1 of 1

Author:  G-Light [ 2005-07-01 07:40:01 ]
Post subject:  Помогите пожалуста поправить скрипт на БС.

Помогите опознать ошибку, я думаю что это возможно из-за того что у меня не стоит где то галочка в мейне или наоборот стоит та что мешает его работе. Скрипт видит первую меню но даггер в этой менюшке не начинает производить выводится таргет. Я его щелкаю на инготу и только тогда даггер делается. Но цикла нет. Помогите увидить ошибку почему производство даггера останавливается на таргете. Менюшка выглядит так, как только открывается называется Swords & Blades => dagger.
Quote:
; Чар берет из сундука 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

Author:  Arsuri [ 2005-07-01 08:01:15 ]
Post subject: 

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

после:
Code:
UO.WaitMenu('Swords & Blades', 'dagger') 


Либо вместо инструмента сразу использовать ресурсы. Вместо:
Code:
UO.UseType( Rubanok )

прописать:
Code:
UO.UseType(Logi)

Author:  Askaneli [ 2005-07-01 08:02:33 ]
Post subject: 

Code:
; Чар берет из сундука 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

Author:  Askaneli [ 2005-07-01 08:03:53 ]
Post subject: 

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

после:
Code:
UO.WaitMenu('Swords & Blades', 'dagger') 


Либо вместо инструмента сразу использовать ресурсы. Вместо:
Code:
UO.UseType( Rubanok )

прописать:
Code:
UO.UseType(Logi)

Мдаа
Опоздал я.

Author:  G-Light [ 2005-07-01 08:56:33 ]
Post subject: 

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

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

ПиСи спасибо за помощь. :roll:

Author:  Arsuri [ 2005-07-01 10:08:33 ]
Post subject: 

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


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

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


ХЗ, как будет обрабатываться руссифицированная месага... Пробуй.

Author:  G-Light [ 2005-07-01 10:43:23 ]
Post subject: 

Всем спасибо, скрипт работает и выглядит теперь вот так:
Quote:
; Чар берет из сундука 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

Author:  G-Light [ 2005-07-01 11:38:30 ]
Post subject: 

[Bugs]
Заметил в макросе небольшую но устранимую проблему.
Максимум у меня получается брать 700-900 инготов, после израсходования инготов макрос вместе с новой пачкой инготов берет и новую сумку. Так смысл заключается в том чтоб правильно поставить проверку чтоб он не брал новую сумку пока не будет в ней кол-во итемов 225. Может кто нить помоч? А пока я пробую найти вариант ее устарнения, если получится сделать его уникальным, выложу результат...

Author:  Askaneli [ 2005-07-01 11:46:27 ]
Post subject: 

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

Author:  G-Light [ 2005-07-01 11:59:08 ]
Post subject: 

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

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

Author:  Askaneli [ 2005-07-01 12:05:35 ]
Post subject: 

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

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

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

Author:  G-Light [ 2005-07-01 12:25:23 ]
Post subject: 

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

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

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

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

Author:  Askaneli [ 2005-07-01 12:35:47 ]
Post subject: 

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

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

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

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

да сразу плавить надо а не копить в сумочках.

Author:  G-Light [ 2005-07-01 12:43:48 ]
Post subject: 

2 Askaneli
Уговорил, буду апдейт скрипта делать. :roll:

Author:  Destruction [ 2005-07-02 01:20:17 ]
Post subject: 

Там, что-то гвоорили про русские мессаги - не забываем про shwojournal!

Author:  Edred [ 2005-07-02 09:50:45 ]
Post subject: 

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

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

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


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

Author:  Destruction [ 2005-07-03 17:12:12 ]
Post subject: 

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

Author:  Askaneli [ 2005-07-04 05:05:51 ]
Post subject: 

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

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

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


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

Энто было желание АФФТОРА.

Author:  Askaneli [ 2005-07-04 05:06:48 ]
Post subject: 

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

ГЫЫЫЫЫЫЫЫЫ
Чит такой просто. Мона также логи из воды ловить киркой :D

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/