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

Некоторые мои скрипты (кладу для соседнего раздела)
http://forum.yoko.com.ua/viewtopic.php?f=20&t=617
Page 1 of 2

Author:  Edred [ 2004-06-21 18:49:23 ]
Post subject:  Некоторые мои скрипты (кладу для соседнего раздела)

Code:
#####################################################################
; Training of Mining, ver 1.03, (c) Edred
sub Smelt()
VAR Ruda1 = '0x19B9'            ; Тип руды
VAR Ruda2 = '0x19B8'            ; Тип руды - 3 шт.
VAR Ruda3 = '0x19BA'            ; Тип руды - 2 шт.
VAR Ruda4 = '0x19B7'            ; Тип руды - 1 шт.
VAR Ing1 = '0x1BEF'               ; Тип ингов металлов
VAR Ing2 = '0x1BF2'               ; Тип ингов строймата
VAR MaxVes = 500               ; Максимальный вес пака
repeat   
   UO.Findtype( Ruda1, -1, 1 )      ; Ищем руду на земле
   If UO.Findcount() == 0 Then
      UO.Findtype( Ruda2, -1, 1 )
      If UO.Findcount() == 0 Then
         UO.Findtype( Ruda3, -1, 1 )
         If UO.Findcount() == 0 Then
            UO.Findtype( Ruda4, -1, 1 )
            If UO.Findcount() == 0 Then
               UO.Print( "No more ore for smelt..." )
               Return
            Endif
         Endif
      Endif
   Endif
   UO.Exec( "moveitem finditem 1" )   ; Тащим 1 в пак
   Wait( 1000 )
   UO.Useobject( 'finditem' )      ; переплавляем
   Wait( 1000 )
   If UO.Weight > MaxVes Then
      ; Максимальный вес пака превышен - разгружаемся
      UO.Findtype( Ing1, -1, -1 )
      If UO.Findcount() > 0 Then
         UO.Drophere( 'finditem' )
         Wait( 1000 )
      Endif
      UO.Findtype( Ing2, -1, -1 )
      If UO.Findcount() > 0 Then
         UO.Drophere( 'finditem' )
         Wait( 1000 )
      Endif
   Endif
until NOT Uo.CountGround( Ruda1 ) AND NOT UO.CountGround( Ruda2 ) AND NOT UO.CountGround( Ruda3 ) AND NOT UO.CountGround( Ruda4 )
UO.Print( "No more ore for smelt..." )
endsub


Code:
#####################################################################
; Teiloring. v.1.03b (c) Edred
;
sub teiloring()
   VAR Sunduk1 = '0x4017439B'       ; Сериал сундука с пустыми мешками
   VAR Sunduk2 = '0x4000F46C'       ; Сериал пустого сундука
   VAR Meshok = '0x0E76'          ; Тип мешка
   VAR Shkur = '0x1067'          ; Тип шкур
   VAR Vosk = '0x1423'          ; Тип воска
   VAR Kit = '0x0F9D'          ; Тип инструмента тейлора
   VAR Map = '0x14EB'          ; Тип карты
   VAR Kolvo = 200          ; Брать шкур и воска
   VAR MeshSer, j, ShkurSer, k
   VAR Med = '0x09EC'         ; Тип меда
   While TRUE
      UO.FindType( Shkur, -1, 1 )    ; Ищем шкуры на полу
      If UO.FindCount() == 0 Then
         UO.Print("Leathers not found, script terminated")
         return
      Endif
      UO.Grab( Str( Kolvo ), 'finditem' )    ; Кладем логи в пак
      wait( 2000 )
      UO.FindType( Vosk, -1, 1 )       ; Ищем и берем воск
      If UO.FindCount() == 0 Then
         UO.Print("Beeswaxs not found, script terminated")
         return
      Endif
      UO.Grab( Str( Kolvo ), 'finditem' )
      wait( 2000 )
      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( Shkur ) > 1
         ; Пока в паке есть шкуры
         UO.Print('Ostalos ' + Str( UO.Count( Shkur ) ) + ' shkur' )
         UO.FindType( Shkur, -1, 'backpack' )
         ShkurSer = UO.GetSerial( 'finditem' )
         UO.CancelMenu()
         UO.DeleteJournal()
         UO.WaitMenu ("Leather", "Blank's", "Blank's", "blank map" )
         UO.WaitTargetObject( ShkurSer )
         UO.UseType( Kit )
         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( Map ) > 0 then
            UO.FindType( Map, -1, 'backpack' )
            UO.MoveItem( 'finditem', 0, MeshSer )
            wait( 2000 )
            UO.Print( 'Karta perelozhena' )
         end if
      Wend
   Wend
end sub


Code:
#####################################################################
; Tinker. v.1.00b (c) Edred
;
; Чар берет из сундука инготы, крафтит из них бутылки
; и складывает эти бутылки в этот же сундук.
; Если инги закончились - выход.
;
sub tinker()
   VAR Sunduk = '0x4042B1A1'       ; Сериал сундука
   VAR Ingi = '0x1BEF'          ; Тип ингов
   VAR Instrum = '0x1EBC'          ; Тип инструмента тинкера
   VAR Bottle = '0x0F0E'          ; Тип бутылки
   VAR Kolvo = 200          ; Брать ингов
   VAR k = 0
   While TRUE
      UO.FindType( Ingi, -1, Sunduk )   ; Ищем инги в сундуке
      If UO.FindCount() == 0 Then
         UO.Print("Iron Ingots not found, script terminated")
         return
      Endif
      UO.Grab( Str( Kolvo ), 'finditem' )
      wait( 2000 )
      While UO.Count( Ingi ) > 0
         ; Пока в паке есть инги
         UO.Print('Ostalos ' + Str( UO.Count( Ingi ) ) + ' ingots' )
         UO.DeleteJournal()
         UO.CancelMenu()
         UO.WaitMenu ('Tinkering', 'Tools', 'Tools', 'empty bottle' )
         UO.UseType( Instrum )
         k = 0
         while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
            k = k + 1
            wait(500)
         wend
         if UO.Count( Bottle ) > 0 then
            UO.FindType( Bottle, -1, -1 )
            UO.MoveItem( 'finditem', 0, Sunduk )
            wait( 1000 )
            UO.Print( 'Bottle moved' )
         end if
      Wend
   Wend
end sub


Code:
#####################################################################
; Carpentry. v.1.12b (c) Edred
;
; Чар берет из сундука 1 пустой мешок, кладет этот мешок в сундук 2,
; берет с пола логи, крафтит из них удочки и складывает эти удочки
; в этот мешок в сундуке 2. Если логи на полу или пустые мешки
; кончились - выход
;
sub carpentry()
   VAR Sunduk1 = '0x4017439B'       ; Сериал сундука с пустыми мешками
   VAR Sunduk2 = '0x4000F46C'       ; Сериал пустого сундука
   VAR Meshok = '0x0E76'          ; Тип мешка
   VAR Logi = '0x1BDD'          ; Тип логов
   VAR Rubanok = '0x1031'          ; Тип инструмента карпентера
   VAR Udochka = '0xDBF'          ; Тип удочки
   VAR Kolvo = 460          ; Брать логов (2 лога = 1 удочка)
   VAR MeshSer, j, k
   While TRUE
      UO.FindType( Logi, -1, 1 )       ; Ищем логи на полу
      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 ) > 0
         ; Пока в паке есть логи
         UO.Print('Ostalos ' + Str( UO.Count( Logi ) ) + ' logov' )
         UO.DeleteJournal()
         UO.CancelMenu()
         UO.WaitMenu ('Carpentry', 'Weapons & Tools', 'Weapons & Tools', 'fishing' )
         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( 'Udochka perelozhena' )
         end if
      Wend
   Wend
end sub

Author:  Yoko [ 2004-06-21 23:24:33 ]
Post subject: 

отправил запрос на дооформление и допись описи

Author:  Lord Ruslan Nightmare [ 2004-06-24 02:53:30 ]
Post subject: 

В скрипте на смелт есть пара маленьких недочетов
1) на сфере извествен баг - при большом весе кучи из неё не получается взять 1 предмет (2 - легко, но 1 - сервер не позволяет )
2) на некоторых шардах, если скилл настолько маленький, что много руды сгорает, то скилл не будет расти, т.к. 1 единица руды, при очень низком скилле, будет сгорать всегда (а на физзлах скилл опять же может не расти)
3) на некоторых шардах инготы имеют несколько типов и различаются по цветам (например, на моём - все доп. руды имеют тип как у айрона и уникальный цвет, а коппер и голд имеют цвет ноль, но зато обладают уникальными типами)
4) на некоторых шардах нельзя плавить определенный вид руды, если у тебя слишком мало скилла для неё. Я что-то не увидел в скрипте никаких if uo.skillval
5) опасно кидаться под ноги. Например, на нашем нарде на 1 тайле не может лежать больше 32 айтемов.
6) также на некоторых шардах при кидании под ноги вещи кладутся друг на друга (даже если они одного типа) и получается такой столбик из инготов. Я уже не помню, что с ним становится, когда он перерастает определенный предел - но лучше не искушать судьбу.
7) wait(1000) - это универсально, но не актуально. Лучше сделать удостоверение переноса через uo.containerof() с защитой от фастлута и таймаутом.
8) На некоторых шардах нужно после использования руды тыкнуть появившемся таргетом на фордж.

В общем, скрипт явно шардозависимый...Да оно и понятно - слишком частная вещь, в отличие от, например, майнинга или ламберджакинга.

Author:  Bloodmoon [ 2004-06-24 09:39:25 ]
Post subject: 

У меня вопросик:"А скрипт на карпентри-это на какие вещи?т.е. какие вещи он делает?"

Author:  Edred [ 2004-06-24 12:26:20 ]
Post subject: 

Lord Ruslan Nightmare wrote:
В скрипте на смелт есть пара маленьких недочетов


Это не недочеты, а естественная шардозависимость :) Ты же сам дальше об этом написал... Все мои скрипты написаны для шарда Цитадель. Я играю только на нем.

Quote:
1) на сфере извествен баг - при большом весе кучи из неё не получается взять 1 предмет (2 - легко, но 1 - сервер не позволяет )


На Ците все скиллы переписаны, такой глюк не наблюдается.

Quote:
2) на некоторых шардах, если скилл настолько маленький, что много руды сгорает, то скилл не будет расти, т.к. 1 единица руды, при очень низком скилле, будет сгорать всегда (а на физзлах скилл опять же может не расти)


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

Quote:
3) на некоторых шардах инготы имеют несколько типов и различаются по цветам (например, на моём - все доп. руды имеют тип как у айрона и уникальный цвет, а коппер и голд имеют цвет ноль, но зато обладают уникальными типами)


На Ците все руды имеют один тип, разные цвета. Включая строймат.

Quote:
4) на некоторых шардах нельзя плавить определенный вид руды, если у тебя слишком мало скилла для неё. Я что-то не увидел в скрипте никаких if uo.skillval


Смотри комментарий насчет опилок

Quote:
5) опасно кидаться под ноги. Например, на нашем нарде на 1 тайле не может лежать больше 32 айтемов.


На Ците около 20 (счас точно не помню) видов руды, качаются, естественно, на 7-8 младших. При сбрасывании ингов под ноги они прекрасно суммируются с уже лежащими. Ограничение на тайл тоже есть, но оно никогда не достигается на этом скрипте.

Quote:
6) также на некоторых шардах при кидании под ноги вещи кладутся друг на друга (даже если они одного типа) и получается такой столбик из инготов. Я уже не помню, что с ним становится, когда он перерастает определенный предел - но лучше не искушать судьбу.
7) wait(1000) - это универсально, но не актуально. Лучше сделать удостоверение переноса через uo.containerof() с защитой от фастлута и таймаутом.


Первый раз слышу про такое :shock:

Quote:
8) На некоторых шардах нужно после использования руды тыкнуть появившемся таргетом на фордж.


У нас - нет. Кирка в руках и стоим рядом с форжой.

Quote:
В общем, скрипт явно шардозависимый...Да оно и понятно - слишком частная вещь, в отличие от, например, майнинга или ламберджакинга.


Естественно. И понятное дело - каждый под свой шард такие скрипты правит сам. У меня и в мыслях не было написать шардонезависимый скрипт.

Author:  Yoko [ 2004-06-24 14:18:29 ]
Post subject: 

конечно идеальный скрипт шардонезависим, не требует повторной настройки и работает в любой ситуации.

что же на деле это означает? автор должен был поиграть на куче шардов, как минимум на сфере, поле, рануо; должен обладать знанием всех основных приёмов скриптописания; вставить дохера проверок на ситуации встречающихся на разных шардах (сейв ворлды, одноитемные перемещения, атаки мюрдасов, приходы гмов и бог весть что ещё).

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

Author:  Macks [ 2004-06-24 14:23:14 ]
Post subject: 

Lord Ruslan Nightmare wrote:
В скрипте на смелт есть пара маленьких недочетов

В общем, скрипт явно шардозависимый...Да оно и понятно - слишком частная вещь, в отличие от, например, майнинга или ламберджакинга.


А Вы бы не могли откоректировать этот скрипт с учетом Ваших замечаний?

Author:  Macks [ 2004-06-24 14:31:14 ]
Post subject: 

Edred wrote:
Quote:
5) опасно кидаться под ноги. Например, на нашем нарде на 1 тайле не может лежать больше 32 айтемов.


На Ците около 20 (счас точно не помню) видов руды, качаются, естественно, на 7-8 младших. При сбрасывании ингов под ноги они прекрасно суммируются с уже лежащими. Ограничение на тайл тоже есть, но оно никогда не достигается на этом скрипте.


Может я не прав, но не проще ли кидать инготы в контейнер к другим инготам?

Author:  Lord Ruslan Nightmare [ 2004-06-24 15:18:45 ]
Post subject: 

Чужие скрипты не правлю (почти), только свои пишу...Просто я как раз сейчас прокачиваю БСа - поэтому тема насчет автопереплавки руды мне столь близка.

Author:  Edred [ 2004-06-24 18:23:16 ]
Post subject: 

Macks wrote:
Edred wrote:
Quote:
5) опасно кидаться под ноги. Например, на нашем нарде на 1 тайле не может лежать больше 32 айтемов.


На Ците около 20 (счас точно не помню) видов руды, качаются, естественно, на 7-8 младших. При сбрасывании ингов под ноги они прекрасно суммируются с уже лежащими. Ограничение на тайл тоже есть, но оно никогда не достигается на этом скрипте.


Может я не прав, но не проще ли кидать инготы в контейнер к другим инготам?


Я, естественно, писал этот скрипт под себя. Точнее, под прокачку мининга у мультичара. Меня вполне устраивал вариант сброса под ноги. Контейнер - его еще надо было бы притащить к форже, прилочить, записать сериал, а когда дать этот скрипт кому-то еще - не забыть объяснить про замену сериала - зачем? Простота - залог успеха (естественно, если не в ущерб качеству). В моем скрипте никаких настроек не требуется (за исключением ситуаций с переделанными типами руд на шардах, ну и прочей экзотикой).

И еще, повторяю: если вы положили рядом с чаром для прокачки кучку вышки, а мининга у чара кот наплакал - не пишите мне жалоб, это - к доктору.

Author:  BETEPAH [ 2004-06-24 21:20:50 ]
Post subject: 

ДЛЯ Edred !!!
Посмотри как я сделал.....попробуй переделать ...скрипт просто потребует меньше настроек и ньюбам будет легче (не надо будет вписывать свои айдишники)
http://yoko.netroof.net/forum/viewtopic.php?t=647

Просто множество предметов можно просто указать перед началом скрипта и не надо парится с ,info

Author:  Edred [ 2004-06-25 12:56:20 ]
Post subject: 

BETEPAH wrote:
ДЛЯ Edred !!!
Посмотри как я сделал.....попробуй переделать ...


Ты внимательно мои посты читал? ПИСАЛОСЬ ПОД СЕБЯ. Я не пишу скриптов на заказ. Я всего лишь гарантирую, что при соблюдении определенных условий этот скрипт работает. Если кого-то интересует переделать мой скрипт - флаг в руки.

Author:  BETEPAH [ 2004-06-26 08:57:21 ]
Post subject: 

Мдя......я не глухой и не слепой ,а вот ты видимо да .....прочти сам мой топ повнимательнее Я просто предложил переделать ("и ньюбам будет легче")

Author:  Yoko [ 2004-06-26 11:42:55 ]
Post subject: 

если у когото есть желание дополнить переделать или ещё что сделать - пожалуйста, я запощу ваш скрипт следом за уже написаными. насиловать автора не обязательно.

Author:  Edred [ 2004-06-27 14:29:46 ]
Post subject: 

BETEPAH wrote:
Мдя......я не глухой и не слепой ,а вот ты видимо да .....прочти сам мой топ повнимательнее Я просто предложил переделать ("и ньюбам будет легче")


Дык про это же я и пишу... Ньюбам будет легче. Мне - сложнее. Потому как, например, тинкер я себе еще не докачал, счас когда хочу покачать - подхожу к сундуку где айрон лежит, даю run на тинкер и в трей клиента, а если переделать на прицелы - каждый раз придется по одним и тем же сундукам, айрону, тинкертулзу, бутылкам щелкать. Зачем? Гораздо проще, мне кажется, один раз выяснить сериалы и типы (если они на шарде не такие как везде) и занести в скрипт, чем каждый раз выцеливать. Это же скрипты на прокачку, причем на прокачку крафтов. Не знаю как у вас на шарде - а Цитадель славится своей сверхдолгой прокачкой...

Author:  BETEPAH [ 2004-06-27 14:32:57 ]
Post subject: 

Прошу прощения за нездерженость.

Author:  Yoko [ 2004-06-27 16:21:24 ]
Post subject: 

Edred wrote:
BETEPAH wrote:
Мдя......я не глухой и не слепой ,а вот ты видимо да .....прочти сам мой топ повнимательнее Я просто предложил переделать ("и ньюбам будет легче")


Дык про это же я и пишу... Ньюбам будет легче. Мне - сложнее. Потому как, например, тинкер я себе еще не докачал, счас когда хочу покачать - подхожу к сундуку где айрон лежит, даю run на тинкер и в трей клиента, а если переделать на прицелы - каждый раз придется по одним и тем же сундукам, айрону, тинкертулзу, бутылкам щелкать. Зачем? Гораздо проще, мне кажется, один раз выяснить сериалы и типы (если они на шарде не такие как везде) и занести в скрипт, чем каждый раз выцеливать. Это же скрипты на прокачку, причем на прокачку крафтов. Не знаю как у вас на шарде - а Цитадель славится своей сверхдолгой прокачкой...


Напоминаю, что главной особенностью выкладываемых скриптов должно быть удобство первого запуска скрипта, чтобы человек увидел как он работает. Если человек ещё и чтото понимает он сам зафиксирует сериалы.

Author:  Edred [ 2004-06-27 18:18:57 ]
Post subject: 

Прокачка пойзона (травим мед)

Заявку счас скину Йоко в личные.

Code:
sub poison()
; v. 1.02 (c) Edred
; Положите рядом с чаром на пол побольше меду и lesser poison,
; поставьте рядом сундук, занесите его сериал в переменную
; Sunduk (туда будут сбрасываться пустые бутылки и отравленный мед)
; Если что-то не берет - значит положили далеко от чара,
; поправьте цифру в команде set finddistance
;
   VAR Sunduk = '0x404331B7'
   VAR Med = '0x09EC'
   VAR LesPois = '0x0F0A'
   VAR EmpBot = '0x0F0E'
   VAR MedSer, k
   UO.Exec('set finddistance 2')
   While TRUE
      UO.FindType( Med, -1, 1 )
      If UO.FindCount() == 0 Then
         UO.Print("Jars not found, script terminated")
         return
      Endif
      UO.Grab( '1', 'finditem' )
      wait( 2000 )
      UO.FindType( LesPois, -1, 1 )
      If UO.FindCount() == 0 Then
         UO.Print("Bottle of Poison not found, script terminated")
         return
      Endif
      UO.Grab( '1', 'finditem' )
      wait( 2000 )
      UO.DeleteJournal()
      UO.WaitTargetType( Med )
      UO.UseObject( 'finditem' )
      k = 0
      while NOT UO.InJournal('You apply lesser poison') AND NOT UO.InJournal('You fail to apply lesser poison') AND ( k < 30 )
         k = k + 1
         wait(500)
      wend
      UO.Print( 'meda v pake ' + str( UO.Count( Med ) ) )
      if UO.Count( Med ) > 0 then
         UO.FindType( Med, -1, 'backpack' )
         UO.MoveItem( 'finditem', 0, Sunduk )
         wait( 2000 )
         UO.Print( 'Jar dropped' )
      end if
      if UO.Count( EmpBot ) > 0 then
         UO.FindType( EmpBot, -1, 'backpack' )
         UO.MoveItem( 'finditem', 0, Sunduk )
         wait( 2000 )
         UO.Print( 'Empty bottle dropped' )
      end if
   Wend
end sub

Author:  Yoko [ 2004-06-27 23:19:53 ]
Post subject: 

значит так, я терпел но теперь но похоже пора требовать - каждый скрипт для раздела Scritps! в отдельный топик! и адрес отдельного топика указывать в заявке. Смысл ссылки в том чтобы пользователь задавал вопросы по скрипту в отведённом ему топике а не в создании винигрета!

Author:  AvantriX [ 2004-07-06 12:30:10 ]
Post subject: 

хмм....юзал карпентри берет мешок крафтит заполняет мешок, А потом уже не берет мешок и не перекладывает.....во второй сундук....баг или так и должно быть?

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