Копирование объектов
Posted: 2012-02-27 17:44:46
Курнул 2 и 3 мануалы по скриптингу. Мануалы отличные, но не дают ответа на фундаментальный вопрос: как скопировать объект. Ну, или может я жестко завтыкал 
Хочу найти в инвентаре кирку (0x0e85) или лопату (0x0f39), скопировать найденный объект в новосозданный объект Shovel (который все уже не раз видели
) и дальше UO.Useobject('Shovel') не волнуясь о том, лопата это или кирка.
Изначально задумывалось что-то типа
Решил проблему во время написании вопроса
Не зря говорят, что "правильно сформулированный вопрос - 50% ответа" 
Коль проблема решена, а я просил помощи - приведу тут рабочий код:
Однако, все равно интересно, как сохранить определенный объект(да и меня это решение не совсем удовлетворяет: проверку приходится делать каждый раз перед началом копания). Пробовал uo.set(), но это только для параметров. Нету ничего типа UO.CopyObject(), или что-то в этом роде.
Пробовал также извращение с

Хочу найти в инвентаре кирку (0x0e85) или лопату (0x0f39), скопировать найденный объект в новосозданный объект 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')
Решил проблему во время написании вопроса


Коль проблема решена, а я просил помощи - приведу тут рабочий код:
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')