From Stealth Client

Jump to: navigation, search


W

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;


Wait

procedure Wait(WaitTimeMS : Integer)

Скрипт ставится на паузу на WaitTimeMS миллисекунд, потом продолжает выполнение команд дальше.


В одной секунде 1000 миллисекунд.

Пример:

Wait(5000); ''ждать 5 секунд

WaitForTarget

procedure WaitForTarget(MaxWaitTimeMS : Integer)

Подождать таргет. Время задается в миллисекундах.

Пример:

useskill('Anatomy');
WaitForTarget(5000);
if targetpresent then
   begin
   TargetToObject(self);
   end;

WaitGump

procedure WaitGump(Value : String)

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

Работает так:

начинает перебирать гампы от первого пришедшего до последнего пришедшего. В каждом из перебираемых гампов идет просмотр всех имеющихся на нем кнопок на предмет совпадения параметра функции Value со значением return_value кнопки. Если есть совпадение - то перебор прекращается, и отсылается ответ на гамп серверу, а в стелсе гамп уничтожается.

Если такая кнопка не найдена - то ничего серверу не отсылается. При этом процедура не возвращает в скрипт ничего для определения успешности выполнения, и это есть одна из недоработок этой процедуры, исправленная в Doc:Api/NumGumpButton

Button No (Value param) - it's value of "return_value" property of GumpButton. Can be easy obtained from any GetXXXGumpLines or GetGumpInfo methods.

Пример 1:

WaitTargetGround($1BDD);
WaitGump('3636');
UseObject(FindType($1EB9,ground));

Пример 2:

if Dead then 
  WaitGump('1'); ''gump of ressurection

WaitJournalLine

function WaitJournalLine(StartTime : TDateTime; Str : String; MaxWaitTimeMS : Integer) : Boolean

ожидание появления строки в журнале

WaitJournalLineSystem

function WaitJournalLineSystem(StartTime : TDateTime; Str : String; MaxWaitTimeMS : Integer) : Boolean


WaitMenu

procedure WaitMenu(MenuCaption, ElementCaption: String)

Установить одноразовую ловушку на меню. Является частным случаем многоразовой ловушки Doc:Api/AutoMenu. Впрочем, абсолютно так же может использоваться и для обработки уже пришедших меню.

Работает так:

начинает перебирать меню от первого пришедшего до последнего пришедшего. В каждом из перебираемых меню сверяет заголовок меню на предмет совпадения заголовка с параметром функции MenuCaption. Если есть совпадение - то в этом меню ищется элемент с названием ElementCaption. Если таковой имеется - то перебор прекращается, и отсылается ответ на меню серверу с этим элементом, а в стелсе меню уничтожается.

Если такой элемент (или меню) не найден - то ловушка устанавливается для сверки с вновь приходящими меню.

Примеры будут позже, нет скриптов под руками

WaitTargetGround

procedure WaitTargetGround(ObjType : Word)

Производится поиск обьекта указаного типа на земле и устанавливается ловушка таргета на него. Если в момент установки прицел уже есть то ловушка сразу же срабатывает.


Пример:

UseObject(Dager); WaitTargetGround($2006);

WaitTargetLast

procedure WaitTargetLast

Повторяется последняя ловушка.

WaitTargetObject

procedure WaitTargetObject(ObjID : Cardinal)

Устанавливается ловушка таргета на конкретный объект. Если в момент установки прицел уже есть то ловушка сразу же срабатывает. Пример:

useskill('Anatomy'); WaitTargetObject(ObjectID);

WaitTargetSelf

procedure WaitTargetSelf

Устанавливается ловушка таргета на вашего персонажа. Если в момент установки прицел уже есть то ловушка сразу же срабатывает. Пример:

useobject(bandages); WaitTargetSelf;

WaitTargetTile

procedure WaitTargetTile(Tile : Word; X,Y,Z : Integer)

Устанавливается ловушка таргета на конкретный тайл. Если в момент установки прицел уже есть то ловушка сразу же срабатывает. Пример:

useobject(fishing_pole); WaitTargetTile(Tile, X, Y, Z);

WaitTargetType

procedure WaitTargetType(ObjType : Word)

Производится поиск обьекта указаного типа в бекпаке вашего персонажа и устанавливается ловушка таргета на него. Если в момент установки прицел уже есть то ловушка сразу же срабатывает. Пример:

UseSkill('item identification'); WaitTargetType(DagerType);

WaitTargetXYZ

procedure WaitTargetXYZ(X,Y,Z : Integer)

Устанавливается ловушка таргета на точку с координатами XYZ. Если в момент установки прицел уже есть то ловушка сразу же срабатывает.

WaitTextEntry

procedure WaitTextEntry(Value : String)

Обработка слегка особенного гампа, состоящего ТОЛЬКО из поля ввода и 2 кнопок - ОК и Cancel.

Работает и как ловушка, и для обработки уже пришедших полей ввода.

Если поле ввода уже есть - пакет с ответом отсылается серверу, в стелсе уничтожается поле ввода. Если еще не пришло - ставится ловушка, которая срабатывает сразу по приходу.

Пример:

WaitTargetGround($XXXX);
WaitTextEntry('20');
UseObject(FindType(pestyle_type,backpack));

WarMode

function WarMode(): Boolean

Returns the state of combat mode (War).

Example:

if WarMode then
  addtosystemjournal('I am in war mode');
else 
  addtosystemjournal('I am not in war mode');

WarTargetID

function WarTargetID() : Cardinal

Return the ID of the currently attacked target.

If your character is not in war mode or it is not connected it will return 0.

Example:

if (WarTargetID <> Enemy) then
  attack(Enemy);


WearItem

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

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

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

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

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


Weight

function Weight() : Word

Возвращает параметр чара - Вес (Weight).

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

Пример 1:

if Weight > 190 then
begin
  ''do something, like go home, or drop, etc.
end;

Пример 2:

  AddToSystemJournal('Вес (Your weight): ' + IntToStr(Weight))

WinExec

procedure WinExec(FileName: String; Parameters: String = '');

Execute file. Optional param Parameters - thats parameters for executive file

Пример:

WinExec('stealth.exe', 'fw');  //execute stealth.exe fw

WorldNum

function WorldNum() : Byte

Returns the number of the Map of the current character.

This works on servers where there is more than one map.

Default values ​​are:

  • 0 - Felucca (Britannia)
  • 1 - Trammel (Britannia_alt)
  • 2 - Ilshenar
  • 3 - Malas
  • 4 - Tokuno

More values are possible for shards with SA support.

If there is no connection with the UO server - returns 0.

Example:

  AddToSystemJournal('WorldNum (Your World number is): ' + IntToStr(WorldNum))