FOnline
 Указатель Классы Функции Переменные Группы Страницы
Класс Item

Предмет. Подробнее...

Открытые члены

Скрипты и события

300

bool SetScript (string @+script)
 Устанавливает новый скрипт и вызывает в нем функцию инициализации с параметром firstTime равным true. Подробнее...
 
uint GetScriptId ()
 Возвращает ID скрипта, связанного с данным предметом. Подробнее...
 
void SetEvent (int eventType, string &funcName)
 Биндит функцию-обработчика определенного события. Подробнее...
 
Вызов событий

295

bool EventFinish (bool toDelete)
 Принудительно вызывает событие ITEM_EVENT_FINISH. Подробнее...
 
bool EventAttack (Critter &attacker, Critter &target)
 Принудительно вызывает событие ITEM_EVENT_ATTACK. Подробнее...
 
bool EventUse (Critter &cr, Critter @onCritter, Item @onItem, Scenery @onScenery)
 Принудительно вызывает событие ITEM_EVENT_USE. Подробнее...
 
bool EventUseOnMe (Critter &cr, Item @usedItem)
 Принудительно вызывает событие ITEM_EVENT_USE_ON_ME. Подробнее...
 
bool EventSkill (Critter &cr, int skill)
 Принудительно вызывает событие ITEM_EVENT_SKILL. Подробнее...
 
void EventDrop (Critter &cr)
 Принудительно вызывает событие ITEM_EVENT_DROP. Подробнее...
 
void EventMove (Critter &cr, uint8 fromSlot)
 Принудительно вызывает событие ITEM_EVENT_MOVE. Подробнее...
 
void EventWalk (Critter &cr, bool entered, uint8 dir)
 Принудительно вызывает событие ITEM_EVENT_WALK. Подробнее...
 
Общие

290

void Animate (uint8 fromFrame, uint8 toFrame)
 Проигрывает анимацию предмета. Подробнее...
 
bool ChangeProto (uint16 protoId)
 Меняет прототип у предмета. Подробнее...
 
uint8 GetType ()
 Возвращает тип предмета. Подробнее...
 
uint16 GetProtoId ()
 Возвращает ID прототипа предмета. Подробнее...
 
uint GetCost ()
 Автоматически расчитывает стоимость предмета, учитывая стоимость в предмете и прототипе, износ, заряженную аммуницию. Подробнее...
 
uint GetCount ()
 Возвращает количество предметов в данном экземпляре. Подробнее...
 
void SetCount (uint count)
 Устанавливает количество предметов в данном экземпляре. Подробнее...
 
Map GetMapPosition (uint16 &hexX, uint16 &hexY)
 Возвращает указатель на карту и координаты расположения предмета на ней. Подробнее...
 
bool IsStackable ()
 Группируются ли предметы. Подробнее...
 
bool IsDeteriorable ()
 Изнашиваются ли предметы. Подробнее...
 
void Update ()
 Обновление инфы об предмете у игроков. Подробнее...
 
void SetLexems (string @+lexems)
 Позволяет установить (или сбросить) значения лексем, используемых в названии и описании предмета. Подробнее...
 
Для машин

280

Item GetChild (uint childIndex)
 Возвращает указатель на дочерний предмет. Подробнее...
 
Для предметов-контейнеров

270

Item AddItem (uint16 protoId, uint count, uint specialId)
 Создание предмета в контейнере. Подробнее...
 
Item GetItem (uint16 protoId, uint specialId)
 Возвращает указатель на предмет, который находится в предмете-контейнере. Подробнее...
 
uint GetItems (uint specialId, Item @[]@+items)
 Ищет все предметы с указанным специальным ID, которые находятся в предмете-контейнере. Подробнее...
 

Открытые атрибуты

Общие поля

300

const uint Id
 Уникальный идентификатор предмета. Подробнее...
 
const bool IsNotValid
 Позволяет определить валидность объекта. Подробнее...
 
const ProtoItem Proto
 Указатель на прототип предмета. Подробнее...
 
uint Cost
 Цена. Подробнее...
 
uint Flags
 Изменяемые флаги предмета. Подробнее...
 
uint16 RadioFlags
 Флаги рации (См. Подробнее...
 
uint16 Info
 Используется в формуле для определения номера строки с описанием предмета. Подробнее...
 
uint PicInv
 Изображение в инвентаре. Подробнее...
 
uint PicMap
 Изображение на карте. Подробнее...
 
uint16 SortValue
 Сортировочное число. Подробнее...
 
Доступ

290

const uint8 Accessory
 Определяет, где находится предмет. Подробнее...
 
const uint MapId
 Уникальный идентификатор карты, на которой находится предмет. Подробнее...
 
const uint16 HexX
 Координата месторасположения предмета по оси X. Подробнее...
 
const uint16 HexY
 Координата месторасположения предмета по оси Y. Подробнее...
 
const uint CritId
 Уникальный идентификатор криттера, в инвентаре которого находится предмет. Подробнее...
 
const uint8 CritSlot
 Слот в инвентаре криттера, в котором находится предмет. Подробнее...
 
const uint ContainerId
 Уникальный идентификатор контейнера, в котором находится предмет. Подробнее...
 
const uint StackId
 (?) Подробнее...
 
uint SpecialId
 Специальный ID предмета. Подробнее...
 
Разное (Misc2)

280

uint Val1
 Используется для хранения произвольной информации. Подробнее...
 
uint Val2
 Используется для хранения произвольной информации. Подробнее...
 
uint Val3
 Используется для хранения произвольной информации. Подробнее...
 
uint Val4
 Используется для хранения произвольной информации. Подробнее...
 
uint Val5
 Используется для хранения произвольной информации. Подробнее...
 
Для изнашивающихся предметов (оружие, броня)

270

uint8 BrokenFlags
 (?) Подробнее...
 
uint8 BrokenCount
 (?) Подробнее...
 
uint16 Deterioration
 Степень износа Подробнее...
 
Для замков (ключи, контейнеры, двери)

280

uint LockerId
 Номер замка. Подробнее...
 
uint16 LockerCondition
 Состояние замка. Подробнее...
 
uint16 LockerComplexity
 Сложность замка (штраф к навыку Взлом). Подробнее...
 
Для анимаций

Значения инициализируются по данным прототипа.

Используются для проигрывания анимации.

270

uint16 AnimWaitBase
 (?) Подробнее...
 
uint8 AnimStayBegin
 (?) Подробнее...
 
uint8 AnimStayEnd
 (?) Подробнее...
 
uint8 AnimShowBegin
 (?) Подробнее...
 
uint8 AnimShowEnd
 (?) Подробнее...
 
uint8 AnimHideBegin
 (?) Подробнее...
 
uint8 AnimHideEnd
 (?) Подробнее...
 
Для оружия

260

uint16 Weapon_AmmoPid
 Текущий PID заряженных патронов. Подробнее...
 
uint16 Weapon_AmmoCount
 Текущее количество патронов. Подробнее...
 
uint8 Mode
 Активный режим атаки. Подробнее...
 
Освещенность

250

int8 LightIntensity
 (?) Подробнее...
 
uint8 LightRadius
 (?) Подробнее...
 
uint8 LightFlags
 (?) Подробнее...
 
uint LightColor
 (?) Подробнее...
 

Подробное описание

Предмет.

Методы

bool SetScript ( string @+  script)

Устанавливает новый скрипт и вызывает в нем функцию инициализации с параметром firstTime равным true.

Аргументы
scriptИмя скрипта.
Возвращает
true в случае успешной операции; false – в случае провала.
Прим.
Если скрипт или функция не найдена, то установки значения скрипта не произойдет.
uint GetScriptId ( )

Возвращает ID скрипта, связанного с данным предметом.

Возвращает
ID скрипта. 0, если скрипт не назначен.
void SetEvent ( int  eventType,
string funcName 
)

Биндит функцию-обработчика определенного события.

Аргументы
eventTypeТип события (см. Item events).
funcNameИмя функции-обработчика.
bool EventFinish ( bool  toDelete)

Принудительно вызывает событие ITEM_EVENT_FINISH.

bool EventAttack ( Critter attacker,
Critter target 
)

Принудительно вызывает событие ITEM_EVENT_ATTACK.

bool EventUse ( Critter cr,
Critter onCritter,
Item onItem,
Scenery onScenery 
)

Принудительно вызывает событие ITEM_EVENT_USE.

bool EventUseOnMe ( Critter cr,
Item usedItem 
)

Принудительно вызывает событие ITEM_EVENT_USE_ON_ME.

bool EventSkill ( Critter cr,
int  skill 
)

Принудительно вызывает событие ITEM_EVENT_SKILL.

void EventDrop ( Critter cr)

Принудительно вызывает событие ITEM_EVENT_DROP.

void EventMove ( Critter cr,
uint8  fromSlot 
)

Принудительно вызывает событие ITEM_EVENT_MOVE.

void EventWalk ( Critter cr,
bool  entered,
uint8  dir 
)

Принудительно вызывает событие ITEM_EVENT_WALK.

void Animate ( uint8  fromFrame,
uint8  toFrame 
)

Проигрывает анимацию предмета.

Аргументы
fromFrameНачальный кадр анимации.
toFrameКонечный кадр анимации.
Прим.
Направление может быть любым (например, Animate(1,7) или Animate(7,1)).
bool ChangeProto ( uint16  protoId)

Меняет прототип у предмета.

Новый прототип должен иметь такой же тип, что и сам предмет.

Аргументы
protoIdНомер нового прототипа (см. ITEMPID.H).
Возвращает
В случае успеха – true. В случае провала – false.
uint8 GetType ( )

Возвращает тип предмета.

Возвращает
Тип предмета (см. Items types). В случае провала – 0.
uint16 GetProtoId ( )

Возвращает ID прототипа предмета.

См. ITEMPID.H.

Возвращает
ID прототипа предмета. В случае провала – 0.
uint GetCost ( )

Автоматически расчитывает стоимость предмета, учитывая стоимость в предмете и прототипе, износ, заряженную аммуницию.

Возвращает
Стоимость предмета.
uint GetCount ( )

Возвращает количество предметов в данном экземпляре.

Возвращает
Количество предметов.
См. также
SetCount
void SetCount ( uint  count)

Устанавливает количество предметов в данном экземпляре.

Аргументы
countновое количество предметов.
См. также
GetCount
Map GetMapPosition ( uint16 &  hexX,
uint16 &  hexY 
)

Возвращает указатель на карту и координаты расположения предмета на ней.

В параметрах возвращается месторасположение предмета на карте, независимо от того, где находится предмет (в предмете-контейнере, в инвентаре криттера или просто на карте).

Аргументы
hexX,hexYВ эти переменные функция передаст координаты предмета.
Возвращает
Указатель на экземпляр класса Map. В случае провала – null.
bool IsStackable ( )

Группируются ли предметы.

См. также
ProtoItem::Stackable
bool IsDeteriorable ( )

Изнашиваются ли предметы.

См. также
ProtoItem::Deteriorable
void Update ( )

Обновление инфы об предмете у игроков.

При изменении полей обязательно вызовите этот метод для отправки данных клиентам.

void SetLexems ( string @+  lexems)

Позволяет установить (или сбросить) значения лексем, используемых в названии и описании предмета.

Аргументы
lexemsСтрока значений лексем (см. описание тэга @lex@, где описан формат строки). Если значение параметра будет null, то это приведёт к удалению лексем.
Item GetChild ( uint  childIndex)

Возвращает указатель на дочерний предмет.

Аргументы
childIndexНомер предмета. Обычно 0. Максимум - 4.
Возвращает
Указатель на экземпляр класса Item. В случае провала – null.
Item AddItem ( uint16  protoId,
uint  count,
uint  specialId 
)

Создание предмета в контейнере.

Аргументы
protoIdНомер прототипа предмета (см. файл ITEMPID.H).
countКоличество предметов.
specialIdСпециальный ID предмета. Используется для идентификации криттера, которому принадлежит предмет.
Возвращает
Указатель на экземпляр класса Item. В случае провала – null.
См. также
SpecialId
Item GetItem ( uint16  protoId,
uint  specialId 
)

Возвращает указатель на предмет, который находится в предмете-контейнере.

Аргументы
protoIdНомер прототипа предмета (см. файл ITEMPID.H).
specialIdСпециальный ID предмета. Используется для идентификации криттера, которому принадлежит предмет.
Возвращает
Указатель на экземпляр класса Item. В случае провала – null.
См. также
SpecialId
uint GetItems ( uint  specialId,
Item @@+[]  items 
)

Ищет все предметы с указанным специальным ID, которые находятся в предмете-контейнере.

Аргументы
specialIdСпециальный ID. Используется для идентификации криттера, которому принадлежат предметы. Если установлено значение: -1, то этот параметр учитываться не будет.
itemsМассив указателей на предметы, которые находятся в контейнере. Массив не очищается, а дописывается с конца нужными предметами.
Возвращает
Количество найденных предметов.
См. также
SpecialId

Данные класса

const uint Id

Уникальный идентификатор предмета.

const bool IsNotValid

Позволяет определить валидность объекта.

const ProtoItem Proto

Указатель на прототип предмета.

uint Cost

Цена.

При нулевом значении данные берутся из прототипа.

uint Flags

Изменяемые флаги предмета.

Cм. Item flags.

Для удобства пользуйтесь макросами:

  • FLAG (позволяет проверить, установлен ли определенный флаг),
  • SETFLAG (позволяет поставить флаг),
  • UNSETFLAG (позволяет убрать флаг). Их определения см. Flags в _macros.fos.
uint16 RadioFlags

Флаги рации (См.

Radio flags)

uint16 Info

Используется в формуле для определения номера строки с описанием предмета.

Формула следующая:
Item::GetProtoId()*100 + Item::Info (+1 для полного описания).
uint PicInv

Изображение в инвентаре.

Номер вычисляется с помощью функции GetStrHash. При нулевом значении данные берутся из прототипа.

uint PicMap

Изображение на карте.

Номер вычисляется с помощью функции GetStrHash. При нулевом значении данные берутся из прототипа.

uint16 SortValue

Сортировочное число.

Используется для сортировки предметов при отображении в инвентаре/контейнере/карте/etc. Сортировка производится по возрастанию (от меньших значений к большим).

const uint8 Accessory

Определяет, где находится предмет.

Cм. Items accessory.

const uint MapId

Уникальный идентификатор карты, на которой находится предмет.

const uint16 HexX

Координата месторасположения предмета по оси X.

const uint16 HexY

Координата месторасположения предмета по оси Y.

const uint CritId

Уникальный идентификатор криттера, в инвентаре которого находится предмет.

const uint8 CritSlot

Слот в инвентаре криттера, в котором находится предмет.

См. Slots.

const uint ContainerId

Уникальный идентификатор контейнера, в котором находится предмет.

const uint StackId

(?)

uint SpecialId

Специальный ID предмета.

Используется для идентификации группы предметов внутри контейнеров. Обычно это уникальный ID криттера, которому принадлежит предмет. Изначально специальный ID предмета равен 0.

См. также
AddItem
GetItem
GetItems
MoveItem
MoveItems
uint Val1

Используется для хранения произвольной информации.

uint Val2

Используется для хранения произвольной информации.

uint Val3

Используется для хранения произвольной информации.

uint Val4

Используется для хранения произвольной информации.

uint Val5

Используется для хранения произвольной информации.

uint8 BrokenFlags

(?)

uint8 BrokenCount

(?)

uint16 Deterioration

Степень износа

uint LockerId

Номер замка.

uint16 LockerCondition

Состояние замка.

См. Locker. Только для контейнеров и дверей.

uint16 LockerComplexity

Сложность замка (штраф к навыку Взлом).

Только для контейнеров и дверей.

uint16 AnimWaitBase

(?)

uint8 AnimStayBegin

(?)

uint8 AnimStayEnd

(?)

uint8 AnimShowBegin

(?)

uint8 AnimShowEnd

(?)

uint8 AnimHideBegin

(?)

uint8 AnimHideEnd

(?)

uint16 Weapon_AmmoPid

Текущий PID заряженных патронов.

uint16 Weapon_AmmoCount

Текущее количество патронов.

uint8 Mode

Активный режим атаки.

старшие четыре бита - прицел (см. Hit Locations), младшие четыре бита - тип использования (0 – primary, 1 – secondary, 2 – third).

int8 LightIntensity

(?)

uint8 LightRadius

(?)

uint8 LightFlags

(?)

uint LightColor

(?)