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

Копирование объектов
http://forum.yoko.com.ua/viewtopic.php?f=3&t=16916
Page 1 of 1

Author:  Nearga [ 2012-02-27 17:44:46 ]
Post subject:  Копирование объектов

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

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

Изначально задумывалось что-то типа
Code:
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:
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:
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')

Author:  Nearga [ 2012-02-27 17:57:28 ]
Post subject:  Re: Копирование объектов

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

йадебилко :) Вопрос снят :)

Author:  Mirage [ 2012-02-27 20:55:44 ]
Post subject:  Re: Копирование объектов

var tweapon=uo.getserial(uo.objatlayer('Rhand'))
актуально только для кирки - лопата используется с пака.
Ответил тебе в драгой твоей теме как не прибегать к ID предмета.

Author:  Nearga [ 2012-02-27 22:27:51 ]
Post subject:  Re: Копирование объектов

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

Author:  ZeroDX [ 2012-02-27 22:59:26 ]
Post subject:  Re: Копирование объектов

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

переменные сила :mrgreen:

Author:  Nearga [ 2012-02-28 15:39:10 ]
Post subject:  Re: Копирование объектов

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

Author:  ZeroDX [ 2012-02-28 17:53:29 ]
Post subject:  Re: Копирование объектов

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

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