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

перелив
http://forum.yoko.com.ua/viewtopic.php?f=17&t=17403
Page 1 of 3

Author:  pahha1988 [ 2014-02-18 14:32:18 ]
Post subject:  перелив

Подскажите как сделать так чтобы персонаж из своей сумки(ботлы) переливал из кега(только тех которые не пустые) из сумки на полу :D

Author:  Incorrect User [ 2014-02-18 14:56:14 ]
Post subject:  Re: перелив

Что и куда переливать, и сразу пиши ID и Type каждого предмета.

Author:  pahha1988 [ 2014-02-18 15:01:52 ]
Post subject:  Re: перелив

Incorrect User wrote:
Что и куда переливать, и сразу пиши ID и Type каждого предмета.

pereliv:
UO.FindType('0x0F0A','0x0000','0x60BEA14D')
If UO.Count('0x0F0A')<1 then
UO.FindType('0x0F0E','0x0000','0x60BEA14D')
UO.MoveItem('finditem','1','0x60CE3326')
wait(2000)

вот кусочек который работает но только на конкретный кег который каждый раз нужно руками менять
ищет бутылку с ядом
если не находит не одной
ищет пустую бутылку в бекпаке своем (можно как я понимаю поставить -1 ? )
и мувит пустую на полный кег в сумке которая рядом на полу

Author:  Incorrect User [ 2014-02-18 15:04:42 ]
Post subject:  Re: перелив

Потому что тут указан конкретный кег 0x60CE3326. Я вообще не пойму суть того что нужно делать. Если нужно лить в пустой кег то нужно предварительно искать его на полу и, я так понимаю определять нашел пустой или полный по цвету, и уже выбирать лить или не лить.

Author:  Incorrect User [ 2014-02-18 15:07:56 ]
Post subject:  Re: перелив

В общем дай полностью ,info на полный кег и на пустой кег.

Author:  pahha1988 [ 2014-02-18 15:10:06 ]
Post subject:  Re: перелив

Incorrect User wrote:
Потому что тут указан конкретный кег 0x60CE3326. Я вообще не пойму суть того что нужно делать. Если нужно лить в пустой кег то нужно предварительно искать его на полу и, я так понимаю определять нашел пустой или полный по цвету, и уже выбирать лить или не лить.

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

Author:  Incorrect User [ 2014-02-18 15:12:11 ]
Post subject:  Re: перелив

То есть тебе нужно пустую бутылку из пака кидать на полный кег стоящий на полу? И давай полностью ,info на полный кег и на пустой кег как я сказал. Только подпиши где пустой где полный

Author:  pahha1988 [ 2014-02-18 15:21:12 ]
Post subject:  Re: перелив

Incorrect User wrote:
То есть тебе нужно пустую бутылку из пака кидать на полный кег стоящий на полу? И давай полностью ,info на полный кег и на пустой кег как я сказал. Только подпиши где пустой где полный

кеги лежат в сумке
ID=0x60D9A553 Type=0x0E75 ZEPSTGF Name=
Quantity: 1 Colour: 0x0000 Layer: 0 Has: 0
X=2478 Y=90 Z=26 C=0xFFFFFFFF F=0x20
пустой кег

ID=0x60EF2234 Type=0x1940 TFXBSGF Name=an empty potion keg
Quantity: 1 Colour: 0x0000 Layer: 0 Has: 0
X=50 Y=108 Z=0 C=0x60D9A553 F=0x00
почти полный ( но катят все в которых есть хотябы 1 заряд)
ID=0x60CE3257 Type=0x1940 TFXBSGF Name=keg of poison potions [charges: 25/75]
Quantity: 1 Colour: 0x0000 Layer: 0 Has: 0
X=50 Y=108 Z=0 C=0x60D9A553 F=0x00

Author:  Incorrect User [ 2014-02-18 15:51:10 ]
Post subject:  Re: перелив

В общем нужно искать кеги, делать клик и смотреть имя, если пустой то игнорить и искать дальше.

Author:  pahha1988 [ 2014-02-18 15:54:01 ]
Post subject:  Re: перелив

Incorrect User wrote:
В общем нужно искать кеги, делать клик и смотреть имя, если пустой то игнорить и искать дальше.

тоесть логика

кликаю на тип если полный то лью (куда? ласттарег или как?)
можешь хотябы примерно переменных накидать?

Author:  Incorrect User [ 2014-02-18 16:37:19 ]
Post subject:  Re: перелив

Нужно указать в условиях еще два - keg и bottle и впиши ID сумки с кегам, она должна быть открыта при работе скрипта.
Code:
pereliv:
uo.findtype("0x0F0A", -1, "backpack")
if not uo.findcount() then
   uo.print("Яда нет, ищем кег...")
   wait(100)
   uo.findtype("0x0F0E", -1, "backpack")
   bottle = uo.getserial("finditem")
   repeat
      uo.deletejournal()
      uo.findtype("0x1940", -1, "ID сумки с кегами")
      if uo.findcount() then
         uo.print("Нашел кег...")
         keg = uo.getserial("finditem")
         uo.click("finditem")
         wait(100)
         if not uo.injournal("keg of poison potions") then
            uo.print("Кег пустой, ищем далее...")
            uo.ignore("finditem")
         end if
      else
         uo.print("Кончился яд")
         return
      end if
   until uo.injournal("keg of poison potions")
   uo.moveitem(bottle, 1, keg)
   wait(2000)
end if


Вроде ничего не перепутал, пробуй.

Author:  Incorrect User [ 2014-02-18 16:58:08 ]
Post subject:  Re: перелив

Немного поправил, скопируй снова.

Author:  pahha1988 [ 2014-02-18 17:10:15 ]
Post subject:  Re: перелив

if not uo.findcount() then
parse error

Author:  Incorrect User [ 2014-02-18 17:13:08 ]
Post subject:  Re: перелив

А там цифру ж убери) поправил пост, копируй

Author:  pahha1988 [ 2014-02-18 17:24:53 ]
Post subject:  Re: перелив

Incorrect User wrote:
А там цифру ж убери) поправил пост, копируй

var bottles='0x0F0E'
var keg='0x1940'

sub pereliv()
pereliv:
uo.findtype("0x0F0E", -1, "backpack")
if not uo.findcount() then
wait(100)
uo.findtype("0x0F0A", -1, "backpack")
bottle = uo.getserial("finditem")
repeat
uo.deletejournal()
uo.findtype("0x1940", -1, "0x60D9A553")
if uo.findcount() then
keg = uo.getserial("finditem")
uo.click("finditem")
wait(100)
if uo.injournal("keg of poison potions") then
uo.ignore("finditem")
end if
end if
until uo.injournal("keg of poison potions")
uo.moveitem(bottles, 1, keg)
wait(2000)
end if
end sub

пишет items found=1 и все
если слить весь яд пишет found=2

Author:  Incorrect User [ 2014-02-18 17:30:08 ]
Post subject:  Re: перелив

var bottles='0x0F0E'
var keg='0x1940'
Не обязательно и не bottles а bottle, можно просто
Code:
var bottle, keg

Добавил в пост принты, пробуй.

Author:  pahha1988 [ 2014-02-18 17:33:44 ]
Post subject:  Re: перелив

Incorrect User wrote:
var bottles='0x0F0E'
var keg='0x1940'
Не обязательно и не bottles а bottle, можно просто
Code:
var bottle, keg

Добавил в пост принты, пробуй.

находит 1 пустую бутылку в бекпаке и все

Author:  Incorrect User [ 2014-02-18 17:34:56 ]
Post subject:  Re: перелив

1 это не значит одна бутылка, это может быть и одна кучка. Сообщений никаких больше?

Author:  pahha1988 [ 2014-02-18 17:36:53 ]
Post subject:  Re: перелив

Incorrect User wrote:
1 это не значит одна бутылка, это может быть и одна кучка. Сообщений никаких больше?

var bottle, keg

sub pereliv()
pereliv:
uo.findtype("0x0F0A", -1, "backpack")
if not uo.findcount() then
wait(100)
uo.findtype("0x0F0E", -1, "backpack")
bottle = uo.getserial("finditem")
repeat
uo.deletejournal()
uo.findtype("0x1940", -1, "0x60D9A553")
if uo.findcount() then
keg = uo.getserial("finditem")
uo.click("finditem")
wait(100)
if uo.injournal("keg of poison potions") then
uo.ignore("finditem")
end if
end if
until uo.injournal("keg of poison potions")
uo.moveitem(bottle, 1, keg)
wait(2000)
end if
end sub

все пашет поменял местами в самом начале пустой тип на яд а яд на пустой и гуд
респект.
завтра буду разбираться как ты это сделал ))

только теперь когда тамже видны пустые кеги просто тычет в него и все (после того как я раскидал кеги по сумке)

Author:  Incorrect User [ 2014-02-18 17:43:40 ]
Post subject:  Re: перелив

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

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