2024-12-02 10:02:25 +01:00
|
|
|
---@alias os.mtime fun(): number
|
2024-05-23 01:39:46 +02:00
|
|
|
|
2024-12-02 10:02:25 +01:00
|
|
|
---@alias table.create fun(arrayLength: number, keyLength: number): table
|
|
|
|
|
---@alias table.pack fun(...): table
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
---@class rawgetmetatable
|
|
|
|
|
---@field __index fun(self: table, key: any): any
|
|
|
|
|
rawgetmetatable = {}
|
|
|
|
|
|
|
|
|
|
---@class bit
|
|
|
|
|
---@field band fun(a: number, b: number): number
|
|
|
|
|
---@field bor fun(a: number, b: number): number
|
|
|
|
|
---@field bxor fun(a: number, b: number): number
|
|
|
|
|
---@field lshift fun(a: number, b: number): number
|
|
|
|
|
---@field rshift fun(a: number, b: number): number
|
|
|
|
|
bit = {}
|
|
|
|
|
|
|
|
|
|
---@alias Outfit_t table<string, integer>
|
|
|
|
|
---@alias MagicEffect_t table<string, integer>
|
|
|
|
|
|
|
|
|
|
---@class DBInsert
|
|
|
|
|
---@field __gc fun(self: DBInsert)
|
|
|
|
|
---@field addRow fun(self: DBInsert, row: string): boolean|nil
|
|
|
|
|
---@field execute fun(self: DBInsert): boolean|nil
|
|
|
|
|
DBInsert = {}
|
|
|
|
|
|
|
|
|
|
---@class DBTransaction
|
|
|
|
|
---@field __eq fun(self: DBTransaction, other: DBTransaction): boolean
|
|
|
|
|
---@field __gc fun(self: DBTransaction)
|
|
|
|
|
---@field begin fun(self: DBTransaction): boolean|nil
|
|
|
|
|
---@field commit fun(self: DBTransaction): boolean|nil
|
|
|
|
|
---@field rollback fun(self: DBTransaction)
|
|
|
|
|
DBTransaction = {}
|
|
|
|
|
|
|
|
|
|
---@class db
|
|
|
|
|
---@field query fun(query: string): any
|
|
|
|
|
---@field storeQuery fun(query: string): any
|
|
|
|
|
---@field escapeString fun(value: string): string
|
|
|
|
|
---@field asyncQuery fun(query: string): boolean
|
|
|
|
|
db = {}
|
|
|
|
|
|
|
|
|
|
---@class result
|
|
|
|
|
---@field free fun(resultId: number)
|
|
|
|
|
---@field next fun(resultId: number): number
|
|
|
|
|
---@field getNumber fun(resultId: number, column: string): number
|
|
|
|
|
---@field getString fun(resultId: number, column: number): string
|
|
|
|
|
---@field getBoolean fun(resultId: number, column: number): boolean
|
|
|
|
|
---@field getStream fun(resultId: number, column: number): string
|
|
|
|
|
result = {}
|
|
|
|
|
|
|
|
|
|
---@class configManager
|
|
|
|
|
---@field getBoolean fun(key: string): boolean
|
|
|
|
|
---@field getNumber fun(key: string): number
|
|
|
|
|
---@field getString fun(key: string): string
|
|
|
|
|
---@field setBoolean fun(key: string, value: boolean): boolean
|
|
|
|
|
---@field setNumber fun(key: string, value: number): boolean
|
|
|
|
|
---@field setString fun(key: string, value: string): boolean
|
|
|
|
|
---@field remove fun(key: string): boolean
|
|
|
|
|
---@field getKeys fun(): table
|
|
|
|
|
configManager = {}
|
|
|
|
|
|
|
|
|
|
---@class Game
|
|
|
|
|
---@field getSpectators fun(position: Position, multifloor?: boolean, onlyPlayers?: boolean, minRangeX?: number, minRangeY?: number, maxRangeX?: number, maxRangeY?: number): table
|
|
|
|
|
---@field getPlayers fun(): table
|
|
|
|
|
---@field getNpcs fun(): table
|
|
|
|
|
---@field getMonsters fun(): table
|
|
|
|
|
---@field loadMap fun(path: string): boolean
|
|
|
|
|
---@field getExperienceStage fun(level: number): number
|
|
|
|
|
---@field getExperienceForLevel fun(level: number): number
|
|
|
|
|
---@field getMonsterCount fun(): number
|
|
|
|
|
---@field getPlayerCount fun(): number
|
|
|
|
|
---@field getNpcCount fun(): number
|
|
|
|
|
---@field getMonsterTypes fun(): table
|
|
|
|
|
---@field getBestiary fun(): table
|
|
|
|
|
---@field getCurrencyItems fun(): table
|
|
|
|
|
---@field getItemTypeByClientId fun(clientId: number): ItemType
|
|
|
|
|
---@field getMountIdByLookType fun(lookType: number): number
|
|
|
|
|
---@field getTowns fun(): table
|
|
|
|
|
---@field getHouses fun(): table
|
2024-06-06 20:25:33 -03:00
|
|
|
---@field getOutfits fun(sex: number): table
|
2024-05-23 01:39:46 +02:00
|
|
|
---@field getMounts fun(): table
|
|
|
|
|
---@field getVocations fun(): table
|
|
|
|
|
---@field getGameState fun(): string
|
|
|
|
|
---@field setGameState fun(state: string): boolean
|
|
|
|
|
---@field getWorldType fun(): string
|
|
|
|
|
---@field setWorldType fun(type: string): boolean
|
|
|
|
|
---@field getItemAttributeByName fun(attribute: string): any
|
2024-06-06 20:25:33 -03:00
|
|
|
---@field getReturnMessage fun(value: number): string
|
2024-05-23 01:39:46 +02:00
|
|
|
---@field createItem fun(itemId: number, count: number, subtype: number|nil): Item
|
|
|
|
|
---@field createContainer fun(containerId: number, size: number): Container
|
|
|
|
|
---@field createMonster fun(name: string, position: Position, extended?: boolean, force?: boolean, magicEffect?: MagicEffect_t): Monster
|
|
|
|
|
---@field createNpc fun(name: string, position: Position, extended?: boolean, force?: boolean, magicEffect?: MagicEffect_t): Npc
|
|
|
|
|
---@field createTile fun(position: Position): Tile
|
|
|
|
|
---@field createMonsterType fun(name: string): MonsterType
|
|
|
|
|
---@field startEvent fun(eventName: string): boolean
|
|
|
|
|
---@field getClientVersion fun(): string
|
|
|
|
|
---@field reload fun(reloadType: number): boolean
|
|
|
|
|
Game = {}
|
|
|
|
|
|
|
|
|
|
---@class Variant
|
|
|
|
|
---@field create fun(): Variant
|
|
|
|
|
---@field getNumber fun(self: Variant): number
|
|
|
|
|
---@field getString fun(self: Variant): string
|
|
|
|
|
---@field getPosition fun(self: Variant): Position
|
|
|
|
|
Variant = {}
|
|
|
|
|
|
|
|
|
|
---@class Position
|
|
|
|
|
---@field create fun(): Position
|
|
|
|
|
---@field isSightClear fun(self: Position, other: Position): boolean
|
|
|
|
|
---@field sendMagicEffect fun(self: Position, effectType: number, creature?: Creature): boolean
|
|
|
|
|
---@field sendDistanceEffect fun(self: Position, target: Position, effectType: number): boolean
|
|
|
|
|
Position = {}
|
|
|
|
|
|
|
|
|
|
---@class Tile
|
|
|
|
|
---@field create fun(): Tile
|
|
|
|
|
---@field __eq fun(self: Tile, other: Tile): boolean
|
|
|
|
|
---@field remove fun(self: Tile): boolean
|
|
|
|
|
---@field getPosition fun(self: Tile): Position
|
|
|
|
|
---@field getGround fun(self: Tile): Item
|
|
|
|
|
---@field getThing fun(self: Tile, index: number): Creature|Item|nil
|
|
|
|
|
---@field getThingCount fun(self: Tile): number
|
|
|
|
|
---@field getTopVisibleThing fun(self: Tile): Creature|Item|nil
|
|
|
|
|
---@field getTopTopItem fun(self: Tile): Item
|
|
|
|
|
---@field getTopDownItem fun(self: Tile): Item
|
|
|
|
|
---@field getFieldItem fun(self: Tile): Item
|
|
|
|
|
---@field getItemById fun(self: Tile, itemId: number): Item
|
|
|
|
|
---@field getItemByType fun(self: Tile, itemType: number): Item
|
|
|
|
|
---@field getItemByTopOrder fun(self: Tile, order: number): Item
|
|
|
|
|
---@field getItemCountById fun(self: Tile, itemId: number): number
|
|
|
|
|
---@field getBottomCreature fun(self: Tile): Creature
|
|
|
|
|
---@field getTopCreature fun(self: Tile): Creature
|
|
|
|
|
---@field getBottomVisibleCreature fun(self: Tile): Creature
|
|
|
|
|
---@field getTopVisibleCreature fun(self: Tile): Creature
|
|
|
|
|
---@field getItems fun(self: Tile): table
|
|
|
|
|
---@field getItemCount fun(self: Tile): number
|
|
|
|
|
---@field getDownItemCount fun(self: Tile): number
|
|
|
|
|
---@field getTopItemCount fun(self: Tile): number
|
|
|
|
|
---@field getCreatures fun(self: Tile): table
|
|
|
|
|
---@field getCreatureCount fun(self: Tile): number
|
|
|
|
|
---@field getThingIndex fun(self: Tile, thing: Creature|Item): number
|
|
|
|
|
---@field hasProperty fun(self: Tile, property: number): boolean
|
|
|
|
|
---@field hasFlag fun(self: Tile, flag: number): boolean
|
|
|
|
|
---@field queryAdd fun(self: Tile, thing: Creature|Item, index: number): boolean
|
|
|
|
|
---@field addItem fun(self: Tile, item: Item): boolean
|
|
|
|
|
---@field addItemEx fun(self: Tile, item: Item, index: number): boolean
|
|
|
|
|
---@field getHouse fun(self: Tile): House
|
|
|
|
|
Tile = {}
|
|
|
|
|
|
|
|
|
|
---@class NetworkMessage
|
|
|
|
|
---@field create fun(): NetworkMessage
|
|
|
|
|
---@field __eq fun(self: NetworkMessage, other: NetworkMessage): boolean
|
|
|
|
|
---@field __gc fun(self: NetworkMessage)
|
|
|
|
|
---@field delete fun(self: NetworkMessage)
|
|
|
|
|
---@field getByte fun(self: NetworkMessage): number
|
|
|
|
|
---@field getU16 fun(self: NetworkMessage): number
|
|
|
|
|
---@field getU32 fun(self: NetworkMessage): number
|
|
|
|
|
---@field getU64 fun(self: NetworkMessage): number
|
|
|
|
|
---@field getString fun(self: NetworkMessage): string
|
|
|
|
|
---@field getPosition fun(self: NetworkMessage): Position
|
|
|
|
|
---@field addByte fun(self: NetworkMessage, byte: number)
|
|
|
|
|
---@field addU16 fun(self: NetworkMessage, u16: number)
|
|
|
|
|
---@field addU32 fun(self: NetworkMessage, u32: number)
|
|
|
|
|
---@field addU64 fun(self: NetworkMessage, u64: number)
|
|
|
|
|
---@field addString fun(self: NetworkMessage, string: string)
|
|
|
|
|
---@field addPosition fun(self: NetworkMessage, position: Position)
|
|
|
|
|
---@field addDouble fun(self: NetworkMessage, double: number)
|
|
|
|
|
---@field addItem fun(self: NetworkMessage, item: Item)
|
|
|
|
|
---@field addItemId fun(self: NetworkMessage, itemId: number)
|
|
|
|
|
---@field reset fun(self: NetworkMessage)
|
|
|
|
|
---@field seek fun(self: NetworkMessage, position: number)
|
|
|
|
|
---@field tell fun(self: NetworkMessage): number
|
|
|
|
|
---@field len fun(self: NetworkMessage): number
|
|
|
|
|
---@field skipBytes fun(self: NetworkMessage, count: number)
|
|
|
|
|
---@field sendToPlayer fun(self: NetworkMessage, player: Player)
|
|
|
|
|
NetworkMessage = {}
|
|
|
|
|
|
|
|
|
|
---@class ModalWindow
|
|
|
|
|
---@field create fun(): ModalWindow
|
|
|
|
|
---@field __eq fun(self: ModalWindow, other: ModalWindow): boolean
|
|
|
|
|
---@field __gc fun(self: ModalWindow)
|
|
|
|
|
---@field delete fun(self: ModalWindow)
|
|
|
|
|
---@field getId fun(self: ModalWindow): number
|
|
|
|
|
---@field getTitle fun(self: ModalWindow): string
|
|
|
|
|
---@field getMessage fun(self: ModalWindow): string
|
|
|
|
|
---@field setTitle fun(self: ModalWindow, title: string)
|
|
|
|
|
---@field setMessage fun(self: ModalWindow, message: string)
|
|
|
|
|
---@field getButtonCount fun(self: ModalWindow): number
|
|
|
|
|
---@field getChoiceCount fun(self: ModalWindow): number
|
|
|
|
|
---@field addButton fun(self: ModalWindow, buttonId: number, buttonText: string)
|
|
|
|
|
---@field addChoice fun(self: ModalWindow, choiceId: number, choiceText: string)
|
|
|
|
|
---@field getDefaultEnterButton fun(self: ModalWindow): number
|
|
|
|
|
---@field setDefaultEnterButton fun(self: ModalWindow, buttonId: number)
|
|
|
|
|
---@field getDefaultEscapeButton fun(self: ModalWindow): number
|
|
|
|
|
---@field setDefaultEscapeButton fun(self: ModalWindow, buttonId: number)
|
|
|
|
|
---@field hasPriority fun(self: ModalWindow): boolean
|
|
|
|
|
---@field setPriority fun(self: ModalWindow, priority: boolean)
|
|
|
|
|
---@field sendToPlayer fun(self: ModalWindow, player: Player)
|
|
|
|
|
ModalWindow = {}
|
|
|
|
|
|
|
|
|
|
---@class Item : Thing
|
|
|
|
|
---@field create fun(): Item
|
|
|
|
|
---@field __eq fun(self: Item, other: Item): boolean
|
|
|
|
|
---@field isItem fun(self: Item): boolean
|
|
|
|
|
---@field getParent fun(self: Item): Item
|
|
|
|
|
---@field getTopParent fun(self: Item): Item
|
|
|
|
|
---@field getId fun(self: Item): number
|
|
|
|
|
---@field clone fun(self: Item): Item
|
|
|
|
|
---@field split fun(self: Item): Item
|
|
|
|
|
---@field remove fun(self: Item, count?: number): boolean
|
|
|
|
|
---@field getUniqueId fun(self: Item): number
|
|
|
|
|
---@field getActionId fun(self: Item): number
|
|
|
|
|
---@field setActionId fun(self: Item, actionId: number)
|
|
|
|
|
---@field getCount fun(self: Item): number
|
|
|
|
|
---@field getCharges fun(self: Item): number
|
|
|
|
|
---@field getFluidType fun(self: Item): number
|
|
|
|
|
---@field getWeight fun(self: Item): number
|
|
|
|
|
---@field getWorth fun(self: Item): number
|
|
|
|
|
---@field getSubType fun(self: Item): number
|
|
|
|
|
---@field getName fun(self: Item): string
|
|
|
|
|
---@field getPluralName fun(self: Item): string
|
|
|
|
|
---@field getArticle fun(self: Item): string
|
|
|
|
|
---@field getPosition fun(self: Item): Position
|
|
|
|
|
---@field getTile fun(self: Item): Tile
|
|
|
|
|
---@field hasAttribute fun(self: Item, attribute: number|string): boolean
|
|
|
|
|
---@field getAttribute fun(self: Item, attribute: number|string): any
|
|
|
|
|
---@field setAttribute fun(self: Item, attribute: number|string, value: any)
|
|
|
|
|
---@field removeAttribute fun(self: Item, attribute: number)
|
|
|
|
|
---@field getCustomAttribute fun(self: Item, key: string): any
|
|
|
|
|
---@field setCustomAttribute fun(self: Item, key: string, value: any)
|
|
|
|
|
---@field removeCustomAttribute fun(self: Item, key: string)
|
2024-06-06 20:25:33 -03:00
|
|
|
---@field moveTo fun(self: Item, destination: Position|Thing)
|
|
|
|
|
---@field transform fun(self: Item, newItem: number|string, count?: number)
|
2024-05-23 01:39:46 +02:00
|
|
|
---@field decay fun(self: Item)
|
|
|
|
|
---@field getSpecialDescription fun(self: Item): string
|
|
|
|
|
---@field hasProperty fun(self: Item, property: number): boolean
|
|
|
|
|
---@field isLoadedFromMap fun(self: Item): boolean
|
|
|
|
|
---@field setStoreItem fun(self: Item, store: boolean)
|
|
|
|
|
---@field isStoreItem fun(self: Item): boolean
|
|
|
|
|
---@field setReflect fun(self: Item, reflect: number)
|
|
|
|
|
---@field getReflect fun(self: Item): number
|
|
|
|
|
---@field setBoostPercent fun(self: Item, percent: number)
|
|
|
|
|
---@field getBoostPercent fun(self: Item): number
|
|
|
|
|
---@field addItem fun(self: Item, id: number, subtype?: number): boolean
|
|
|
|
|
Item = {}
|
|
|
|
|
|
|
|
|
|
---@class Container : Item
|
|
|
|
|
---@field getSize fun(self: Container): number
|
|
|
|
|
---@field getCapacity fun(self: Container): number
|
|
|
|
|
---@field getEmptySlots fun(self: Container): number
|
|
|
|
|
---@field getItems fun(self: Container): table
|
|
|
|
|
---@field getItemCountById fun(self: Container, itemId: number, subType: number): number
|
|
|
|
|
---@field getItem fun(self: Container, index: number): Item
|
|
|
|
|
---@field hasItem fun(self: Container, itemId: number, subType: number): boolean
|
|
|
|
|
---@field addItem fun(self: Container, itemId: number, count: number): Item
|
|
|
|
|
---@field addItemEx fun(self: Container, item: Item): boolean
|
|
|
|
|
---@field getCorpseOwner fun(self: Container): number
|
|
|
|
|
Container = {}
|
|
|
|
|
|
|
|
|
|
---@class Teleport : Item
|
|
|
|
|
---@field getDestination fun(self: Teleport): Position
|
|
|
|
|
---@field setDestination fun(self: Teleport, position: Position)
|
|
|
|
|
Teleport = {}
|
|
|
|
|
|
|
|
|
|
---@class Podium : Item
|
|
|
|
|
---@field getOutfit fun(self: Podium): Outfit
|
|
|
|
|
---@field setOutfit fun(self: Podium, outfit: Outfit)
|
|
|
|
|
---@field hasFlag fun(self: Podium, flag: number): boolean
|
|
|
|
|
---@field setFlag fun(self: Podium, flag: number)
|
|
|
|
|
---@field getDirection fun(self: Podium): number
|
|
|
|
|
---@field setDirection fun(self: Podium, direction: number)
|
|
|
|
|
Podium = {}
|
|
|
|
|
|
|
|
|
|
---@class Creature : Thing
|
|
|
|
|
---@field create fun(): Creature
|
|
|
|
|
---@field __eq fun(self: Creature, other: Creature): boolean
|
|
|
|
|
---@field getEvents fun(self: Creature): table
|
|
|
|
|
---@field registerEvent fun(self: Creature, eventName: string, callback: function)
|
|
|
|
|
---@field unregisterEvent fun(self: Creature, eventName: string)
|
|
|
|
|
---@field isRemoved fun(self: Creature): boolean
|
|
|
|
|
---@field isCreature fun(self: Creature): boolean
|
|
|
|
|
---@field isInGhostMode fun(self: Creature): boolean
|
|
|
|
|
---@field isHealthHidden fun(self: Creature): boolean
|
|
|
|
|
---@field isMovementBlocked fun(self: Creature): boolean
|
|
|
|
|
---@field isImmune fun(self: Creature): boolean
|
|
|
|
|
---@field canSee fun(self: Creature, position: Position): boolean
|
|
|
|
|
---@field canSeeCreature fun(self: Creature, creature: Creature): boolean
|
|
|
|
|
---@field canSeeGhostMode fun(self: Creature): boolean
|
|
|
|
|
---@field canSeeInvisibility fun(self: Creature): boolean
|
|
|
|
|
---@field getParent fun(self: Creature): Creature
|
|
|
|
|
---@field getId fun(self: Creature): number
|
|
|
|
|
---@field getName fun(self: Creature): string
|
|
|
|
|
---@field getTarget fun(self: Creature): Creature
|
|
|
|
|
---@field setTarget fun(self: Creature, target: Creature)
|
|
|
|
|
---@field getFollowCreature fun(self: Creature): Creature
|
|
|
|
|
---@field setFollowCreature fun(self: Creature, creature: Creature)
|
|
|
|
|
---@field getMaster fun(self: Creature): Creature
|
|
|
|
|
---@field setMaster fun(self: Creature, master: Creature)
|
|
|
|
|
---@field getLight fun(self: Creature): table
|
|
|
|
|
---@field setLight fun(self: Creature, lightInfo: table)
|
|
|
|
|
---@field getSpeed fun(self: Creature): number
|
|
|
|
|
---@field getBaseSpeed fun(self: Creature): number
|
|
|
|
|
---@field changeSpeed fun(self: Creature, speedDelta: number)
|
|
|
|
|
---@field setDropLoot fun(self: Creature, dropLoot: boolean)
|
|
|
|
|
---@field setSkillLoss fun(self: Creature, skillLoss: boolean)
|
|
|
|
|
---@field getPosition fun(self: Creature): Position
|
|
|
|
|
---@field getTile fun(self: Creature): Tile
|
|
|
|
|
---@field getDirection fun(self: Creature): number
|
|
|
|
|
---@field setDirection fun(self: Creature, direction: number)
|
|
|
|
|
---@field getHealth fun(self: Creature): number
|
|
|
|
|
---@field setHealth fun(self: Creature, health: number)
|
|
|
|
|
---@field addHealth fun(self: Creature, healthDelta: number)
|
|
|
|
|
---@field getMaxHealth fun(self: Creature): number
|
|
|
|
|
---@field setMaxHealth fun(self: Creature, maxHealth: number)
|
|
|
|
|
---@field setHiddenHealth fun(self: Creature, hidden: boolean)
|
|
|
|
|
---@field setMovementBlocked fun(self: Creature, blocked: boolean)
|
|
|
|
|
---@field getSkull fun(self: Creature): number
|
|
|
|
|
---@field setSkull fun(self: Creature, skullType: number)
|
|
|
|
|
---@field getOutfit fun(self: Creature): Outfit
|
|
|
|
|
---@field setOutfit fun(self: Creature, outfit: Outfit)
|
2024-12-02 09:39:42 +01:00
|
|
|
---@field getCondition fun(self: Creature, conditionType: number): Condition
|
2024-05-23 01:39:46 +02:00
|
|
|
---@field addCondition fun(self: Creature, condition: Condition)
|
|
|
|
|
---@field removeCondition fun(self: Creature, conditionType: number)
|
|
|
|
|
---@field hasCondition fun(self: Creature, conditionType: number): boolean
|
|
|
|
|
---@field remove fun(self: Creature)
|
|
|
|
|
---@field teleportTo fun(self: Creature, position: Position, createEffect?: boolean)
|
|
|
|
|
---@field say fun(self: Creature, text: string, type?: number, ghost?: boolean, receiver?: Creature, channelId?: number)
|
|
|
|
|
---@field getDamageMap fun(self: Creature): table
|
|
|
|
|
---@field getSummons fun(self: Creature): table
|
|
|
|
|
---@field getDescription fun(self: Creature): string
|
|
|
|
|
---@field getPathTo fun(self: Creature, position: Position): table
|
|
|
|
|
---@field move fun(self: Creature, direction: number)
|
|
|
|
|
---@field getZone fun(self: Creature): number
|
|
|
|
|
---@field hasIcon fun(self: Creature): boolean
|
|
|
|
|
---@field setIcon fun(self: Creature, iconId: number)
|
|
|
|
|
---@field getIcon fun(self: Creature): number
|
|
|
|
|
---@field removeIcon fun(self: Creature)
|
|
|
|
|
---@field getStorageValue fun(self: Creature, key: number): any
|
|
|
|
|
---@field setStorageValue fun(self: Creature, key: number, value: any)
|
|
|
|
|
Creature = {}
|
|
|
|
|
|
|
|
|
|
---@class Player : Creature
|
|
|
|
|
---@field create fun(): Player
|
|
|
|
|
---@field __eq fun(self: Player, other: Player): boolean
|
|
|
|
|
---@field isPlayer fun(self: Player): boolean
|
|
|
|
|
---@field getGuid fun(self: Player): number
|
|
|
|
|
---@field getIp fun(self: Player): number
|
|
|
|
|
---@field getAccountId fun(self: Player): number
|
|
|
|
|
---@field getLastLoginSaved fun(self: Player): number
|
|
|
|
|
---@field getLastLogout fun(self: Player): number
|
|
|
|
|
---@field getAccountType fun(self: Player): number
|
|
|
|
|
---@field setAccountType fun(self: Player, accountType: number)
|
|
|
|
|
---@field getCapacity fun(self: Player): number
|
|
|
|
|
---@field setCapacity fun(self: Player, capacity: number)
|
|
|
|
|
---@field getFreeCapacity fun(self: Player): number
|
2024-06-06 20:25:33 -03:00
|
|
|
---@field getDepotChest fun(self: Player, depotId: number, autoCreate?: boolean): Item
|
2024-05-23 01:39:46 +02:00
|
|
|
---@field getInbox fun(self: Player): Item
|
|
|
|
|
---@field getSkullTime fun(self: Player): number
|
|
|
|
|
---@field setSkullTime fun(self: Player, time: number)
|
|
|
|
|
---@field getDeathPenalty fun(self: Player): number
|
|
|
|
|
---@field getExperience fun(self: Player): number
|
|
|
|
|
---@field addExperience fun(self: Player, amount: number)
|
|
|
|
|
---@field removeExperience fun(self: Player, amount: number)
|
|
|
|
|
---@field getLevel fun(self: Player): number
|
|
|
|
|
---@field getLevelPercent fun(self: Player): number
|
|
|
|
|
---@field getMagicLevel fun(self: Player): number
|
|
|
|
|
---@field getMagicLevelPercent fun(self: Player): number
|
|
|
|
|
---@field getBaseMagicLevel fun(self: Player): number
|
|
|
|
|
---@field getMana fun(self: Player): number
|
|
|
|
|
---@field addMana fun(self: Player, amount: number)
|
|
|
|
|
---@field getMaxMana fun(self: Player): number
|
|
|
|
|
---@field setMaxMana fun(self: Player, maxMana: number)
|
|
|
|
|
---@field setManaShieldBar fun(self: Player, visible: boolean)
|
|
|
|
|
---@field getManaSpent fun(self: Player): number
|
|
|
|
|
---@field addManaSpent fun(self: Player, amount: number)
|
|
|
|
|
---@field removeManaSpent fun(self: Player, amount: number)
|
|
|
|
|
---@field getBaseMaxHealth fun(self: Player): number
|
|
|
|
|
---@field getBaseMaxMana fun(self: Player): number
|
|
|
|
|
---@field getSkillLevel fun(self: Player, skill: number): number
|
|
|
|
|
---@field getEffectiveSkillLevel fun(self: Player, skill: number): number
|
|
|
|
|
---@field getSkillPercent fun(self: Player, skill: number): number
|
|
|
|
|
---@field getSkillTries fun(self: Player, skill: number): number
|
|
|
|
|
---@field addSkillTries fun(self: Player, skill: number, amount: number)
|
2024-06-06 20:25:33 -03:00
|
|
|
---@field removeSkillTries fun(self: Player, skill: number, amount: number, notify?: boolean)
|
2024-05-23 01:39:46 +02:00
|
|
|
---@field getSpecialSkill fun(self: Player, skill: number): number
|
|
|
|
|
---@field addSpecialSkill fun(self: Player, skill: number, amount: number)
|
|
|
|
|
---@field addOfflineTrainingTime fun(self: Player, time: number)
|
|
|
|
|
---@field getOfflineTrainingTime fun(self: Player): number
|
|
|
|
|
---@field removeOfflineTrainingTime fun(self: Player, time: number)
|
|
|
|
|
---@field addOfflineTrainingTries fun(self: Player, skill: number, amount: number)
|
|
|
|
|
---@field getOfflineTrainingSkill fun(self: Player): number
|
|
|
|
|
---@field setOfflineTrainingSkill fun(self: Player, skill: number)
|
2024-12-02 10:02:25 +01:00
|
|
|
---@field getItemCount fun(self: Player, itemId: number): number
|
2024-05-23 01:39:46 +02:00
|
|
|
---@field getItemById fun(self: Player, itemId: number, subType?: number): Item
|
|
|
|
|
---@field getVocation fun(self: Player): Vocation
|
|
|
|
|
---@field setVocation fun(self: Player, vocationId: number)
|
|
|
|
|
---@field getSex fun(self: Player): number
|
|
|
|
|
---@field setSex fun(self: Player, sexId: number)
|
2024-12-02 09:39:42 +01:00
|
|
|
---@field getTown fun(self: Player): number
|
2024-05-23 01:39:46 +02:00
|
|
|
---@field setTown fun(self: Player, townId: number)
|
|
|
|
|
---@field getGuild fun(self: Player): Guild
|
|
|
|
|
---@field setGuild fun(self: Player, guild: Guild)
|
|
|
|
|
---@field getGuildLevel fun(self: Player): number
|
|
|
|
|
---@field setGuildLevel fun(self: Player, level: number)
|
|
|
|
|
---@field getGuildNick fun(self: Player): string
|
|
|
|
|
---@field setGuildNick fun(self: Player, nick: string)
|
|
|
|
|
---@field getGroup fun(self: Player): Group
|
|
|
|
|
---@field setGroup fun(self: Player, groupId: number)
|
|
|
|
|
---@field getStamina fun(self: Player): number
|
|
|
|
|
---@field setStamina fun(self: Player, stamina: number)
|
|
|
|
|
---@field getSoul fun(self: Player): number
|
|
|
|
|
---@field addSoul fun(self: Player, amount: number)
|
|
|
|
|
---@field getMaxSoul fun(self: Player): number
|
|
|
|
|
---@field getBankBalance fun(self: Player): number
|
|
|
|
|
---@field setBankBalance fun(self: Player, balance: number)
|
|
|
|
|
---@field addItem fun(self: Player, itemId: number, count?: number): Item
|
|
|
|
|
---@field addItemEx fun(self: Player, item: Item, copyItem?: boolean): boolean
|
2024-12-02 10:02:25 +01:00
|
|
|
---@field removeItem fun(self: Player, itemId: number, count?: number, subtype?: number): boolean
|
2024-05-23 01:39:46 +02:00
|
|
|
---@field sendSupplyUsed fun(self: Player, item: Item)
|
|
|
|
|
---@field getMoney fun(self: Player): number
|
|
|
|
|
---@field addMoney fun(self: Player, amount: number)
|
|
|
|
|
---@field removeMoney fun(self: Player, amount: number)
|
|
|
|
|
---@field showTextDialog fun(self: Player, itemId: number, text: string)
|
|
|
|
|
---@field sendTextMessage fun(self: Player, messageType: number, message: string, position?: Position|number, primaryValue?: number, primaryColor?: number, secondaryValue?: number, secondaryColor?: number)
|
|
|
|
|
---@field sendChannelMessage fun(self: Player, author: string, message: string, type: number, channelId: number)
|
|
|
|
|
---@field sendPrivateMessage fun(self: Player, receiver: Player, message: string)
|
|
|
|
|
---@field channelSay fun(self: Player, channelId: number, message: string)
|
|
|
|
|
---@field openChannel fun(self: Player, channelId: number)
|
|
|
|
|
---@field getSlotItem fun(self: Player, slot: number): Item
|
|
|
|
|
---@field getParty fun(self: Player): Party
|
|
|
|
|
---@field addOutfit fun(self: Player, outfitId: number)
|
|
|
|
|
---@field addOutfitAddon fun(self: Player, outfitId: number, addonId: number)
|
|
|
|
|
---@field removeOutfit fun(self: Player, outfitId: number)
|
|
|
|
|
---@field removeOutfitAddon fun(self: Player, outfitId: number, addonId: number)
|
|
|
|
|
---@field hasOutfit fun(self: Player, outfitId: number, addon?: number): boolean
|
|
|
|
|
---@field canWearOutfit fun(self: Player, outfitId: number, addonId?: number): boolean
|
|
|
|
|
---@field sendOutfitWindow fun(self: Player)
|
|
|
|
|
---@field sendEditPodium fun(self: Player, item: Item)
|
|
|
|
|
---@field addMount fun(self: Player, mountId: number)
|
|
|
|
|
---@field removeMount fun(self: Player, mountId: number)
|
|
|
|
|
---@field hasMount fun(self: Player, mountId: number): boolean
|
|
|
|
|
---@field toggleMount fun(self: Player, active: boolean)
|
|
|
|
|
---@field getPremiumEndsAt fun(self: Player): number
|
|
|
|
|
---@field setPremiumEndsAt fun(self: Player, timestamp: number)
|
|
|
|
|
---@field hasBlessing fun(self: Player, blessingId: number): boolean
|
|
|
|
|
---@field addBlessing fun(self: Player, blessingId: number)
|
|
|
|
|
---@field removeBlessing fun(self: Player, blessingId: number)
|
2024-12-02 09:39:42 +01:00
|
|
|
---@field canLearnSpell fun(self: Player, spellId: number): boolean
|
|
|
|
|
---@field learnSpell fun(self: Player, spellId: number)
|
|
|
|
|
---@field forgetSpell fun(self: Player, spellId: number)
|
|
|
|
|
---@field hasLearnedSpell fun(self: Player, spellId: number): boolean
|
2024-05-23 01:39:46 +02:00
|
|
|
---@field sendTutorial fun(self: Player, tutorialId: number)
|
|
|
|
|
---@field addMapMark fun(self: Player, position: Position, type: number, description?: string)
|
|
|
|
|
---@field save fun(self: Player)
|
|
|
|
|
---@field popupFYI fun(self: Player, message: string)
|
|
|
|
|
---@field isPzLocked fun(self: Player): boolean
|
|
|
|
|
---@field getClient fun(self: Player): table
|
|
|
|
|
---@field getHouse fun(self: Player): House
|
|
|
|
|
---@field sendHouseWindow fun(self: Player, houseId: number)
|
|
|
|
|
---@field setEditHouse fun(self: Player, houseId: number, editMode: boolean)
|
|
|
|
|
---@field setGhostMode fun(self: Player, active: boolean)
|
|
|
|
|
---@field getContainerId fun(self: Player, index: number): number
|
|
|
|
|
---@field getContainerById fun(self: Player, containerId: number): Container
|
|
|
|
|
---@field getContainerIndex fun(self: Player, containerId: number): number
|
|
|
|
|
---@field getInstantSpells fun(self: Player): table
|
|
|
|
|
---@field canCast fun(self: Player, spellId: number): boolean
|
|
|
|
|
---@field hasChaseMode fun(self: Player): boolean
|
|
|
|
|
---@field hasSecureMode fun(self: Player): boolean
|
|
|
|
|
---@field getFightMode fun(self: Player): number
|
|
|
|
|
---@field getStoreInbox fun(self: Player): Container
|
|
|
|
|
---@field isNearDepotBox fun(self: Player): boolean
|
|
|
|
|
---@field getIdleTime fun(self: Player): number
|
|
|
|
|
---@field resetIdleTime fun(self: Player)
|
|
|
|
|
---@field sendCreatureSquare fun(self: Player, creature: Creature, color: number)
|
|
|
|
|
---@field getClientExpDisplay fun(self: Player): number
|
|
|
|
|
---@field setClientExpDisplay fun(self: Player, display: number)
|
|
|
|
|
---@field getClientStaminaBonusDisplay fun(self: Player): number
|
|
|
|
|
---@field setClientStaminaBonusDisplay fun(self: Player, display: number)
|
|
|
|
|
---@field getClientLowLevelBonusDisplay fun(self: Player): number
|
|
|
|
|
---@field setClientLowLevelBonusDisplay fun(self: Player, display: number)
|
|
|
|
|
Player = {}
|
|
|
|
|
|
|
|
|
|
---@class Monster : Creature
|
|
|
|
|
---@field create fun(): Monster
|
|
|
|
|
---@field __eq fun(self: Monster, other: Monster): boolean
|
|
|
|
|
---@field isMonster fun(self: Monster): boolean
|
|
|
|
|
---@field getId fun(self: Monster): number
|
|
|
|
|
---@field getType fun(self: Monster): string
|
|
|
|
|
---@field rename fun(self: Monster, newName: string)
|
|
|
|
|
---@field getSpawnPosition fun(self: Monster): Position
|
|
|
|
|
---@field isInSpawnRange fun(self: Monster, position: Position): boolean
|
|
|
|
|
---@field isIdle fun(self: Monster): boolean
|
|
|
|
|
---@field setIdle fun(self: Monster, idle: boolean)
|
|
|
|
|
---@field isTarget fun(self: Monster, creature: Creature): boolean
|
|
|
|
|
---@field isOpponent fun(self: Monster, creature: Creature): boolean
|
|
|
|
|
---@field isFriend fun(self: Monster, creature: Creature): boolean
|
|
|
|
|
---@field addFriend fun(self: Monster, creature: Creature)
|
|
|
|
|
---@field removeFriend fun(self: Monster, creature: Creature)
|
|
|
|
|
---@field getFriendList fun(self: Monster): table
|
|
|
|
|
---@field getFriendCount fun(self: Monster): number
|
|
|
|
|
---@field addTarget fun(self: Monster, creature: Creature)
|
|
|
|
|
---@field removeTarget fun(self: Monster, creature: Creature)
|
|
|
|
|
---@field getTargetList fun(self: Monster): table
|
|
|
|
|
---@field getTargetCount fun(self: Monster): number
|
|
|
|
|
---@field selectTarget fun(self: Monster, creature: Creature): boolean
|
|
|
|
|
---@field searchTarget fun(self: Monster): boolean
|
|
|
|
|
---@field isWalkingToSpawn fun(self: Monster): boolean
|
|
|
|
|
---@field walkToSpawn fun(self: Monster)
|
|
|
|
|
---@field hasSpecialIcon fun(self: Monster): boolean
|
|
|
|
|
---@field setSpecialIcon fun(self: Monster, iconId: number)
|
|
|
|
|
---@field getSpecialIcon fun(self: Monster): number
|
|
|
|
|
---@field removeSpecialIcon fun(self: Monster)
|
|
|
|
|
Monster = {}
|
|
|
|
|
|
|
|
|
|
---@class Npc : Creature
|
|
|
|
|
---@field create fun(): Npc
|
|
|
|
|
---@field __eq fun(self: Npc, other: Npc): boolean
|
|
|
|
|
---@field isNpc fun(self: Npc): boolean
|
|
|
|
|
---@field setMasterPos fun(self: Npc, position: Position)
|
|
|
|
|
---@field getSpeechBubble fun(self: Npc): number
|
|
|
|
|
---@field setSpeechBubble fun(self: Npc, bubbleType: number)
|
|
|
|
|
---@field getSpectators fun(self: Npc, centerPos: Position, rangeX: number, rangeY: number, multifloor: boolean): table
|
|
|
|
|
Npc = {}
|
|
|
|
|
|
|
|
|
|
---@class Guild
|
|
|
|
|
---@field create fun(): Guild
|
|
|
|
|
---@field __eq fun(self: Guild, other: Guild): boolean
|
|
|
|
|
---@field getId fun(self: Guild): number
|
|
|
|
|
---@field getName fun(self: Guild): string
|
|
|
|
|
---@field getMembersOnline fun(self: Guild): number
|
|
|
|
|
---@field addRank fun(self: Guild, rankName: string, rankLevel: number)
|
|
|
|
|
---@field getRankById fun(self: Guild, rankId: number): string
|
|
|
|
|
---@field getRankByLevel fun(self: Guild, level: number): string
|
|
|
|
|
---@field getMotd fun(self: Guild): string
|
|
|
|
|
---@field setMotd fun(self: Guild, motd: string)
|
|
|
|
|
Guild = {}
|
|
|
|
|
|
|
|
|
|
---@class Group
|
|
|
|
|
---@field create fun(): Group
|
|
|
|
|
---@field __eq fun(self: Group, other: Group): boolean
|
|
|
|
|
---@field getId fun(self: Group): number
|
|
|
|
|
---@field getName fun(self: Group): string
|
|
|
|
|
---@field getFlags fun(self: Group): number
|
|
|
|
|
---@field getAccess fun(self: Group): number
|
|
|
|
|
---@field getMaxDepotItems fun(self: Group): number
|
|
|
|
|
---@field getMaxVipEntries fun(self: Group): number
|
|
|
|
|
---@field hasFlag fun(self: Group, flag: number): boolean
|
|
|
|
|
Group = {}
|
|
|
|
|
|
|
|
|
|
---@class Vocation
|
|
|
|
|
---@field create fun(): Vocation
|
|
|
|
|
---@field __eq fun(self: Vocation, other: Vocation): boolean
|
|
|
|
|
---@field getId fun(self: Vocation): number
|
|
|
|
|
---@field getClientId fun(self: Vocation): number
|
|
|
|
|
---@field getName fun(self: Vocation): string
|
|
|
|
|
---@field getDescription fun(self: Vocation): string
|
2024-06-06 20:25:33 -03:00
|
|
|
---@field getRequiredSkillTries fun(self: Vocation, skillType: number, skillLevel: number): number
|
|
|
|
|
---@field getRequiredManaSpent fun(self: Vocation, magicLevel: number): number
|
2024-05-23 01:39:46 +02:00
|
|
|
---@field getCapacityGain fun(self: Vocation): number
|
|
|
|
|
---@field getHealthGain fun(self: Vocation): number
|
|
|
|
|
---@field getHealthGainTicks fun(self: Vocation): number
|
|
|
|
|
---@field getHealthGainAmount fun(self: Vocation): number
|
|
|
|
|
---@field getManaGain fun(self: Vocation): number
|
|
|
|
|
---@field getManaGainTicks fun(self: Vocation): number
|
|
|
|
|
---@field getManaGainAmount fun(self: Vocation): number
|
|
|
|
|
---@field getMaxSoul fun(self: Vocation): number
|
|
|
|
|
---@field getSoulGainTicks fun(self: Vocation): number
|
|
|
|
|
---@field getAttackSpeed fun(self: Vocation): number
|
|
|
|
|
---@field getBaseSpeed fun(self: Vocation): number
|
|
|
|
|
---@field getDemotion fun(self: Vocation): Vocation
|
|
|
|
|
---@field getPromotion fun(self: Vocation): Vocation
|
|
|
|
|
---@field allowsPvp fun(self: Vocation): boolean
|
|
|
|
|
Vocation = {}
|
|
|
|
|
|
|
|
|
|
---@class Town
|
|
|
|
|
---@field create fun(): Town
|
|
|
|
|
---@field __eq fun(self: Town, other: Town): boolean
|
|
|
|
|
---@field getId fun(self: Town): number
|
|
|
|
|
---@field getName fun(self: Town): string
|
|
|
|
|
---@field getTemplePosition fun(self: Town): Position
|
|
|
|
|
Town = {}
|
|
|
|
|
|
|
|
|
|
---@class House
|
|
|
|
|
---@field create fun(): House
|
|
|
|
|
---@field __eq fun(self: House, other: House): boolean
|
|
|
|
|
---@field getId fun(self: House): number
|
|
|
|
|
---@field getName fun(self: House): string
|
|
|
|
|
---@field getTown fun(self: House): Town
|
|
|
|
|
---@field getExitPosition fun(self: House): Position
|
|
|
|
|
---@field getRent fun(self: House): number
|
|
|
|
|
---@field setRent fun(self: House, rent: number)
|
|
|
|
|
---@field getPaidUntil fun(self: House): number
|
|
|
|
|
---@field setPaidUntil fun(self: House, timestamp: number)
|
|
|
|
|
---@field getPayRentWarnings fun(self: House): number
|
|
|
|
|
---@field setPayRentWarnings fun(self: House, warnings: number)
|
|
|
|
|
---@field getOwnerName fun(self: House): string
|
|
|
|
|
---@field getOwnerGuid fun(self: House): number
|
|
|
|
|
---@field setOwnerGuid fun(self: House, guid: number)
|
|
|
|
|
---@field startTrade fun(self: House)
|
|
|
|
|
---@field getBeds fun(self: House): table
|
|
|
|
|
---@field getBedCount fun(self: House): number
|
|
|
|
|
---@field getDoors fun(self: House): table
|
|
|
|
|
---@field getDoorCount fun(self: House): number
|
|
|
|
|
---@field getDoorIdByPosition fun(self: House, position: Position): number
|
|
|
|
|
---@field getTiles fun(self: House): table
|
|
|
|
|
---@field getItems fun(self: House): table
|
|
|
|
|
---@field getTileCount fun(self: House): number
|
|
|
|
|
---@field canEditAccessList fun(self: House): boolean
|
|
|
|
|
---@field getAccessList fun(self: House, listId: number): string
|
|
|
|
|
---@field setAccessList fun(self: House, listId: number, list: string)
|
|
|
|
|
---@field kickPlayer fun(self: House, player: Player)
|
|
|
|
|
---@field save fun(self: House)
|
|
|
|
|
House = {}
|
|
|
|
|
|
|
|
|
|
---@class ItemType
|
|
|
|
|
---@field create fun(): ItemType
|
|
|
|
|
---@field __eq fun(self: ItemType, other: ItemType): boolean
|
|
|
|
|
---@field isCorpse fun(self: ItemType): boolean
|
|
|
|
|
---@field isDoor fun(self: ItemType): boolean
|
|
|
|
|
---@field isContainer fun(self: ItemType): boolean
|
|
|
|
|
---@field isFluidContainer fun(self: ItemType): boolean
|
|
|
|
|
---@field isMovable fun(self: ItemType): boolean
|
|
|
|
|
---@field isRune fun(self: ItemType): boolean
|
|
|
|
|
---@field isStackable fun(self: ItemType): boolean
|
|
|
|
|
---@field isReadable fun(self: ItemType): boolean
|
|
|
|
|
---@field isWritable fun(self: ItemType): boolean
|
|
|
|
|
---@field isBlocking fun(self: ItemType): boolean
|
|
|
|
|
---@field isGroundTile fun(self: ItemType): boolean
|
|
|
|
|
---@field isMagicField fun(self: ItemType): boolean
|
|
|
|
|
---@field isUseable fun(self: ItemType): boolean
|
|
|
|
|
---@field isPickupable fun(self: ItemType): boolean
|
|
|
|
|
---@field isRotatable fun(self: ItemType): boolean
|
|
|
|
|
---@field getType fun(self: ItemType): string
|
|
|
|
|
---@field getGroup fun(self: ItemType): string
|
|
|
|
|
---@field getId fun(self: ItemType): number
|
|
|
|
|
---@field getClientId fun(self: ItemType): number
|
|
|
|
|
---@field getName fun(self: ItemType): string
|
|
|
|
|
---@field getPluralName fun(self: ItemType): string
|
|
|
|
|
---@field getRotateTo fun(self: ItemType): number
|
|
|
|
|
---@field getArticle fun(self: ItemType): string
|
|
|
|
|
---@field getDescription fun(self: ItemType): string
|
|
|
|
|
---@field getSlotPosition fun(self: ItemType): number
|
|
|
|
|
---@field getCharges fun(self: ItemType): number
|
|
|
|
|
---@field getFluidSource fun(self: ItemType): number
|
|
|
|
|
---@field getCapacity fun(self: ItemType): number
|
|
|
|
|
---@field getWeight fun(self: ItemType): number
|
|
|
|
|
---@field getWorth fun(self: ItemType): number
|
|
|
|
|
---@field getHitChance fun(self: ItemType): number
|
|
|
|
|
---@field getShootRange fun(self: ItemType): number
|
|
|
|
|
---@field getAttack fun(self: ItemType): number
|
|
|
|
|
---@field getAttackSpeed fun(self: ItemType): number
|
|
|
|
|
---@field getDefense fun(self: ItemType): number
|
|
|
|
|
---@field getExtraDefense fun(self: ItemType): number
|
|
|
|
|
---@field getArmor fun(self: ItemType): number
|
|
|
|
|
---@field getWeaponType fun(self: ItemType): string
|
|
|
|
|
---@field getElementType fun(self: ItemType): string
|
|
|
|
|
---@field getElementDamage fun(self: ItemType): number
|
|
|
|
|
---@field getTransformEquipId fun(self: ItemType): number
|
|
|
|
|
---@field getTransformDeEquipId fun(self: ItemType): number
|
|
|
|
|
---@field getDestroyId fun(self: ItemType): number
|
|
|
|
|
---@field getDecayId fun(self: ItemType): number
|
|
|
|
|
---@field getRequiredLevel fun(self: ItemType): number
|
|
|
|
|
---@field getAmmoType fun(self: ItemType): string
|
|
|
|
|
---@field getCorpseType fun(self: ItemType): string
|
|
|
|
|
---@field getClassification fun(self: ItemType): string
|
|
|
|
|
---@field getAbilities fun(self: ItemType): table
|
|
|
|
|
---@field hasShowAttributes fun(self: ItemType): boolean
|
|
|
|
|
---@field hasShowCount fun(self: ItemType): boolean
|
|
|
|
|
---@field hasShowCharges fun(self: ItemType): boolean
|
|
|
|
|
---@field hasShowDuration fun(self: ItemType): boolean
|
|
|
|
|
---@field hasAllowDistRead fun(self: ItemType): boolean
|
|
|
|
|
---@field getWieldInfo fun(self: ItemType): string
|
|
|
|
|
---@field getDurationMin fun(self: ItemType): number
|
|
|
|
|
---@field getDurationMax fun(self: ItemType): number
|
|
|
|
|
---@field getLevelDoor fun(self: ItemType): number
|
|
|
|
|
---@field getRuneSpellName fun(self: ItemType): string
|
|
|
|
|
---@field getVocationString fun(self: ItemType): string
|
|
|
|
|
---@field getMinReqLevel fun(self: ItemType): number
|
|
|
|
|
---@field getMinReqMagicLevel fun(self: ItemType): number
|
|
|
|
|
---@field getMarketBuyStatistics fun(self: ItemType): table
|
|
|
|
|
---@field getMarketSellStatistics fun(self: ItemType): table
|
|
|
|
|
---@field hasSubType fun(self: ItemType): boolean
|
|
|
|
|
---@field isStoreItem fun(self: ItemType): boolean
|
|
|
|
|
ItemType = {}
|
|
|
|
|
|
|
|
|
|
---@class Combat
|
|
|
|
|
---@field create fun(): Combat
|
|
|
|
|
---@field __eq fun(self: Combat, other: Combat): boolean
|
|
|
|
|
---@field __gc fun(self: Combat)
|
|
|
|
|
---@field delete fun(self: Combat)
|
|
|
|
|
---@field setParameter fun(self: Combat, key: number, value: any)
|
|
|
|
|
---@field getParameter fun(self: Combat, key: number): any
|
|
|
|
|
---@field setFormula fun(self: Combat, formulaType: number, base: number, variation: number, multiplier: number)
|
|
|
|
|
---@field setArea fun(self: Combat, area: table)
|
|
|
|
|
---@field addCondition fun(self: Combat, condition: Condition)
|
|
|
|
|
---@field clearConditions fun(self: Combat)
|
|
|
|
|
---@field setCallback fun(self: Combat, callback: function)
|
|
|
|
|
---@field setOrigin fun(self: Combat, originType: number)
|
|
|
|
|
---@field execute fun(self: Combat, caster: Creature, target: Variant)
|
|
|
|
|
Combat = {}
|
|
|
|
|
|
|
|
|
|
---@class Condition
|
|
|
|
|
---@field create fun(): Condition
|
|
|
|
|
---@field __eq fun(self: Condition, other: Condition): boolean
|
|
|
|
|
---@field __gc fun(self: Condition)
|
|
|
|
|
---@field getId fun(self: Condition): number
|
|
|
|
|
---@field getSubId fun(self: Condition): number
|
|
|
|
|
---@field getType fun(self: Condition): number
|
|
|
|
|
---@field getIcons fun(self: Condition): number
|
|
|
|
|
---@field getEndTime fun(self: Condition): number
|
|
|
|
|
---@field clone fun(self: Condition): Condition
|
|
|
|
|
---@field getTicks fun(self: Condition): number
|
|
|
|
|
---@field setTicks fun(self: Condition, ticks: number)
|
|
|
|
|
---@field setParameter fun(self: Condition, key: number, value: any)
|
|
|
|
|
---@field getParameter fun(self: Condition, key: number): any
|
|
|
|
|
---@field setFormula fun(self: Condition, formulaType: number, base: number, variation: number, multiplier: number)
|
|
|
|
|
---@field setOutfit fun(self: Condition, outfit: Outfit)
|
|
|
|
|
---@field addDamage fun(self: Condition, amount: number, interval: number)
|
|
|
|
|
Condition = {}
|
|
|
|
|
|
|
|
|
|
---@class Outfit
|
2024-12-02 10:02:25 +01:00
|
|
|
---@field create fun(): Outfit
|
|
|
|
|
---@field lookType number
|
|
|
|
|
---@field lookHead number
|
|
|
|
|
---@field lookBody number
|
|
|
|
|
---@field lookLegs number
|
|
|
|
|
---@field lookFeet number
|
|
|
|
|
---@field lookAddons number
|
|
|
|
|
---@field lookMount number
|
|
|
|
|
---@field lookMountHead number
|
|
|
|
|
---@field lookMountBody number
|
|
|
|
|
---@field lookMountLegs number
|
|
|
|
|
---@field lookMountFeet number
|
|
|
|
|
---@field lookTypeEx number
|
2024-05-23 01:39:46 +02:00
|
|
|
Outfit = {}
|
|
|
|
|
|
|
|
|
|
---@class MonsterType
|
|
|
|
|
---@field create fun(): MonsterType
|
|
|
|
|
---@field __eq fun(self: MonsterType, other: MonsterType): boolean
|
|
|
|
|
---@field isAttackable fun(self: MonsterType): boolean
|
|
|
|
|
---@field isChallengeable fun(self: MonsterType): boolean
|
|
|
|
|
---@field isConvinceable fun(self: MonsterType): boolean
|
|
|
|
|
---@field isSummonable fun(self: MonsterType): boolean
|
|
|
|
|
---@field isIgnoringSpawnBlock fun(self: MonsterType): boolean
|
|
|
|
|
---@field isIllusionable fun(self: MonsterType): boolean
|
|
|
|
|
---@field isHostile fun(self: MonsterType): boolean
|
|
|
|
|
---@field isPushable fun(self: MonsterType): boolean
|
|
|
|
|
---@field isHealthHidden fun(self: MonsterType): boolean
|
|
|
|
|
---@field isBoss fun(self: MonsterType): boolean
|
|
|
|
|
---@field canPushItems fun(self: MonsterType): boolean
|
|
|
|
|
---@field canPushCreatures fun(self: MonsterType): boolean
|
|
|
|
|
---@field canWalkOnEnergy fun(self: MonsterType): boolean
|
|
|
|
|
---@field canWalkOnFire fun(self: MonsterType): boolean
|
|
|
|
|
---@field canWalkOnPoison fun(self: MonsterType): boolean
|
|
|
|
|
---@field name fun(self: MonsterType): string
|
|
|
|
|
---@field nameDescription fun(self: MonsterType): string
|
|
|
|
|
---@field health fun(self: MonsterType): number
|
|
|
|
|
---@field maxHealth fun(self: MonsterType): number
|
|
|
|
|
---@field runHealth fun(self: MonsterType): number
|
|
|
|
|
---@field experience fun(self: MonsterType): number
|
|
|
|
|
---@field skull fun(self: MonsterType): number
|
|
|
|
|
---@field combatImmunities fun(self: MonsterType): number
|
|
|
|
|
---@field conditionImmunities fun(self: MonsterType): number
|
|
|
|
|
---@field getAttackList fun(self: MonsterType): table
|
|
|
|
|
---@field addAttack fun(self: MonsterType, attack: table)
|
|
|
|
|
---@field getDefenseList fun(self: MonsterType): table
|
|
|
|
|
---@field addDefense fun(self: MonsterType, defense: table)
|
|
|
|
|
---@field getElementList fun(self: MonsterType): table
|
|
|
|
|
---@field addElement fun(self: MonsterType, element: table)
|
|
|
|
|
---@field getVoices fun(self: MonsterType): table
|
|
|
|
|
---@field addVoice fun(self: MonsterType, voice: table)
|
|
|
|
|
---@field getLoot fun(self: MonsterType): table
|
|
|
|
|
---@field addLoot fun(self: MonsterType, loot: table)
|
|
|
|
|
---@field getCreatureEvents fun(self: MonsterType): table
|
|
|
|
|
---@field registerEvent fun(self: MonsterType, event: string)
|
|
|
|
|
---@field eventType fun(self: MonsterType): string
|
|
|
|
|
---@field onThink fun(self: MonsterType, callback: function)
|
|
|
|
|
---@field onAppear fun(self: MonsterType, callback: function)
|
|
|
|
|
---@field onDisappear fun(self: MonsterType, callback: function)
|
|
|
|
|
---@field onMove fun(self: MonsterType, callback: function)
|
|
|
|
|
---@field onSay fun(self: MonsterType, callback: function)
|
|
|
|
|
---@field getSummonList fun(self: MonsterType): table
|
|
|
|
|
---@field addSummon fun(self: MonsterType, summon: table)
|
|
|
|
|
---@field maxSummons fun(self: MonsterType): number
|
|
|
|
|
---@field armor fun(self: MonsterType): number
|
|
|
|
|
---@field defense fun(self: MonsterType): number
|
|
|
|
|
---@field outfit fun(self: MonsterType): Outfit
|
|
|
|
|
---@field race fun(self: MonsterType): string
|
|
|
|
|
---@field corpseId fun(self: MonsterType): number
|
|
|
|
|
---@field manaCost fun(self: MonsterType): number
|
|
|
|
|
---@field baseSpeed fun(self: MonsterType): number
|
|
|
|
|
---@field light fun(self: MonsterType): table
|
|
|
|
|
---@field staticAttackChance fun(self: MonsterType): number
|
|
|
|
|
---@field targetDistance fun(self: MonsterType): number
|
|
|
|
|
---@field yellChance fun(self: MonsterType): number
|
|
|
|
|
---@field yellSpeedTicks fun(self: MonsterType): number
|
|
|
|
|
---@field changeTargetChance fun(self: MonsterType): number
|
|
|
|
|
---@field changeTargetSpeed fun(self: MonsterType): number
|
|
|
|
|
---@field bestiaryInfo fun(self: MonsterType): string
|
|
|
|
|
MonsterType = {}
|
|
|
|
|
|
|
|
|
|
---@class Loot
|
|
|
|
|
---@field create fun(): Loot
|
|
|
|
|
---@field __gc fun(self: Loot)
|
|
|
|
|
---@field delete fun(self: Loot)
|
|
|
|
|
---@field setId fun(self: Loot, id: number)
|
|
|
|
|
---@field setMaxCount fun(self: Loot, count: number)
|
|
|
|
|
---@field setSubType fun(self: Loot, subtype: number)
|
|
|
|
|
---@field setChance fun(self: Loot, chance: number)
|
|
|
|
|
---@field setActionId fun(self: Loot, actionId: number)
|
|
|
|
|
---@field setDescription fun(self: Loot, description: string)
|
|
|
|
|
---@field addChildLoot fun(self: Loot, childLoot: Loot)
|
|
|
|
|
Loot = {}
|
|
|
|
|
|
|
|
|
|
---@class MonsterSpell
|
|
|
|
|
---@field create fun(): MonsterSpell
|
|
|
|
|
---@field __gc fun(self: MonsterSpell)
|
|
|
|
|
---@field delete fun(self: MonsterSpell)
|
|
|
|
|
---@field setType fun(self: MonsterSpell, type: string)
|
|
|
|
|
---@field setScriptName fun(self: MonsterSpell, scriptName: string)
|
|
|
|
|
---@field setChance fun(self: MonsterSpell, chance: number)
|
|
|
|
|
---@field setInterval fun(self: MonsterSpell, interval: number)
|
|
|
|
|
---@field setRange fun(self: MonsterSpell, range: number)
|
|
|
|
|
---@field setCombatValue fun(self: MonsterSpell, value: number)
|
|
|
|
|
---@field setCombatType fun(self: MonsterSpell, type: string)
|
|
|
|
|
---@field setAttackValue fun(self: MonsterSpell, value: number)
|
|
|
|
|
---@field setNeedTarget fun(self: MonsterSpell, needTarget: boolean)
|
|
|
|
|
---@field setNeedDirection fun(self: MonsterSpell, needDirection: boolean)
|
|
|
|
|
---@field setCombatLength fun(self: MonsterSpell, length: number)
|
|
|
|
|
---@field setCombatSpread fun(self: MonsterSpell, spread: number)
|
|
|
|
|
---@field setCombatRadius fun(self: MonsterSpell, radius: number)
|
|
|
|
|
---@field setCombatRing fun(self: MonsterSpell, ring: number)
|
|
|
|
|
---@field setConditionType fun(self: MonsterSpell, type: string)
|
|
|
|
|
---@field setConditionDamage fun(self: MonsterSpell, damage: number)
|
|
|
|
|
---@field setConditionSpeedChange fun(self: MonsterSpell, speedChange: number)
|
|
|
|
|
---@field setConditionDuration fun(self: MonsterSpell, duration: number)
|
|
|
|
|
---@field setConditionDrunkenness fun(self: MonsterSpell, drunkenness: number)
|
|
|
|
|
---@field setConditionTickInterval fun(self: MonsterSpell, tickInterval: number)
|
|
|
|
|
---@field setCombatShootEffect fun(self: MonsterSpell, effect: string)
|
|
|
|
|
---@field setCombatEffect fun(self: MonsterSpell, effect: string)
|
|
|
|
|
---@field setOutfit fun(self: MonsterSpell, outfit: Outfit)
|
|
|
|
|
MonsterSpell = {}
|
|
|
|
|
|
|
|
|
|
---@class Party
|
|
|
|
|
---@field create fun(): Party
|
|
|
|
|
---@field __eq fun(self: Party, other: Party): boolean
|
|
|
|
|
---@field disband fun(self: Party)
|
|
|
|
|
---@field getLeader fun(self: Party): Player
|
|
|
|
|
---@field setLeader fun(self: Party, leader: Player)
|
|
|
|
|
---@field getMembers fun(self: Party): table
|
|
|
|
|
---@field getMemberCount fun(self: Party): number
|
|
|
|
|
---@field getInvitees fun(self: Party): table
|
|
|
|
|
---@field getInviteeCount fun(self: Party): number
|
|
|
|
|
---@field addInvite fun(self: Party, player: Player)
|
|
|
|
|
---@field removeInvite fun(self: Party, player: Player)
|
|
|
|
|
---@field addMember fun(self: Party, player: Player)
|
|
|
|
|
---@field removeMember fun(self: Party, player: Player)
|
|
|
|
|
---@field isSharedExperienceActive fun(self: Party): boolean
|
|
|
|
|
---@field isSharedExperienceEnabled fun(self: Party): boolean
|
|
|
|
|
---@field isMemberSharingExp fun(self: Party, player: Player): boolean
|
|
|
|
|
---@field shareExperience fun(self: Party, experience: number)
|
|
|
|
|
---@field setSharedExperience fun(self: Party, active: boolean)
|
|
|
|
|
Party = {}
|
|
|
|
|
|
|
|
|
|
-- MARK: Spell
|
|
|
|
|
---@class Spell
|
|
|
|
|
---@field onCastSpell fun(player: Player, variant: Variant, isHotkey: boolean|nil): boolean
|
|
|
|
|
---@field register fun(self: Spell): boolean
|
|
|
|
|
---@field name fun(self: Spell, name: string|nil): string|boolean
|
|
|
|
|
---@field id fun(self: Spell, id: integer|nil): integer|boolean
|
|
|
|
|
---@field cooldown fun(self: Spell, cooldown: integer|nil): integer|boolean
|
|
|
|
|
---@field group fun(self: Spell, primaryGroup?: IntOrStr, secondaryGroup?: IntOrStr): integer, integer|boolean
|
|
|
|
|
---@field groupCooldown fun(self:Spell, primaryGroupCd?:integer, secondaryGroupCd?:integer): integer, integer|boolean
|
|
|
|
|
---@field level fun(self:Spell, lvl?:integer): integer|boolean
|
|
|
|
|
---@field magicLevel fun(self:Spell, lvl?:integer):integer | boolean
|
|
|
|
|
---@field mana fun(self:Spell, mana?:integer):integer | boolean
|
|
|
|
|
---@field manaPercent fun(self:Spell, percent?:integer):integer | boolean
|
|
|
|
|
---@field soul fun(self:Spell, soul?:integer):integer | boolean
|
|
|
|
|
---@field range fun(self:Spell, range?:integer):integer | boolean
|
|
|
|
|
---@field isPremium fun(self:Spell, bool?:boolean):boolean
|
|
|
|
|
---@field isEnabled fun(self:Spell, bool?:boolean):boolean
|
|
|
|
|
---@field needTarget fun(self:Spell, bool?:boolean):boolean
|
|
|
|
|
---@field needWeapon fun(self:Spell, bool?:boolean):boolean
|
|
|
|
|
---@field needLearn fun(self:Spell, bool?:boolean):boolean
|
|
|
|
|
---@field isSelfTarget fun(self:Spell, bool?:boolean):boolean
|
|
|
|
|
---@field isBlocking fun(self:Spell, blockingSolid?:boolean, blockingCreature?:boolean):boolean, boolean | boolean
|
|
|
|
|
---@field isAggressive fun(self:Spell, bool?:boolean):boolean
|
|
|
|
|
---@field isPzLock fun(self:Spell, bool?:boolean):boolean
|
|
|
|
|
---@field vocation fun(self:Spell, vocation?:string, ...?):string[] | boolean
|
|
|
|
|
-- Only for InstantSpells
|
|
|
|
|
---@field words fun(self:Spell, words?:string, separator?:string):string, string | boolean -- Only for InstantSpells
|
|
|
|
|
---@field needDirection fun(self:Spell, bool?:boolean):boolean -- Only for InstantSpells
|
|
|
|
|
---@field hasParams fun(self:Spell, bool?:boolean):boolean -- Only for InstantSpells
|
|
|
|
|
---@field hasPlayerNameParam fun(self:Spell, bool?:boolean):boolean -- Only for InstantSpells
|
|
|
|
|
---@field needCasterTargetOrDirection fun(self:Spell, bool?:boolean):boolean -- Only for InstantSpells
|
|
|
|
|
---@field isBlockingWalls fun(self:Spell, bool1?:boolean):boolean -- Only for InstantSpells
|
|
|
|
|
-- Only for RuneSpells
|
|
|
|
|
---@field runeLevel fun(self:Spell, level?:integer):integer | boolean -- Only for RuneSpells
|
|
|
|
|
---@field runeMagicLevel fun(self:Spell, magLevel?:integer):integer | boolean -- Only for RuneSpells
|
|
|
|
|
---@field runeId fun(self:Spell, id?:integer):integer | boolean -- Only for RuneSpells
|
|
|
|
|
---@field charges fun(self:Spell, charges?:integer):integer | boolean -- Only for RuneSpells
|
|
|
|
|
---@field allowFarUse fun(self:Spell, bool?:boolean):boolean -- Only for RuneSpells
|
|
|
|
|
---@field blockWalls fun(self:Spell, bool1?:boolean):boolean -- Only for RuneSpells
|
|
|
|
|
---@field checkFloor fun(self:Spell, bool?:boolean):boolean -- Only for RuneSpells
|
|
|
|
|
-- From Player.getInstantSpells
|
|
|
|
|
---@field mlevel integer -- Only from Player.getInstantSpells
|
|
|
|
|
---@field manapercent integer -- Only from Player.getInstantSpells
|
|
|
|
|
---@field params boolean -- Only from Player.getInstantSpells
|
|
|
|
|
---@operator call(string | integer):Spell
|
|
|
|
|
Spell = {}
|
|
|
|
|
|
|
|
|
|
-- MARK: Action
|
|
|
|
|
---@class Action
|
|
|
|
|
---@field onUse fun(player:Player, item:Item, fromPos:Position, target?:(Creature|Item), toPos:Position, isHotkey:boolean):boolean
|
|
|
|
|
---@field register fun(self:Action):boolean
|
|
|
|
|
---@field id fun(self:Action, itemId:integer, ...?):boolean
|
|
|
|
|
---@field aid fun(self:Action, actionId:integer, ...?):boolean
|
|
|
|
|
---@field uid fun(self:Action, uniqueId:integer, ...?):boolean
|
|
|
|
|
---@field allowFarUse fun(self:Action, allowFarUse:boolean):boolean
|
|
|
|
|
---@field blockWalls fun(self:Action, blockWalls:boolean):boolean
|
|
|
|
|
---@field checkFloor fun(self:Action, checkFloor:boolean):boolean
|
|
|
|
|
---@operator call():Action
|
|
|
|
|
Action = {}
|
|
|
|
|
|
|
|
|
|
-- MARK: TalkAction
|
|
|
|
|
---@class TalkAction
|
|
|
|
|
---@field onSay fun(player:Player, words:string, param:string, type:integer):boolean
|
|
|
|
|
---@field register fun(self:TalkAction):boolean
|
|
|
|
|
---@field words fun(self:TalkAction):string
|
|
|
|
|
---@field separator fun(self:TalkAction, separator?:string):string | boolean
|
|
|
|
|
---@field access fun(self:TalkAction, access?:boolean):boolean
|
|
|
|
|
---@field accountType fun(self:TalkAction, accountType?:integer):integer | boolean
|
|
|
|
|
---@overload fun(...:string):TalkAction
|
|
|
|
|
TalkAction = {}
|
|
|
|
|
|
|
|
|
|
-- MARK: CreatureEvemt
|
|
|
|
|
---@class CreatureEvent
|
|
|
|
|
---@field type fun(self:CreatureEvent, callback:string):boolean
|
|
|
|
|
---@field register fun(self:CreatureEvent):boolean
|
|
|
|
|
---@field onLogin fun(player:Player):boolean
|
|
|
|
|
---@field onLogout fun(player:Player):boolean
|
2024-11-17 13:53:22 -03:00
|
|
|
---@field onReconnect fun(player:Player)
|
2024-05-23 01:39:46 +02:00
|
|
|
---@field onThink fun(creature:Creature, interval:integer):boolean
|
|
|
|
|
---@field onPrepareDeath fun(creature:Creature, killer:Creature):boolean
|
|
|
|
|
---@field onDeath fun(creature:Creature, corpse:Item, killer:Creature, mostDamageKiller:Creature, lastHitUnjustified:boolean, mostDamageUnjustified:boolean):boolean
|
|
|
|
|
---@field onAdvance fun(player:Player, skill:integer, oldLevel:integer, newLevel:integer):boolean
|
|
|
|
|
---@field onKill fun(player:Player, target:Creature):boolean
|
|
|
|
|
---@field onTextEdit fun(player:Player, item:Item, text:string, windowTextId:integer):boolean
|
|
|
|
|
---@field onHealthChange fun(creature:Creature, attacker:Creature, primaryDamage:integer, primaryType:integer, secondaryDamage:integer, secondaryType:integer, origin:integer):integer, integer, integer, integer
|
|
|
|
|
---@field onManaChange fun(creature:Creature, attacker:Creature, primaryDamage:integer, primaryType:integer, secondaryDamage:integer, secondaryType:integer, origin:integer):integer, integer, integer, integer
|
|
|
|
|
---@field onModalWindow fun(player:Player, modalWindowId:integer, buttonId:integer, choiceId:integer):nil
|
|
|
|
|
---@field onExtendedOpcode fun(player:Player, opcode:integer, buffer:string):boolean
|
|
|
|
|
---@operator call(string):CreatureEvent
|
|
|
|
|
CreatureEvent = {}
|
|
|
|
|
|
|
|
|
|
-- MARK: MoveEvent
|
|
|
|
|
---@class MoveEvent
|
|
|
|
|
---@field type fun(self:MoveEvent, callback:string):boolean
|
|
|
|
|
---@field register fun(self:MoveEvent):boolean
|
|
|
|
|
---@field slot fun(self:MoveEvent, slot:string):boolean
|
|
|
|
|
---@field level fun(self:MoveEvent, level:integer):boolean
|
|
|
|
|
---@field magicLevel fun(self:MoveEvent, magicLevel:integer):boolean
|
|
|
|
|
---@field premium fun(self:MoveEvent, premium:boolean):boolean
|
|
|
|
|
---@field vocation fun(self:MoveEvent, vocation:string, showInDescription?:boolean, lastVocation?:boolean):boolean
|
|
|
|
|
---@field tileItem fun(self:MoveEvent, tileItem:boolean):boolean
|
|
|
|
|
---@field id fun(self:MoveEvent, itemId:integer, ...?):boolean
|
|
|
|
|
---@field aid fun(self:MoveEvent, actionId:integer, ...?):boolean
|
|
|
|
|
---@field uid fun(self:MoveEvent, uniqueId:integer, ...?):boolean
|
|
|
|
|
---@field position fun(self:MoveEvent, position:Position, ...?):boolean
|
|
|
|
|
---@field onStepIn fun(creature:Creature, item:Item, position:Position, fromPosition:Position):boolean
|
|
|
|
|
---@field onStepOut fun(creature:Creature, item:Item, position:Position, fromPosition:Position):boolean
|
|
|
|
|
---@field onEquip fun(player:Player, item:Item, slot:integer, isCheck:boolean):boolean
|
|
|
|
|
---@field onDeEquip fun(player:Player, item:Item, slot:integer, isCheck:boolean):boolean
|
|
|
|
|
---@field onAddItem fun(moveItem:Item, tileItem:Item, pos:Position):boolean
|
|
|
|
|
---@operator call():MoveEvent
|
|
|
|
|
MoveEvent = {}
|
|
|
|
|
|
|
|
|
|
-- MARK: GlobalEvent
|
|
|
|
|
---@class GlobalEvent
|
|
|
|
|
---@field type fun(self:GlobalEvent, callback:string):boolean
|
|
|
|
|
---@field register fun(self:GlobalEvent):boolean
|
|
|
|
|
---```diff
|
|
|
|
|
---+ Establece la hora con HH:MM:SS, por ejemplo:00:00:00
|
|
|
|
|
---
|
|
|
|
|
---@field time fun(self:GlobalEvent, time:string):boolean -- "hh:mm:ss"
|
|
|
|
|
---@field interval fun(self:GlobalEvent, interval:integer):boolean
|
|
|
|
|
---@field onStartup fun():boolean
|
|
|
|
|
---@field onShutdown fun():boolean
|
|
|
|
|
---@field onRecord fun(current:integer, old:integer):boolean
|
|
|
|
|
---@field onThink fun(interval:integer):boolean
|
|
|
|
|
---@field onTime fun(interval:integer):boolean
|
|
|
|
|
---@operator call(string):GlobalEvent
|
|
|
|
|
GlobalEvent = {}
|
|
|
|
|
|
|
|
|
|
-- MARK: Weapon
|
|
|
|
|
---@class Weapon
|
|
|
|
|
---@field action fun(self:Weapon, callback:string):boolean
|
|
|
|
|
---@field register fun(self:Weapon):boolean
|
|
|
|
|
---@field onUseWeapon fun(player:Player, variant:Variant):boolean
|
|
|
|
|
---@field wieldedUnproperly fun(self:Weapon, bool:boolean):boolean
|
|
|
|
|
---@field level fun(self:Weapon, lvl:integer):boolean
|
|
|
|
|
---@field magicLevel fun(self:Weapon, lvl:integer):boolean
|
|
|
|
|
---@field mana fun(self:Weapon, mana:integer):boolean
|
|
|
|
|
---@field manaPercent fun(self:Weapon, percent:integer):boolean
|
|
|
|
|
---@field health fun(self:Weapon, health:integer):boolean
|
|
|
|
|
---@field healthPercent fun(self:Weapon, percent:integer):boolean
|
|
|
|
|
---@field soul fun(self:Weapon, soul:integer):boolean
|
|
|
|
|
---@field breakChance fun(self:Weapon, percent:integer):boolean
|
|
|
|
|
---@field damage fun(self:Weapon, min?:integer, max?:integer):boolean
|
|
|
|
|
---@field element fun(self:Weapon, combatType:IntOrStr):boolean
|
|
|
|
|
---@field isPremium fun(self:Weapon, bool?:boolean):boolean
|
|
|
|
|
---@field vocation fun(self:Weapon, vocName:string, showInDescription?:boolean, lastVoc?:boolean):boolean
|
|
|
|
|
---@field id fun(self:Weapon, id:integer):boolean
|
|
|
|
|
---@field attack fun(self:Weapon, atk:integer):boolean
|
|
|
|
|
---@field defense fun(self:Weapon, defense:integer, extraDefense?:integer):boolean
|
|
|
|
|
---@field range fun(self:Weapon, range:integer):boolean
|
|
|
|
|
---@field charges fun(self:Weapon, charges:integer, showCharges?:boolean):boolean
|
|
|
|
|
---@field duration fun(self:Weapon, duration:integer, showDuration?:boolean):boolean
|
|
|
|
|
---@field decayTo fun(self:Weapon, itemid?:integer):boolean
|
|
|
|
|
---@field transformEquipTo fun(self:Weapon, itemid:integer):boolean
|
|
|
|
|
---@field transformDeEquipTo fun(self:Weapon, itemid:integer):boolean
|
|
|
|
|
---@field shootType fun(self:Weapon, type:integer):boolean
|
|
|
|
|
---@field slotType fun(self:Weapon, slot:string):boolean
|
|
|
|
|
---@field ammoType fun(self:Weapon, type:string):boolean
|
|
|
|
|
---@field hitChance fun(self:Weapon, chance:integer):boolean
|
|
|
|
|
---@field maxHitChance fun(self:Weapon, max:integer):boolean
|
|
|
|
|
---@field extraElement fun(self:Weapon, atk:integer, combatType:IntOrStr):boolean
|
|
|
|
|
---@operator call(integer):Weapon
|
|
|
|
|
Weapon = {}
|
|
|
|
|
|
|
|
|
|
---@class Event
|
|
|
|
|
---@field register fun(self:Event, triggerIndex?:integer):boolean
|
|
|
|
|
---@field onChangeOutfit fun(creature:Creature, outfit: Outfit_t):boolean
|
|
|
|
|
---@field onAreaCombat fun(creature:Creature, tile:Tile, aggresive:boolean): integer
|
|
|
|
|
---@field onTargetCombat fun(creature:Creature, target:Creature): integer
|
|
|
|
|
---@field onHear fun(creature:Creature, speaker:Creature, words:string, type:integer):nil
|
|
|
|
|
---@field onChangeZone fun(creature:Creature, fromZone:integer, toZone:integer):nil
|
|
|
|
|
---@field onUpdateStorage fun(creature:Creature, key:integer, value?:integer, oldValue?:integer, isSpawn?:boolean):nil
|
|
|
|
|
---@field onJoin fun(party:Party, player:Player):boolean
|
|
|
|
|
---@field onLeave fun(party:Party, player:Player):boolean
|
|
|
|
|
---@field onDisband fun(party:Party):boolean
|
|
|
|
|
---@field onShareExperience fun(party:Party, exp:integer, rawExp:integer):integer
|
|
|
|
|
---@field onInvite fun(party:Party, player:Player):boolean
|
|
|
|
|
---@field onRevokeInvitation fun(party:Party, player:Player):boolean
|
|
|
|
|
---@field onPassLeadership fun(party:Party, player:Player):boolean
|
|
|
|
|
---@field onLook fun(player:Player, thing:Thing, position:Position, distance:integer, description?:string):string
|
|
|
|
|
---@field onLookInBattleList fun(player:Player, creature:Creature, distance:integer, description?:string):string
|
|
|
|
|
---@field onLookInTrade fun(player:Player, partner:Player, item:Item, distance:integer, description?:string):string
|
|
|
|
|
---@field onLookInShop fun(player:Player, itemType:ItemType, count:integer, description?:string):string
|
2025-11-28 21:38:42 -03:00
|
|
|
---@field onMoveItem fun(player:Player, item:Item, count:integer, fromPosition:Position, toPosition:Position, fromThing?:Thing, toThing?:Thing):integer
|
|
|
|
|
---@field onItemMoved fun(player:Player, item:Item, count:integer, fromPosition:Position, toPosition:Position, fromThing?:Thing, toThing?:Thing):nil
|
2024-05-23 01:39:46 +02:00
|
|
|
---@field onMoveCreature fun(player:Player, creature:Creature, fromPosition:Position, toPosition:Position):boolean
|
|
|
|
|
---@field onReportRuleViolation fun(player:Player, targetName:string, reportType:integer, reportReason:integer, comment:string, translation:string):nil
|
|
|
|
|
---@field onReportBug fun(player:Player, message:string, position:Position, category:any):boolean
|
|
|
|
|
---@field onTurn fun(player:Player, direction:integer):boolean
|
|
|
|
|
---@field onTradeRequest fun(player:Player, target:Player, item:Item):boolean
|
|
|
|
|
---@field onTradeAccept fun(player:Player, target:Player, item:Item, targetItem:Item):boolean
|
|
|
|
|
---@field onTradeCompleted fun(player:Player, target:Player, item:Item, targetItem:Item, isSuccess:boolean):nil
|
|
|
|
|
---@field onGainExperience fun(player:Player, source?:Creature, exp:integer, rawExp:integer, sendText:boolean):integer
|
|
|
|
|
---@field onLoseExperience fun(player:Player, exp:integer):integer
|
|
|
|
|
---@field onGainSkillTries fun(player:Player, skill:integer, tries:integer, artificial?:boolean):integer
|
|
|
|
|
---@field onNetworkMessage fun(player:Player, recvByte:integer, msg:NetworkMessage):nil
|
|
|
|
|
---@field onUpdateInventory fun(player:Player, item:Item, slot:integer, equip?:boolean):nil
|
|
|
|
|
---@field onRotateItem fun(player:Player, item:Item)
|
|
|
|
|
---@field onSpellCheck fun(player:Player, spell:Spell):boolean
|
|
|
|
|
---@field onDropLoot fun(monster:Monster, corpse?:Container):nil
|
|
|
|
|
---@field onSpawn fun(monster:Monster, position:Position, startup:boolean, artificial:boolean):nil
|
|
|
|
|
---@field onReload fun(player:Player, reloadType:integer):nil
|
|
|
|
|
---@operator call():Event
|
|
|
|
|
Event = {}
|
|
|
|
|
EventCallback = Event()
|
|
|
|
|
|
|
|
|
|
---@class hasEvent
|
|
|
|
|
---@field onChangeOutfit boolean
|
|
|
|
|
---@field onAreaCombat boolean
|
|
|
|
|
---@field onTargetCombat boolean
|
|
|
|
|
---@field onHear boolean
|
|
|
|
|
---@field onChangeZone boolean
|
|
|
|
|
---@field onUpdateStorage boolean
|
|
|
|
|
---@field onJoin boolean
|
|
|
|
|
---@field onLeave boolean
|
|
|
|
|
---@field onDisband boolean
|
|
|
|
|
---@field onShareExperience boolean
|
|
|
|
|
---@field onInvite boolean
|
|
|
|
|
---@field onRevokeInvitation boolean
|
|
|
|
|
---@field onPassLeadership boolean
|
|
|
|
|
---@field onLook boolean
|
|
|
|
|
---@field onLookInBattleList boolean
|
|
|
|
|
---@field onLookInTrade boolean
|
|
|
|
|
---@field onLookInShop boolean
|
|
|
|
|
---@field onMoveItem boolean
|
|
|
|
|
---@field onItemMoved boolean
|
|
|
|
|
---@field onMoveCreature boolean
|
|
|
|
|
---@field onReportRuleViolation boolean
|
|
|
|
|
---@field onReportBug boolean
|
|
|
|
|
---@field onTurn boolean
|
|
|
|
|
---@field onTradeRequest boolean
|
|
|
|
|
---@field onTradeAccept boolean
|
|
|
|
|
---@field onTradeCompleted boolean
|
|
|
|
|
---@field onGainExperience boolean
|
|
|
|
|
---@field onLoseExperience boolean
|
|
|
|
|
---@field onGainSkillTries boolean
|
|
|
|
|
---@field onNetworkMessage boolean
|
|
|
|
|
---@field onUpdateInventory boolean
|
|
|
|
|
---@field onRotateItem boolean
|
|
|
|
|
---@field onSpellCheck boolean
|
|
|
|
|
---@field onDropLoot boolean
|
|
|
|
|
---@field onSpawn boolean
|
|
|
|
|
---@field onReload boolean
|
|
|
|
|
hasEvent = {}
|
|
|
|
|
|
|
|
|
|
-- MARK: Thing
|
|
|
|
|
---@class Thing
|
|
|
|
|
---@field uid integer
|
|
|
|
|
---@field itemid integer
|
|
|
|
|
---@field actionid integer
|
|
|
|
|
---@field type integer
|
|
|
|
|
---@field getParent fun(self:Thing):Thing?
|
|
|
|
|
---@field getPosition fun(self:Thing):Position
|
|
|
|
|
---@field getDescription fun(self:Thing, distance:integer):string?
|
|
|
|
|
---@field isTile fun(self:Thing):boolean?
|
|
|
|
|
---@field isPosition fun(self:Thing):boolean?
|
|
|
|
|
---@field isContainer fun(self:Thing):boolean?
|
|
|
|
|
---@field isItem fun(self:Thing):boolean?
|
|
|
|
|
---@field isCreature fun(self:Thing):boolean?
|
|
|
|
|
---@field isTeleport fun(self:Thing):boolean?
|
|
|
|
|
---@field isMonster fun(self:Thing):boolean?
|
|
|
|
|
---@field isNpc fun(self:Thing):boolean?
|
|
|
|
|
---@field asTile fun(self:Thing):Tile?
|
|
|
|
|
---@field asPosition fun(self:Thing):Position?
|
|
|
|
|
---@field asContainer fun(self:Thing):Container?
|
|
|
|
|
---@field asItem fun(self:Thing):Item?
|
|
|
|
|
---@field asCreature fun(self:Thing):Creature?
|
|
|
|
|
---@field asPlayer fun(self:Thing):Player?
|
|
|
|
|
---@field asTeleport fun(self:Thing):Teleport?
|
|
|
|
|
---@field asMonster fun(self:Thing):Monster?
|
|
|
|
|
---@field asNpc fun(self:Thing):Npc?
|
|
|
|
|
Thing = {}
|
|
|
|
|
|
|
|
|
|
---@class XMLDocument
|
|
|
|
|
---@field create fun(): XMLDocument
|
|
|
|
|
---@field __gc fun(self: XMLDocument)
|
|
|
|
|
---@field delete fun(self: XMLDocument)
|
|
|
|
|
---@field child fun(self: XMLDocument, childName: string): XMLNode
|
|
|
|
|
XMLDocument = {}
|
|
|
|
|
|
|
|
|
|
---@class XMLNode
|
|
|
|
|
---@field create fun(): XMLNode
|
|
|
|
|
---@field __gc fun(self: XMLNode)
|
|
|
|
|
---@field delete fun(self: XMLNode)
|
|
|
|
|
---@field attribute fun(self: XMLNode, attributeName: string): string
|
|
|
|
|
---@field name fun(self: XMLNode): string
|
|
|
|
|
---@field firstChild fun(self: XMLNode): XMLNode
|
|
|
|
|
---@field nextSibling fun(self: XMLNode): XMLNode
|
|
|
|
|
XMLNode = {}
|
|
|
|
|
|
|
|
|
|
---@alias IntOrStr integer|string
|
|
|
|
|
|
|
|
|
|
-- Legacy Functions
|
|
|
|
|
|
|
|
|
|
--- Adds an item to a player's inventory.
|
|
|
|
|
function doPlayerAddItem(uid, itemid, count) end
|
|
|
|
|
---@alias doPlayerAddItem fun(uid: number, itemid: number, count?: number): number
|
|
|
|
|
|
|
|
|
|
--- Checks if a given UID is valid.
|
|
|
|
|
function isValidUID(uid) end
|
|
|
|
|
---@alias isValidUID fun(uid: number): boolean
|
|
|
|
|
|
|
|
|
|
--- Checks if a given UID is a depot.
|
|
|
|
|
function isDepot(uid) end
|
|
|
|
|
---@alias isDepot fun(uid: number): boolean
|
|
|
|
|
|
|
|
|
|
--- Checks if an item is movable.
|
|
|
|
|
function isMovable(uid) end
|
|
|
|
|
---@alias isMovable fun(uid: number): boolean
|
|
|
|
|
|
|
|
|
|
--- Adds an item to a container.
|
|
|
|
|
function doAddContainerItem(uid, itemid, count) end
|
|
|
|
|
---@alias doAddContainerItem fun(uid: number, itemid: number, count?: number)
|
|
|
|
|
|
|
|
|
|
--- Retrieves the depot ID associated with a given UID.
|
|
|
|
|
function getDepotId(uid) end
|
|
|
|
|
---@alias getDepotId fun(uid: number): number
|
|
|
|
|
|
|
|
|
|
--- Gets the uptime of the world/server.
|
|
|
|
|
function getWorldUpTime() end
|
|
|
|
|
---@alias getWorldUpTime fun(): number
|
|
|
|
|
|
|
|
|
|
--- Gets the name of a subtype.
|
|
|
|
|
function getSubTypeName(subType) end
|
|
|
|
|
---@alias getSubTypeName fun(subType: number): string
|
|
|
|
|
|
|
|
|
|
--- Creates a combat area.
|
|
|
|
|
function createCombatArea(area, extArea) end
|
|
|
|
|
---@alias createCombatArea fun(area: table, extArea?: table)
|
|
|
|
|
|
|
|
|
|
--- Executes area combat.
|
|
|
|
|
function doAreaCombat(cid, type, pos, area, min, max, effect, origin, blockArmor, blockShield, ignoreResistances) end
|
|
|
|
|
---@alias doAreaCombat fun(cid: number, type: number, pos: table, area: table, min: number, max: number, effect: number, origin?: number, blockArmor?: boolean, blockShield?: boolean, ignoreResistances?: boolean)
|
|
|
|
|
|
|
|
|
|
--- Executes target combat.
|
|
|
|
|
function doTargetCombat(cid, target, type, min, max, effect, origin, blockArmor, blockShield, ignoreResistances) end
|
|
|
|
|
---@alias doTargetCombat fun(cid: number, target: number, type: number, min: number, max: number, effect: number, origin?: number, blockArmor?: boolean, blockShield?: boolean, ignoreResistances?: boolean)
|
|
|
|
|
|
|
|
|
|
--- Challenges a creature.
|
|
|
|
|
function doChallengeCreature(cid, target, force) end
|
|
|
|
|
---@alias doChallengeCreature fun(cid: number, target: number, force?: boolean)
|
|
|
|
|
|
|
|
|
|
--- Schedules an event to be called after a delay.
|
|
|
|
|
function addEvent(callback, delay, ...) end
|
|
|
|
|
---@alias addEvent fun(callback: function, delay: number, ...: any): number
|
|
|
|
|
|
|
|
|
|
--- Stops a scheduled event.
|
|
|
|
|
function stopEvent(eventid) end
|
|
|
|
|
---@alias stopEvent fun(eventid: number)
|
|
|
|
|
|
|
|
|
|
--- Saves the server state.
|
|
|
|
|
function saveServer() end
|
|
|
|
|
---@alias saveServer fun()
|
|
|
|
|
|
|
|
|
|
--- Cleans the map.
|
|
|
|
|
function cleanMap() end
|
|
|
|
|
---@alias cleanMap fun()
|
|
|
|
|
|
|
|
|
|
--- Outputs a debug message.
|
|
|
|
|
function debugPrint(text) end
|
|
|
|
|
---@alias debugPrint fun(text: string)
|
|
|
|
|
|
|
|
|
|
--- Checks if two creatures are in war.
|
|
|
|
|
function isInWar(cid, target) end
|
|
|
|
|
---@alias isInWar fun(cid: number, target: number): boolean
|
|
|
|
|
|
|
|
|
|
--- Gets the position of a waypoint by name.
|
|
|
|
|
function getWaypointPositionByName(name) return {} end
|
|
|
|
|
---@alias getWaypointPositionByName fun(name: string): table
|
|
|
|
|
|
|
|
|
|
--- Sends a message to a channel.
|
|
|
|
|
function sendChannelMessage(channelId, type, message) end
|
|
|
|
|
---@alias sendChannelMessage fun(channelId: number, type: number, message: string)
|
|
|
|
|
|
|
|
|
|
--- Sends a message to a guild channel.
|
|
|
|
|
function sendGuildChannelMessage(guildId, type, message) end
|
|
|
|
|
---@alias sendGuildChannelMessage fun(guildId: number, type: number, message: string)
|
|
|
|
|
|
|
|
|
|
--- Checks if the current interface is a scripts interface.
|
|
|
|
|
function isScriptsInterface() end
|
|
|
|
|
---@alias isScriptsInterface fun(): boolean
|
|
|
|
|
|
|
|
|
|
function getNpcCid() end
|
2024-12-02 09:39:39 +01:00
|
|
|
function selfSay(message, player) end
|
2024-05-23 01:39:46 +02:00
|
|
|
function selfMove(direction) end
|
|
|
|
|
function selfMoveTo(...) end
|
|
|
|
|
function selfTurn(direction) end
|
|
|
|
|
function selfFollow(creature) end
|
|
|
|
|
function getDistanceTo(creature) end
|
|
|
|
|
function doNpcSetCreatureFocus(creature) end
|
|
|
|
|
function getNpcParameter(key) end
|
|
|
|
|
function openShopWindow(shopWindow) end
|
2024-12-02 09:39:42 +01:00
|
|
|
function closeShopWindow() end
|
2024-05-23 01:39:46 +02:00
|
|
|
function doSellItem(item) end
|
|
|
|
|
|
|
|
|
|
storages = {}
|
|
|
|
|
|
|
|
|
|
CREATURE_ID_MIN = 0x10000000
|
|
|
|
|
ITEM_STACK_SIZE = 100
|
|
|
|
|
|
|
|
|
|
-- Constants: CONST_ANI
|
|
|
|
|
CONST_ANI_NONE = 0
|
|
|
|
|
CONST_ANI_SPEAR = 1
|
|
|
|
|
CONST_ANI_BOLT = 2
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_ANI_ARROW = 3
|
2024-05-23 01:39:46 +02:00
|
|
|
CONST_ANI_FIRE = 4
|
|
|
|
|
CONST_ANI_ENERGY = 5
|
|
|
|
|
CONST_ANI_POISONARROW = 6
|
|
|
|
|
CONST_ANI_BURSTARROW = 7
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_ANI_THROWINGSTAR = 8
|
|
|
|
|
CONST_ANI_THROWINGKNIFE = 9
|
2024-05-23 01:39:46 +02:00
|
|
|
CONST_ANI_SMALLSTONE = 10
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_ANI_DEATH = 11
|
2024-05-23 01:39:46 +02:00
|
|
|
CONST_ANI_LARGEROCK = 12
|
|
|
|
|
CONST_ANI_SNOWBALL = 13
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_ANI_POWERBOLT = 14
|
2024-05-23 01:39:46 +02:00
|
|
|
CONST_ANI_POISON = 15
|
|
|
|
|
CONST_ANI_INFERNALBOLT = 16
|
|
|
|
|
CONST_ANI_HUNTINGSPEAR = 17
|
|
|
|
|
CONST_ANI_ENCHANTEDSPEAR = 18
|
|
|
|
|
CONST_ANI_REDSTAR = 19
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_ANI_GREENSTAR = 20
|
2024-05-23 01:39:46 +02:00
|
|
|
CONST_ANI_ROYALSPEAR = 21
|
|
|
|
|
CONST_ANI_SNIPERARROW = 22
|
|
|
|
|
CONST_ANI_ONYXARROW = 23
|
|
|
|
|
CONST_ANI_PIERCINGBOLT = 24
|
|
|
|
|
CONST_ANI_WHIRLWINDSWORD = 25
|
|
|
|
|
CONST_ANI_WHIRLWINDAXE = 26
|
|
|
|
|
CONST_ANI_WHIRLWINDCLUB = 27
|
|
|
|
|
CONST_ANI_ETHEREALSPEAR = 28
|
|
|
|
|
CONST_ANI_ICE = 29
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_ANI_EARTH = 30
|
2024-05-23 01:39:46 +02:00
|
|
|
CONST_ANI_HOLY = 31
|
|
|
|
|
CONST_ANI_SUDDENDEATH = 32
|
|
|
|
|
CONST_ANI_FLASHARROW = 33
|
|
|
|
|
CONST_ANI_FLAMMINGARROW = 34
|
|
|
|
|
CONST_ANI_SHIVERARROW = 35
|
|
|
|
|
CONST_ANI_ENERGYBALL = 36
|
|
|
|
|
CONST_ANI_SMALLICE = 37
|
|
|
|
|
CONST_ANI_SMALLHOLY = 38
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_ANI_SMALLEARTH = 39
|
2024-05-23 01:39:46 +02:00
|
|
|
CONST_ANI_EARTHARROW = 40
|
|
|
|
|
CONST_ANI_EXPLOSION = 41
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_ANI_CAKE = 42
|
|
|
|
|
CONST_ANI_TARSALARROW = 44
|
|
|
|
|
CONST_ANI_VORTEXBOLT = 45
|
|
|
|
|
CONST_ANI_PRISMATICBOLT = 48
|
|
|
|
|
CONST_ANI_CRYSTALLINEARROW = 49
|
|
|
|
|
CONST_ANI_DRILLBOLT = 50
|
|
|
|
|
CONST_ANI_ENVENOMEDARROW = 51
|
|
|
|
|
CONST_ANI_GLOOTHSPEAR = 53
|
|
|
|
|
CONST_ANI_SIMPLEARROW = 54
|
|
|
|
|
CONST_ANI_LEAFSTAR = 56
|
|
|
|
|
CONST_ANI_DIAMONDARROW = 57
|
|
|
|
|
CONST_ANI_SPECTRALBOLT = 58
|
|
|
|
|
CONST_ANI_ROYALSTAR = 59
|
|
|
|
|
CONST_ANI_WEAPONTYPE = 254
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
-- Constants: CONST_ME
|
|
|
|
|
CONST_ME_NONE = 0
|
|
|
|
|
CONST_ME_DRAWBLOOD = 1
|
|
|
|
|
CONST_ME_LOSEENERGY = 2
|
|
|
|
|
CONST_ME_POFF = 3
|
|
|
|
|
CONST_ME_BLOCKHIT = 4
|
|
|
|
|
CONST_ME_EXPLOSIONAREA = 5
|
|
|
|
|
CONST_ME_EXPLOSIONHIT = 6
|
|
|
|
|
CONST_ME_FIREAREA = 7
|
|
|
|
|
CONST_ME_YELLOW_RINGS = 8
|
|
|
|
|
CONST_ME_GREEN_RINGS = 9
|
|
|
|
|
CONST_ME_HITAREA = 10
|
|
|
|
|
CONST_ME_TELEPORT = 11
|
|
|
|
|
CONST_ME_ENERGYHIT = 12
|
|
|
|
|
CONST_ME_MAGIC_BLUE = 13
|
|
|
|
|
CONST_ME_MAGIC_RED = 14
|
|
|
|
|
CONST_ME_MAGIC_GREEN = 15
|
|
|
|
|
CONST_ME_HITBYFIRE = 16
|
|
|
|
|
CONST_ME_HITBYPOISON = 17
|
|
|
|
|
CONST_ME_MORTAREA = 18
|
|
|
|
|
CONST_ME_SOUND_GREEN = 19
|
|
|
|
|
CONST_ME_SOUND_RED = 20
|
|
|
|
|
CONST_ME_POISONAREA = 21
|
|
|
|
|
CONST_ME_SOUND_YELLOW = 22
|
|
|
|
|
CONST_ME_SOUND_PURPLE = 23
|
|
|
|
|
CONST_ME_SOUND_BLUE = 24
|
|
|
|
|
CONST_ME_SOUND_WHITE = 25
|
|
|
|
|
CONST_ME_BUBBLES = 26
|
|
|
|
|
CONST_ME_CRAPS = 27
|
|
|
|
|
CONST_ME_GIFT_WRAPS = 28
|
|
|
|
|
CONST_ME_FIREWORK_YELLOW = 29
|
|
|
|
|
CONST_ME_FIREWORK_RED = 30
|
|
|
|
|
CONST_ME_FIREWORK_BLUE = 31
|
|
|
|
|
CONST_ME_STUN = 32
|
|
|
|
|
CONST_ME_SLEEP = 33
|
|
|
|
|
CONST_ME_WATERCREATURE = 34
|
|
|
|
|
CONST_ME_GROUNDSHAKER = 35
|
|
|
|
|
CONST_ME_HEARTS = 36
|
|
|
|
|
CONST_ME_FIREATTACK = 37
|
|
|
|
|
CONST_ME_ENERGYAREA = 38
|
|
|
|
|
CONST_ME_SMALLCLOUDS = 39
|
|
|
|
|
CONST_ME_HOLYDAMAGE = 40
|
|
|
|
|
CONST_ME_BIGCLOUDS = 41
|
|
|
|
|
CONST_ME_ICEAREA = 42
|
|
|
|
|
CONST_ME_ICETORNADO = 43
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_ME_ICEATTACK = 44
|
|
|
|
|
CONST_ME_STONES = 45
|
2024-05-23 01:39:46 +02:00
|
|
|
CONST_ME_SMALLPLANTS = 46
|
|
|
|
|
CONST_ME_CARNIPHILA = 47
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_ME_PURPLEENERGY = 48
|
2024-05-23 01:39:46 +02:00
|
|
|
CONST_ME_YELLOWENERGY = 49
|
|
|
|
|
CONST_ME_HOLYAREA = 50
|
|
|
|
|
CONST_ME_BIGPLANTS = 51
|
|
|
|
|
CONST_ME_CAKE = 52
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_ME_GIANTICE = 53
|
2024-05-23 01:39:46 +02:00
|
|
|
CONST_ME_WATERSPLASH = 54
|
|
|
|
|
CONST_ME_PLANTATTACK = 55
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_ME_TUTORIALARROW = 56
|
|
|
|
|
CONST_ME_TUTORIALSQUARE = 57
|
|
|
|
|
CONST_ME_MIRRORHORIZONTAL = 58
|
|
|
|
|
CONST_ME_MIRRORVERTICAL = 59
|
|
|
|
|
CONST_ME_SKULLHORIZONTAL = 60
|
|
|
|
|
CONST_ME_SKULLVERTICAL = 61
|
|
|
|
|
CONST_ME_ASSASSIN = 62
|
|
|
|
|
CONST_ME_STEPSHORIZONTAL = 63
|
|
|
|
|
CONST_ME_BLOODYSTEPS = 64
|
|
|
|
|
CONST_ME_STEPSVERTICAL = 65
|
2024-05-23 01:39:46 +02:00
|
|
|
CONST_ME_YALAHARIGHOST = 66
|
|
|
|
|
CONST_ME_BATS = 67
|
|
|
|
|
CONST_ME_SMOKE = 68
|
|
|
|
|
CONST_ME_INSECTS = 69
|
|
|
|
|
CONST_ME_DRAGONHEAD = 70
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_ME_ORCSHAMAN = 71
|
|
|
|
|
CONST_ME_ORCSHAMAN_FIRE = 72
|
2024-05-23 01:39:46 +02:00
|
|
|
CONST_ME_THUNDER = 73
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_ME_FERUMBRAS = 74
|
|
|
|
|
CONST_ME_CONFETTI_HORIZONTAL = 75
|
|
|
|
|
CONST_ME_CONFETTI_VERTICAL = 76
|
|
|
|
|
-- 77-157 are empty
|
|
|
|
|
CONST_ME_BLACKSMOKE = 158
|
|
|
|
|
-- 159-166 are empty
|
|
|
|
|
CONST_ME_REDSMOKE = 167
|
|
|
|
|
CONST_ME_YELLOWSMOKE = 168
|
|
|
|
|
CONST_ME_GREENSMOKE = 169
|
|
|
|
|
CONST_ME_PURPLESMOKE = 170
|
|
|
|
|
CONST_ME_EARLY_THUNDER = 171
|
|
|
|
|
CONST_ME_RAGIAZ_BONECAPSULE = 172
|
|
|
|
|
CONST_ME_CRITICAL_DAMAGE = 173
|
|
|
|
|
-- 174 is empty
|
|
|
|
|
CONST_ME_PLUNGING_FISH = 175
|
|
|
|
|
CONST_ME_BLUECHAIN = 176
|
|
|
|
|
CONST_ME_ORANGECHAIN = 177
|
|
|
|
|
CONST_ME_GREENCHAIN = 178
|
|
|
|
|
CONST_ME_PURPLECHAIN = 179
|
|
|
|
|
CONST_ME_GREYCHAIN = 180
|
|
|
|
|
CONST_ME_YELLOWCHAIN = 181
|
|
|
|
|
CONST_ME_YELLOWSPARKLES = 182
|
|
|
|
|
-- 183 is empty
|
|
|
|
|
CONST_ME_FAEEXPLOSION = 184
|
|
|
|
|
CONST_ME_FAECOMING = 185
|
|
|
|
|
CONST_ME_FAEGOING = 186
|
|
|
|
|
-- 187 is empty
|
|
|
|
|
CONST_ME_BIGCLOUDSSINGLESPACE = 188
|
|
|
|
|
CONST_ME_STONESSINGLESPACE = 189
|
|
|
|
|
-- 190 is empty
|
|
|
|
|
CONST_ME_BLUEGHOST = 191
|
|
|
|
|
-- 192 is empty
|
|
|
|
|
CONST_ME_POINTOFINTEREST = 193
|
|
|
|
|
CONST_ME_MAPEFFECT = 194
|
|
|
|
|
CONST_ME_PINKSPARK = 195
|
|
|
|
|
CONST_ME_FIREWORK_GREEN = 196
|
|
|
|
|
CONST_ME_FIREWORK_ORANGE = 197
|
|
|
|
|
CONST_ME_FIREWORK_PURPLE = 198
|
|
|
|
|
CONST_ME_FIREWORK_TURQUOISE = 199
|
|
|
|
|
-- 200 is empty
|
|
|
|
|
CONST_ME_THECUBE = 201
|
|
|
|
|
CONST_ME_DRAWINK = 202
|
|
|
|
|
CONST_ME_PRISMATICSPARKLES = 203
|
|
|
|
|
CONST_ME_THAIAN = 204
|
|
|
|
|
CONST_ME_THAIANGHOST = 205
|
|
|
|
|
CONST_ME_GHOSTSMOKE = 206
|
|
|
|
|
-- 207 is empty
|
|
|
|
|
CONST_ME_FLOATINGBLOCK = 208
|
|
|
|
|
CONST_ME_BLOCK = 209
|
|
|
|
|
CONST_ME_ROOTING = 210
|
|
|
|
|
-- 211-212 were removed from the client
|
|
|
|
|
CONST_ME_GHOSTLYSCRATCH = 213
|
|
|
|
|
CONST_ME_GHOSTLYBITE = 214
|
|
|
|
|
CONST_ME_BIGSCRATCHING = 215
|
|
|
|
|
CONST_ME_SLASH = 216
|
|
|
|
|
CONST_ME_BITE = 217
|
|
|
|
|
-- 218 is empty
|
|
|
|
|
CONST_ME_CHIVALRIOUSCHALLENGE = 219
|
|
|
|
|
CONST_ME_DIVINEDAZZLE = 220
|
|
|
|
|
CONST_ME_ELECTRICALSPARK = 221
|
|
|
|
|
CONST_ME_PURPLETELEPORT = 222
|
|
|
|
|
CONST_ME_REDTELEPORT = 223
|
|
|
|
|
CONST_ME_ORANGETELEPORT = 224
|
|
|
|
|
CONST_ME_GREYTELEPORT = 225
|
|
|
|
|
CONST_ME_LIGHTBLUETELEPORT = 226
|
|
|
|
|
-- 227-229 are empty
|
|
|
|
|
CONST_ME_FATAL = 230
|
|
|
|
|
CONST_ME_DODGE = 231
|
|
|
|
|
CONST_ME_HOURGLASS = 232
|
|
|
|
|
CONST_ME_FIREWORKSSTAR = 233
|
|
|
|
|
CONST_ME_FIREWORKSCIRCLE = 234
|
|
|
|
|
CONST_ME_FERUMBRAS_1 = 235
|
|
|
|
|
CONST_ME_GAZHARAGOTH = 236
|
|
|
|
|
CONST_ME_MAD_MAGE = 237
|
|
|
|
|
CONST_ME_HORESTIS = 238
|
|
|
|
|
CONST_ME_DEVOVORGA = 239
|
|
|
|
|
CONST_ME_FERUMBRAS_2 = 240
|
|
|
|
|
CONST_ME_FOAM = 241
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
-- Constants: CONST_PROP
|
|
|
|
|
CONST_PROP_BLOCKSOLID = 0
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_PROP_HASHEIGHT = 1
|
2024-05-23 01:39:46 +02:00
|
|
|
CONST_PROP_BLOCKPROJECTILE = 2
|
|
|
|
|
CONST_PROP_BLOCKPATH = 3
|
|
|
|
|
CONST_PROP_ISVERTICAL = 4
|
|
|
|
|
CONST_PROP_ISHORIZONTAL = 5
|
|
|
|
|
CONST_PROP_MOVEABLE = 6
|
|
|
|
|
CONST_PROP_IMMOVABLEBLOCKSOLID = 7
|
|
|
|
|
CONST_PROP_IMMOVABLEBLOCKPATH = 8
|
|
|
|
|
CONST_PROP_IMMOVABLENOFIELDBLOCKPATH = 9
|
|
|
|
|
CONST_PROP_NOFIELDBLOCKPATH = 10
|
|
|
|
|
CONST_PROP_SUPPORTHANGABLE = 11
|
|
|
|
|
|
|
|
|
|
-- Constants: CONST_SLOT
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_SLOT_WHEREEVER = 0
|
2024-05-23 01:39:46 +02:00
|
|
|
CONST_SLOT_HEAD = 1
|
|
|
|
|
CONST_SLOT_NECKLACE = 2
|
|
|
|
|
CONST_SLOT_BACKPACK = 3
|
|
|
|
|
CONST_SLOT_ARMOR = 4
|
|
|
|
|
CONST_SLOT_RIGHT = 5
|
|
|
|
|
CONST_SLOT_LEFT = 6
|
|
|
|
|
CONST_SLOT_LEGS = 7
|
|
|
|
|
CONST_SLOT_FEET = 8
|
|
|
|
|
CONST_SLOT_RING = 9
|
|
|
|
|
CONST_SLOT_AMMO = 10
|
2024-06-06 20:25:33 -03:00
|
|
|
CONST_SLOT_STORE_INBOX = 11
|
|
|
|
|
CONST_SLOT_FIRST = CONST_SLOT_HEAD
|
|
|
|
|
CONST_SLOT_LAST = CONST_SLOT_AMMO
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
TILESTATE_NONE = 0
|
|
|
|
|
TILESTATE_FLOORCHANGE_DOWN = 1 * 2 ^ 0
|
|
|
|
|
TILESTATE_FLOORCHANGE_NORTH = 1 * 2 ^ 1
|
|
|
|
|
TILESTATE_FLOORCHANGE_SOUTH = 1 * 2 ^ 2
|
|
|
|
|
TILESTATE_FLOORCHANGE_EAST = 1 * 2 ^ 3
|
|
|
|
|
TILESTATE_FLOORCHANGE_WEST = 1 * 2 ^ 4
|
|
|
|
|
TILESTATE_FLOORCHANGE_SOUTH_ALT = 1 * 2 ^ 5
|
|
|
|
|
TILESTATE_FLOORCHANGE_EAST_ALT = 1 * 2 ^ 6
|
|
|
|
|
TILESTATE_PROTECTIONZONE = 1 * 2 ^ 7
|
|
|
|
|
TILESTATE_NOPVPZONE = 1 * 2 ^ 8
|
|
|
|
|
TILESTATE_NOLOGOUT = 1 * 2 ^ 9
|
|
|
|
|
TILESTATE_PVPZONE = 1 * 2 ^ 10
|
|
|
|
|
TILESTATE_TELEPORT = 1 * 2 ^ 11
|
|
|
|
|
TILESTATE_MAGICFIELD = 1 * 2 ^ 12
|
|
|
|
|
TILESTATE_MAILBOX = 1 * 2 ^ 13
|
|
|
|
|
TILESTATE_TRASHHOLDER = 1 * 2 ^ 14
|
|
|
|
|
TILESTATE_BED = 1 * 2 ^ 15
|
|
|
|
|
TILESTATE_DEPOT = 1 * 2 ^ 16
|
|
|
|
|
TILESTATE_BLOCKSOLID = 1 * 2 ^ 17
|
|
|
|
|
TILESTATE_BLOCKPATH = 1 * 2 ^ 18
|
|
|
|
|
TILESTATE_IMMOVABLEBLOCKSOLID = 1 * 2 ^ 19
|
|
|
|
|
TILESTATE_IMMOVABLEBLOCKPATH = 1 * 2 ^ 20
|
|
|
|
|
TILESTATE_IMMOVABLENOFIELDBLOCKPATH = 1 * 2 ^ 21
|
|
|
|
|
TILESTATE_NOFIELDBLOCKPATH = 1 * 2 ^ 22
|
|
|
|
|
TILESTATE_SUPPORTS_HANGABLE = 1 * 2 ^ 23
|
|
|
|
|
|
|
|
|
|
TILESTATE_FLOORCHANGE =
|
2024-06-06 20:25:33 -03:00
|
|
|
TILESTATE_FLOORCHANGE_DOWN or TILESTATE_FLOORCHANGE_NORTH or
|
|
|
|
|
TILESTATE_FLOORCHANGE_SOUTH or TILESTATE_FLOORCHANGE_EAST or
|
|
|
|
|
TILESTATE_FLOORCHANGE_WEST or TILESTATE_FLOORCHANGE_SOUTH_ALT or
|
|
|
|
|
TILESTATE_FLOORCHANGE_EAST_ALT
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
SPELL_UNDEFINED = 0
|
|
|
|
|
SPELL_INSTANT = 1
|
|
|
|
|
SPELL_RUNE = 2
|
|
|
|
|
|
|
|
|
|
COMBAT_PARAM_TYPE = 0
|
|
|
|
|
COMBAT_PARAM_EFFECT = 1
|
|
|
|
|
COMBAT_PARAM_DISTANCEEFFECT = 2
|
|
|
|
|
COMBAT_PARAM_BLOCKSHIELD = 3
|
|
|
|
|
COMBAT_PARAM_BLOCKARMOR = 4
|
|
|
|
|
COMBAT_PARAM_TARGETCASTERORTOPMOST = 5
|
|
|
|
|
COMBAT_PARAM_CREATEITEM = 6
|
|
|
|
|
COMBAT_PARAM_AGGRESSIVE = 7
|
|
|
|
|
COMBAT_PARAM_DISPEL = 8
|
|
|
|
|
COMBAT_PARAM_USECHARGES = 9
|
|
|
|
|
|
|
|
|
|
COMBAT_NONE = 0
|
|
|
|
|
|
|
|
|
|
COMBAT_PHYSICALDAMAGE = 1 * 2 ^ 0
|
|
|
|
|
COMBAT_ENERGYDAMAGE = 1 * 2 ^ 1
|
|
|
|
|
COMBAT_EARTHDAMAGE = 1 * 2 ^ 2
|
|
|
|
|
COMBAT_FIREDAMAGE = 1 * 2 ^ 3
|
|
|
|
|
COMBAT_UNDEFINEDDAMAGE = 1 * 2 ^ 4
|
|
|
|
|
COMBAT_LIFEDRAIN = 1 * 2 ^ 5
|
|
|
|
|
COMBAT_MANADRAIN = 1 * 2 ^ 6
|
|
|
|
|
COMBAT_HEALING = 1 * 2 ^ 7
|
|
|
|
|
COMBAT_DROWNDAMAGE = 1 * 2 ^ 8
|
|
|
|
|
COMBAT_ICEDAMAGE = 1 * 2 ^ 9
|
|
|
|
|
COMBAT_HOLYDAMAGE = 1 * 2 ^ 10
|
|
|
|
|
COMBAT_DEATHDAMAGE = 1 * 2 ^ 11
|
|
|
|
|
|
|
|
|
|
COMBAT_COUNT = 12
|
|
|
|
|
|
|
|
|
|
COMBAT_FORMULA_UNDEFINED = 0
|
|
|
|
|
COMBAT_FORMULA_LEVELMAGIC = 1
|
|
|
|
|
COMBAT_FORMULA_SKILL = 2
|
|
|
|
|
COMBAT_FORMULA_DAMAGE = 3
|
|
|
|
|
|
|
|
|
|
ACCOUNT_TYPE_NORMAL = 1
|
|
|
|
|
ACCOUNT_TYPE_TUTOR = 2
|
|
|
|
|
ACCOUNT_TYPE_SENIORTUTOR = 3
|
|
|
|
|
ACCOUNT_TYPE_GAMEMASTER = 4
|
|
|
|
|
ACCOUNT_TYPE_COMMUNITYMANAGER = 5
|
|
|
|
|
ACCOUNT_TYPE_GOD = 6
|
|
|
|
|
|
|
|
|
|
---@enum CallBackParam
|
|
|
|
|
CallBackParam = {
|
2024-06-06 20:25:33 -03:00
|
|
|
LEVELMAGICVALUE = 0,
|
|
|
|
|
SKILLVALUE = 1,
|
|
|
|
|
TARGETTILE = 2,
|
|
|
|
|
TARGETCREATURE = 3
|
2024-05-23 01:39:46 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CALLBACK_PARAM_LEVELMAGICVALUE = 0
|
|
|
|
|
CALLBACK_PARAM_SKILLVALUE = 1
|
|
|
|
|
CALLBACK_PARAM_TARGETTILE = 2
|
|
|
|
|
CALLBACK_PARAM_TARGETCREATURE = 3
|
|
|
|
|
|
|
|
|
|
---@enum ExperienceRateType
|
|
|
|
|
ExperienceRateType = {BASE = 1, LOW_LEVEL = 2, BONUS = 3, STAMINA = 4}
|
|
|
|
|
|
|
|
|
|
GUEST_LIST = 0x100
|
|
|
|
|
SUBOWNER_LIST = 0x101
|
|
|
|
|
|
|
|
|
|
PODIUM_SHOW_PLATFORM = 0 -- show the platform below the outfit
|
|
|
|
|
PODIUM_SHOW_OUTFIT = 1 -- show outfit
|
|
|
|
|
PODIUM_SHOW_MOUNT = 2 -- show mount
|
|
|
|
|
|
|
|
|
|
DIRECTION_NORTH = 0
|
|
|
|
|
DIRECTION_EAST = 1
|
|
|
|
|
DIRECTION_SOUTH = 2
|
|
|
|
|
DIRECTION_WEST = 3
|
|
|
|
|
|
|
|
|
|
DIRECTION_DIAGONAL_MASK = 4
|
|
|
|
|
DIRECTION_SOUTHWEST = DIRECTION_DIAGONAL_MASK or 0
|
|
|
|
|
DIRECTION_SOUTHEAST = DIRECTION_DIAGONAL_MASK or 1
|
|
|
|
|
DIRECTION_NORTHWEST = DIRECTION_DIAGONAL_MASK or 2
|
|
|
|
|
DIRECTION_NORTHEAST = DIRECTION_DIAGONAL_MASK or 3
|
|
|
|
|
|
|
|
|
|
DIRECTION_LAST = DIRECTION_NORTHEAST
|
|
|
|
|
DIRECTION_NONE = 8
|
|
|
|
|
|
|
|
|
|
SKULL_NONE = 0
|
|
|
|
|
SKULL_YELLOW = 1
|
|
|
|
|
SKULL_GREEN = 2
|
|
|
|
|
SKULL_WHITE = 3
|
|
|
|
|
SKULL_RED = 4
|
|
|
|
|
SKULL_BLACK = 5
|
|
|
|
|
SKULL_ORANGE = 6
|
|
|
|
|
|
2024-06-06 20:25:33 -03:00
|
|
|
MESSAGE_STATUS_DEFAULT = 17 -- White, bottom + console
|
|
|
|
|
MESSAGE_STATUS_WARNING = 18 -- Red, over player + console
|
|
|
|
|
MESSAGE_EVENT_ADVANCE = 19 -- White, over player + console
|
2024-05-23 01:39:46 +02:00
|
|
|
MESSAGE_STATUS_WARNING2 = 20 -- Red, over player + console
|
2024-06-06 20:25:33 -03:00
|
|
|
MESSAGE_STATUS_SMALL = 21 -- White, bottom of the screen
|
|
|
|
|
MESSAGE_INFO_DESCR = 22 -- Green, over player + console
|
2024-05-23 01:39:46 +02:00
|
|
|
MESSAGE_DAMAGE_DEALT = 23
|
|
|
|
|
MESSAGE_DAMAGE_RECEIVED = 24
|
|
|
|
|
MESSAGE_HEALED = 25
|
|
|
|
|
MESSAGE_EXPERIENCE = 26
|
|
|
|
|
MESSAGE_DAMAGE_OTHERS = 27
|
|
|
|
|
MESSAGE_HEALED_OTHERS = 28
|
|
|
|
|
MESSAGE_EXPERIENCE_OTHERS = 29
|
|
|
|
|
MESSAGE_EVENT_DEFAULT = 30 -- White, bottom + console
|
2024-06-06 20:25:33 -03:00
|
|
|
MESSAGE_LOOT = 31 -- White, over player + console, supports colors as {text|itemClientId}
|
|
|
|
|
MESSAGE_TRADE = 32 -- Green, over player + console
|
2024-05-23 01:39:46 +02:00
|
|
|
MESSAGE_GUILD = 33
|
|
|
|
|
MESSAGE_PARTY_MANAGEMENT = 34
|
|
|
|
|
MESSAGE_PARTY = 35
|
2024-06-06 20:25:33 -03:00
|
|
|
MESSAGE_REPORT = 38 -- White, over player + conosle
|
2024-05-23 01:39:46 +02:00
|
|
|
MESSAGE_HOTKEY_PRESSED = 39 -- Green, over player + console
|
2024-06-06 20:25:33 -03:00
|
|
|
-- MESSAGE_TUTORIAL_HINT = 40 -- not working (?)
|
|
|
|
|
-- MESSAGE_THANK_YOU = 41 -- not working (?)
|
2024-05-23 01:39:46 +02:00
|
|
|
MESSAGE_MARKET = 42 -- Window "Market Message" + "Ok" button
|
2024-06-06 20:25:33 -03:00
|
|
|
-- MESSAGE_MANA = 43 -- not working (?)
|
|
|
|
|
MESSAGE_BEYOND_LAST = 44 -- White, console only
|
2024-05-23 01:39:46 +02:00
|
|
|
MESSAGE_TOURNAMENT_INFO = 45 -- Window "Tournament" + "Ok" button
|
2024-06-06 20:25:33 -03:00
|
|
|
-- unused 46?
|
|
|
|
|
-- unused 47?
|
|
|
|
|
MESSAGE_ATTENTION = 48 -- White, console only
|
2024-05-23 01:39:46 +02:00
|
|
|
MESSAGE_BOOSTED_CREATURE = 49 -- White, console only
|
|
|
|
|
MESSAGE_OFFLINE_TRAINING = 50 -- White, over player + console
|
2024-06-06 20:25:33 -03:00
|
|
|
MESSAGE_TRANSACTION = 51 -- White, console only
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
INDEX_WHEREEVER = -1
|
|
|
|
|
VIRTUAL_PARENT = true
|
|
|
|
|
|
2024-06-06 20:25:33 -03:00
|
|
|
FLAG_NOLIMIT = 1 * 2 ^ 0 -- Bypass limits like capacity/container limits, blocking items/creatures etc.
|
|
|
|
|
FLAG_IGNOREBLOCKITEM = 1 * 2 ^ 1 -- Bypass movable blocking item checks
|
2024-05-23 01:39:46 +02:00
|
|
|
FLAG_IGNOREBLOCKCREATURE = 1 * 2 ^ 2 -- Bypass creature checks
|
2024-06-06 20:25:33 -03:00
|
|
|
FLAG_CHILDISOWNER = 1 * 2 ^ 3 -- Used by containers to query capacity of the carrier (player)
|
|
|
|
|
FLAG_PATHFINDING = 1 * 2 ^ 4 -- An additional check is done for floor changing/teleport items
|
|
|
|
|
FLAG_IGNOREFIELDDAMAGE = 1 * 2 ^ 5 -- Bypass field damage checks
|
|
|
|
|
FLAG_IGNORENOTMOVEABLE = 1 * 2 ^ 6 -- Bypass check for mobility
|
|
|
|
|
FLAG_IGNOREAUTOSTACK = 1 * 2 ^ 7 -- queryDestination will not try to stack items together
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
RETURNVALUE_NOERROR = 0
|
|
|
|
|
RETURNVALUE_NOTPOSSIBLE = 1
|
|
|
|
|
RETURNVALUE_NOTENOUGHROOM = 2
|
|
|
|
|
RETURNVALUE_PLAYERISPZLOCKED = 3
|
|
|
|
|
RETURNVALUE_PLAYERISNOTINVITED = 4
|
|
|
|
|
RETURNVALUE_CANNOTTHROW = 5
|
|
|
|
|
RETURNVALUE_THEREISNOWAY = 6
|
|
|
|
|
RETURNVALUE_DESTINATIONOUTOFREACH = 7
|
|
|
|
|
RETURNVALUE_CREATUREBLOCK = 8
|
|
|
|
|
RETURNVALUE_NOTMOVEABLE = 9
|
|
|
|
|
RETURNVALUE_DROPTWOHANDEDITEM = 10
|
|
|
|
|
RETURNVALUE_BOTHHANDSNEEDTOBEFREE = 11
|
|
|
|
|
RETURNVALUE_CANONLYUSEONEWEAPON = 12
|
|
|
|
|
RETURNVALUE_NEEDEXCHANGE = 13
|
|
|
|
|
RETURNVALUE_CANNOTBEDRESSED = 14
|
|
|
|
|
RETURNVALUE_PUTTHISOBJECTINYOURHAND = 15
|
|
|
|
|
RETURNVALUE_PUTTHISOBJECTINBOTHHANDS = 16
|
|
|
|
|
RETURNVALUE_TOOFARAWAY = 17
|
|
|
|
|
RETURNVALUE_FIRSTGODOWNSTAIRS = 18
|
|
|
|
|
RETURNVALUE_FIRSTGOUPSTAIRS = 19
|
|
|
|
|
RETURNVALUE_CONTAINERNOTENOUGHROOM = 20
|
|
|
|
|
RETURNVALUE_NOTENOUGHCAPACITY = 21
|
|
|
|
|
RETURNVALUE_CANNOTPICKUP = 22
|
|
|
|
|
RETURNVALUE_THISISIMPOSSIBLE = 23
|
|
|
|
|
RETURNVALUE_DEPOTISFULL = 24
|
|
|
|
|
RETURNVALUE_CREATUREDOESNOTEXIST = 25
|
|
|
|
|
RETURNVALUE_CANNOTUSETHISOBJECT = 26
|
|
|
|
|
RETURNVALUE_PLAYERWITHTHISNAMEISNOTONLINE = 27
|
|
|
|
|
RETURNVALUE_NOTREQUIREDLEVELTOUSERUNE = 28
|
|
|
|
|
RETURNVALUE_YOUAREALREADYTRADING = 29
|
|
|
|
|
RETURNVALUE_THISPLAYERISALREADYTRADING = 30
|
|
|
|
|
RETURNVALUE_YOUMAYNOTLOGOUTDURINGAFIGHT = 31
|
|
|
|
|
RETURNVALUE_DIRECTPLAYERSHOOT = 32
|
|
|
|
|
RETURNVALUE_NOTENOUGHLEVEL = 33
|
|
|
|
|
RETURNVALUE_NOTENOUGHMAGICLEVEL = 34
|
|
|
|
|
RETURNVALUE_NOTENOUGHMANA = 35
|
|
|
|
|
RETURNVALUE_NOTENOUGHSOUL = 36
|
|
|
|
|
RETURNVALUE_YOUAREEXHAUSTED = 37
|
|
|
|
|
RETURNVALUE_YOUCANNOTUSEOBJECTSTHATFAST = 38
|
|
|
|
|
RETURNVALUE_PLAYERISNOTREACHABLE = 39
|
|
|
|
|
RETURNVALUE_CANONLYUSETHISRUNEONCREATURES = 40
|
|
|
|
|
RETURNVALUE_ACTIONNOTPERMITTEDINPROTECTIONZONE = 41
|
|
|
|
|
RETURNVALUE_YOUMAYNOTATTACKTHISPLAYER = 42
|
|
|
|
|
RETURNVALUE_YOUMAYNOTATTACKAPERSONINPROTECTIONZONE = 43
|
|
|
|
|
RETURNVALUE_YOUMAYNOTATTACKAPERSONWHILEINPROTECTIONZONE = 44
|
|
|
|
|
RETURNVALUE_YOUMAYNOTATTACKTHISCREATURE = 45
|
|
|
|
|
RETURNVALUE_YOUCANONLYUSEITONCREATURES = 46
|
|
|
|
|
RETURNVALUE_CREATUREISNOTREACHABLE = 47
|
|
|
|
|
RETURNVALUE_TURNSECUREMODETOATTACKUNMARKEDPLAYERS = 48
|
|
|
|
|
RETURNVALUE_YOUNEEDPREMIUMACCOUNT = 49
|
|
|
|
|
RETURNVALUE_YOUNEEDTOLEARNTHISSPELL = 50
|
|
|
|
|
RETURNVALUE_YOURVOCATIONCANNOTUSETHISSPELL = 51
|
|
|
|
|
RETURNVALUE_YOUNEEDAWEAPONTOUSETHISSPELL = 52
|
|
|
|
|
RETURNVALUE_PLAYERISPZLOCKEDLEAVEPVPZONE = 53
|
|
|
|
|
RETURNVALUE_PLAYERISPZLOCKEDENTERPVPZONE = 54
|
|
|
|
|
RETURNVALUE_ACTIONNOTPERMITTEDINANOPVPZONE = 55
|
|
|
|
|
RETURNVALUE_YOUCANNOTLOGOUTHERE = 56
|
|
|
|
|
RETURNVALUE_YOUNEEDAMAGICITEMTOCASTSPELL = 57
|
2024-06-06 20:25:33 -03:00
|
|
|
RETURNVALUE_NAMEISTOOAMBIGUOUS = 58
|
|
|
|
|
RETURNVALUE_CANONLYUSEONESHIELD = 59
|
|
|
|
|
RETURNVALUE_NOPARTYMEMBERSINRANGE = 60
|
|
|
|
|
RETURNVALUE_YOUARENOTTHEOWNER = 61
|
|
|
|
|
RETURNVALUE_TRADEPLAYERFARAWAY = 62
|
|
|
|
|
RETURNVALUE_YOUDONTOWNTHISHOUSE = 63
|
|
|
|
|
RETURNVALUE_TRADEPLAYERALREADYOWNSAHOUSE = 64
|
|
|
|
|
RETURNVALUE_TRADEPLAYERHIGHESTBIDDER = 65
|
|
|
|
|
RETURNVALUE_YOUCANNOTTRADETHISHOUSE = 66
|
|
|
|
|
RETURNVALUE_YOUDONTHAVEREQUIREDPROFESSION = 67
|
|
|
|
|
RETURNVALUE_CANNOTMOVEITEMISNOTSTOREITEM = 68
|
|
|
|
|
RETURNVALUE_ITEMCANNOTBEMOVEDTHERE = 69
|
|
|
|
|
RETURNVALUE_YOUCANNOTUSETHISBED = 70
|
|
|
|
|
RETURNVALUE_QUIVERAMMOONLY = 71
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
CONDITION_NONE = 0
|
|
|
|
|
CONDITION_POISON = 1 * 2 ^ 0
|
|
|
|
|
CONDITION_FIRE = 1 * 2 ^ 1
|
|
|
|
|
CONDITION_ENERGY = 1 * 2 ^ 2
|
|
|
|
|
CONDITION_BLEEDING = 1 * 2 ^ 3
|
|
|
|
|
CONDITION_HASTE = 1 * 2 ^ 4
|
|
|
|
|
CONDITION_PARALYZE = 1 * 2 ^ 5
|
|
|
|
|
CONDITION_OUTFIT = 1 * 2 ^ 6
|
|
|
|
|
CONDITION_INVISIBLE = 1 * 2 ^ 7
|
|
|
|
|
CONDITION_LIGHT = 1 * 2 ^ 8
|
|
|
|
|
CONDITION_MANASHIELD = 1 * 2 ^ 9
|
|
|
|
|
CONDITION_INFIGHT = 1 * 2 ^ 10
|
|
|
|
|
CONDITION_DRUNK = 1 * 2 ^ 11
|
|
|
|
|
CONDITION_EXHAUST_WEAPON = 1 * 2 ^ 12 -- unused
|
|
|
|
|
CONDITION_REGENERATION = 1 * 2 ^ 13
|
|
|
|
|
CONDITION_SOUL = 1 * 2 ^ 14
|
|
|
|
|
CONDITION_DROWN = 1 * 2 ^ 15
|
|
|
|
|
CONDITION_MUTED = 1 * 2 ^ 16
|
|
|
|
|
CONDITION_CHANNELMUTEDTICKS = 1 * 2 ^ 17
|
|
|
|
|
CONDITION_YELLTICKS = 1 * 2 ^ 18
|
|
|
|
|
CONDITION_ATTRIBUTES = 1 * 2 ^ 19
|
|
|
|
|
CONDITION_FREEZING = 1 * 2 ^ 20
|
|
|
|
|
CONDITION_DAZZLED = 1 * 2 ^ 21
|
|
|
|
|
CONDITION_CURSED = 1 * 2 ^ 22
|
|
|
|
|
CONDITION_EXHAUST_COMBAT = 1 * 2 ^ 23 -- unused
|
2024-06-06 20:25:33 -03:00
|
|
|
CONDITION_EXHAUST_HEAL = 1 * 2 ^ 24 -- unused
|
2024-05-23 01:39:46 +02:00
|
|
|
CONDITION_PACIFIED = 1 * 2 ^ 25
|
|
|
|
|
CONDITION_SPELLCOOLDOWN = 1 * 2 ^ 26
|
|
|
|
|
CONDITION_SPELLGROUPCOOLDOWN = 1 * 2 ^ 27
|
|
|
|
|
CONDITION_ROOT = 1 * 2 ^ 28
|
|
|
|
|
CONDITION_MANASHIELD_BREAKABLE = 1 * 2 ^ 29
|
|
|
|
|
|
|
|
|
|
CONDITION_PARAM_OWNER = 1
|
|
|
|
|
CONDITION_PARAM_TICKS = 2
|
|
|
|
|
-- CONDITION_PARAM_OUTFIT = 3
|
|
|
|
|
CONDITION_PARAM_HEALTHGAIN = 4
|
|
|
|
|
CONDITION_PARAM_HEALTHTICKS = 5
|
|
|
|
|
CONDITION_PARAM_MANAGAIN = 6
|
|
|
|
|
CONDITION_PARAM_MANATICKS = 7
|
|
|
|
|
CONDITION_PARAM_DELAYED = 8
|
|
|
|
|
CONDITION_PARAM_SPEED = 9
|
|
|
|
|
CONDITION_PARAM_LIGHT_LEVEL = 10
|
|
|
|
|
CONDITION_PARAM_LIGHT_COLOR = 11
|
|
|
|
|
CONDITION_PARAM_SOULGAIN = 12
|
|
|
|
|
CONDITION_PARAM_SOULTICKS = 13
|
|
|
|
|
CONDITION_PARAM_MINVALUE = 14
|
|
|
|
|
CONDITION_PARAM_MAXVALUE = 15
|
|
|
|
|
CONDITION_PARAM_STARTVALUE = 16
|
|
|
|
|
CONDITION_PARAM_TICKINTERVAL = 17
|
|
|
|
|
CONDITION_PARAM_FORCEUPDATE = 18
|
|
|
|
|
CONDITION_PARAM_SKILL_MELEE = 19
|
|
|
|
|
CONDITION_PARAM_SKILL_FIST = 20
|
|
|
|
|
CONDITION_PARAM_SKILL_CLUB = 21
|
|
|
|
|
CONDITION_PARAM_SKILL_SWORD = 22
|
|
|
|
|
CONDITION_PARAM_SKILL_AXE = 23
|
|
|
|
|
CONDITION_PARAM_SKILL_DISTANCE = 24
|
|
|
|
|
CONDITION_PARAM_SKILL_SHIELD = 25
|
|
|
|
|
CONDITION_PARAM_SKILL_FISHING = 26
|
|
|
|
|
CONDITION_PARAM_STAT_MAXHITPOINTS = 27
|
|
|
|
|
CONDITION_PARAM_STAT_MAXMANAPOINTS = 28
|
|
|
|
|
-- CONDITION_PARAM_STAT_SOULPOINTS = 29
|
|
|
|
|
CONDITION_PARAM_STAT_MAGICPOINTS = 30
|
|
|
|
|
CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT = 31
|
|
|
|
|
CONDITION_PARAM_STAT_MAXMANAPOINTSPERCENT = 32
|
|
|
|
|
-- CONDITION_PARAM_STAT_SOULPOINTSPERCENT = 33
|
|
|
|
|
CONDITION_PARAM_STAT_MAGICPOINTSPERCENT = 34
|
|
|
|
|
CONDITION_PARAM_PERIODICDAMAGE = 35
|
|
|
|
|
CONDITION_PARAM_SKILL_MELEEPERCENT = 36
|
|
|
|
|
CONDITION_PARAM_SKILL_FISTPERCENT = 37
|
|
|
|
|
CONDITION_PARAM_SKILL_CLUBPERCENT = 38
|
|
|
|
|
CONDITION_PARAM_SKILL_SWORDPERCENT = 39
|
|
|
|
|
CONDITION_PARAM_SKILL_AXEPERCENT = 40
|
|
|
|
|
CONDITION_PARAM_SKILL_DISTANCEPERCENT = 41
|
|
|
|
|
CONDITION_PARAM_SKILL_SHIELDPERCENT = 42
|
|
|
|
|
CONDITION_PARAM_SKILL_FISHINGPERCENT = 43
|
|
|
|
|
CONDITION_PARAM_BUFF_SPELL = 44
|
|
|
|
|
CONDITION_PARAM_SUBID = 45
|
|
|
|
|
CONDITION_PARAM_FIELD = 46
|
|
|
|
|
CONDITION_PARAM_DISABLE_DEFENSE = 47
|
|
|
|
|
CONDITION_PARAM_SPECIALSKILL_CRITICALHITCHANCE = 48
|
|
|
|
|
CONDITION_PARAM_SPECIALSKILL_CRITICALHITAMOUNT = 49
|
|
|
|
|
CONDITION_PARAM_SPECIALSKILL_LIFELEECHCHANCE = 50
|
|
|
|
|
CONDITION_PARAM_SPECIALSKILL_LIFELEECHAMOUNT = 51
|
|
|
|
|
CONDITION_PARAM_SPECIALSKILL_MANALEECHCHANCE = 52
|
|
|
|
|
CONDITION_PARAM_SPECIALSKILL_MANALEECHAMOUNT = 53
|
|
|
|
|
CONDITION_PARAM_AGGRESSIVE = 54
|
|
|
|
|
CONDITION_PARAM_DRUNKENNESS = 55
|
|
|
|
|
CONDITION_PARAM_MANASHIELD_BREAKABLE = 56
|
|
|
|
|
|
|
|
|
|
WEAPON_NONE = 0
|
|
|
|
|
WEAPON_SWORD = 1
|
|
|
|
|
WEAPON_CLUB = 2
|
|
|
|
|
WEAPON_AXE = 3
|
|
|
|
|
WEAPON_SHIELD = 4
|
|
|
|
|
WEAPON_DISTANCE = 5
|
|
|
|
|
WEAPON_WAND = 6
|
|
|
|
|
WEAPON_AMMO = 7
|
2024-06-06 20:25:33 -03:00
|
|
|
WEAPON_QUIVER = 8
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
SLOTP_WHEREEVER = 0xFFFFFFFF
|
|
|
|
|
SLOTP_HEAD = 1 * 2 ^ 0
|
|
|
|
|
SLOTP_NECKLACE = 1 * 2 ^ 1
|
|
|
|
|
SLOTP_BACKPACK = 1 * 2 ^ 2
|
|
|
|
|
SLOTP_ARMOR = 1 * 2 ^ 3
|
|
|
|
|
SLOTP_RIGHT = 1 * 2 ^ 4
|
|
|
|
|
SLOTP_LEFT = 1 * 2 ^ 5
|
|
|
|
|
SLOTP_LEGS = 1 * 2 ^ 6
|
|
|
|
|
SLOTP_FEET = 1 * 2 ^ 7
|
|
|
|
|
SLOTP_RING = 1 * 2 ^ 8
|
|
|
|
|
SLOTP_AMMO = 1 * 2 ^ 9
|
|
|
|
|
SLOTP_DEPOT = 1 * 2 ^ 10
|
|
|
|
|
SLOTP_TWO_HAND = 1 * 2 ^ 11
|
|
|
|
|
SLOTP_HAND = SLOTP_LEFT or SLOTP_RIGHT
|
|
|
|
|
|
|
|
|
|
ORIGIN_NONE = 0
|
|
|
|
|
ORIGIN_CONDITION = 1
|
|
|
|
|
ORIGIN_SPELL = 2
|
|
|
|
|
ORIGIN_MELEE = 3
|
|
|
|
|
ORIGIN_RANGED = 4
|
|
|
|
|
ORIGIN_WAND = 5
|
2024-06-06 20:25:33 -03:00
|
|
|
ORIGIN_REFLECT = 6
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
PLAYERSEX_FEMALE = 0
|
|
|
|
|
PLAYERSEX_MALE = 1
|
|
|
|
|
|
|
|
|
|
CONDITIONID_DEFAULT = -1
|
|
|
|
|
CONDITIONID_COMBAT = 0
|
|
|
|
|
CONDITIONID_HEAD = 1
|
|
|
|
|
CONDITIONID_NECKLACE = 2
|
|
|
|
|
CONDITIONID_BACKPACK = 3
|
|
|
|
|
CONDITIONID_ARMOR = 4
|
|
|
|
|
CONDITIONID_RIGHT = 5
|
|
|
|
|
CONDITIONID_LEFT = 6
|
|
|
|
|
CONDITIONID_LEGS = 7
|
|
|
|
|
CONDITIONID_FEET = 8
|
|
|
|
|
CONDITIONID_RING = 9
|
|
|
|
|
CONDITIONID_AMMO = 10
|
|
|
|
|
|
|
|
|
|
MAPMARK_TICK = 0
|
|
|
|
|
MAPMARK_QUESTION = 1
|
|
|
|
|
MAPMARK_EXCLAMATION = 2
|
|
|
|
|
MAPMARK_STAR = 3
|
|
|
|
|
MAPMARK_CROSS = 4
|
|
|
|
|
MAPMARK_TEMPLE = 5
|
|
|
|
|
MAPMARK_KISS = 6
|
|
|
|
|
MAPMARK_SHOVEL = 7
|
|
|
|
|
MAPMARK_SWORD = 8
|
|
|
|
|
MAPMARK_FLAG = 9
|
|
|
|
|
MAPMARK_LOCK = 10
|
|
|
|
|
MAPMARK_BAG = 11
|
|
|
|
|
MAPMARK_SKULL = 12
|
|
|
|
|
MAPMARK_DOLLAR = 13
|
|
|
|
|
MAPMARK_REDNORTH = 14
|
|
|
|
|
MAPMARK_REDSOUTH = 15
|
|
|
|
|
MAPMARK_REDEAST = 16
|
|
|
|
|
MAPMARK_REDWEST = 17
|
|
|
|
|
MAPMARK_GREENNORTH = 18
|
|
|
|
|
MAPMARK_GREENSOUTH = 19
|
|
|
|
|
|
|
|
|
|
RELOAD_TYPE_ALL = 0
|
|
|
|
|
RELOAD_TYPE_ACTIONS = 1
|
|
|
|
|
RELOAD_TYPE_CHAT = 2
|
|
|
|
|
RELOAD_TYPE_CONFIG = 3
|
|
|
|
|
RELOAD_TYPE_CREATURESCRIPTS = 4
|
|
|
|
|
RELOAD_TYPE_EVENTS = 5
|
|
|
|
|
RELOAD_TYPE_GLOBAL = 6
|
|
|
|
|
RELOAD_TYPE_GLOBALEVENTS = 7
|
|
|
|
|
RELOAD_TYPE_ITEMS = 8
|
|
|
|
|
RELOAD_TYPE_MONSTERS = 9
|
|
|
|
|
RELOAD_TYPE_MOUNTS = 10
|
|
|
|
|
RELOAD_TYPE_MOVEMENTS = 11
|
|
|
|
|
RELOAD_TYPE_NPCS = 12
|
|
|
|
|
RELOAD_TYPE_QUESTS = 13
|
2024-06-06 20:25:33 -03:00
|
|
|
RELOAD_TYPE_SCRIPTS = 14
|
|
|
|
|
RELOAD_TYPE_SPELLS = 15
|
|
|
|
|
RELOAD_TYPE_TALKACTIONS = 16
|
|
|
|
|
RELOAD_TYPE_WEAPONS = 17
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
PlayerFlag_CannotUseCombat = 1 * 2 ^ 0
|
|
|
|
|
PlayerFlag_CannotAttackPlayer = 1 * 2 ^ 1
|
|
|
|
|
PlayerFlag_CannotAttackMonster = 1 * 2 ^ 2
|
|
|
|
|
PlayerFlag_CannotBeAttacked = 1 * 2 ^ 3
|
|
|
|
|
PlayerFlag_CanConvinceAll = 1 * 2 ^ 4
|
|
|
|
|
PlayerFlag_CanSummonAll = 1 * 2 ^ 5
|
|
|
|
|
PlayerFlag_CanIllusionAll = 1 * 2 ^ 6
|
|
|
|
|
PlayerFlag_CanSenseInvisibility = 1 * 2 ^ 7
|
|
|
|
|
PlayerFlag_IgnoredByMonsters = 1 * 2 ^ 8
|
|
|
|
|
PlayerFlag_NotGainInFight = 1 * 2 ^ 9
|
|
|
|
|
PlayerFlag_HasInfiniteMana = 1 * 2 ^ 10
|
|
|
|
|
PlayerFlag_HasInfiniteSoul = 1 * 2 ^ 11
|
|
|
|
|
PlayerFlag_HasNoExhaustion = 1 * 2 ^ 12
|
|
|
|
|
PlayerFlag_CannotUseSpells = 1 * 2 ^ 13
|
|
|
|
|
PlayerFlag_CannotPickupItem = 1 * 2 ^ 14
|
|
|
|
|
PlayerFlag_CanAlwaysLogin = 1 * 2 ^ 15
|
|
|
|
|
PlayerFlag_CanBroadcast = 1 * 2 ^ 16
|
|
|
|
|
PlayerFlag_CanEditHouses = 1 * 2 ^ 17
|
|
|
|
|
PlayerFlag_CannotBeBanned = 1 * 2 ^ 18
|
|
|
|
|
PlayerFlag_CannotBePushed = 1 * 2 ^ 19
|
|
|
|
|
PlayerFlag_HasInfiniteCapacity = 1 * 2 ^ 20
|
|
|
|
|
PlayerFlag_CanPushAllCreatures = 1 * 2 ^ 21
|
|
|
|
|
PlayerFlag_CanTalkRedPrivate = 1 * 2 ^ 22
|
|
|
|
|
PlayerFlag_CanTalkRedChannel = 1 * 2 ^ 23
|
|
|
|
|
PlayerFlag_TalkOrangeHelpChannel = 1 * 2 ^ 24
|
|
|
|
|
PlayerFlag_NotGainExperience = 1 * 2 ^ 25
|
|
|
|
|
PlayerFlag_NotGainMana = 1 * 2 ^ 26
|
|
|
|
|
PlayerFlag_NotGainHealth = 1 * 2 ^ 27
|
|
|
|
|
PlayerFlag_NotGainSkill = 1 * 2 ^ 28
|
|
|
|
|
PlayerFlag_SetMaxSpeed = 1 * 2 ^ 29
|
|
|
|
|
PlayerFlag_SpecialVIP = 1 * 2 ^ 30
|
|
|
|
|
PlayerFlag_NotGenerateLoot = 1 * 2 ^ 31
|
2024-06-06 20:25:33 -03:00
|
|
|
-- PlayerFlag with exponent 32 existed but was deprecated (feature dropped from client).
|
2024-05-23 01:39:46 +02:00
|
|
|
PlayerFlag_IgnoreProtectionZone = 1 * 2 ^ 33
|
|
|
|
|
PlayerFlag_IgnoreSpellCheck = 1 * 2 ^ 34
|
|
|
|
|
PlayerFlag_IgnoreWeaponCheck = 1 * 2 ^ 35
|
|
|
|
|
PlayerFlag_CannotBeMuted = 1 * 2 ^ 36
|
|
|
|
|
PlayerFlag_IsAlwaysPremium = 1 * 2 ^ 37
|
|
|
|
|
PlayerFlag_IgnoreYellCheck = 1 * 2 ^ 38
|
|
|
|
|
PlayerFlag_IgnoreSendPrivateCheck = 1 * 2 ^ 39
|
|
|
|
|
|
|
|
|
|
ITEM_ATTRIBUTE_NONE = 0
|
|
|
|
|
|
|
|
|
|
ITEM_ATTRIBUTE_ACTIONID = 1 * 2 ^ 0
|
|
|
|
|
ITEM_ATTRIBUTE_UNIQUEID = 1 * 2 ^ 1
|
|
|
|
|
ITEM_ATTRIBUTE_DESCRIPTION = 1 * 2 ^ 2
|
|
|
|
|
ITEM_ATTRIBUTE_TEXT = 1 * 2 ^ 3
|
|
|
|
|
ITEM_ATTRIBUTE_DATE = 1 * 2 ^ 4
|
|
|
|
|
ITEM_ATTRIBUTE_WRITER = 1 * 2 ^ 5
|
|
|
|
|
ITEM_ATTRIBUTE_NAME = 1 * 2 ^ 6
|
|
|
|
|
ITEM_ATTRIBUTE_ARTICLE = 1 * 2 ^ 7
|
|
|
|
|
ITEM_ATTRIBUTE_PLURALNAME = 1 * 2 ^ 8
|
|
|
|
|
ITEM_ATTRIBUTE_WEIGHT = 1 * 2 ^ 9
|
|
|
|
|
ITEM_ATTRIBUTE_ATTACK = 1 * 2 ^ 10
|
|
|
|
|
ITEM_ATTRIBUTE_DEFENSE = 1 * 2 ^ 11
|
|
|
|
|
ITEM_ATTRIBUTE_EXTRADEFENSE = 1 * 2 ^ 12
|
|
|
|
|
ITEM_ATTRIBUTE_ARMOR = 1 * 2 ^ 13
|
|
|
|
|
ITEM_ATTRIBUTE_HITCHANCE = 1 * 2 ^ 14
|
|
|
|
|
ITEM_ATTRIBUTE_SHOOTRANGE = 1 * 2 ^ 15
|
|
|
|
|
ITEM_ATTRIBUTE_OWNER = 1 * 2 ^ 16
|
|
|
|
|
ITEM_ATTRIBUTE_DURATION = 1 * 2 ^ 17
|
|
|
|
|
ITEM_ATTRIBUTE_DECAYSTATE = 1 * 2 ^ 18
|
|
|
|
|
ITEM_ATTRIBUTE_CORPSEOWNER = 1 * 2 ^ 19
|
|
|
|
|
ITEM_ATTRIBUTE_CHARGES = 1 * 2 ^ 20
|
|
|
|
|
ITEM_ATTRIBUTE_FLUIDTYPE = 1 * 2 ^ 21
|
|
|
|
|
ITEM_ATTRIBUTE_DOORID = 1 * 2 ^ 22
|
|
|
|
|
ITEM_ATTRIBUTE_DECAYTO = 1 * 2 ^ 23
|
|
|
|
|
ITEM_ATTRIBUTE_WRAPID = 1 * 2 ^ 24
|
|
|
|
|
ITEM_ATTRIBUTE_STOREITEM = 1 * 2 ^ 25
|
|
|
|
|
ITEM_ATTRIBUTE_ATTACK_SPEED = 1 * 2 ^ 26
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_ATTRIBUTE_OPENCONTAINER = 1 * 2 ^ 27
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_ATTRIBUTE_DURATION_MIN = ITEM_ATTRIBUTE_DURATION
|
|
|
|
|
ITEM_ATTRIBUTE_DURATION_MAX = 1 * 2 ^ 27
|
|
|
|
|
ITEM_ATTRIBUTE_CUSTOM = 1 * 2 ^ 31
|
|
|
|
|
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_BROWSEFIELD = 460
|
|
|
|
|
ITEM_DECORATION_KIT = 26054
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_FIREFIELD_PVP_FULL = 1487
|
|
|
|
|
ITEM_FIREFIELD_PVP_MEDIUM = 1488
|
|
|
|
|
ITEM_FIREFIELD_PVP_SMALL = 1489
|
|
|
|
|
ITEM_FIREFIELD_PERSISTENT_FULL = 1492
|
|
|
|
|
ITEM_FIREFIELD_PERSISTENT_MEDIUM = 1493
|
|
|
|
|
ITEM_FIREFIELD_PERSISTENT_SMALL = 1494
|
|
|
|
|
ITEM_FIREFIELD_NOPVP = 1500
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_FIREFIELD_NOPVP_MEDIUM = 1501
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_POISONFIELD_PVP = 1490
|
|
|
|
|
ITEM_POISONFIELD_PERSISTENT = 1496
|
|
|
|
|
ITEM_POISONFIELD_NOPVP = 1503
|
|
|
|
|
ITEM_ENERGYFIELD_PVP = 1491
|
|
|
|
|
ITEM_ENERGYFIELD_PERSISTENT = 1495
|
|
|
|
|
ITEM_ENERGYFIELD_NOPVP = 1504
|
|
|
|
|
ITEM_MAGICWALL = 1497
|
|
|
|
|
ITEM_MAGICWALL_PERSISTENT = 1498
|
|
|
|
|
ITEM_MAGICWALL_SAFE = 11098
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_MAGICWALL_NOPVP = 20669
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_WILDGROWTH = 1499
|
|
|
|
|
ITEM_WILDGROWTH_PERSISTENT = 2721
|
|
|
|
|
ITEM_WILDGROWTH_SAFE = 11099
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_WILDGROWTH_NOPVP = 20670
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_BAG = 1987
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_SHOPPING_BAG = 23782
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_GOLD_COIN = 2148
|
|
|
|
|
ITEM_PLATINUM_COIN = 2152
|
|
|
|
|
ITEM_CRYSTAL_COIN = 2160
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_STORE_COIN = 24774
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_DEPOT = 2594
|
|
|
|
|
ITEM_LOCKER = 2589
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_INBOX = 14404
|
|
|
|
|
ITEM_MARKET = 14405
|
|
|
|
|
ITEM_STORE_INBOX = 26052
|
|
|
|
|
ITEM_DEPOT_BOX_I = 25453
|
|
|
|
|
ITEM_DEPOT_BOX_II = 25454
|
|
|
|
|
ITEM_DEPOT_BOX_III = 25455
|
|
|
|
|
ITEM_DEPOT_BOX_IV = 25456
|
|
|
|
|
ITEM_DEPOT_BOX_V = 25457
|
|
|
|
|
ITEM_DEPOT_BOX_VI = 25458
|
|
|
|
|
ITEM_DEPOT_BOX_VII = 25459
|
|
|
|
|
ITEM_DEPOT_BOX_VIII = 25460
|
|
|
|
|
ITEM_DEPOT_BOX_IX = 25461
|
|
|
|
|
ITEM_DEPOT_BOX_X = 25462
|
|
|
|
|
ITEM_DEPOT_BOX_XI = 25463
|
|
|
|
|
ITEM_DEPOT_BOX_XII = 25464
|
|
|
|
|
ITEM_DEPOT_BOX_XIII = 25465
|
|
|
|
|
ITEM_DEPOT_BOX_XIV = 25466
|
|
|
|
|
ITEM_DEPOT_BOX_XV = 25467
|
|
|
|
|
ITEM_DEPOT_BOX_XVI = 25468
|
|
|
|
|
ITEM_DEPOT_BOX_XVII = 25469
|
|
|
|
|
ITEM_DEPOT_BOX_XVIII = 34571
|
|
|
|
|
ITEM_DEPOT_BOX_XIX = 44714
|
|
|
|
|
ITEM_DEPOT_BOX_XX = 44715
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_MALE_CORPSE = 3058
|
|
|
|
|
ITEM_FEMALE_CORPSE = 3065
|
|
|
|
|
ITEM_FULLSPLASH = 2016
|
|
|
|
|
ITEM_SMALLSPLASH = 2019
|
|
|
|
|
ITEM_PARCEL = 2595
|
|
|
|
|
ITEM_LETTER = 2597
|
|
|
|
|
ITEM_LETTER_STAMPED = 2598
|
|
|
|
|
ITEM_LABEL = 2599
|
|
|
|
|
ITEM_AMULETOFLOSS = 2173
|
|
|
|
|
ITEM_DOCUMENT_RO = 1968
|
|
|
|
|
|
2024-06-06 20:25:33 -03:00
|
|
|
RESOURCE_BANK_BALANCE = 0
|
|
|
|
|
RESOURCE_GOLD_EQUIPPED = 1
|
|
|
|
|
RESOURCE_PREY_WILDCARDS = 10
|
|
|
|
|
RESOURCE_DAILYREWARD_STREAK = 20
|
|
|
|
|
RESOURCE_DAILYREWARD_JOKERS = 21
|
2024-05-23 01:39:46 +02:00
|
|
|
|
2024-06-06 20:25:33 -03:00
|
|
|
CLIENTOS_NONE = 0
|
2024-05-23 01:39:46 +02:00
|
|
|
CLIENTOS_LINUX = 1
|
|
|
|
|
CLIENTOS_WINDOWS = 2
|
|
|
|
|
CLIENTOS_FLASH = 3
|
2024-06-06 20:25:33 -03:00
|
|
|
CLIENTOS_QT_LINUX = 4
|
|
|
|
|
CLIENTOS_QT_WINDOWS = 5
|
|
|
|
|
CLIENTOS_QT_MAC = 6
|
|
|
|
|
CLIENTOS_QT_LINUX2 = 7
|
2024-05-23 01:39:46 +02:00
|
|
|
CLIENTOS_OTCLIENT_LINUX = 10
|
|
|
|
|
CLIENTOS_OTCLIENT_WINDOWS = 11
|
|
|
|
|
CLIENTOS_OTCLIENT_MAC = 12
|
|
|
|
|
|
|
|
|
|
SKILL_FIST = 0
|
|
|
|
|
SKILL_CLUB = 1
|
|
|
|
|
SKILL_SWORD = 2
|
|
|
|
|
SKILL_AXE = 3
|
|
|
|
|
SKILL_DISTANCE = 4
|
|
|
|
|
SKILL_SHIELD = 5
|
|
|
|
|
SKILL_FISHING = 6
|
|
|
|
|
SKILL_MAGLEVEL = 7
|
|
|
|
|
SKILL_LEVEL = 8
|
2024-06-06 20:25:33 -03:00
|
|
|
SKILL_FIRST = SKILL_FIST
|
|
|
|
|
SKILL_LAST = SKILL_FISHING
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
---@enum configKeys
|
|
|
|
|
---@type table<string, any>
|
|
|
|
|
configKeys = {
|
2024-06-06 20:25:33 -03:00
|
|
|
-- ConfigKeysBoolean
|
|
|
|
|
ALLOW_CHANGEOUTFIT = 0,
|
|
|
|
|
ONE_PLAYER_ON_ACCOUNT = 1,
|
|
|
|
|
AIMBOT_HOTKEY_ENABLED = 2,
|
|
|
|
|
REMOVE_RUNE_CHARGES = 3,
|
|
|
|
|
REMOVE_WEAPON_AMMO = 4,
|
|
|
|
|
REMOVE_WEAPON_CHARGES = 5,
|
|
|
|
|
REMOVE_POTION_CHARGES = 6,
|
|
|
|
|
EXPERIENCE_FROM_PLAYERS = 7,
|
|
|
|
|
FREE_PREMIUM = 8,
|
|
|
|
|
REPLACE_KICK_ON_LOGIN = 9,
|
|
|
|
|
ALLOW_CLONES = 10,
|
|
|
|
|
ALLOW_WALKTHROUGH = 11,
|
|
|
|
|
BIND_ONLY_GLOBAL_ADDRESS = 12,
|
|
|
|
|
OPTIMIZE_DATABASE = 13,
|
|
|
|
|
MARKET_PREMIUM = 14,
|
|
|
|
|
EMOTE_SPELLS = 15,
|
|
|
|
|
STAMINA_SYSTEM = 16,
|
|
|
|
|
WARN_UNSAFE_SCRIPTS = 17,
|
|
|
|
|
CONVERT_UNSAFE_SCRIPTS = 18,
|
|
|
|
|
CLASSIC_EQUIPMENT_SLOTS = 19,
|
|
|
|
|
CLASSIC_ATTACK_SPEED = 20,
|
|
|
|
|
SCRIPTS_CONSOLE_LOGS = 21,
|
|
|
|
|
SERVER_SAVE_NOTIFY_MESSAGE = 22,
|
|
|
|
|
SERVER_SAVE_CLEAN_MAP = 23,
|
|
|
|
|
SERVER_SAVE_CLOSE = 24,
|
|
|
|
|
SERVER_SAVE_SHUTDOWN = 25,
|
|
|
|
|
ONLINE_OFFLINE_CHARLIST = 26,
|
|
|
|
|
YELL_ALLOW_PREMIUM = 27,
|
|
|
|
|
PREMIUM_TO_SEND_PRIVATE = 28,
|
|
|
|
|
FORCE_MONSTERTYPE_LOAD = 29,
|
2024-09-25 19:22:30 -03:00
|
|
|
HOUSE_OWNED_BY_ACCOUNT = 30,
|
|
|
|
|
CLEAN_PROTECTION_ZONES = 31,
|
|
|
|
|
HOUSE_DOOR_SHOW_PRICE = 32,
|
|
|
|
|
ONLY_INVITED_CAN_MOVE_HOUSE_ITEMS = 33,
|
|
|
|
|
REMOVE_ON_DESPAWN = 34,
|
|
|
|
|
TWO_FACTOR_AUTH = 35,
|
|
|
|
|
MANASHIELD_BREAKABLE = 36,
|
|
|
|
|
CHECK_DUPLICATE_STORAGE_KEYS = 37,
|
|
|
|
|
MONSTER_OVERSPAWN = 38,
|
2024-06-06 20:25:33 -03:00
|
|
|
|
|
|
|
|
-- ConfigKeysString
|
|
|
|
|
MAP_NAME = 0,
|
|
|
|
|
HOUSE_RENT_PERIOD = 1,
|
|
|
|
|
SERVER_NAME = 2,
|
|
|
|
|
OWNER_NAME = 3,
|
|
|
|
|
OWNER_EMAIL = 4,
|
|
|
|
|
URL = 5,
|
|
|
|
|
LOCATION = 6,
|
|
|
|
|
IP = 7,
|
|
|
|
|
WORLD_TYPE = 8,
|
|
|
|
|
MYSQL_HOST = 9,
|
|
|
|
|
MYSQL_USER = 10,
|
|
|
|
|
MYSQL_PASS = 11,
|
|
|
|
|
MYSQL_DB = 12,
|
|
|
|
|
MYSQL_SOCK = 13,
|
|
|
|
|
DEFAULT_PRIORITY = 14,
|
|
|
|
|
MAP_AUTHOR = 15,
|
|
|
|
|
CONFIG_FILE = 16,
|
|
|
|
|
|
|
|
|
|
-- ConfigKeysInteger
|
|
|
|
|
SQL_PORT = 0,
|
|
|
|
|
MAX_PLAYERS = 1,
|
|
|
|
|
PZ_LOCKED = 2,
|
|
|
|
|
DEFAULT_DESPAWNRANGE = 3,
|
|
|
|
|
DEFAULT_DESPAWNRADIUS = 4,
|
|
|
|
|
DEFAULT_WALKTOSPAWNRADIUS = 5,
|
|
|
|
|
RATE_EXPERIENCE = 6,
|
|
|
|
|
RATE_SKILL = 7,
|
|
|
|
|
RATE_LOOT = 8,
|
|
|
|
|
RATE_MAGIC = 9,
|
|
|
|
|
RATE_SPAWN = 10,
|
|
|
|
|
HOUSE_PRICE = 11,
|
|
|
|
|
KILLS_TO_RED = 12,
|
|
|
|
|
KILLS_TO_BLACK = 13,
|
|
|
|
|
MAX_MESSAGEBUFFER = 14,
|
|
|
|
|
ACTIONS_DELAY_INTERVAL = 15,
|
|
|
|
|
EX_ACTIONS_DELAY_INTERVAL = 16,
|
|
|
|
|
KICK_AFTER_MINUTES = 17,
|
|
|
|
|
PROTECTION_LEVEL = 18,
|
|
|
|
|
DEATH_LOSE_PERCENT = 19,
|
|
|
|
|
STATUSQUERY_TIMEOUT = 20,
|
|
|
|
|
FRAG_TIME = 21,
|
|
|
|
|
WHITE_SKULL_TIME = 22,
|
|
|
|
|
GAME_PORT = 23,
|
2025-11-22 14:20:38 -03:00
|
|
|
STATUS_PORT = 24,
|
|
|
|
|
HTTP_PORT = 25,
|
|
|
|
|
HTTP_WORKERS = 26,
|
|
|
|
|
STAIRHOP_DELAY = 27,
|
|
|
|
|
MARKET_OFFER_DURATION = 28,
|
|
|
|
|
CHECK_EXPIRED_MARKET_OFFERS_EACH_MINUTES = 29,
|
|
|
|
|
MAX_MARKET_OFFERS_AT_A_TIME_PER_PLAYER = 30,
|
|
|
|
|
EXP_FROM_PLAYERS_LEVEL_RANGE = 31,
|
|
|
|
|
MAX_PACKETS_PER_SECOND = 32,
|
|
|
|
|
SERVER_SAVE_NOTIFY_DURATION = 33,
|
|
|
|
|
YELL_MINIMUM_LEVEL = 34,
|
|
|
|
|
MINIMUM_LEVEL_TO_SEND_PRIVATE = 35,
|
|
|
|
|
VIP_FREE_LIMIT = 36,
|
|
|
|
|
VIP_PREMIUM_LIMIT = 37,
|
|
|
|
|
DEPOT_FREE_LIMIT = 38,
|
|
|
|
|
DEPOT_PREMIUM_LIMIT = 39,
|
|
|
|
|
QUEST_TRACKER_FREE_LIMIT = 40,
|
|
|
|
|
QUEST_TRACKER_PREMIUM_LIMIT = 41,
|
|
|
|
|
STAMINA_REGEN_MINUTE = 42,
|
|
|
|
|
STAMINA_REGEN_PREMIUM = 43,
|
2024-05-23 01:39:46 +02:00
|
|
|
}
|
|
|
|
|
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_TYPE_NONE = 0
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_TYPE_DEPOT = 1
|
|
|
|
|
ITEM_TYPE_MAILBOX = 2
|
|
|
|
|
ITEM_TYPE_TRASHHOLDER = 3
|
|
|
|
|
ITEM_TYPE_CONTAINER = 4
|
|
|
|
|
ITEM_TYPE_DOOR = 5
|
|
|
|
|
ITEM_TYPE_MAGICFIELD = 6
|
|
|
|
|
ITEM_TYPE_TELEPORT = 7
|
|
|
|
|
ITEM_TYPE_BED = 8
|
|
|
|
|
ITEM_TYPE_KEY = 9
|
|
|
|
|
ITEM_TYPE_RUNE = 10
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_TYPE_PODIUM = 11
|
|
|
|
|
ITEM_TYPE_LAST = 12
|
2024-05-23 01:39:46 +02:00
|
|
|
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_GROUP_NONE = 0
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_GROUP_GROUND = 1
|
|
|
|
|
ITEM_GROUP_CONTAINER = 2
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_GROUP_WEAPON = 3 -- deprecated
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_GROUP_AMMUNITION = 4 -- deprecated
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_GROUP_ARMOR = 5 -- deprecated
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_GROUP_CHARGES = 6
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_GROUP_TELEPORT = 7 -- deprecated
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_GROUP_MAGICFIELD = 8 -- deprecated
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_GROUP_WRITEABLE = 9 -- deprecated
|
|
|
|
|
ITEM_GROUP_KEY = 10 -- deprecated
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_GROUP_SPLASH = 11
|
|
|
|
|
ITEM_GROUP_FLUID = 12
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_GROUP_DOOR = 13 -- deprecated
|
2024-05-23 01:39:46 +02:00
|
|
|
ITEM_GROUP_DEPRECATED = 14
|
2024-06-06 20:25:33 -03:00
|
|
|
ITEM_GROUP_PODIUM = 15
|
|
|
|
|
ITEM_GROUP_LAST = 16
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
AMMO_NONE = 0
|
|
|
|
|
AMMO_BOLT = 1
|
|
|
|
|
AMMO_ARROW = 2
|
|
|
|
|
AMMO_SPEAR = 3
|
|
|
|
|
AMMO_THROWINGSTAR = 4
|
|
|
|
|
AMMO_THROWINGKNIFE = 5
|
|
|
|
|
AMMO_STONE = 6
|
|
|
|
|
AMMO_SNOWBALL = 7
|
|
|
|
|
|
|
|
|
|
WIELDINFO_NONE = 0 * 2 ^ 0
|
|
|
|
|
WIELDINFO_LEVEL = 1 * 2 ^ 0
|
|
|
|
|
WIELDINFO_MAGLV = 1 * 2 ^ 1
|
|
|
|
|
WIELDINFO_VOCREQ = 1 * 2 ^ 2
|
|
|
|
|
WIELDINFO_PREMIUM = 1 * 2 ^ 3
|
|
|
|
|
|
|
|
|
|
TALKTYPE_SAY = 1
|
|
|
|
|
TALKTYPE_WHISPER = 2
|
|
|
|
|
TALKTYPE_YELL = 3
|
2024-06-06 20:25:33 -03:00
|
|
|
TALKTYPE_PRIVATE_FROM = 4 -- Received private message
|
|
|
|
|
TALKTYPE_PRIVATE_TO = 5 -- Sent private message
|
|
|
|
|
-- TALKTYPE_CHANNEL_M = 6 -- not working (?)
|
2024-05-23 01:39:46 +02:00
|
|
|
TALKTYPE_CHANNEL_Y = 7
|
2024-06-06 20:25:33 -03:00
|
|
|
TALKTYPE_CHANNEL_O = 8
|
|
|
|
|
TALKTYPE_SPELL = 9 -- Like SAY but with "casts" instead of "says"
|
|
|
|
|
TALKTYPE_PRIVATE_NP = 10 -- NPC speaking to player
|
|
|
|
|
TALKTYPE_PRIVATE_NP_CONSOLE = 11 -- NPC channel message, no text on game screen, for sendPrivateMessage use only
|
|
|
|
|
TALKTYPE_PRIVATE_PN = 12 -- Player speaking to NPC
|
|
|
|
|
TALKTYPE_BROADCAST = 13
|
|
|
|
|
TALKTYPE_CHANNEL_R1 = 14 -- red - #c text
|
|
|
|
|
TALKTYPE_PRIVATE_RED_FROM = 15 -- @name@text
|
|
|
|
|
TALKTYPE_PRIVATE_RED_TO = 16 -- @name@text
|
2024-05-23 01:39:46 +02:00
|
|
|
TALKTYPE_MONSTER_SAY = 36
|
|
|
|
|
TALKTYPE_MONSTER_YELL = 37
|
2024-06-06 20:25:33 -03:00
|
|
|
TALKTYPE_POTION = 52 -- Like MONSTER_SAY but can be disabled in client settings
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
VARIANT_NUMBER = 0
|
|
|
|
|
VARIANT_POSITION = 1
|
|
|
|
|
VARIANT_TARGETPOSITION = 2
|
|
|
|
|
VARIANT_STRING = 3
|
|
|
|
|
|
|
|
|
|
SPECIALSKILL_CRITICALHITCHANCE = 0
|
|
|
|
|
SPECIALSKILL_CRITICALHITAMOUNT = 1
|
|
|
|
|
SPECIALSKILL_LIFELEECHCHANCE = 2
|
|
|
|
|
SPECIALSKILL_LIFELEECHAMOUNT = 3
|
|
|
|
|
SPECIALSKILL_MANALEECHCHANCE = 4
|
|
|
|
|
SPECIALSKILL_MANALEECHAMOUNT = 5
|
2024-06-06 20:25:33 -03:00
|
|
|
SPECIALSKILL_FIRST = SPECIALSKILL_CRITICALHITCHANCE
|
|
|
|
|
SPECIALSKILL_LAST = SPECIALSKILL_MANALEECHAMOUNT
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
SPEECHBUBBLE_NONE = 0
|
|
|
|
|
SPEECHBUBBLE_NORMAL = 1
|
|
|
|
|
SPEECHBUBBLE_TRADE = 2
|
|
|
|
|
SPEECHBUBBLE_QUEST = 3
|
|
|
|
|
SPEECHBUBBLE_COMPASS = 4
|
|
|
|
|
SPEECHBUBBLE_NORMAL2 = 5
|
|
|
|
|
SPEECHBUBBLE_NORMAL3 = 6
|
|
|
|
|
SPEECHBUBBLE_HIRELING = 7
|
2024-06-06 20:25:33 -03:00
|
|
|
SPEECHBUBBLE_LAST = SPEECHBUBBLE_HIRELING
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
STAT_MAXHITPOINTS = 0
|
|
|
|
|
STAT_MAXMANAPOINTS = 1
|
2024-06-06 20:25:33 -03:00
|
|
|
STAT_SOULPOINTS = 2 -- unused
|
2024-05-23 01:39:46 +02:00
|
|
|
STAT_MAGICPOINTS = 3
|
2024-06-06 20:25:33 -03:00
|
|
|
STAT_FIRST = STAT_MAXHITPOINTS
|
|
|
|
|
STAT_LAST = STAT_MAGICPOINTS
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
MONSTERS_EVENT_NONE = 0
|
|
|
|
|
MONSTERS_EVENT_THINK = 1
|
|
|
|
|
MONSTERS_EVENT_APPEAR = 2
|
|
|
|
|
MONSTERS_EVENT_DISAPPEAR = 3
|
|
|
|
|
MONSTERS_EVENT_MOVE = 4
|
|
|
|
|
MONSTERS_EVENT_SAY = 5
|
|
|
|
|
|
|
|
|
|
CREATURETYPE_PLAYER = 0
|
|
|
|
|
CREATURETYPE_MONSTER = 1
|
|
|
|
|
CREATURETYPE_NPC = 2
|
|
|
|
|
CREATURETYPE_SUMMON_OWN = 3
|
|
|
|
|
CREATURETYPE_SUMMON_OTHERS = 4
|
2024-06-06 20:25:33 -03:00
|
|
|
CREATURETYPE_HIDDEN = 5
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
MAX_LOOTCHANCE = 100000
|
|
|
|
|
|
|
|
|
|
FLUID_EMPTY = 0
|
|
|
|
|
FLUID_BLUE = 1
|
|
|
|
|
FLUID_RED = 2
|
|
|
|
|
FLUID_BROWN = 3
|
|
|
|
|
FLUID_GREEN = 4
|
|
|
|
|
FLUID_YELLOW = 5
|
|
|
|
|
FLUID_WHITE = 6
|
|
|
|
|
FLUID_PURPLE = 7
|
2024-06-06 20:25:33 -03:00
|
|
|
FLUID_BLACK = 8
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
FLUID_NONE = FLUID_EMPTY
|
|
|
|
|
FLUID_WATER = FLUID_BLUE
|
|
|
|
|
FLUID_BLOOD = FLUID_RED
|
|
|
|
|
FLUID_BEER = FLUID_BROWN
|
|
|
|
|
FLUID_SLIME = FLUID_GREEN
|
|
|
|
|
FLUID_LEMONADE = FLUID_YELLOW
|
|
|
|
|
FLUID_MILK = FLUID_WHITE
|
|
|
|
|
FLUID_MANA = FLUID_PURPLE
|
2024-06-06 20:25:33 -03:00
|
|
|
FLUID_INK = FLUID_BLACK
|
2024-05-23 01:39:46 +02:00
|
|
|
FLUID_LIFE = FLUID_RED + 8
|
|
|
|
|
FLUID_OIL = FLUID_BROWN + 8
|
|
|
|
|
FLUID_URINE = FLUID_YELLOW + 8
|
|
|
|
|
FLUID_COCONUTMILK = FLUID_WHITE + 8
|
|
|
|
|
FLUID_WINE = FLUID_PURPLE + 8
|
|
|
|
|
FLUID_MUD = FLUID_BROWN + 16
|
|
|
|
|
FLUID_FRUITJUICE = FLUID_YELLOW + 16
|
|
|
|
|
FLUID_LAVA = FLUID_RED + 24
|
|
|
|
|
FLUID_RUM = FLUID_BROWN + 24
|
|
|
|
|
FLUID_SWAMP = FLUID_GREEN + 24
|
|
|
|
|
FLUID_TEA = FLUID_BROWN + 32
|
|
|
|
|
FLUID_MEAD = FLUID_BROWN + 40
|
|
|
|
|
|
|
|
|
|
RACE_NONE = 0
|
|
|
|
|
RACE_VENOM = 1
|
|
|
|
|
RACE_BLOOD = 2
|
|
|
|
|
RACE_UNDEAD = 3
|
|
|
|
|
RACE_FIRE = 4
|
|
|
|
|
RACE_ENERGY = 5
|
2024-06-06 20:25:33 -03:00
|
|
|
RACE_INK = 6
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
GAME_STATE_STARTUP = 0
|
|
|
|
|
GAME_STATE_INIT = 1
|
|
|
|
|
GAME_STATE_NORMAL = 2
|
|
|
|
|
GAME_STATE_CLOSED = 3
|
|
|
|
|
GAME_STATE_SHUTDOWN = 4
|
|
|
|
|
GAME_STATE_CLOSING = 5
|
|
|
|
|
GAME_STATE_MAINTAIN = 6
|
|
|
|
|
|
|
|
|
|
REPORT_TYPE_NAME = 0
|
|
|
|
|
REPORT_TYPE_STATEMENT = 1
|
|
|
|
|
REPORT_TYPE_BOT = 2
|
|
|
|
|
|
|
|
|
|
TEXTCOLOR_BLUE = 5
|
2024-06-06 20:25:33 -03:00
|
|
|
TEXTCOLOR_LIGHTGREEN = 30
|
|
|
|
|
TEXTCOLOR_LIGHTBLUE = 35
|
|
|
|
|
TEXTCOLOR_DARKGREY = 86
|
2024-05-23 01:39:46 +02:00
|
|
|
TEXTCOLOR_MAYABLUE = 95
|
|
|
|
|
TEXTCOLOR_DARKRED = 108
|
2024-06-06 20:25:33 -03:00
|
|
|
TEXTCOLOR_LIGHTGREY = 129
|
|
|
|
|
TEXTCOLOR_SKYBLUE = 143
|
2024-05-23 01:39:46 +02:00
|
|
|
TEXTCOLOR_PURPLE = 154
|
2024-06-06 20:25:33 -03:00
|
|
|
TEXTCOLOR_ELECTRICPURPLE = 155
|
2024-05-23 01:39:46 +02:00
|
|
|
TEXTCOLOR_RED = 180
|
2024-06-06 20:25:33 -03:00
|
|
|
TEXTCOLOR_PASTELRED = 194
|
|
|
|
|
TEXTCOLOR_ORANGE = 198
|
2024-05-23 01:39:46 +02:00
|
|
|
TEXTCOLOR_YELLOW = 210
|
2024-06-06 20:25:33 -03:00
|
|
|
TEXTCOLOR_WHITE_EXP = 215
|
2024-05-23 01:39:46 +02:00
|
|
|
TEXTCOLOR_NONE = 255
|
|
|
|
|
|
|
|
|
|
SPELLGROUP_NONE = 0
|
|
|
|
|
SPELLGROUP_ATTACK = 1
|
|
|
|
|
SPELLGROUP_HEALING = 2
|
|
|
|
|
SPELLGROUP_SUPPORT = 3
|
|
|
|
|
SPELLGROUP_SPECIAL = 4
|
2024-06-06 20:25:33 -03:00
|
|
|
-- SPELLGROUP_CONJURE = 5
|
|
|
|
|
SPELLGROUP_CRIPPLING = 6
|
|
|
|
|
SPELLGROUP_FOCUS = 7
|
|
|
|
|
SPELLGROUP_ULTIMATESTRIKES = 8
|
2024-05-23 01:39:46 +02:00
|
|
|
|
|
|
|
|
WORLD_TYPE_NO_PVP = 1
|
|
|
|
|
WORLD_TYPE_PVP = 2
|
|
|
|
|
WORLD_TYPE_PVP_ENFORCED = 3
|