Ir para o conteúdo

Funções de Monstro

gObjAddMonster(map)

Aloca um novo objeto de monstro no mapa fornecido. Retorna o índice do objeto ou -1.

local idx = gObjAddMonster(0) -- Allocate on Lorencia

gObjSpawnMonster(monsterClass, map, x, y)

Spawna um monstro totalmente inicializado nas coordenadas fornecidas. Cria uma entrada MONSTER_SET_BASE_INFO.

  • Retorna: number — índice do objeto, ou -1 em caso de falha
local idx = gObjSpawnMonster(275, 0, 130, 130) -- Spawn monster 275 at Lorencia
if idx >= 0 then
    LogAdd(LOG_GREEN, "Monster spawned at index " .. idx)
end

gObjSetPosMonster(aIndex, map, posNumber)

Define a posição de um monstro a partir dos dados MonsterSetBase.

gObjSetPosMonster(idx, 0, 0)

gObjSetMonster(aIndex, monsterClass)

Inicializa um objeto de monstro com os dados de sua classe (atributos, IA, etc.).

gObjSetMonster(idx, 275)

gObjMonsterRegen(lpObj)

Dispara o respawn/regeneração do monstro.

gObjMonsterRegen(monster)

gObjMonsterDie(lpObj, lpTarget)

Processa a morte do monstro (drops, experiência, etc.).

gObjMonsterDie(monster, killer)

gObjMonsterDieGiveItem(lpObj, lpTarget)

Trata drops de itens na morte do monstro.

gObjMonsterDieGiveItem(monster, killer)

gObjMonsterAttack(lpObj, lpTarget)

Executa o ataque físico de um monstro em um alvo.

gObjMonsterAttack(monster, player)

gObjMonsterMagicAttack(lpObj, skill, targetIndex)

Executa o ataque mágico de um monstro.

gObjMonsterMagicAttack(monster, 41, player.Index)

Rastreamento de Dano

Função Descrição
gObjMonsterInitHitDamage(lpObj) Inicializa tabela de dano
gObjMonsterResetHitDamage(lpObj) Reseta tabela de dano
gObjMonsterSetHitDamage(lpObj, aIndex, damage) Registra dano, retorna acumulado
gObjMonsterDelHitDamageUser(lpObj, aIndex) Remove um usuário do rastreamento
gObjMonsterDelHitDamageUserCustom(lpObj, aIndex) Variante customizada de remoção
gObjMonsterGetTopHitDamageUser(lpObj) Obtém índice do maior causador de dano
gObjMonsterGetTopHitDamageUserCustom(lpObj) Variante customizada
local accumulated = gObjMonsterSetHitDamage(boss, player.Index, 5000)
local topDealer = gObjMonsterGetTopHitDamageUser(boss)

gObjMonsterGetTopHitDamageParty(lpObj, partyNumber) / gObjMonsterGetTopHitDamagePartyCustom(lpObj, partyNumber)

Obtém o maior causador de dano e a quantidade de dano de um grupo.

  • Retorna: damage, topUserIndex (tupla)
local dmg, topIdx = gObjMonsterGetTopHitDamageParty(boss, player.PartyNumber)
LogAdd(LOG_BLUE, "Top party damage dealer: " .. topIdx .. " with " .. dmg)

IA e Comportamento de Monstros

Função Descrição
gObjMonsterProcess(lpObj) Loop principal de processamento de IA do monstro
gObjMonsterStateProc(lpObj) Processa máquina de estados do monstro
gObjMonsterStateProcCase0(lpObj) Processa estado ocioso especificamente
gObjMonsterMoveCheck(lpObj) Verifica se o monstro pode mover
gObjMonsterMoveAction(lpObj) Executa movimento do monstro
gObjMonsterBaseAct(lpObj) Comportamento base do monstro
gObjMonsterSearchEnemy(lpObj) Busca inimigos no viewport
gObjCheckMonsterSearchEnemy(lpObj) Valida resultados de busca de inimigos
gObjGuardSearchEnemy(lpObj) Busca de inimigos por NPC guarda
gObjMonsterGetTargetPos(lpObj) Obtém alvo de movimento do monstro
gObjMonsterViewportIsCharacter(lpObj) Verifica se viewport tem personagens
gObjIsBossMonster(aIndex) Verifica se o objeto é um chefe
gObjMonsterSelectSkillForMedusa(lpObj) Seleção de habilidade do chefe Medusa
if gObjIsBossMonster(monster.Index) then
    LogAdd(LOG_RED, "This is a boss monster!")
end

Funções de Armadilha de Monstros

Função Descrição
gObjMonsterTrapAct(lpObj) Executa comportamento de monstro armadilha
gObjTrapAttackEnemySearchX(lpObj) Busca inimigos no eixo X
gObjTrapAttackEnemySearchY(lpObj) Busca inimigos no eixo Y
gObjTrapAttackEnemySearch(lpObj) Busca geral de inimigos de armadilha
gObjTrapAttackEnemySearchRange(lpObj) Busca de armadilha baseada em alcance

Ações Especiais de Monstros

Função Descrição
gObjMonsterWeaknessAct(lpObj) Comportamento de debuff de fraqueza
gObjMonsterInnovationAct(lpObj) Comportamento de buff de inovação
gObjMonsterMagicFieldPoison(lpObj) Ataque de campo de veneno
gObjMonsterMagicFieldChilling(lpObj) Ataque de campo de congelamento
gObjMonsterMagicFieldBleeding(lpObj) Ataque de campo de sangramento
gObjMonsterUnleashMarvelMainEnergy(lpObj) Liberação de energia do chefe Marvel