Page 1 of 3

перелив

Posted: 2014-02-18 14:32:18
by pahha1988
Подскажите как сделать так чтобы персонаж из своей сумки(ботлы) переливал из кега(только тех которые не пустые) из сумки на полу :D

Re: перелив

Posted: 2014-02-18 14:56:14
by Incorrect User
Что и куда переливать, и сразу пиши ID и Type каждого предмета.

Re: перелив

Posted: 2014-02-18 15:01:52
by pahha1988
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 ? )
и мувит пустую на полный кег в сумке которая рядом на полу

Re: перелив

Posted: 2014-02-18 15:04:42
by Incorrect User
Потому что тут указан конкретный кег 0x60CE3326. Я вообще не пойму суть того что нужно делать. Если нужно лить в пустой кег то нужно предварительно искать его на полу и, я так понимаю определять нашел пустой или полный по цвету, и уже выбирать лить или не лить.

Re: перелив

Posted: 2014-02-18 15:07:56
by Incorrect User
В общем дай полностью ,info на полный кег и на пустой кег.

Re: перелив

Posted: 2014-02-18 15:10:06
by pahha1988
Incorrect User wrote:Потому что тут указан конкретный кег 0x60CE3326. Я вообще не пойму суть того что нужно делать. Если нужно лить в пустой кег то нужно предварительно искать его на полу и, я так понимаю определять нашел пустой или полный по цвету, и уже выбирать лить или не лить.

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

Re: перелив

Posted: 2014-02-18 15:12:11
by Incorrect User
То есть тебе нужно пустую бутылку из пака кидать на полный кег стоящий на полу? И давай полностью ,info на полный кег и на пустой кег как я сказал. Только подпиши где пустой где полный

Re: перелив

Posted: 2014-02-18 15:21:12
by pahha1988
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

Re: перелив

Posted: 2014-02-18 15:51:10
by Incorrect User
В общем нужно искать кеги, делать клик и смотреть имя, если пустой то игнорить и искать дальше.

Re: перелив

Posted: 2014-02-18 15:54:01
by pahha1988
Incorrect User wrote:В общем нужно искать кеги, делать клик и смотреть имя, если пустой то игнорить и искать дальше.

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

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

Re: перелив

Posted: 2014-02-18 16:37:19
by Incorrect User
Нужно указать в условиях еще два - keg и bottle и впиши ID сумки с кегам, она должна быть открыта при работе скрипта.

Code: Select all

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


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

Re: перелив

Posted: 2014-02-18 16:58:08
by Incorrect User
Немного поправил, скопируй снова.

Re: перелив

Posted: 2014-02-18 17:10:15
by pahha1988
if not uo.findcount() then
parse error

Re: перелив

Posted: 2014-02-18 17:13:08
by Incorrect User
А там цифру ж убери) поправил пост, копируй

Re: перелив

Posted: 2014-02-18 17:24:53
by pahha1988
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

Re: перелив

Posted: 2014-02-18 17:30:08
by Incorrect User
var bottles='0x0F0E'
var keg='0x1940'
Не обязательно и не bottles а bottle, можно просто

Code: Select all

var bottle, keg

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

Re: перелив

Posted: 2014-02-18 17:33:44
by pahha1988
Incorrect User wrote:var bottles='0x0F0E'
var keg='0x1940'
Не обязательно и не bottles а bottle, можно просто

Code: Select all

var bottle, keg

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

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

Re: перелив

Posted: 2014-02-18 17:34:56
by Incorrect User
1 это не значит одна бутылка, это может быть и одна кучка. Сообщений никаких больше?

Re: перелив

Posted: 2014-02-18 17:36:53
by pahha1988
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

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

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

Re: перелив

Posted: 2014-02-18 17:43:40
by Incorrect User
Да все просто, ищет в паке яд, если не находит начинает искать пустые бутылки, сохраняет их ID в bottle, очищает журнал, далее в сумке ищет кеги по типу, найдя кег кликает на него и по журналу смотрит был ли нужный текст, если нет значит кег пустой, игнорит его ID и дальше ищет следующий кег, и так пока не найдет нужный.