Копирование объектов

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Nearga
Posts: 53
Joined: 2012-02-10 15:17:10

Копирование объектов

Post by Nearga »

Курнул 2 и 3 мануалы по скриптингу. Мануалы отличные, но не дают ответа на фундаментальный вопрос: как скопировать объект. Ну, или может я жестко завтыкал :)

Хочу найти в инвентаре кирку (0x0e85) или лопату (0x0f39), скопировать найденный объект в новосозданный объект Shovel (который все уже не раз видели :) ) и дальше UO.Useobject('Shovel') не волнуясь о том, лопата это или кирка.

Изначально задумывалось что-то типа

Code: Select all

uo.findtype('0x0f39', -1, 2) # search Shovel into backpack
            If UO.FindCount() > 0 Then
                #сохраним айдишник найденой лопаты в Shovel
            endif
            uo.findtype('0x0e85', -1, 2) # search Pickaxe into backpack
            If UO.FindCount() > 0 Then
                #сохраним айдишник найденой кирки в Shovel
            endif

***
UO.Useobject('Shovel')



Решил проблему во время написании вопроса :) Не зря говорят, что "правильно сформулированный вопрос - 50% ответа" :)
Коль проблема решена, а я просил помощи - приведу тут рабочий код:

Code: Select all

uo.findtype('0x0f39', -1, 2) # search Shovel into backpack
            If UO.FindCount() > 0 Then
                UO.Useobject(UO.GetSerial('finditem'))
                uo.Print('Shovel is found')
            else
                uo.findtype('0x0e85', -1, 2) # search Pickaxe into backpack
                If UO.FindCount() > 0 Then
                    UO.Useobject(UO.GetSerial('finditem'))
                    uo.Print('Pickaxe is found')
                endif
            endif 


Однако, все равно интересно, как сохранить определенный объект(да и меня это решение не совсем удовлетворяет: проверку приходится делать каждый раз перед началом копания). Пробовал uo.set(), но это только для параметров. Нету ничего типа UO.CopyObject(), или что-то в этом роде.

Пробовал также извращение с

Code: Select all

uo.findtype('0x0f39', -1, 2) # search Shovel into backpack
If UO.FindCount() > 0 Then
uo.exec('addobject Shovel')
uo.targeting() # возможно, тут стоило попробовать waitfortarget, но извратом этот подход быть не перестает
wait(500)
uo.Click('finditem')
Nearga
Posts: 53
Joined: 2012-02-10 15:17:10

Re: Копирование объектов

Post by Nearga »

var tweapon=uo.getserial(uo.objatlayer('Rhand'))

йадебилко :) Вопрос снят :)
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Копирование объектов

Post by Mirage »

var tweapon=uo.getserial(uo.objatlayer('Rhand'))
актуально только для кирки - лопата используется с пака.
Ответил тебе в драгой твоей теме как не прибегать к ID предмета.
Nearga
Posts: 53
Joined: 2012-02-10 15:17:10

Re: Копирование объектов

Post by Nearga »

Не, штука в том, что я слишком заморочился объектами и завтыкал, что есть же переменные :)
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Копирование объектов

Post by ZeroDX »

Nearga wrote:Не, штука в том, что я слишком заморочился объектами и завтыкал, что есть же переменные :)

переменные сила :mrgreen:
Nearga
Posts: 53
Joined: 2012-02-10 15:17:10

Re: Копирование объектов

Post by Nearga »

В любом случае, все равно интересно, как можно кодом присвоить значение в объект.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Копирование объектов

Post by ZeroDX »

uo.addobject('name', 'serial')
Post Reply