Page 1 of 1

Help для Stealth Release 1.0

Posted: 02.07.2009 12:39
by Alexej
Настройка Стелса:
Settings:
Save packets+debug logs // Запись логов packets и debug
Use Art.mul // Использовать Art.mul для отображения картинок во вкладке World
Show Cliloc text in journal // Показывать тексты клилоков
Profile_setup:
Profiles // Список чаров
Name // Отображение чара в списке
Login // Логин
Pass // Пароль
Shard // Шард
Reconnect time // Время для реконнектора

Ask for me // при подключении выбрать сервер и чара из списка
Always select // Всегда выбирать
Shard_setup:
Shards // Список серверов
Name // Имя сервера
IP // ИП адрес сервера
Port // Порт сервера
Encryption // криптование (No encryption - для изменения отображения версии клиента,
// надо править последнюю строку ("No encryption" 00000000 00000000 0 "6.0.13.0") в файле Encryption.cfg

UO mul-files path // путь к мул файлам клиента, обязательно правильно прописать для включения возможности движения и многих других

SphereServer Moving Fix // Обязательно ставьте, если играете на сфере. Иначе со стабильной периодичностью при хотьбе и беге будете получать MoveReject(и, как следствие, 5сек паузы)

KR-version shard // для версий МЛ и КР
AoP shard // для АоП
DiagonalMoveCheck // если у вас на шарде отбрасывает чара при движении по диагонали. Если же галка стоит -
// то в случае диагонального движения (1,3,5,7 направления) перед проверкой проходимости точки Y сначала
// проверяются на проходимость обе X, и если обе свободны - тогда уже проверяется Y.
Nul Targets // для шардов с измененными стандартными таргетами, на которые не реагирует стелс.
// при этом стелс даже с включенной галочкой обрабатывает эти "нулевые" таргеты ограниченным набором функций, в частности TargetToObject, TargetToXYZ, TargetToTile
// функции типа WaitTarget и проверки типа TargetPresent не поддерживают их ни в каком виде, ввиду архитектуры стелса
New Speak // включать на шардах версии ML и выше в случаях, когда обычная "говорилка" не работает для отсылки команд
// например, пишешь all release - в чат идет этот текст, а животное не реагирует совершенно, в таких и подобных случаях как раз и надо включать.


{Work with global vars}
procedure SetGlobal(GlobalRegion: String; VarName: String; VarValue: String); // Установка глобальной переменной, где
GlobalRegion - Область переменной ('stealth' - глобалка видна любому скрипту любого чара, 'char' - глобалка видна только для скриптов этого чара);
VarName - Имя переменной;
VarValue - Значение переменной.
в области глоб. пер. Stealth есть 5 заранее определенных названий переменных - от
TestVar1 до TestVar5, при задании им значений - они автоматически появляются на закладке Main стелса в разделе ScriptVars

function GetGlobal(GlobalRegion: String; VarName: String): String; // Чтение значения глобальной переменной

Пример:

Code: Select all

SetGlobal('stealth','TestVar3',IntToStr(3434)); 
s:=GetGlobal('stealth','TestVar3');
AddToSystemJournal(s);
{Connect - Disconnect}
procedure SocketReset; // ????? закрывает соединение с сервером для подвисшего чара во время login-сессии ?????

procedure Connect; // Соедениться с UO сервером
procedure Disconnect; // Отключиться от UO сервера

Пример:

Code: Select all

If not Connected Then Connect;
If Connected and Dead Then Disconnect;
{Auto Reconnector}
procedure SetARStatus(Value: Boolean); // Установить состояние реконнектора
function GetARStatus: Boolean; // Cостояние реконнектора

{Connected Status}
function Connected: Boolean; // Текущее состояние соединения с UO сервером. (True - если соеденены, иначе False)
function ConnectedTime: TDateTime; // Время подключения к серверу УО

{Char Name}
function CharName: String; // Имя Чара

Пример 1:

Code: Select all

LogName:=('D:\'+CharName+'.txt');
Пример 2:

Code: Select all

Addtosystemjournal(CharName);
Результат::
2:30:47 [KopUshKa_15]: KopUshKa

{Player Title}
function GetCharTitle: String; // Получения тайтла с папердола своего чара, возвращает приписку и весь остальной текст, длиной до 60 байт

Пример:

Code: Select all

Addtosystemjournal(GetCharTitle);
Результат::
2:27:37 [KopUshKa_15]: KopUshKa, Legendary Miner

Для любых других НПЦ, у которых есть папердол:
при коннекте берется имя неписи, пишется в свойство, которое видно через закладку World и которое можно взять через GetName.
Если нужен тайтл с папердолла - значит шлете UseObject на непись, и ставите цикл типа

Code: Select all

S:=GetName($xxxxxxxx); 
while GetName($xxxxxxxx) = S do wait(xxx)'; 
цикл для того, чтобы дождаться когда придет пакет папердолла на непись. Когда он приходит - title пишется поверх старого имени в свойства, и берете его так же через GetName.

Соответственно кусок получения папердолла будет выглядеть как-то так:

Code: Select all

S:=GetName($xxxxxxxx); 
UseObject($xxxxxxxx); 
while GetName($xxxxxxxx) = S do wait(xxx)'; 
S:=GetName($xxxxxxxx); 
{Self}
function Self: Cardinal; // ID чара
function Sex: Byte; // Пол Чара (0=male, 1=female)
function Gold: Cardinal; // Золота (ГП) в БакПаке
function Armor: Word; // Армор
function Weight: Word; // Вес Текущий
function MaxWeight: Word; // Максимальный Вес
function Race: Byte; // Раса - 0=Humman, 1=Elf (на некоторых серверах с большим кол-вом рас эти стандартные значения могут быть изменены либо расширены)

function WorldNum: Byte; // Возвращает номер мира

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

function ConnectedTime: TDateTime; // Время подключения к серверу УО
function DisconnectedTime: TDateTime; // Время отключения от сервера УО

function LastContainer: Cardinal; // ID последнего открытого контейнера
function Backpack: Cardinal; // указатель на БакПак Чара - используется в поиске и пр.
function Ground: Cardinal; // указатель на землю - используется в поиске и пр.

Состояние Чара:
Флаги:
function Hidden: Boolean; // Скрытность
function Poisoned: Boolean; // Отравленность
function Dead: Boolean; // Мертвый

Боевое Состояние:
function WarMode: Boolean; // Боевой режим (0-Мир, 1-Война)
function WarTargetID: Cardinal; // ID с кем идут боевые действия, иначе = 0
procedure SetWarMode(Value: Boolean); // Переключить боевой режим (True-Вкл, False-Выкл)
procedure Attack(ObjID: Cardinal); // Атаковать Врага по ID (Боевой режим включается автоматически)

Статы:
function Str: Integer; // Сила
function Dex: Integer; // Ловкость
function Int: Integer; // Интеллект
function Life: Integer; // Жизнь
function HP: Integer; // Жизнь
function Mana: Integer; // Мана
function Stam: Integer; // Стамина
function MaxLife: Integer; // Максимум Жизни
function MaxHP: Integer; // Максимум Жизни
function MaxMana: Integer; // Максимум Маны
function MaxStam: Integer; // Максимум Стамины
function Luck: Integer; // Удача

function PetsCurrent: Byte; // Текущее Количество Слотов прирученных животных
function PetsMax: Byte; // Максимальное Возможное Количество Слотов для Прирученных животных

function FireResist: Word; // Резист к Огню
function ColdResist: Word; // Резист к Холоду
function PoisonResist: Word; // Резист к Яду
function EnergyResist: Word; // Резист к Энергии

Пример:

Code: Select all

begin
Addtosystemjournal('Str '+IntToStr(Str)+' | HP   '+IntToStr(HP)+'/'+IntToStr(MaxLife)+' | Stats '+IntToStr(Str+Dex+Int)+' | '+'Damage '+' || ');
Addtosystemjournal('Dex '+IntToStr(Dex)+' | Stam '+IntToStr(Stam)+'/'+IntToStr(MaxStam)+' | Luck   '+IntToStr(Luck)+'  | Gold '+IntToStr(Gold)+' || ');
Addtosystemjournal('Int '+IntToStr(Int)+' | Mana '+IntToStr(Mana)+'/'+IntToStr(MaxMana)+' | Weight '+IntToStr(Weight)+'/'+IntToStr(MaxWeight)+' | Pets '+IntToStr(PetsCurrent)+'/'+IntToStr(PetsMax)+' ||');
Addtosystemjournal('Armor '+IntToStr(Armor)+' | Fire '+IntToStr(FireResist)+' | Cold '+IntToStr(ColdResist)+' | Poison '+IntToStr(PoisonResist)+' | Energy '+IntToStr(EnergyResist)+' || ');
end.
Результат::
3:30:48 [KopUshKa_15]: Str 130 | HP 115/115 | Stats 285 | Damage ||
3:30:48 [KopUshKa_15]: Dex 114 | Stam 117/117 | Luck 0 | Gold 0 ||
3:30:48 [KopUshKa_15]: Int 41 | Mana 41/41 | Weight 372/0 | Pets 0/5 ||
3:30:48 [KopUshKa_15]: Armor 40 | Fire 14 | Cold 14 | Poison 14 | Energy 14 ||

{Target}
function TargetPresent: Boolean; // Состояние таргета - если есть то true, в противном случае false
function TargetID: Cardinal; // ID таргета
procedure WaitForTarget(MaxWaitTimeMS: Integer); // Ожидает появления таргета, время задается в миллисекундах
procedure CancelTarget; // Отменить таргет
procedure TargetToObject(ObjectID: Cardinal); // Кликнуть таргетом на обьект
procedure TargetToXYZ(X,Y,Z: Integer); // Кликнуть таргетом по координатам на земле
procedure TargetToTile(TileModel: Word; X,Y,Z: Integer); // Кликнуть таргетом по Тайлу с координатами

Пример 1:

Code: Select all

If TargetPresent Then CancelTarget;
UseObject(PickAxe);
WaitForTarget(3000);
If TargetPresent Then TargetToTile(Tile,X,Y,Z);
Пример 2:

Code: Select all

UseSkill('Poisoning');
WaitForTarget(3000);
If TargetPresent Then TargetToObject(FindType(PoisonBottle,BackPack));
WaitForTarget(3000);
If TargetPresent Then TargetToObject(FindType(Dagger,BackPack));
{WaitTarget Ловушки}
procedure WaitTargetObject(ObjID: Cardinal); // Ожидает появления таргета и клик им на обьект по ID
procedure WaitTargetTile(Tile: Word; X,Y,Z: Integer); // Ожидает появления таргета и клик им по Тайлу с координатами
procedure WaitTargetXYZ(X,Y,Z: Integer); // Ожидает появления таргета и клик им по координатам на земле
procedure WaitTargetSelf; // Ожидает появления таргета и клик им на себя
procedure WaitTargetType(ObjType: Word); // Ожидает появления таргета и клик им по обьекту (по типу)
procedure CancelWaitTarget; // Отменить ожидание таргета
procedure WaitTargetGround(ObjType: Word); // Ожидает появления таргета и клик им по обьекту на заемле
procedure WaitTargetLast; // Ожидает появления таргета, идентичную последнему

Пример:

Code: Select all

If TargetPresent Then CancelTarget;
UseSkill('Poisoning');
WaitTargetObject(FindType(PoisonBottle,BackPack));
WaitTargetObject(FindType(Dagger,BackPack));
{Other}
procedure AddToSystemJournal(Text: String); // Добавить строку в системниый журнал
procedure Wait(WaitTimeMS: Integer); // Ожидать, время ожидания в миллисекундах
procedure UOSay(Text: String); // Сказать фразу

procedure ConsoleEntryReply(Text: String); // для переименовки рун и прочего, что использует текст из консоли
// Это полноценная ловушка - вызывать можно и до прихода пакета запроса, и после.
Пример:

Code: Select all

 var 
Time: TDateTime; 
 begin 
   Time:=Now; 
   useobject(Id); 
   checklag; 
   if IsSystemMsg('What is the new name',Time,Now) then ConsoleEntryReply(Text); 
 end; 
procedure ConsoleEntryUnicodeReply(Text: String); //аналог вышеописанной функции, только для новых шардов. работает так же, только с другим пакетом.

procedure RuneRename(Id: Cardinal; Text: String); // Переименование руны

function UseSkill(SkillName: String): Boolean; // Использовать Скилл
function GetSkillValue(SkillName: String): Double; // Получить значения Скила

Список Скиллов:

Upd: Название скилла должно соответствовать написанию в клиенте.

Alchemy
Anatomy
Animal Lore
Animal Taming
Archery
Arms Lore
Begging
Blacksmithing
Bowcraft
Bushido
Camping
Carpentry
Cartography
Chivalry
Cooking
Detect Hidden
Enticement (Discordance)
Evaluate Intelligence
Fencing
Fishing
Focus
Forensic Evaluation
Healing
Herding
Hiding
Inscription
Item ID
Lockpicking
Lumberjacking
Mace Fighting
Magery
Magic Resistance
Meditation
Mining
Musicianship
Necromancy
Ninjitsu
Parrying
Peacemaking
Poisoning
Provocation
Remove Trap
Snooping
Spirit Speak
Stealing
Stealth
Swordsmanship
SpellWeaving
Tactics
Tailoring
Taste Identification
Tinkering
Tracking
Veterinary
Wrestling

procedure UseObject(ObjectID: Cardinal); // Использовать обьект (Двойной клик)
function UseType(ObjType: Word; Color: Word): Cardinal; // Использовать по типу из BackPack-a
function UseFromGround(ObjType: Word; Color: Word): Cardinal; // Использовать по типу с земли
procedure ClickOnObject(ObjectID: Cardinal); // Одиночный клик на обьекте
function Cast(SpellName: String): Boolean; // Кастовать заклинание

Список Заклинаний
-=magery spells=-
Clumsy
Create Food
Feeblemind
Heal
Magic Arrow
Night Sight
Reactive Armor
Weaken
Agility
Cunning
Cure
Harm
Magic Trap
Magic Untrap
Protection
Strength
Bless
Fireball
Magic Lock
Poison
Telekinesis
Teleport
Unlock
Wall of Stone
Arch Cure
Arch Protection
Curse
Fire Field
Greater Heal
Lightning
Mana Drain
Recall
Blade Spirit
Dispel Field
Incognito
Spell Reflection
Mind Blast
Paralyze
Poison Field
Summon Creature
Dispel
Energy Bolt
Explosion
Invisibility
Mark
Mass Curse
Paralyze Field
Reveal
Chain Lightning
Energy Field
Flame Strike
Gate Travel
Mana Vampire
Mass Dispel
Meteor Swarm
Polymorph
Earthquake
Energy Vortex
Resurrection
Summon Air Elemental
Summon Daemon
Summon Earth Elemental
Summon Fire Elemental
Summon Water Elemental

-=necromancer spells=-
Animate Dead
Blood Oath
Corpse Skin
Curse Weapon
Evil Omen
Horrific Beast
Lich Form
Mind Rot
Pain Spike
Poison Strike
Strangle
Summon Familiar
Vampiric Embrace
Vengeful Spirit
Wither
Wraith Form

-=paladin spells=-
Cleanse by Fire
Close Wounds
Consecrate Weapon
Dispel Evil
Divine Fury
Enemy of One
Holy Light
Noble Sacrifice
Remove Curse
Sacred Journey

-=Spellweaving=-
Arcane Circle
Gift of Renewal
Immolating Weapon
Attune Weapon
Thunderstorm
Nature’s Fury
Summon Fey
Summon Fiend
Reaper Form
Wildfire
Essence of Wind
Dryad Allure
Ethereal Voyage
Word of Death
Gift of Life
Arcane Empowerment

-=Ninjutsu=-
Focus Attack
Death Strike
Animal Form
Ki Attack
Surprise Attack
Backstab
Shadowjump
Mirror Image

-=Bushido=-
Weapon Parry
Honorable Execution
Confidence
Evasion
Counter Attack
Lightning Strike
Momentum Strike

{Ability}
function GetActiveAbility: String; // Узнать название активной абилки на оружии, возвращает '0' - если абилки нет
procedure UsePrimaryAbility; // Установить первичную абилку на оружии
procedure UseSecondaryAbility; // Установить вторичную абилку на оружии

Posted: 02.07.2009 12:40
by Alexej
{DateTime}
function TimeToStr(D: TDateTime): String; // Конвертирует "время" в строку
function DateToStr(D: TDateTime): String; // Конвертирует "дату" в строку
function DateTimeToStr(D: TDateTime): String; // Конвертирует "дату + время" в строку
function StrToTime(const S: String): TDateTime; // Конвертирует строку в формат "время"
function StrToDate(const S: String): TDateTime; // Конвертирует строку в формат "дата"
function StrToDateTime(const S: String): TDateTime; // Конвертирует строку в формат "дата + время"
function MsToDateTime(TimeMS: Word): TDateTime; // Конвертирует миллисекунды в формат "дата + время"
function Timer: Cardinal; // число, меняющееся каждую милисекунду

function FormatDateTime(const fmt: String; D: TDateTime): String; // Преобразование даты/времени D в строку формата fmt
function DateTimeToUnix(D: TDateTime): Int64; // Конвертирует "дату + время" в Unix TimeStamp
function UnixToDateTime(U: Int64): TDateTime; // Конвертирует Unix TimeStamp в "дату + время"
function TryEncodeDate(Year,Month,Day: Word; out Date: TDateTime): Boolean; // Формирует дату из года, месяца и дня, возвращает false в случае ошибки.
function TryEncodeTime(Hour,Min,Sec,MSec: Word; out Time: TDateTime): Boolean; // Формирует время из значений часа, минуты, секунды, миллисекунды, возвращает false в случае ошибки.

function DecodeDate(Date: TDateTime; var Year,Month,Day: Word); // Извлекает дату из формата TDateTime и помещает год, месяц и день соответственно в переменные Year, Month и Day
function DecodeTime(Time: TDateTime; var Hour,Min,Sec,MSec: Word); // Извлекает время из формата TDateTime и помещает часы, минуты, секунды, и миллисекунды соответственно в переменные Hour, Min, Sec и MSec

function EncodeDate(Year,Moth,Day: Word): TDateTime; // Возвращает дату в формате TDateTime, полученную из значений параметров Year, Month и Day. Year должен быть между 1 и 9999. Допустимые значения Month - от 1 до 12. Допустимые значения Day - от 1 до 28, 29, 30, или 31, в зависимости от значения Month. Например, возможные значения Day в течение второго месяца (февраля) - от 1 до 28, или от 1 до 29, в зависимости от того, определяет или нет значение Year високосный год. Если значения находятся вне диапазона, возникает исключительная ситуация EConvertError. Возникающее в результате значение - единица плюс число дней между 30/12/1899 и данной датой.
function EncodeTime(Hour,Min,Sec,MSec: Word): TDateTime; // Возвращает время в формате TDateTime, полученное из значений параметров Hour, Min, Sec и MSec. Если значение типизированной константы Time24Hour ложно (False), значения Hour лежат в пределах от 0 до 12, если истинно (True) - от 0 до 23. Допустимые значения Min и Sec - от 0 до 59. Допустимые значения MSec - от 0 до 999. Если значения находятся вне диапазона, возникает исключительная ситуация EConvertError.

function DayOfWeek(Date: TDateTime): Integer; // Возвращает день недели определенной даты как целое число между 1 и 7. Воскресенье - первый день недели, и суббота - седьмой

Now: TDateTime; // Текущая "дата + время"
Date: TDateTime; // Текущая "дата"
Time: TDateTime; // Текущее "время"

Пример:

Code: Select all

AddToSystemJournal(DateTimeToStr(BulkTime)+'  |+|  '+DateTimeToStr(BulkTime+EncodeTime(6,0,0,0))+'  |+|  '+DateTimeToStr(Now));
If (BulkTime+EncodeTime(6,0,0,0)) <= Now Then ...
{Line}
function LineID: Cardinal; // Если сообщение не системное - содержит ID чара, блягодоря которому породилось сообщение в вашем журнале
function FoundedParamID: Integer;
Описание:
Vizit0r wrote:в результате работы функций WaitJournalLine, InJournal, и им подобных функций при удачном нахождении заполняются поля типа LineID, LineType, LineTime и прочие.
к ним добавил FoundedParamID.
например в поиск дается строка типа 'create|make|destroy|already'
обнаружена строка со словом destroy.
тогда в FoundedParamID будет число 2 (счет от нуля).
нашлось бы create - было бы ноль.
function LineType: Word; // Тип адресата
function LineName: String; // Имя того, кто породил это сообщение. Если сообщение системное, то LineName = 'System'
function LineTime: TDateTime; // Дата + время, когда это сообщение было получено от сервера
function LineMsgType: Byte; // Тип сообщения
function LineTextColor: Word; // Цвет текста сообщения
function LineTextFont: Word; // Шрифт сообщения
function LineIndex: Integer; // Индекс строки
function LineCount: Integer; // Количество найденных строк во время поиска в журнале
{Journal}
function LastJournalMessage: String; // Последнее сообщение в журнале
function InJournal(Str: String): Integer; // Поиск последней строки в журнале по слову (или по словам)
function InJournalBetweenTimes(Str: String; TimeBegin,TimeEnd: TDateTime): Integer; // поиск последней строки в журнале по слову (или по словам) во временном интервале
function Journal(StringIndex: Integer): String; // Получение строки в журнале по ее индексу
procedure SetJournalLine(StringIndex: Integer; Text: String); // Изменение строки в журнале по ее индексу. Если вместо Text указать пустую строку (''), то строка в журнале будет удалена
procedure ClearJournal; // Очистка журнала
function LowJournal: Integer; // Индекс первой строки в журнале
function HighJournal: Integer; // Индекс последней строки в журнале
function WaitJournalLine(StartTime: TDateTime; Str: String; MaxWaitTimeMS: Integer): Boolean; // Ожидание появления строки в журнале
function WaitJournalLineSystem(StartTime: TDateTime; Str: String; MaxWaitTimeMS: Integer): Boolean; // Ожидание появления строки в журнале от System
procedure ClearJournalIgnore; // Снять игнор в журнале
procedure AddJournalIgnore(Str: String); // Добавить в игнор сообщения

{Objects}
function FindType(ObjType: Word; Container: Cardinal): Cardinal; // Ищет обьект указанного типа type в указанном контейнере.
Не ищет в подсумках.
Возвращает ID вещи.
Если ничего не найдено то результат нулевой!
FindType = FindTypeEx(ObjType,$FFFF,Container,false);

function FindTypeEx(ObjType: Word; Color: Word; Container: Cardinal; InSub: Boolean): Cardinal; // Ищет объект указанного типа ObjType и цвета Color в указанном контейнере
Если указать ObjType или Color = $FFFF, то ищет любого типа.
Container = Backpack - ищем в бекпаке.
Container = Ground - ищем на земле.
Container = $FFFFFFFF - ищем в бекпаке и на земле.
Если
InSub = True, то ищем в подсумках.
Возвращает ID вещи.
Если контейнер не существует, то ищем в бекпаке
Если обьект найден, то
Result = FindItem
Если ничего не найдено то результат нулевой!
Во время поиска учитываются
FindDistance и FindVertical

function FindNotoriety(ObjType: Word; Notoriety: Byte): Cardinal; // Поиск по типу обьекта и его Notoriety ("злобность")
0 = invalid/across server line
1 = innocent (blue)
2 = guilded/ally (green)
3 = attackable but not criminal (gray)
4 = criminal (gray)
5 = enemy (orange)
6 = murderer (red)
7 = unknown use (translucent (like 0x4000 hue))
procedure Ignore(ObjID: Cardinal); // Игнорировать обьект
procedure IgnoreOff(ObjID: Cardinal); // Снять игногр с обьекта
procedure IgnoreReset; // Очистить список игнора
function GetIgnoreList(var UserList: TStringList): Boolean; // Получить список игнора
function GetFindedList(var UserList: TStringList): Boolean; // Найти в скписке игнора

{Find Flags}
function FindItem: Cardinal; // ID последнего найденного объекта
function FindCount: Integer; // Количество найденных стопок
function FindQuantity: Integer; // Количество элементов в найденной стопке
function FindFullQuantity: Integer; // Количество элементов во всех найденных стопках

FindDistance: Integer; // Радиус поиска обьектов на земле
FindVertical: Integer; // Высота поиска обьектов на земле
по умолчанию: FindDistance:=2; FindVertical:=6;

Пример:

Code: Select all

FindDistance:=12;
FindVertical:=36;
{Object Gets Info}
function GetX(ObjID: Cardinal): Integer; // параметр объекта: координата Х
function GetY(ObjID: Cardinal): Integer; // параметр объекта: координата Y
function GetZ(ObjID: Cardinal): ShortInt; // параметр объекта: координата Z
function GetName(ObjID: Cardinal): String; // параметр объекта: Имя
function GetCliloc(ObjID: Cardinal): String; // параметр объекта: Полное название
function GetType(ObjID: Cardinal): Word; // параметр объекта: Тип
function GetQuantity(ObjID: Cardinal): Integer; // параметр объекта: Кол-во в стопке
function GetDirection(ObjID: Cardinal): Byte; // параметр объекта: направление
function GetDistance(ObjID: Cardinal): Integer; // параметр объекта: дистанция
// гипотенуза от двух катетов. 0 - обьект под вами. -1 - Обьект не существует. (При определении игнорирует координату Z)
function GetColor(ObjID: Cardinal): Word; // параметр объекта: цвет
function GetStr(ObjID: Cardinal): Integer; // параметр объекта: Сила
function GetInt(ObjID: Cardinal): Integer; // параметр объекта: Интелект
function GetDex(ObjID: Cardinal): Integer; // параметр объекта: Ловкость
function GetHP(ObjID: Cardinal): Integer; // параметр объекта: Жизни
function GetMaxHP(ObjID: Cardinal): Integer; // параметр объекта: Максимально Жизней
function GetMana(ObjID: Cardinal): Integer; // параметр объекта: Мана
function GetMaxMana(ObjID: Cardinal): Integer; // параметр объекта: Максимально Маны
function GetStam(ObjID: Cardinal): Integer; // параметр объекта: Стамина
function GetMaxStam(ObjID: Cardinal): Integer; // параметр объекта: Максимально Стамины
function GetNotoriety(ObjID: Cardinal): Byte; // параметр объекта: Злобность
function GetParent(ObjID: Cardinal): Cardinal; // параметр объекта: Где находится
function IsWarMode(ObjID: Cardinal): Boolean; // параметр объекта: Боевой режим
function IsNPC(ObjID: Cardinal): Boolean; // параметр объекта: НПЦ
function IsDead(ObjID: Cardinal): Boolean; // параметр объекта: Мертвый
function IsRunning(ObjID: Cardinal): Boolean; // параметр объекта: Бег
function IsContainer(ObjID: Cardinal): Boolean; // параметр объекта: Контейнер
function IsHidden(ObjID: Cardinal): Boolean; // параметр объекта: Скрытый
function IsMovable(ObjID: Cardinal): Boolean; // параметр объекта: Перемещаемый
function IsYellowHits(ObjID: Cardinal): Boolean; // параметр объекта: желтые жизни
function IsPoisoned(ObjID: Cardinal): Boolean; // параметр объекта: Отравленный
function IsFemale(ObjID: Cardinal): Boolean; // параметр объекта: Пол (Мужской/Женский)

{Move Items}
function DragItem(ItemID: Cardinal; Count: Integer): Boolean; // Взять предмет в руки (на палец)
function DropItem(MoveIntoID: Cardinal; X,Y,Z: Integer): Boolean; // Положить предмет из рук в контейнер на координаты
!!!Обе функции использовать только в паре!!!

Пример:

Code: Select all

DragItem(FindItem,1);
wait(100); 
DropItem(Box,0,0,0); 
wait(800);
function MoveItem(ItemID: Cardinal; Count: Integer; MoveIntoID: Cardinal; X,Y,Z: Integer): Boolean; // Перемещает предмет

Пример:

Code: Select all

MoveItem(Resurs,100,Box,0,0,0);
function Grab(ItemID: Cardinal; Count: Integer): Boolean; // Подобрать предмет в бакпак
function