KatherineHaAnh
Legend of Zelda
- 13/3/03
- 1,114
- 1
- Thread starter
- #61
Cái vụ check trấn phái tàng kiếm thì mình góp ý rất đơn giản để giải quyết này: dùng GetSkillLevel của 2 cái Đạp Tuyết Tầm Mai và Ánh Ba Tỏa Lan (hoặc triều minh huyền gì đó, ulti của sơn cư), nếu cái nào có skill level == 1 thì chắc chắn là đang dùng trấn phái bên đó, còn nếu ko nâng thì skill level sẽ là 0, đơn giản hiệu quả. Có thể check đc cả những cái khác trong trấn phái xem có nâng hay ko, lấy skill ID y như skill đánh bình thường mà thôi, chủ yếu là GetSkillLevel xem có nâng hay ko là đc. Kat có thể share đoạn catch event để lấy giá trị threat của player đối với target hiện tại ko? Mình tìm trong đống addon TQ mà nhiều quá vẫn chưa lọc ra đcÀ mà cả event DO_SKILL_CAST các arg của nó mình vẫn chưa nắm hết nữa, cái skill result code có ai biết nằm ở arg bao nhiêu và cái bCriticalStrike gì đó để biết có bạo kích hay ko nằm ở arg bao nhiêu ko?, hình như còn có cả arg SKILL_EFFECT gì đó nữa
À tiện thể, share luôn 1 hàm để đọc bí kíp của skill:
Mã:function CheckSkillRecipe(skillID,recipeID) p=GetClientPlayer() local result=false recipeList=p.GetSkillRecipeList(skillID,p.GetSkillLevel(skillID)) for z,x in pairs(recipeList or {}) do if x.recipe_id==recipeID and x.active==true then result=true end end return result end
Muốn biết skill recipe ID của bí kíp mình muốn check là gì thì cứ:
Xem cái nào chuyển từ active=true sang false là đc.Mã:Output(p.GetSkillRecipeList(skillID,p.GetSkillLevel(skillID)))
- - - Updated - - -
Hàm ở trên khá hữu dụng khi xét 1 số buff của skill đánh ra mà phải có bí kíp mới có (vd phệ tâm, khí phách (+5% nguyên khí) của DM, phệ cốt của VH, check bí kíp +20% ntốc độ nhận NL NH của cực lạc dẫn, v..v..)
Giải pháp của bạn cho Tàng kiếm là hay đấy vì nó dựa vào phong cách chơi phổ biến của phái đấy
nhưng áp dụng cho ông Vạn hoa biến thái thì lại toi ngay, nhưng VH thì kiểu gì cũng là kinh mạch Hoa gian rồi nên ko phải nghĩ 
Còn để lấy threat thì có hàm cập nhật threat là ApplyCharacterThreatRankList(dwCharacterID). Ví dụ mình muốn cập nhật cừu hận với boss đang là target chẳng hạn thì dùng là ApplyCharacterThreatRankList(target.dwID). Tất nhiên là mình ko cần chạy cái hàm này thì game vẫn đều đặn cận nhật cừu hận thôi nhưng lúc cần lấy chạy hàm này thì nó cập nhật cừu hận ngay. Sau khi hàm này được thực thi thì nó sẽ sinh ra một event là "CHARACTER_THREAT_RANKLIST", event này trả ra nhiều arg nhưng mình quan tâm tới 2 cái là arg0 chính là ID của nhân vật đang cập nhật cừu hận và arg1 chưa giá trị cừu hận của tất cả các player đối với nhân vật đó. Có thể truy suất giá trị cừu hận của mình bằng ID của mình thông qua hàm GetClientPlayer().dwID hoặc hàm UI_GetClientPlayerID() kiểu arg1[UI_GetClientPlayerID()], Rank cừu hận mà chúng ta nhìn thấy trong bảng thống kê cừu hận là so sánh giữa cừu hận của mình và cừu hận của target. Lấy cừu hận của target bằng arg1[arg2].
Nói lằng nhằng nhưng nếu viết thành hàm nó sẽ thế này.
Mã:
local dwMyHatred=0
local dwTargetRank=0
RegisterEvent("CHARACTER_THREAT_RANKLIST", function()
if arg0 == target.dwID then
if arg2 and arg1[arg2] then
dwTargetRank = arg1[arg2]
if dwTargetRank == 0 then
dwTargetRank = 65535
end
nHatred = arg1[UI_GetClientPlayerID()] or 0
dwMyHatred = (nHatred / dwTargetRank) * 100
end
end
end)
-------------------------------------
function GetMyHatred(target)
ApplyCharacterThreatRankList(target.dwID)
return dwMyHatred
end
À mà cả event DO_SKILL_CAST các arg của nó mình vẫn chưa nắm hết nữa, cái skill result code có ai biết nằm ở arg bao nhiêu và cái bCriticalStrike gì đó để biết có bạo kích hay ko nằm ở arg bao nhiêu ko?, hình như còn có cả arg SKILL_EFFECT gì đó nữa 

Còn bố nào ko thèm nâng đạp tuyết khi đánh vấn thủy thì.. miễn bàn, mình bó tay
Tương tự cho bên sơn cư. Thanks về cái tên event nhé, mình register đc rồi 


30 char này 

