Page 1 of 2

Подскажите как правильно сделать проверку на колличество !

Posted: 2006-07-15 22:29:25
by derevo
допустим я хочу класть в каждый мешок именно по 100 итемов! +- несколько штук. предметы однотипные ! тоесть мне нужно именно определения количества итемов в сумке.
Благодарю

Posted: 2006-07-15 22:31:31
by Savage
,massmove 1000 100
1000 - задержка
100 - количество

запускаешь команду и из ящика с предметами перетаскиваешь в мешок 1 штуку.

Posted: 2006-07-15 22:37:05
by derevo
Не то вот смотри

UO.DeleteJournal()
UO.Click(MeshSer)
wait(500)
if UO.InJournal('100') then
goto ff
end if

repeat
UO.FindType(Map, -1, 1 )
If UO.GetQuantity('finditem')> 0 then
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 2000 )
UO.Print( ' perelozhena' )
End if
UO.FindType(Map,'0x0000','my')
If UO.GetQuantity('finditem')>0 then
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 2000 )
UO.Print( ' perelozhena' )
goto task
Else
goto dal
end if
dal:



Нарезка из одно из скриптов мной порезанного под чистое перетаскивание! В этой части я сделал проверку от болды
UO.DeleteJournal()
UO.Click(MeshSer)
wait(500)
if UO.InJournal('100') then
goto ff
end if
Тоесть кликает на мешочек куда кладёт! если в журнале видит "100" то прыгаем на новый мешочек!... но это не стабильно! может повиснуть там на курсоре или ещё что ! будет 101 и уже не сработает. Как быть? спасибо

и ещё одно!
UO.FindType(Map, -1, 1 )
If UO.GetQuantity('finditem')> 0 then
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 2000 )
UO.Print( ' perelozhena' )
Не видит итемы на земле((( что я не так сделал?

Posted: 2006-07-15 22:39:53
by derevo
А да чар второй в перегрузе продолжает в это время делать итемы! так что мас мув не прёть(

Posted: 2006-07-15 22:41:55
by Savage
1. если ты перекладываешь скриптом то достаточно организовать счетчик перекладываний - очень стабильно.

2. -1 - типа пофиг где искать (не прверял).

Posted: 2006-07-15 22:43:27
by Savage
И наверное полезно будет заигнорить мешок в который перекладываешь а то он вечно их перекладывать будет.

Posted: 2006-07-15 22:45:38
by Grin
Много чего не правельно делаешь;)
На сортировку такого рода была куча скриптов.
И колво итемов в сумке лутше не через журнал смотреть

Code: Select all

uo.FindType(-1, -1, container)
uo.FindCount()

Файнд коунт дас колво итемов в сумке.
Дальше ... Не у спел Саваж уже написал;)

Posted: 2006-07-15 22:46:35
by derevo
Savage wrote:И наверное полезно будет заигнорить мешок в который перекладываешь а то он вечно их перекладывать будет.


проблема в том что на оскоме фри котором я играю имеется проблема ! итемы при перекладке часто зависают на курсоре! просто зависают и всё. что бы скинуть проверка на итемы у меня даже дёргает левые в паке)
в общем я к тому что счёткик не получится(

Posted: 2006-07-15 22:47:48
by derevo
можно сделать с опен контейнером ... тоесть дабл кликал что бы на этот мешок! тогда будет в журнале запись типа Contains: 121 items
но как это правильно использовать,,,

Posted: 2006-07-15 22:49:20
by Savage
Я играл на оскоме, все там нормально перекладывается, паузы не забывай ставить.
У меня чар делал робы и прыгал их продавал, потом в банк выкладывал деньги м все поновой. Или когда продавать не надо было скидывал их в мешки.

Posted: 2006-07-15 22:55:26
by derevo
Grin wrote:И колво итемов в сумке лутше не через журнал смотреть

Code: Select all

uo.FindType(-1, -1, container)
uo.FindCount()

Файнд коунт дас колво итемов в сумке.
;)

брр не совсем понял! вот отрезок крипта у мну. ищет на земле робу(Map) и в паке у себя( на случай завиания на курсоре ) На земле кстать совсем не ищет((( или просто не перекладывает сразу с земли в сумку (в контейнере)
Тоесть логически может кинуть он за раз и два итема( за цикл) как я по твоему примеру могу реализовать проверку?
Парни вы ток не серчайте что может простого не понимаю . Я на инже скриптом занимаюсь пару дней)

Posted: 2006-07-15 22:57:56
by Savage
Объясни в деталях, что ты делаешь скриптом. Типа шаг первый ищем то-то, там то, шаг второй...

Posted: 2006-07-15 22:58:03
by derevo
Savage wrote:Я играл на оскоме, все там нормально перекладывается, паузы не забывай ставить.
У меня чар делал робы и прыгал их продавал, потом в банк выкладывал деньги м все поновой. Или когда продавать не надо было скидывал их в мешки.

Раньше у мну тоже перекладывал отлично. А теперь зависает на курсоре часто. Паузу если имееш ввиду простой вейт так он там везде стоит 2000 . ещё и чек лаг есть.

А вот кстать можно сделать в самой команде UO.MoveItem Задержку на перетаскивание? у мен подозрение что просто унсп (или что там) блокирует моментальный дроп

Posted: 2006-07-15 22:59:27
by Grin
Дерево мой пост прочти;)
ставь вейты перед использованием дропов...

Posted: 2006-07-15 22:59:43
by derevo
sub teilorperekladka()

wait(1000)

VAR Sunduk1 = '0x4093C6A4' ; Ñåðèàë ñóíäóêà ñ ïóñòûìè ìåøêàìè
VAR Sunduk2 = '0x4151EBC1' ; Ñåðèàë ïóñòîãî ñóíäóêà
VAR Meshok = '0x0E76' ; Òèï ìåøêà

VAR Map = '0x1EFF' ; Òèï êàðòû
VAR MeshSer, j,ShkurSer
var LastTimer=0
var Exit=0


ff:



UO.DeleteJournal()
UO.FindType( Meshok, -1,Sunduk1) ; ???? ????? ? ??????? 1
MeshSer = UO.GetSerial('finditem')
UO.Grab( '1', 'finditem' )
UO.FindType('0x0F09',-1,'backpack') ; shit

UO.Grab('1','finditem')

prov:
wait( 2000 )
UO.MoveItem( MeshSer, 0,Sunduk2)
wait( 2000 )
wait (1000)

UO.FindType('0x0F09',-1,'backpack') ; shit

UO.Grab('1','finditem')

wait (2000)
wait (1000)
UO.FindType(Meshok,'0x0000','backpack') ;
if UO.GetQuantity('finditem')> 0 then
wait (1000)
goto prov
end if
dro:
wait (1000)


task:
UO.DeleteJournal()
UO.Click(MeshSer)
wait(500)
if UO.InJournal('100') then
goto ff
end if

repeat
UO.FindType(Map,'Ground', 1 )
If UO.GetQuantity('finditem')> 0 then
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 2000 )
UO.Print( 'Udochka perelozhena' )
End if
UO.FindType(Map,'0x0000','my')
If UO.GetQuantity('finditem')>0 then
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 2000 )
UO.Print( 'Udochka perelozhena' )
goto task
Else
goto dal
end if
dal:





goto task

wend
end sub



sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(50)
until UO.InJournal('backpack')
end sub

sub ToEat()

wait(500)
repeat
uo.UseType('0x097B')
wait(1000)
until uo.InJournal('You are simply too full to eat any more!')
end sub



Чар номер один щьёт! отллично щьёт.(но из за зависаний на курсоре производительность его падает! как выход крафт в перегрузе. А вот хватает итемы как раз второй чар с земли выше указанным макромсом!

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

Posted: 2006-07-15 23:01:25
by derevo
UO.FindType('0x0F09',-1,'backpack') ; shit

UO.Grab('1','finditem')

wait (2000)

Вот это как раз моя защита от зависаний на курсоре! в бекпаке лежат несколько бутылок стилок он их дёргает из бекпака обратно в бекпак после каждого действий) соответственно нужная вещ падает так же в пак .


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

Вопрос проверка бага на кол во итемов. и собственно ЧЁ ОН У МЕНЯ С ЗЕМЛИ НЕ БЕРЁТ )))))

Posted: 2006-07-15 23:07:48
by Savage
Можно ничего никуда не перекладывать просто вначале скрипта даешь команду uo.setreceivingcontainer('meshok-serial') и чар сам кидает туда крафт если не в перегрузе.

Posted: 2006-07-15 23:12:43
by derevo
Savage wrote:Можно ничего никуда не перекладывать просто вначале скрипта даешь команду uo.setreceivingcontainer('meshok-serial') и чар сам кидает туда крафт если не в перегрузе.

Пробовал! тоже самое! так же виснет на курсоре. почему без понятия!
Причём самое интересное на оскоме 1 виснет! на оскоме 2 всё путём)

Posted: 2006-07-15 23:13:43
by derevo
Скажите мне лучше как правильно написать кусок с поиском на земле
UO.FindTyp('0x1EFF','0x0000', 'Ground' )
If UO.GetQuantity('finditem')> 0 then
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 2000 )

Posted: 2006-07-15 23:19:25
by Grin
ground - с маленкой буквы...
Скрипт похорошему надо переписать... всякие лишни репиты и венды весячие...