Hàm kỹ năng¶
Truy vấn thông tin kỹ năng¶
Tất cả nhận một index kỹ năng (number) và trả về number.
| Hàm | Mô tả |
|---|---|
GetSkillDamage(index) |
Sát thương cơ bản của kỹ năng |
GetSkillMana(index) |
Chi phí mana |
GetSkillBP(index) |
Chi phí AG (BP) |
GetSkillType(index) |
Kiểu kỹ năng (tấn công, buff, v.v.) |
GetSkillEffect(index) |
ID hiệu ứng mà kỹ năng áp dụng |
GetSkillDelay(index) |
Thời gian hồi chiêu |
GetSkillDamageType(index) |
Kiểu sát thương (vật lý, phép thuật, v.v.) |
GetElementImprintBonus(index) |
Giá trị thưởng nguyên tố |
GetAddDamageOption(index) |
Giá trị tùy chọn sát thương bổ sung |
local manaCost = GetSkillMana(41) -- Chi phí mana của kỹ năng 41
local dmg = GetSkillDamage(41)
LogAdd(LOG_BLUE, "Skill 41: damage=" .. dmg .. " mana=" .. manaCost)
Thông tin kỹ năng (phụ thuộc đối tượng)¶
| Hàm | Mô tả |
|---|---|
GetSkillRange(lpObj, index) |
Tầm hiệu quả cho người chơi |
GetSkillRadio(lpObj, index) |
Bán kính AoE cho người chơi |
GetSkillSlot(lpObj, index) |
Vị trí slot kỹ năng trong danh sách kỹ năng |
GetSkillMultiCount(lpObj, lpSkill) |
Số mục tiêu đánh nhiều lần |
GetSkillNumber(index, level)¶
Trả về số kỹ năng đã giải quyết cho kỹ năng cơ bản tại cấp độ cho trước.
GetSkillAngle(x, y, tx, ty)¶
Tính góc giữa hai vị trí (cho kỹ năng dạng hình nón).
- Trả về:
number— giá trị góc
AttackDirection(aIndex, bIndex)¶
Trả về byte hướng tấn công từ kẻ tấn công đến mục tiêu.
GetDirectionAboutByte(dir)¶
Chuyển đổi byte hướng sang giá trị hướng chuẩn hóa.
Kiểm tra yêu cầu kỹ năng¶
Tất cả trả về boolean.
| Hàm | Mô tả |
|---|---|
CheckSkillMana(lpObj, index) |
Có đủ mana |
CheckSkillBP(lpObj, index) |
Có đủ AG |
CheckSkillRange(lpObj, index, x, y, tx, ty) |
Mục tiêu trong tầm |
CheckSkillRadio(lpObj, index, x, y, tx, ty) |
Mục tiêu trong bán kính AoE |
CheckSkillDelay(lpObj, lpSkill, type) |
Kỹ năng không đang hồi chiêu |
CheckSkillTarget(lpObj, aIndex, bIndex, type) |
Mục tiêu hợp lệ |
CheckSkillRequireLevel(lpObj, index) |
Đủ yêu cầu cấp độ |
CheckSkillRequireEnergy(lpObj, index) |
Đủ yêu cầu năng lượng |
CheckSkillRequireLeadership(lpObj, index) |
Đủ yêu cầu lãnh đạo |
CheckSkillRequireKillPoint(lpObj, index) |
Đủ yêu cầu điểm giết |
CheckSkillRequireGuildStatus(lpObj, index) |
Đủ yêu cầu cấp bậc bang hội |
CheckSkillRequireClass(lpObj, index) |
Kỹ năng khả dụng cho lớp nhân vật |
CheckSkillRequireWeapon(lpObj, index) |
Có vũ khí yêu cầu được trang bị |
CheckAttackRange(nIndex, nTargetIndex, nDistance, nAttackType, nSubAttackType) |
Kiểm tra tầm tấn công |
if CheckSkillMana(player, 41) and CheckSkillBP(player, 41) then
LogAdd(LOG_GREEN, "Player can cast skill 41.")
end
IsSkillItem(index)¶
Trả về true nếu chỉ số kỹ năng thuộc về kỹ năng từ vật phẩm.
Thêm/Xóa kỹ năng¶
| Hàm | Mô tả | Trả về |
|---|---|---|
AddSkill(lpObj, index, level, group) |
Thêm hoặc cập nhật kỹ năng | number (slot) |
DelSkill(lpObj, index) |
Xóa kỹ năng | number |
GetSkill(lpObj, index) |
Lấy đối tượng CSkill | CSkill hoặc nil |
AddSkillWeapon(lpObj, index, level) |
Thêm kỹ năng vũ khí | number |
DelSkillWeapon(lpObj, index, level) |
Xóa kỹ năng vũ khí | number |
AddMasterSkill(lpObj, index, level) |
Thêm kỹ năng Master | number |
DelMasterSkill(lpObj, index) |
Xóa kỹ năng Master | number |
GetMasterSkill(lpObj, index) |
Lấy CSkill Master | CSkill hoặc nil |
AddEnhanceSkill(lpObj, index, level, group) |
Thêm kỹ năng Enhance (cấp 4) | number |
AddEnhancePassiveSkill(lpObj, index, level, group) |
Thêm kỹ năng Enhance thụ động | number |
GetEnhanceSkill(lpObj, index, group) |
Lấy CSkill Enhance | CSkill hoặc nil |
GetEnhancePassiveSkill(lpObj, index, group) |
Lấy CSkill Enhance thụ động | CSkill hoặc nil |
AddSkill(player, 41, 1, 0) -- Thêm kỹ năng 41 cấp 1
GCSkillListSend(player, 0) -- Làm mới danh sách kỹ năng client
Truy vấn cây kỹ năng¶
| Hàm | Mô tả | Trả về |
|---|---|---|
CheckMasterLevel(lpObj) |
Có thể nhận kinh nghiệm Master | boolean |
GetMasterSkillValue(lpObj, skillIndex) |
Giá trị tính toán của kỹ năng Master | number (float) |
GetMasterSkillLevel(lpObj, skillIndex) |
Cấp hiện tại của kỹ năng Master | number |
CheckEnhanceLevel(lpObj) |
Có thể sử dụng cây kỹ năng cấp 4 | boolean |
CheckAbilityLevel(lpObj) |
Có thể sử dụng Ability Enhancement (v1913+) | boolean |
GetEnhanceSkillValue(lpObj, skillIndex, group) |
Giá trị kỹ năng Enhance | number |
if CheckMasterLevel(player) then
local val = GetMasterSkillValue(player, 300)
LogAdd(LOG_BLUE, "Master skill 300 value: " .. val)
end
Hàm kỹ năng đặc biệt¶
SkillSpinStepExplosion(lpObj, lpTarget, skillIndex, damage)¶
Thực thi kỹ năng Spin Step Explosion (Rage Fighter). Khả dụng từ phiên bản S6 trở đi.
- Trả về:
boolean
SkillMagicGladiatorExplosion(lpObj, skillIndex, damage)¶
Thực thi kỹ năng MG Explosion AoE.
gObjSkillUseProc(lpObj)¶
Xử lý các hành động kỹ năng đang chờ cho đối tượng. Sử dụng trong AI quái vật.
Các hàm sau gửi gói tin liên quan đến kỹ năng đến client để hiển thị hiệu ứng.
GCSkillAttackSend(lpObj, skillIndex, lpTarget, type)¶
Thông báo cho client về hoạt ảnh tấn công kỹ năng.
GCSkillCancelSend(lpObj, skill)¶
Hủy hiệu ứng kỹ năng trên client.
GCDurationSkillAttackSend(lpObj, bIndex, skill, x, y, dir)¶
Gửi tấn công kỹ năng theo thời gian (ví dụ: hiệu ứng vùng).
GCSkillActionSend(lpObj, lpSkill, bIndex, skillsuccess, x, y)¶
Gửi gói tin hành động kỹ năng (sử dụng cho buff/kỹ năng đặc biệt).
local sk = GetSkill(player, 41)
if sk then
GCSkillActionSend(player, sk, target.Index, 1, player.X, player.Y)
end
GCRuneWizzardSkillAttackSend(lpObj, lpSkill, tx, ty, dir, angle)¶
Gửi gói tin tấn công kỹ năng Rune Wizard.
local sk = GetSkill(player, 700)
if sk then
GCRuneWizzardSkillAttackSend(player, sk, target.X, target.Y, player.Dir, 0)
end
GCRageFighterSkillAttackSend(lpObj, skill, aIndex, type)¶
Gửi gói tin tấn công kỹ năng Rage Fighter.
GCSkillAddSend(aIndex, slot, skill, level, type)¶
Thông báo cho client rằng một kỹ năng đã được thêm.
GCSkillDelSend(aIndex, slot, skill, level, type)¶
Thông báo cho client rằng một kỹ năng đã bị xóa.
GCSkillListSend(lpObj, type)¶
Gửi toàn bộ danh sách kỹ năng đến client người chơi.
Help