Bỏ qua

Hàm quái vật

gObjAddMonster(map)

Cấp phát một đối tượng quái vật mới trên bản đồ cho trước. Trả về chỉ số đối tượng hoặc -1.

local idx = gObjAddMonster(0) -- Cấp phát trên Lorencia

gObjSpawnMonster(monsterClass, map, x, y)

Sinh ra quái vật đã khởi tạo đầy đủ tại tọa độ cho trước. Tạo mục MONSTER_SET_BASE_INFO.

  • Trả về: number — chỉ số đối tượng, hoặc -1 nếu thất bại
local idx = gObjSpawnMonster(275, 0, 130, 130) -- Sinh quái vật 275 tại Lorencia
if idx >= 0 then
    LogAdd(LOG_GREEN, "Monster spawned at index " .. idx)
end

gObjSetPosMonster(aIndex, map, posNumber)

Đặt vị trí quái vật từ dữ liệu MonsterSetBase.

gObjSetPosMonster(idx, 0, 0)

gObjSetMonster(aIndex, monsterClass)

Khởi tạo đối tượng quái vật với dữ liệu lớp (chỉ số, AI, v.v.).

gObjSetMonster(idx, 275)

gObjMonsterRegen(lpObj)

Kích hoạt hồi sinh/tái tạo quái vật.

gObjMonsterRegen(monster)

gObjMonsterDie(lpObj, lpTarget)

Xử lý tử vong quái vật (rơi đồ, kinh nghiệm, v.v.).

gObjMonsterDie(monster, killer)

gObjMonsterDieGiveItem(lpObj, lpTarget)

Xử lý rơi vật phẩm khi quái vật chết.

gObjMonsterDieGiveItem(monster, killer)

gObjMonsterAttack(lpObj, lpTarget)

Thực thi tấn công vật lý của quái vật lên mục tiêu.

gObjMonsterAttack(monster, player)

gObjMonsterMagicAttack(lpObj, skill, targetIndex)

Thực thi tấn công phép thuật của quái vật.

gObjMonsterMagicAttack(monster, 41, player.Index)

Theo dõi sát thương

Hàm Mô tả
gObjMonsterInitHitDamage(lpObj) Khởi tạo bảng sát thương
gObjMonsterResetHitDamage(lpObj) Đặt lại bảng sát thương
gObjMonsterSetHitDamage(lpObj, aIndex, damage) Ghi nhận sát thương, trả về tích lũy
gObjMonsterDelHitDamageUser(lpObj, aIndex) Xóa người dùng khỏi theo dõi
gObjMonsterDelHitDamageUserCustom(lpObj, aIndex) Biến thể xóa tùy chỉnh
gObjMonsterGetTopHitDamageUser(lpObj) Lấy chỉ số người gây sát thương cao nhất
gObjMonsterGetTopHitDamageUserCustom(lpObj) Biến thể tùy chỉnh
local accumulated = gObjMonsterSetHitDamage(boss, player.Index, 5000)
local topDealer = gObjMonsterGetTopHitDamageUser(boss)

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

Lấy người gây sát thương cao nhất và lượng sát thương từ tổ đội.

  • Trả về: damage, topUserIndex (tuple)
local dmg, topIdx = gObjMonsterGetTopHitDamageParty(boss, player.PartyNumber)
LogAdd(LOG_BLUE, "Top party damage dealer: " .. topIdx .. " with " .. dmg)

AI & Hành vi quái vật

Hàm Mô tả
gObjMonsterProcess(lpObj) Vòng lặp xử lý AI quái vật chính
gObjMonsterStateProc(lpObj) Xử lý máy trạng thái quái vật
gObjMonsterStateProcCase0(lpObj) Xử lý trạng thái nghỉ cụ thể
gObjMonsterMoveCheck(lpObj) Kiểm tra quái vật có thể di chuyển không
gObjMonsterMoveAction(lpObj) Thực thi di chuyển quái vật
gObjMonsterBaseAct(lpObj) Hành vi cơ bản quái vật
gObjMonsterSearchEnemy(lpObj) Tìm kẻ thù trong viewport
gObjCheckMonsterSearchEnemy(lpObj) Xác nhận kết quả tìm kẻ thù
gObjGuardSearchEnemy(lpObj) Tìm kẻ thù cho NPC lính gác
gObjMonsterGetTargetPos(lpObj) Lấy mục tiêu di chuyển của quái vật
gObjMonsterViewportIsCharacter(lpObj) Kiểm tra viewport có nhân vật không
gObjIsBossMonster(aIndex) Kiểm tra đối tượng có phải Boss không
gObjMonsterSelectSkillForMedusa(lpObj) Chọn kỹ năng Boss Medusa
if gObjIsBossMonster(monster.Index) then
    LogAdd(LOG_RED, "This is a boss monster!")
end

Hàm bẫy quái vật

Hàm Mô tả
gObjMonsterTrapAct(lpObj) Thực thi hành vi quái vật bẫy
gObjTrapAttackEnemySearchX(lpObj) Tìm kẻ thù trên trục X
gObjTrapAttackEnemySearchY(lpObj) Tìm kẻ thù trên trục Y
gObjTrapAttackEnemySearch(lpObj) Tìm kẻ thù bẫy chung
gObjTrapAttackEnemySearchRange(lpObj) Tìm bẫy dựa trên phạm vi

Hành động đặc biệt quái vật

Hàm Mô tả
gObjMonsterWeaknessAct(lpObj) Hành vi debuff suy yếu
gObjMonsterInnovationAct(lpObj) Hành vi buff đổi mới
gObjMonsterMagicFieldPoison(lpObj) Tấn công vùng độc
gObjMonsterMagicFieldChilling(lpObj) Tấn công vùng băng giá
gObjMonsterMagicFieldBleeding(lpObj) Tấn công vùng chảy máu
gObjMonsterUnleashMarvelMainEnergy(lpObj) Giải phóng năng lượng Boss Marvel