Page 1 of 1

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

Posted: 2006-03-17 15:52:44
by lefty
мне для скрипта нада что бы итемы (в моем случае перья) были в сумке не в куче, а по одной штучке, вруную розкидывать парит. можно ли как то через инжу это проделать ? подскажите плз

Posted: 2006-03-18 06:25:16
by Scripts Writer
Ну типо в инже есть команда

Code: Select all

uo.moveitem
и ею можно задавать координаты по бекпеку( синтаксис посмотри в топике Раскладка по бекпеку ) . ну и в твоём случае можно через переменные и циклы(

Code: Select all

for 0 to 100 
) попробовать.

Posted: 2006-03-18 18:07:01
by Destruction
Основная проблема скрипта - то, что ID начальной кучки будет постоянно меняться. Но впринципе, это даже не проблема.

Скрипт раскидает все кучки этого типа в сумке. Я полагаю, это нужно для раскладки руды? -) Проще сразу брать скрипт на плавку.

Code: Select all

sub ToShareItemByOne()
var x = 100 ; координата по x, куда класть.
var y = 100 ; координата по y, куда класть.
var delay = 500 ; пауза на раскладку.
uo.print("Укажи предмет, который следует разложить по 1шт.")
uo.addObject("item to share")
while uo.targeting()
wait(100)
wend
var item = uo.getGraphic("item to share")
var cnt = uo.containerOf("item for share")
repeat
uo.findtype(item,"-1",cnt)
if uo.findcount() then
if uo.getQuantity("finditem") then
uo.moveitem("finditem", "1", cnt, str(x), str(y), "0")
checklag()
wait(delay)
else
uo.ignore("finditem")
endif
endif
until not uo.findcount()
endsub

Posted: 2006-03-18 19:37:21
by Grin
много ошибок + все на много проще;)
поповоду ида кучи точно не помню

Posted: 2006-03-18 23:18:36
by Destruction
Grin wrote:много ошибок + все на много проще;)
поповоду ида кучи точно не помню

Не понял... Мне говорят, что работает !!!

А я по-поводу ID кучки отлично помню - берём кучку, пусть у неё ID = id1, муваем из кучки итем - у мувнотого будет ID = id1, а для старой будет сгенерирован новый ID.

Не совсем логично, но вполне практично, вплане тинкера :wink:

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

Posted: 2006-03-19 01:50:41
by agem
Дарю гениальную идею - двигать не по одному айтему, а по (n-1), где n - число айтемов в кучке. Тогда проблемы с меняющимся id не будет. :D

Posted: 2006-03-19 01:58:50
by Destruction
agem wrote:Дарю гениальную идею - двигать не по одному айтему, а по (n-1), где n - число айтемов в кучке. Тогда проблемы с меняющимся id не будет. :D

Интересная идея :-)

Ща воплощу.

Code: Select all

sub ItemSharing()
var delay = 500 ; пауза
uo.print("Укажи объект для раскладки по 1шт.")
uo.addObject("item to share")
while uo.targeting()
wait(100)
wend
while uo.getQuantity("item to share") > 1
uo.moveitem("item to share", uo.getQuantity("item to share")-1, uo.containerOf("item to share"), uo.getX("item to share"), uo.getY("item to share"), uo.getZ("item to share"))
wait(delay)
wend
endsub

Posted: 2006-03-19 02:49:07
by lefty
мне это для бовкрафта надо, что бы по одной стреле делал
а еще можно использовать для прокачки стилинга, что бы по одной копейке красть 8)

спасиба за скрипт, ща попробую

Posted: 2006-03-19 02:51:36
by lefty
Работает, пасиба :D

Posted: 2006-03-21 17:50:03
by DerMeister =)
Destruction wrote:
agem wrote:Дарю гениальную идею - двигать не по одному айтему, а по (n-1), где n - число айтемов в кучке. Тогда проблемы с меняющимся id не будет. :D

Интересная идея :-)

Ща воплощу.

Code: Select all

sub ItemSharing()
var delay = 500 ; пауза
uo.print("Укажи объект для раскладки по 1шт.")
uo.addObject("item to share")
while uo.targeting()
wait(100)
wend
while uo.getQuantity("item to share") > 1
uo.moveitem("item to share", uo.getQuantity("item to share")-1, uo.containerOf("item to share"), uo.getX("item to share"), uo.getY("item to share"), uo.getZ("item to share"))
wait(delay)
wend
endsub


А у меня не работает. Почему-то кладёт в ту же кучку из которой брал, причём кучка почемуто кладётся в левый верхний угол пака...
Получается замкнутый круг. :(

Posted: 2006-03-21 19:25:59
by DerMeister =)
А вот так работает:

Code: Select all

sub ItemSharing() 
var delay = 250 ; пауза
uo.print("Укажи объект для раскладки по 1шт.")
uo.addObject("item to share")
while uo.targeting()
wait(100)
wend
while uo.getQuantity("item to share") > 1
uo.moveitem("item to share", str(uo.getQuantity("item to share")-1), uo.containerOf("item to share"), str(uo.getX("item to share")), str(uo.getY("item to share")), str(uo.getZ("item to share")))
wait(delay)
wend
endsub


Но всё равно спасибо за идею...

Posted: 2006-03-23 12:34:38
by Destruction
Чёрт, забыл к стрингам привести :(