From Stealth Client

Jump to: navigation, search


G

GA

function GA : Word;

Returns reagent type: Garlic

GACount

function GACount : Word;

Returns Garlic count in backpack.

GS

function GS : Word;

Returns reagent type: Ginsing

GSCount

function GSCount : Word;

Returns Ginsing count in backpack.


GetARStatus

function GetARStatus : Boolean

Возвращает режим реконнектора: True - реконектор включен, False - выключен

Пример 1: {{page>:examples:connect&nofooter}}

См. также


GetActiveAbility

function GetActiveAbility : String


GetAltName

function GetAltName(ObjID : Cardinal) : String;

GetAutoBuyDelay

function GetAutoBuyDelay : Word

GetAutoSellDelay

function GetAutoSellDelay : Word


GetCliloc

function GetCliloc(ObjID : Cardinal) : String;


GetColor

function GetColor(ObjID : Cardinal) : Word

параметр объекта: цвет

GetContextMenu

procedure GetContextMenu(var list : TStringList)

Возвращает пункты последнего контекстного меню. Формат возвращаемых строк следующий "tag|clilocID|clilocText|flags|color". Все числа представлены в десятичном виде.

Пример:

0|6123|Open Paperdoll|0|0
1|6146|Talk|0|0

ВНИМАНИЕ! list должен быть предварительно создан через var_list_name := TStringList.Create и обязательно удален после окончания пользования через var_list_name.Free;


GetDex

function GetDex(ObjID : Cardinal) : Integer

параметр объекта: Dex


GetDirection

function GetDirection(ObjID : Cardinal) : Byte

параметр объекта: направление


GetDistance

function GetDistance(ObjID : Cardinal) : Integer

параметр объекта: дистанция

GetEasyUO

function GetEasyUO(num: Integer) : String

Подробно использование этой функции можно найти тут: Doc:RU/Api/SetEasyUO

GetFindedList

function GetFindedList(var UserList : TStringList) : Boolean

Заполняет строковый список UserList результатами поиска.


В UserList заносится список найденных обьектов, найденных с помощью Doc:RU/Api/FindType или Doc:RU/Api/FindTypeEx

ВНИМАНИЕ! UserList должен быть предварительно создан через var_list_name := TStringList.Create и обязательно удален после окончания пользования через var_list_name.Free;

ВНИМАНИЕ! ID обьектов, занесенных этот список, имеют hex-формат!

В случае, если ничего не найдено - вернет False и пустой список в UserList.

Пример:

function GetFoundItemsFromStringList(var Items: Array Of Cardinal): Integer;
var List: TStringList; i: Integer;
begin
  List := TStringList.Create;
  if GetFindedList(List) = False then Result := 0
  else begin
    SetLength(Items, List.Count);
    for i := 0 to Length(Items)-1 do Items[i] := StrToInt('$'+List.Strings[i]);
    Result := Length(Items);
  end;
  List.Free;
end;

Примечание: Начиная с версии 7.9.0 вы можете использовать следующий вид этой функции:

type TCardinalDynArray = Array of Cardinal;
function GetFoundItems():TCardinalDynArray;


GetGlobal

function GetGlobal(GlobalRegion : String; VarName : String) : String

Считывает значение глобальной переменной VarName с областью видимости GlobalRegion. Область видимости может быть 'char' или 'stealth'. GlobalRegion и VarName не чувствительны к регистру.

Пример 1: {{page>:examples:globals&nofooter}}

См. также:

GetGumpButtonsDescription

procedure GetGumpButtonsDescription(GumpIndex : Integer; var TL : TStringList)

Заносит в текстовый список TL сокращенное содержимое гампа, находящимся в списке стелса под номером GumpIndex

В отличие от Doc:RU/Api/GetGumpShortLines, в результате работы этой функции в список, кроме общих параметров гампа, попадают только кнопки (Buttons)

ВНИМАНИЕ! UserList должен быть предварительно создан через var_list_name := TStringList.Create и обязательно удален после окончания пользования через var_list_name.Free;

Если указан неверный индекс гампа (или гампов нет), то в TLбудет пусто.

Пример:

Program takegump; 
 
var 
b : TStringList; 
i : Integer; 
 
Begin 
b := TStringList.Create; 
SetSilentMode(False); 
for  i := 0 to GetGumpsCount - 1 do 
  GetGumpButtonsDescription(i,b); 
b.free; 
End.

GetGumpFullLines

procedure GetGumpFullLines(GumpIndex : Integer; var TL : TStringList)

Заносит в текстовый список TL ВСЁ содержимое гампа, находящимся в списке стелса под номером GumpIndex

ВНИМАНИЕ! UserList должен быть предварительно создан через var_list_name := TStringList.Create и обязательно удален после окончания пользования через var_list_name.Free;

Если указан неверный индекс гампа (или гампов нет), то в TLбудет пусто.

Пример:

Program takegump; 
 
var 
b : TStringList; 
i : Integer; 
 
Begin 
b := TStringList.Create; 
SetSilentMode(False); 
for  i := 0 to GetGumpsCount - 1 do 
  GetGumpFullLines(i,b); 
b.free; 
End.

В результате работы примера в строковом списке будет что-то типа:

Serial: 1A1B9F 
GumpID: 11CC34F 
X: 0000 
Y: 0000 
Pages: 13 
Gump Options: NoDispose NoClose 
 
GumpPics: X Y ID  Page 
GumpPic: 480  367  2443  0 
 
TilePics: X   Y   ID   Page 
0   TilePic: 80  94  5099  2 
1   TilePic: 230  94  5103  2 
... 
47   TilePic: 230  184  5176  12 
48   TilePic: 80  274  5181  12 
 
ResizePics: X   Y   ID   Width   Height   Page 
0   ResizePic: 20  20  5054  540  40  0 
1   ResizePic: 20  60  5054  360  300  0 
2   ResizePic: 380  60  5054  180  300  0 
3   ResizePic: 20  360  5054  540  70  0 
 
 
CheckBoxes: X   Y   Released_ID  Pressed_ID   Status   Return_value   Page 
0   CheckBox: 140  395  210  211  0  1537  0 
 
 
GumpTexts: X   Y   Color   Text_ID   Page 
0   GumpText: 159  30  51  0  0 
1   GumpText: 60  371  900  1  0 
... 
61   GumpText: 223  229  900  62  12 
62   GumpText: 73  319  900  63  12 
 
TextEntries: X   Y   Width   Height   Status   Color   Return_value   Default_text_id   Page 
0   TextEntry: 487  370  100  30  0  513  5  0 
 
Text Lines: 
BLACKSMITH SELECTION MENU 
Make last (ringmail gloves) 
Repair Item 
Hardening 
How Many? 
1 
 
... 
 
War Hammer 
Hammer Pick 
 
GumpButtons: X   Y   Released_ID  Pressed_ID   Quit   Page_ID   Return_value   Page 
0   GumpButton: 40  372  208  209  1  0  1025  0 
1   GumpButton: 40  395  208  209  1  0  1026  0 
... 
50   GumpButton: 200  164  1209  1210  1  0  5176  12 
51   GumpButton: 50  254  1209  1210  1  0  5180  12

GetGumpID

function GetGumpID(GumpIndex : Integer) : Cardinal

Возвращает параметр гампа - Ид. номер (Gump ID).

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

Пример:

If GetGumpsCount > 0 then
  if GetGumpID(GetGumpsCount-1) = $15A7DDF then
    CloseSimpleGump(GetGumpsCount-1);


GetGumpInfo

procedure GetGumpInfo(GumpIndex : Word; var gumpInfo : TGumpInfo);

Заполняет структуру gumpInfo информацией гампа находящимся в списке стелса под номером GumpIndex Для определения количества тех или иных элементов используется функция Length.

Пример:

GetGumpInfo(0, gi);
AddToSystemJournal('Gump has ' + IntToStr(Length(gi.GumpButtons)) + ' buttons');

Структура TGumpInfo:

TGumpInfo = record
    Serial : Cardinal;
    GumpID : Cardinal;
    X : Word;
    Y : Word;
    Pages : Integer;
    NoMove : Boolean;
    NoResize : Boolean;
    NoDispose : Boolean;
    NoClose : Boolean;
 
 
    Groups : array of TGroup;
    EndGroups : array of TEndGroup;
    GumpButtons : array of TGumpButton;
    ButtonTileArts : array of TButtonTileArt;
    CheckBoxes : array of TCheckBox;
    CheckerTrans : array of TCheckerTrans;
    CroppedText : array of TCroppedText;
    GumpPics : array of TGumpPic;
    GumpPicTiled : array of TGumpPicTiled;
    RadioButtons : array of TRadio;
    ResizePics : array of TResizePic;
    GumpText : array of TGumpText;
    TextEntries : array of TTextEntry;
    Text : array of string;
    TextEntriesLimited : array of TTextEntryLimited;
    TilePics : array of TTilePic;
    TilePicHue : array of TTilePicHue;
    Tooltips : array of TTooltip;
    HtmlGump : array of THtmlGump;
    XmfHtmlGump : array of TXmfHtmlGump;
    XmfHTMLGumpColor : array of TXmfHTMLGumpColor;
    XmfHTMLTok : array of TXmfHTMLTok;
    ItemProperties : array of TItemProperty;
end;

Описание используемых структур:

  TGroup = record
    groupnumber : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TEndGroup = record
    groupnumber : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TPage =  record
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TMasterGump =  record
    ID : Cardinal;
    ElemNum : Integer;
 end;
 
  TGumpButton =  record
    x, y : Integer;
    released_id : Integer;
    pressed_id : Integer;
    quit : Integer;
    page_id : Integer;
    return_value : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TButtonTileArt =  record
    x, y : Integer;
    released_id : Integer;
    pressed_id : Integer;
    quit : Integer;
    page_id : Integer;
    return_value : Integer;
    art_id : Integer;
    Hue :  Integer;
    art_x, art_y : Integer;
    ElemNum : Integer;
  end;
 
  TCheckBox =  record
    x, y : Integer;
    released_id : Integer;
    pressed_id : Integer;
    status : Integer;
    return_value : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TCheckerTrans =  record
    x, y : Integer;
    width, height : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TCroppedText =  record
    x, y,width, height,color,text_id : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TGumpPic =  record
    x, y : Integer;
    id : Integer;
    Hue : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TGumpPicTiled =  record
    x, y : Integer;
    width, height : Integer;
    gump_id : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TRadio =  record
    x, y : Integer;
    released_id : Integer;
    pressed_id : Integer;
    status : Integer;
    return_value : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TResizePic =  record
    x, y : Integer;
    gump_id : Integer;
    width, height : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TGumpText =  record
    x, y, color : Integer;
    text_id : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TTextEntry =  record
    x, y, width, height, color : Integer;
    return_value : Integer;
    default_text_id : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TTextEntryLimited =  record
    x, y, width, height, color : Integer;
    return_value : Integer;
    default_text_id : Integer;
    Limit : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TTilePic =  record
    x, y : Integer;
    id : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TTilePichue =  record
    x, y : Integer;
    id : Integer;
    color : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TTooltip =  record
    Cliloc_ID : Cardinal;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  THtmlGump =  record
    x, y : Integer;
    width, height : Integer;
    text_id : Integer;
    background : Integer;
    scrollbar : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TXmfHTMLGump =  record
    x, y : Integer;
    width, height : Integer;
    Cliloc_id : Cardinal;
    background : Integer;
    scrollbar : Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TXmfHTMLGumpColor =  record
    x, y : Integer;
    width, height : Integer;
    Cliloc_id : Cardinal;
    background : Integer;
    scrollbar : Integer;
    Hue :  Integer;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TXmfHTMLTok =  record
    x, y : Integer;
    width, height : Integer;
    background : Integer;
    scrollbar : Integer;
    Color : Integer;
    Cliloc_id : Cardinal;
    Arguments : String;
    Page : Integer;
    ElemNum : Integer;
  end;
 
  TItemProperty = packed record
    Prop : Cardinal;
    ElemNum : Integer;
  end;

GetGumpSerial

function GetGumpSerial(GumpIndex : Integer) : Cardinal

Возвращает параметр гампа - Серийный номер (Serial ID).

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

Пример:

If GetGumpsCount > 0 then
  if GetGumpSerial(GetGumpsCount-1) = $15A7DDF then
    CloseSimpleGump(GetGumpsCount-1);

GetGumpShortLines

procedure GetGumpShortLines(GumpIndex : Integer; var TL : TStringList)

Заносит в текстовый список TL сокращенное содержимое гампа, находящимся в списке стелса под номером GumpIndex

В отличие от Doc:RU/Api/GetGumpFullLines, в котором в список идет все содержимое гампа, в результате работы этой функции в список, кроме общих параметров гампа, попадают следующие элементы:

  • TextEntries
  • TextLines
  • Buttons

ВНИМАНИЕ! UserList должен быть предварительно создан через var_list_name := TStringList.Create и обязательно удален после окончания пользования через var_list_name.Free;

Если указан неверный индекс гампа (или гампов нет), то в TLбудет пусто.

Пример:

Program takegump; 
 
var 
b : TStringList; 
i : Integer; 
 
Begin 
b := TStringList.Create; 
SetSilentMode(False); 
for  i := 0 to GetGumpsCount - 1 do 
  GetGumpShortLines(i,b); 
b.free; 
End.

GetGumpTextLines

procedure GetGumpTextLines(GumpIndex : Integer; var TL : TStringList)

Заносит в текстовый список TL все текстовые строки из гампа, находящимся в списке стелса под номером GumpIndex

ВНИМАНИЕ! UserList должен быть предварительно создан через var_list_name := TStringList.Create и обязательно удален после окончания пользования через var_list_name.Free;

Если указан неверный индекс гампа (или гампов нет), то в TLбудет пусто.

Пример:

TempSL := TStringList.Create;
WaitTargetGround($1BDD);
UseObject(FindType($1EB9,ground));
GetGumpTextLines(GetGumpsCount-1,TempSL);
{тут обрабатываем полученный список}
TempSL.Free;

GetGumpsCount

function GetGumpsCount() : Word

Возвращает количество висящих на чаре гампов

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

В скриптах очень часто используется выражение GetGumpsCount-1, которое идет параметром GumpIndex к функциям, что означает последний гамп в списке.

Пример:

If IsGump then
  if IsGumpCanBeClosed(GetGumpsCount-1) then
    CloseSimpleGump(GetGumpsCount-1);


GetHP

function GetHP(ObjID : Cardinal) : Integer

параметр объекта: HP

GetIgnoreList

function GetIgnoreList(var UserList : TStringList) : Boolean

Заполняет строковый список UserList обьектами из IgnoreList.


В UserList заносится список обьектов, расположенных в IgnoreList

ВНИМАНИЕ! UserList должен быть предварительно создан через var_list_name := TStringList.Create и обязательно удален после окончания пользования через var_list_name.Free;

В случае, если IgnoreList пустой и заполнять нечем - вернет False и пустой список в UserList.

Пример работы со строковым списком можно посмотреть в Doc:RU/Api/GetFindedList


GetInt

function GetInt(ObjID : Cardinal) : Integer

параметр объекта: INT

GetLandTileData

function GetLandTileData(Tile : Word) :TLandTileData

Подробная информация о тайле земли

GetLandTilesArray

function GetLandTilesArray(Xmin, Ymin, Xmax, Ymax : Word; WorldNum : byte; TileType : Word; var LandTilesArray : TFoundTilesArray) : Word

Поиск по заданному тайлу земли


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!');

GetLayerCount

function GetLayerCount(x, y:word; WorldNum : byte):byte

Кол-во слоев статики в точке


GetMana

function GetMana(ObjID : Cardinal) : Integer

параметр объекта: Mana

GetMapCell

function GetMapCell(X,Y : Word; WorldNum : Byte) : TMapCell

Получение информации по ячейке земли


GetMaxHP

function GetMaxHP(ObjID : Cardinal) : Integer

параметр объекта: MaxHP


GetMaxMana

function GetMaxMana(ObjID : Cardinal) : Integer

параметр объекта: MaxMana


GetMaxStam

function GetMaxStam(ObjID : Cardinal) : Integer

параметр объекта: MaxStam

GetName

function GetName(ObjID : Cardinal) : String

параметр объекта: имя

Возвращает имя объекта в следующих случаях:

1. Объект это "живой" персонаж, т.е. такой, у которого IsNPC(ObjID) = true

2. "Не живой" объект, на который кликнули в клиенте или сделали вызов ClickOnObject(ObjID). Как только вы кликнули на объект, вы запросили от сервера "подсказку" отображаемый hint с текстом описания объекта. Stealth вырезает из текста подсказки непосредственно имя и запоминает его до тех пор, пока объект в зоне видимости IsObjectExists(ObjId) = True.

Важно заметить, что GetName с "не живыми" объектами работает не на всех клиентах. Это объясняется тем, что сервер может вообще не присылать имя. Это, как правило проходит в UO Client версий 4 и выше. В таких случаях имя объекта можно получить используя GetCliloc или GetTooltip.

3. Есть ряд случаев, когда сервер присылает имя объекта самостоятельно. В основном это ситуации когда объект отображается в гампе. Характерный пример - окно торговли с NPC.

Если имя объекта сервером не возвращалось, то Stealth задает объекту условное имя 'NoName', которое и возвращает эта функция.

Пример:

function GetSrvName(Id: Cardinal): String;
var _HighJournal, _Timer : Integer;
begin
  Result := GetCliloc(Id); // Для клиентов версии >4.x.x.x
  if Result = '' then begin  // Для старых клиентов <4.x.x.x
    Result := GetName(Id);
    if Result = 'NoName' then begin // Если имя сразу выяснить не удалось
      _HighJournal := HighJournal; // Запоминаем последнюю строку журнала
      ClickOnObject(Id); // Кликаем, чтобы получить ответ от сервера
      _Timer := Timer+15000; // Задаем максимальное время ожидания ответа 
      while (Timer < _Timer) and (_HighJournal = HighJournal) do Wait(100); // Ждем, когда измениться журнал
      Result := GetName(Id); // Если имя можно узнать, то оно будет возвращено
    end;
  end;
end;

GetNextStepZ

function GetNextStepZ(CurrX,CurrY, DestX, DestY : Word; WorldNum : byte; Z : ShortInt) : ShortInt


GetNotoriety

function GetNotoriety(ObjID : Cardinal) : Byte

параметр объекта: злобность (notoriety)


GetParent

function GetParent(ObjID : Cardinal) : Cardinal

параметр объекта: ID контейнера, содержащего данный объект


Пример использования на Python 3.3. Модуль определения полного "пути" предмета во вложенных сумках:

def FullParentPath(p):
    if type(p)!=list or not p: p=[p]
    if not p[-1]: return p[1:-1]
    return FullParentPath(p+[GetParent(p[-1])])

p-ObjID

Возвращает list: [BagID1, BagID2, BagIDpreGround], где BagID1 - сумка в которой лежит ObjID, BagIDpreGround - последняя перед землей (если искали в одежде или рюкзаке чара - вернет ID чара).

GetPathArray

function GetPathArray(DestX : Word;DestY : Word;Optimized : Boolean;Accuracy : integer;var PathArray : TPathArray) : Integer;

Эта функция просчитывает маршрут до точки с координатами DestX и DestY и заполняет специальный массив TPathArray координатами точек через которые можно добраться до цели.

  • DestX - координата цели по X
  • DestY - координата цели по Y
  • Optimized - при True будет производиться более сложный просчет пути, поэтому рекомендуется включать только на дистанции до 200 тайлов. Параметр Optimizd оставлен для совместимости, см. Doc:RU/Api/MoveHeuristicMult
  • Accuracy - точность приближения: 0 - прямо на точку, 1 - рядом в радиусе одного тайла и т.д. Длина ограничена 1000 тайлами.
  • PathArray - массив типа TPathArray.
  • функция возвращает количество шагов до цели.

mPathArr : TPathArray; массив типа TPathArray отличается тем, что заполняется элементами у которых есть два свойства X и Y.

Пример:

function easyMoveXY(X,Y: integer; Optimized: boolean; Accuracy : Integer; Running: boolean): boolean; 
var 
   StepCnt,i : Integer; 
   mPathArr : TPathArray;
 
Begin 
Result:=false; 
While true do 
   begin 
   ''AddToSystemJournal('pathfinding...') 
   StepCnt:=GetPathArray(X,Y,Optimized,Accuracy,mPathArr); 
   If StepCnt<0 then Exit; 
   If StepCnt=0 then 
      begin 
      Result:= true; 
      Exit; 
      end; 
   For i:=0 to StepCnt do 
      begin 
 
      If Not IsWorldCellPassable(getX(self),getY(self),mPathArr[i].X,mPathArr[i].Y,WorldNum,getZ(self)) then  Break; 
      If Not MoveToPoint(mPathArr[i].X,mPathArr[i].Y,Running) then  Break; 
      If Dist(X,Y)<=Accuracy then 
         begin 
    AddToSystemJournal('Location reached!'); 
    Result:=true; 
    Exit; 
    end; 
      end; 
    end; 
End;

GetPathArray3D

function GetPathArray3D(StartX, StartY : Word; StartZ : Shortint; FinishX, FinishY : Word; FinishZ : Shortint; WorldNum : Byte; AccuracyXY, AccuracyZ : Integer; Run : Boolean; var PathArray : TPathArray) : Integer

Эта функция просчитывает маршрут до точки с координатами FinishX, FinishY и FinishZ и заполняет специальный массив TPathArray координатами точек через которые можно добраться до цели.

  • StartX, StartY, StartZ - координаты откуда будет начинаться маршрут.
  • FinishX, FinishY, FinishZ - координата конечной точки маршрута.
  • WorldNum - номер мира для которого будет просчитываться маршрут.
  • AccuracyXY, AccuracyZ - точность подхода к конечной точке: 0 - прямо на точку, 1 - рядом в радиусе одного тайла и т.д. Возможные значения: AccuracyXY - 0..20, AccuracyZ - 0..255
  • Run - будет ли персонаж бежать по этому маршруту или идти пешком (нужно для оптимизации поворотов при движении).
  • PathArray - массив типа TPathArray.
  • функция возвращает количество шагов до цели.


GetPauseScriptOnDisconnectStatus

function GetPauseScriptOnDisconnectStatus : Boolean

Задает поведение скрипта при дисконнекте. если Value True то при дисконнекте, все запущенные скрипты встанут на паузу.

Пример 1:

{{page>:examples:pausescript&nofooter}}

См. также


GetPrice

function GetPrice(ObjID : Cardinal) : Cardinal;


GetQuantity

function GetQuantity(ObjID : Cardinal) : Integer

параметр объекта: кол-во в стопке

GetRunMountTimer

function GetRunMountTimer : Word

Timer to slow\speed up walking\running with Move* functions

GetRunUnMountTimer

function GetRunUnMountTimer : Word

Timer to slow\speed up walking\running with Move* functions

GetShopList

function GetShopList : TStringList

GetSkillLockState

// v7.9.1+
function GetSkillLockState(SkillName : String) : ShortInt;

Возвращает состояние Lock State навыка.

GetSkillValue

function GetSkillValue(SkillName : String) : Double;

Получить значение скила. Список сколов


GetStam

function GetStam(ObjID : Cardinal) : Integer

параметр объекта: Stamina

GetStatLockState

// v7.9.1+
function GetStatLockState(statNum : Byte) : ShortInt;

Возвращает состояние Lock State силы, ловкости или интеллекта.

GetStaticTileData

function GetStaticTileData(Tile : Word) :TStaticTileData

Подробная информация о тайле статики

GetStaticTilesArray

function GetStaticTilesArray(Xmin, Ymin, Xmax, Ymax : Word; WorldNum : byte; TileType : Word;var FoundTilesArray : TFoundTilesArray) : Word

Поиск по заданному тайлу статики


GetStr

function GetStr(ObjID : Cardinal) : Integer

параметр объекта: STR

GetSurfaceZ

function GetSurfaceZ(X,Y : Word;WorldNum : Byte) : ShortInt

Узнать Z координату в точке мира

GetTickCount

function GetTickCount : Cardinal;

GetTileFlags

function GetTileFlags(Group : byte; Tile : Word) : Cardinal

Получение флагов тайла


GetTitle

function GetTitle(ObjID : Cardinal) : String;

Возвращает полное имя, или, по другому титул персонажа. Текст этого имени становиться виден, если открыть в UO-клиенте окно "Character". Тогда, под изображением персонажа, будет видна надпись вида 'The Lord Che-Burahka, Grandmaster Chef'. Функция возвращает не пустую строку ТОЛЬКО после того, как окно персонажа было открыто, до этого момента титул неизвестен и возвращать просто нечего. C точки зрения скрипта Stealth открыть окно "Character" можно вызовами функций Doc:RU/Api/UseObject или Doc:RU/Api/UseOtherPaperdollScroll.

Пример

function GetProfile(Id: Cardinal): String;
var _Timer : Integer;
begin
  Result := GetTitle(Id);
  if (Result = '') and IsNPC(Id) then begin
    UseObject(Id);
    _Timer := Timer+15000; // Задаем максимальное время ожидания ответа 
    while (Timer < _Timer) and (GetTitle(Id) = '') do Wait(100); // Ждем, когда истечет тамаут или обновиться GetTitle
    Result := GetTitle(Id);// Если титул можно узнать, то он будет возвращен
  end
end;

Многие начинающие скрипторы, бояться, что вызов UseObject может спровоцировать атаку на объект, если включен боевой режим WarMode = True. Эти опасения безосновательны, для атаки нужен явный вызов функции Attack.


GetTooltip

function GetTooltip(ObjID : Cardinal) : String;


GetTooltipRec

function GetToolTipRec(ObjID : Cardinal) : TClilocRec;
 
TClilocRec = packed record
   Count : Cardinal;
   Items : array of TClilocItemRec;
end;
 
TClilocItemRec = packed record
   ClilocID : Cardinal;
   Params : array of String;
 end;

Функция возвращает тултип айтема в виде записей с номером клилока и массива параметров

Пример:

Program New;
var
aa : TClilocRec;
bb : TClilocItemRec;
i,k : Integer;
begin
aa := GetToolTipRec(BackPack);
AddToSystemJournal('Total lines in Toolptip: ' + IntToStr(aa.Count));
if aa.count > 0 then
for i := 0 to aa.Count - 1 do
begin
AddToSystemJournal('Line ' + IntToStr(i) + ': ');
bb := aa.Items[i]; 
AddToSystemJournal('Cliloc: $' + IntToHex(bb.ClilocID,8));
AddToSystemJournal('Cliloc text: ' + GetClilocByID(bb.ClilocID));
for k := 0 to Length(bb.Params) - 1 do
AddToSystemJournal('Param-' + IntToStr(k) + ': "'
+ bb.Params[k] + '"');
end;

GetTradeContainer

function GetTradeContainer(TradeNum,Num : Byte) : Cardinal

GetTradeOpponent

function GetTradeOpponent(TradeNum : Byte) : Cardinal

GetTradeOpponentName

function GetTradeOpponentName(TradeNum : Byte) : String


GetType

function GetType(ObjID : Cardinal) : Word

параметр объекта: type

GetWalkMountTimer

function GetWalkMountTimer : Word

Timer to slow\speed up walking\running with Move* functions

GetWalkUnmountTimer

function GetWalkUnmountTimer : Word

Timer to slow\speed up walking\running with Move* functions


GetX

function GetX(ObjID : Cardinal) : Integer

параметр объекта: Х координата


GetY

function GetY(ObjID : Cardinal) : Integer

параметр объекта: Y координата


GetZ

function GetZ(ObjID : Cardinal) : Byte

параметр объекта: Z координата


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;


Gold

function Gold() : Cardinal

Возвращает параметр чара - кол-во денег в паке (Gold amount).

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

Пример 1:

if Gold < 60000 then
begin
  Grab(FindType($OEED,ground),60000-Gold);
end;

Пример 2:

  AddToSystemJournal('Денег в паке(Gold in backpack): ' + IntToStr(Gold))

Grab

function Grab(ItemID : Cardinal; Count : Integer) : Boolean

Переместить предмет с указанным ID (ItemID) и количеством (Count) в бекпак персонажа.

Важно: Ф-ция построена на основе связки ф-ций: DragItem() + DropItem(), поэтому если вы желаете понимать, как это будет работать - изучите внимательно работу ф-ций Doc:RU/Api/DragItem и Doc:RU/Api/DropItem.

See also: Doc:RU/Api/DragItem, Doc:RU/Api/DropItem

Ground

function Ground() : Cardinal

Указатель на землю. Часто используется, например, в поиске.

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

Пример 1: Поиск золотых монет на земле (установить радиус поиска можно используя FindDistance и FindVertical)

  FindType($EED, Ground);

GumpAutoCheckBox

procedure GumpAutoCheckBox(CheckBoxID, Value : Integer)

Принцип работы похож на Doc:RU/Api/WaitGump, с тем лишь отличием, что ищется не return_value кнопки, а return_value "галочек" (CheckBox). Если найдено - то старое значение status этого CheckBox заменяется на Value.

При этом ответ на гамп серверу НЕ отправляется! Это надо сделать через Doc:RU/Api/WaitGump либо Doc:RU/Api/NumGumpButton

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

Пример:

  WaitTargetGround($1BF5);  
  GumpAutoCheckBox(1537, 1);
  WaitGump('7956');
  UseObject(FindType($1EB9,backpack));

GumpAutoRadiobutton

procedure GumpAutoRadiobutton(RadiobuttonID , Value : Integer);

GumpAutoTextEntry

procedure GumpAutoTextEntry(TextEntryID: Integer; Value: String)

Принцип работы похож на Doc:RU/Api/WaitGump, с тем лишь отличием, что ищется не return_value кнопки, а return_value поля ввода (textentry). Если найдено - то старое значение этого textentry заменяется на Value. При этом ответ на гамп серверу НЕ отправляется! Это надо сделать через Doc:RU/Api/WaitGump либо Doc:RU/Api/NumGumpButton

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

Пример:

{кусок крафтерского скрипта. 
Сначала ставится ловушка на таргет на инготы на полу, 
потом ловушка на входящий гамп, для замены значения TextEntry, 
затем ловушка на гамп на кнопку, 
и только потом использование тинкертулзов для вызова гампа.}
  WaitTargetGround($1BF5);  
  GumpAutoTextEntry(513, '30');
  WaitGump('7956');
  UseObject(FindType($1EB9,backpack));

Принцип схож с Doc:RU/Api/NumGumpTextEntry.