From Stealth Client

Jump to: navigation, search

Одежда_Слои

ArmsLayer

function ArmsLayer() : Byte

Возвращает номер слоя 0x13 - Руки (локти) (Arms)

Пример 1:

if ObjAtLayer(ArmsLayer) > 0 then 
  AddToSystemJournal('Arms ID: '+IntToStr(ObjAtLayer(ArmsLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(ArmsLayer) <> 0 then
  begin
    unequip(ArmsLayer);
    wait(1000);
  end;


BankLayer

function BankLayer() : Byte

Возвращает номер слоя 0x1C - Свой банковский контейнер (PC Bank Box).

По контейнеру этого слоя:

  • Доступна информация по этому слою только для своего чара.
  • Не снимается.
  • Не открывается через Doc:RU/Api/UseObject и подобные функции.

Пример 1:

if ObjAtLayer(BankLayer) > 0 then 
  AddToSystemJournal('Bank Box ID: '+IntToStr(ObjAtLayer(BankLayer)));


BeardLayer

function BeardLayer() : Byte

Возвращает номер слоя 0x10 - Борода (Facial Hair Beard).

Этот слой средствами клиента напрямую снять нельзя!

Пример:

if ObjAtLayer(BeardLayer) > 0 then 
  AddToSystemJournal('Beard ID: '+IntToStr(ObjAtLayer(BeardLayer)));


BpackLayer

function BpackLayer() : Byte

Возвращает номер слоя 0x15 - Сумка персонажа (Backpack).

Результат выполнения ObjAtLayer(BpackLayer) должен быть аналогичен Doc:RU/Api/Backpack


Пример:

if ObjAtLayer(BpackLayer) > 0 then 
  AddToSystemJournal('Backpack ID: '+IntToStr(ObjAtLayer(BpackLayer)));


BraceLayer

function BraceLayer() : Byte

Возвращает номер слоя 0x0E - Браслет (Bracelet).

Пример 1:

if ObjAtLayer(BraceLayer) > 0 then 
  AddToSystemJournal('Bracelet ID: '+IntToStr(ObjAtLayer(BraceLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(BraceLayer) <> 0 then
  begin
    unequip(BraceLayer);
    wait(1000);
  end;


CloakLayer

function CloakLayer() : Byte

Возвращает номер слоя 0x14 - Плащ (Cloak).

Пример 1:

if ObjAtLayer(CloakLayer) > 0 then 
  AddToSystemJournal('Cloak ID: '+IntToStr(ObjAtLayer(CloakLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(CloakLayer) <> 0 then
  begin
    unequip(CloakLayer);
    wait(1000);
  end;


Disarm

function Disarm(): Boolean

{Разоружаем правую и левую руку}

Перебирает слои обоих рук, делая Doc:RU/Api/unequip обьекту из этих слоев.

В случае, если отсутствует соединение с UO сервером, либо перемещение обьекта из слоя в пак не удалось - вернет False.

Пример:

if ObjAtLayer(RhandLayer) <> 0 then
  begin
    disarm;
    wait(1000);
  end;


DressSavedSet

function DressSavedSet: Boolean

Одеть набор одежды, сохраненный через Doc:RU/Api/SetDress

То же, что и Doc:RU/Api/EquipDressSet.


При удачном одевании возвращает True.

В случае, если отсутствует соединение с UO сервером, либо одевание не удалось - вернет False.


DressSpeed

var DressSpeed : Word

Пауза между снятием каждой вещи

В миллисекундах.

По умолчанию = 100мс.


EarLayer

function EarLayer() : Byte

Возвращает номер слоя 0x12 - Серьги (Earrings).

Пример 1:

if ObjAtLayer(EarLayer) > 0 then 
  AddToSystemJournal('Earrings ID: '+IntToStr(ObjAtLayer(EarLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(EarLayer) <> 0 then
  begin
    unequip(EarLayer);
    wait(1000);
  end;


EggsLayer

function EggsLayer() : Byte

Возвращает номер слоя 0x17 - Юбка, килт (Skirt/Kilt).

Пример 1:

if ObjAtLayer(EggsLayer) > 0 then 
  AddToSystemJournal('Skirt ID: '+IntToStr(ObjAtLayer(EggsLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(EggsLayer) <> 0 then
  begin
    unequip(EggsLayer);
    wait(1000);
  end;


Equip

function Equip(Layer: Byte; Obj: Cardinal): Boolean

Одеть вещь Obj на указанный слой Layer.

При удачном одевании возвращает True.

В случае, если отсутствует соединение с UO сервером, либо одевание не удалось - вернет False.

Пример:

if (getquantity(findtype(tweapon,ground)) > 0) 
    and (gettype(ObjAtLayer(RhandLayer)) <> gettype(finditem)) then 
  begin 
    addtosystemjournal('Weapon Change, осталось '+inttostr(findcount)); 
    UnEquip(RHandLayer); 
    wait(500); 
    Equip(RhandLayer,finditem); 
  end;


EquipDressSet

function EquipDressSet: Boolean

Одеть набор одежды, сохраненный через Doc:RU/Api/SetDress

То же, что и Doc:RU/Api/DressSavedSet.

При удачном одевании возвращает True.

В случае, если отсутствует соединение с UO сервером, либо одевание не удалось - вернет False.


Equipt

function Equipt(Layer: Byte; ObjType: Word): Boolean

Одеть вещь типа ObjType, найденную в рюкзаке на указанный слой Layer.

При удачном одевании возвращает True.

В случае, если отсутствует соединение с UO сервером, либо обьект не найден, либо одевание не удалось - вернет False.

Пример:

if (gettype(ObjAtLayer(RhandLayer)) <> gettype(tweapon)) then 
  begin 
    UnEquip(RHandLayer); 
    wait(500); 
    Equipt(RhandLayer,tweapon); 
  end;


GetLayer

function GetLayer(ObjID: Cardinal): Byte

Возвращает слой layer в котором находится обьект ObjID.

Перебирает все слои чара, сравнивая айди обьектов, находящихся там с заданным айди.

В случае, если отсутствует соединение с UO сервером, либо обьект не найдет - вернет 0.

Пример:

if GetLayer(my_relik_shield_ID') = 0 then 
  AddToSystemJournal('My mega-shiled not found')
else
  AddToSystemJournal('My mega-shiled found!');


GlovesLayer

function GlovesLayer() : Byte

Возвращает номер слоя 0x07 - Перчатки (Gloves).

Пример 1:

if ObjAtLayer(GlovesLayer) > 0 then 
  AddToSystemJournal('Gloves ID: '+IntToStr(ObjAtLayer(GlovesLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(GlovesLayer) <> 0 then
  begin
    unequip(GlovesLayer);
    wait(1000);
  end;


HairLayer

function HairLayer() : Byte

Возвращает номер слоя 0x0B - Прическа (Hair).

Этот слой средствами клиента напрямую снять нельзя!

Пример:

if ObjAtLayer(HairLayer) > 0 then 
  AddToSystemJournal('Hair ID: '+IntToStr(ObjAtLayer(HairLayer)));


HatLayer

function HatLayer() : Byte

Возвращает номер слоя 0x06 - Головной убор - шлем, шляпа и т.д. (Hat).

Пример 1:

if ObjAtLayer(HatLayer) > 0 then 
  AddToSystemJournal('Hat ID: '+IntToStr(ObjAtLayer(HatLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(HatLayer) <> 0 then
  begin
    unequip(HatLayer);
    wait(1000);
  end;


HorseLayer

function HorseLayer() : Byte

Возвращает номер слоя 0x19 - ID седла (если чар верхом) (Mount).

Результат выполнения ObjAtLayer(HorseLayer) не равно ID ездовой НПЦ, на которую садится чар.

Пример 1:

if ObjAtLayer(HorseLayer) > 0 then 
  AddToSystemJournal('Mount ID: '+IntToStr(ObjAtLayer(HorseLayer)));


LegsLayer

function LegsLayer() : Byte

Возвращает номер слоя 0x18 - Ноги плейтовые (Legs Armor)).

Пример 1:

if ObjAtLayer(LegsLayer) > 0 then 
  AddToSystemJournal('Legs Armor ID: '+IntToStr(ObjAtLayer(LegsLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(LegsLayer) <> 0 then
  begin
    unequip(LegsLayer);
    wait(1000);
  end;


LhandLayer

function LhandLayer() : Byte

Возвращает номер слоя 0x02 - Левая рука (Left Hand).

Внимание!!! ВСЕ ДВУРУЧНЫЕ Итемы (топоры и тд) одеваются в левую руку (LhandLayer), несмотря на картинку папердола в клиенте!!!

Пример 1:

if (getquantity(findtype(tweapon,ground)) > 0) 
    and (gettype(ObjAtLayer(LhandLayer)) <> gettype(finditem)) then 
  begin 
    addtosystemjournal('Weapon Change, осталось '+inttostr(findcount)); 
    UnEquip(RHandLayer); 
    wait(500); 
    Equip(LhandLayer,finditem); 
  end;

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(LhandLayer) <> 0 then
  begin
    disarm;
    wait(1000);
  end;


NRstkLayer

function NRstkLayer() : Byte

Возвращает номер слоя 0x1B - Товарный бекпак 2 у вендора (NPC Buy no restock container).

У обычных игровых чаров контейнер на этом слое отсутствует, т.е. ObjAtLayer(NRstkLayer) = 0.

Пример 1:

if ObjAtLayer(NRstkLayer) > 0 then 
  AddToSystemJournal('NRstkLayer ID: '+IntToStr(ObjAtLayer(NRstkLayer)));


NeckLayer

function NeckLayer() : Byte

Возвращает номер слоя 0x0A - Ожерелье, Горжетка (Neck).

Пример 1:

if ObjAtLayer(NeckLayer) > 0 then 
  AddToSystemJournal('Neck ID: '+IntToStr(ObjAtLayer(NeckLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(NeckLayer) <> 0 then
  begin
    unequip(NeckLayer);
    wait(1000);
  end;


ObjAtLayer

function ObjAtLayer(LayerType: Byte): Cardinal

Возвращает ID обьекта находящегося на своем чаре на указаном слое LayerType

В случае, если отсутствует соединение с UO сервером, либо в слое ничего не одето - вернет 0.

Пример:

if ObjAtLayer(EggsLayer) > 0 then 
  AddToSystemJournal('Skirt ID: '+IntToStr(ObjAtLayer(EggsLayer)));


ObjAtLayerEx

function ObjAtLayerEx(LayerType: Byte; PlayerID: Cardinal): Cardinal

Возвращает ID обьекта для чара PlayerID, находящегося на указаном слое LayerType

В случае, если отсутствует соединение с UO сервером, либо в слое ничего не одето - вернет 0.

Пример:

if ObjAtLayerEx(RhandLayer,sparring_partner) = 0 then 
  AddToSystemJournal('Sparring partner has no weapon in hand!');


PantsLayer

function PantsLayer() : Byte

Возвращает номер слоя 0x04 - Штаны (Pants).

Пример 1:

if ObjAtLayer(PantsLayer) > 0 then 
  AddToSystemJournal('Pants ID: '+IntToStr(ObjAtLayer(PantsLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(PantsLayer) <> 0 then
  begin
    unequip(PantsLayer);
    wait(1000);
  end;


RhandLayer

function RhandLayer() : Byte

Возвращает номер слоя 0x01 - Правая рука (Right Hand).

Внимание!!! ВСЕ ДВУРУЧНЫЕ Итемы (топоры и тд) одеваются в левую руку (LhandLayer), несмотря на картинку папердола в клиенте!!!

Пример 1:

if (getquantity(findtype(tweapon,ground)) > 0) 
    and (gettype(ObjAtLayer(RhandLayer)) <> gettype(finditem)) then 
  begin 
    addtosystemjournal('Weapon Change, осталось '+inttostr(findcount)); 
    UnEquip(RHandLayer); 
    wait(500); 
    Equip(RhandLayer,finditem); 
  end;

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(RhandLayer) <> 0 then
  begin
    disarm;
    wait(1000);
  end;


RingLayer

function RingLayer() : Byte

Возвращает номер слоя 0x08 - Кольцо (Ring).

Пример 1:

if ObjAtLayer(RingLayer) > 0 then 
  AddToSystemJournal('Ring ID: '+IntToStr(ObjAtLayer(RingLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(RingLayer) <> 0 then
  begin
    unequip(RingLayer);
    wait(1000);
  end;


RobeLayer

function RobeLayer() : Byte

Возвращает номер слоя 0x16 - Роба (Robe).

Пример 1:

if ObjAtLayer(RobeLayer) > 0 then 
  AddToSystemJournal('Robe ID: '+IntToStr(ObjAtLayer(RobeLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(RobeLayer) <> 0 then
  begin
    unequip(RobeLayer);
    wait(1000);
  end;


RstkLayer

function RstkLayer() : Byte

Возвращает номер слоя 0x1A - Товарный бекпак 1 у вендора (NPC Buy Restock container).

У обычных игровых чаров контейнер на этом слое отсутствует, т.е. ObjAtLayer(RstkLayer) = 0.

Пример 1:

if ObjAtLayer(RstkLayer) > 0 then 
  AddToSystemJournal('RstkLayer ID: '+IntToStr(ObjAtLayer(RstkLayer)));


SellLayer

function SellLayer() : Byte

Возвращает номер слоя 0x1C - Товарный бекпак 3 у вендора (NPC Sell container).

У обычных игровых чаров контейнер на этом слое отсутствует, т.е. ObjAtLayer(SellLayer) = 0.

Пример 1:

if ObjAtLayer(SellLayer) > 0 then 
  AddToSystemJournal('NPC Sell container ID: '+IntToStr(ObjAtLayer(SellLayer)));


SetDress

procedure SetDress()

Сохранение набора одежды/екипировки


ShirtLayer

function ShirtLayer() : Byte

Возвращает номер слоя 0x05 - Рубашка (Shirt).

Пример 1:

if ObjAtLayer(ShirtLayer) > 0 then 
  AddToSystemJournal('Shirt ID: '+IntToStr(ObjAtLayer(ShirtLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(ShirtLayer) <> 0 then
  begin
    unequip(ShirtLayer);
    wait(1000);
  end;


ShoesLayer

function ShoesLayer() : Byte

Возвращает номер слоя 0x03 - Обувь (Shoes).

Пример 1:

if ObjAtLayer(ShoesLayer) > 0 then 
  AddToSystemJournal('Shoes ID: '+IntToStr(ObjAtLayer(ShoesLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(ShoesLayer) <> 0 then
  begin
    unequip(ShoesLayer);
    wait(1000);
  end;


TalismanLayer

function TalismanLayer() : Byte

Возвращает номер слоя 0x09 - Амулет (Talisman).

Пример 1:

if ObjAtLayer(TalismanLayer) > 0 then 
  AddToSystemJournal('Talisman ID: '+IntToStr(ObjAtLayer(TalismanLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(TalismanLayer) <> 0 then
  begin
    unequip(TalismanLayer);
    wait(1000);
  end;


TorsoHLayer

function TorsoHLayer() : Byte

Возвращает номер слоя 0x11 - Полный передник (Torso middle surcoat, tunic, full apron, sash).

Пример 1:

if ObjAtLayer(TorsoHLayer) > 0 then 
  AddToSystemJournal('surcoat ID: '+IntToStr(ObjAtLayer(TorsoHLayer)));

Пример 2: {Если на слое чтото есть, то снимаем} if ObjAtLayer(TorsoHLayer) <> 0 then

 begin
   unequip(TorsoHLayer);
   wait(1000);
 end;

</source>


TorsoLayer

function TorsoLayer() : Byte

Возвращает номер слоя 0x0D - Нагрудник (Torso (inner) (chest armor)).

Пример 1:

if ObjAtLayer(TorsoLayer) > 0 then 
  AddToSystemJournal('Torso ID: '+IntToStr(ObjAtLayer(TorsoLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(TorsoLayer) <> 0 then
  begin
    unequip(TorsoLayer);
    wait(1000);
  end;


UnDress

function UnDress: Boolean

Снять все вещи.

При удачном раздевании возвращает True.

В случае, если отсутствует соединение с UO сервером, либо раздевание не удалось - вернет False.

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


UnEquip

function UnEquip(Layer: Byte): Boolean

Снять вещь с указанного слоя Layer (вещь падает в пак)

При удачном снятии возвращает True.

В случае, если отсутствует соединение с UO сервером, либо снятие не удалось - вернет False.

Пример:

if (getquantity(findtype(tweapon,ground)) > 0) 
    and (gettype(ObjAtLayer(RhandLayer)) <> gettype(finditem)) then 
  begin 
    addtosystemjournal('Weapon Change, осталось '+inttostr(findcount)); 
    UnEquip(RHandLayer); 
    wait(500); 
    Equip(RhandLayer,finditem); 
  end;


WaistLayer

function WaistLayer() : Byte

Возвращает номер слоя 0x0C - Малый передник (Half Apron).

Пример 1:

if ObjAtLayer(WaistLayer) > 0 then 
  AddToSystemJournal('Half Apron ID: '+IntToStr(ObjAtLayer(WaistLayer)));

Пример 2:

{Если на слое чтото есть, то снимаем}
if ObjAtLayer(WaistLayer) <> 0 then
  begin
    unequip(WaistLayer);
    wait(1000);
  end;


WearItem

function WearItem(Layer : Byte; Obj : Cardinal) : Boolean

Кладет обьект Obj, висящий "на пальце" на слой Layer

В случае, если отсутствует соединение с UO сервером, либо на пальце не висит ничего - вернет False и ничего не оденет.

Применять следует ОЧЕНЬ осторожно. И вообще, в большинстве случаев команда Doc:RU/Api/equip удобнее и универсальнее. Эта же оставлена для совместимости и некоторых кривых шардов.

Потому и примера нет.