Cách sử dụng script macro căn bản

Bạn nào giúp mình vụ check xem người mình đang có buff xxx thì cast skill abc đc ko, thanks nhiều, inbox nhiều cao nhân mà chưa có cao nhân nào giúp đc.
Đừng bảo mình xài cái chỉ lệnh /cast [buff:buffname] skill nhé, vì mình đã test nó không đúng

Đã nói là PVP vô dụng rồi mà vẫn hỏi :2cool_burn_joss_sti
 
Đang vọc cái add-on đập đá mà bị vướng chỗ này. Đồng chí nào gỡ dùm.

Cái code bắt viên đá của bản TQ:
Mã:
("五行石·(.+)((.+)级)")

Về bản VN đang thử đoạn này nhưng ko bắt được
Mã:
("Đá Ngũ Hành-(.+) (Lv(.+))")

Ký tự này()là ký tự đặc biệt của TQ ko phải dấu () thường.
 
Hóa ra hiểu PVP có nghĩa là PK à :9cool_too_sad: não vl :2cool_burn_joss_sti

- - - Updated - - -



Còn nếu mà dùng để kiểm tra buff trên người mình thì dùng hàm GetBuffList để lấy các buff đang có trên người mình :4cool_beauty:
Híc cơ bản là tôi ko biết xài hàm GetBuffList thế nào, ngồi sờ lần mãi ko đc T_T
 
Híc cơ bản là tôi ko biết xài hàm GetBuffList thế nào, ngồi sờ lần mãi ko đc T_T

local function CheckBuff(target,buffID)
BuffList = target.GetBuffList()
buffed = false
for z,x in pairs(BuffList) do
if x.dwID == buffID then
buffed = true
end
end
return buffed
end

- - - Updated - - -

Đoan code dưới đây sẽ tự cast TVVN nếu ko có và skill ko đang bị cooldown
Mã:
/script local p = GetClientPlayer()
local TVVN = 312
local buffTVVN = 1376
local function CheckBuff(target,buffID)
BuffList = target.GetBuffList()
buffed = false
for z,x in pairs(BuffList) do
if x.dwID == buffID then 
buffed = true
end
end
return buffed
end
local function CheckCDs(skillId)
bOnCD,currentCDTime,totalCDTime = p.GetSkillCDProgress(skillId,p.GetSkillLevel(skillId)) 
return currentCDTime/16 == 0
end
if not(CheckBuff(p, buffTVVN)) and CheckCDs(TVVN) then OnAddOnUseSkill(TVVN) end
 
local function CheckBuff(target,buffID)
BuffList = target.GetBuffList()
buffed = false
for z,x in pairs(BuffList) do
if x.dwID == buffID then
buffed = true
end
end
return buffed
end

- - - Updated - - -

Đoan code dưới đây sẽ tự cast TVVN nếu ko có và skill ko đang bị cooldown
Mã:
/script local p = GetClientPlayer()
local TVVN = 312
local buffTVVN = 1376
local function CheckBuff(target,buffID)
BuffList = target.GetBuffList()
buffed = false
for z,x in pairs(BuffList) do
if x.dwID == buffID then 
buffed = true
end
end
return buffed
end
local function CheckCDs(skillId)
bOnCD,currentCDTime,totalCDTime = p.GetSkillCDProgress(skillId,p.GetSkillLevel(skillId)) 
return currentCDTime/16 == 0
end
if not(CheckBuff(p, buffTVVN)) and CheckCDs(TVVN) then OnAddOnUseSkill(TVVN) end
Thanks cậu nhiều nha để mềnh test, mềnh là ĐM KVQ nên có cái checkbuff kia là ngon oy ^^
 
Cảm ơn KatherineHaAnh nhiều lắm lắm, nhờ có đoạn code check buff mà combo của mình đc 90% rồi, còn 10% nữa đang nghiên cứu nốt
 
local function CheckBuff(target,buffID)
BuffList = target.GetBuffList()
buffed = false
for z,x in pairs(BuffList) do
if x.dwID == buffID then
buffed = true
end
end
return buffed
end

- - - Updated - - -

Đoan code dưới đây sẽ tự cast TVVN nếu ko có và skill ko đang bị cooldown
Mã:
/script local p = GetClientPlayer()
local TVVN = 312
local buffTVVN = 1376
local function CheckBuff(target,buffID)
BuffList = target.GetBuffList()
buffed = false
for z,x in pairs(BuffList) do
if x.dwID == buffID then 
buffed = true
end
end
return buffed
end
local function CheckCDs(skillId)
bOnCD,currentCDTime,totalCDTime = p.GetSkillCDProgress(skillId,p.GetSkillLevel(skillId)) 
return currentCDTime/16 == 0
end
if not(CheckBuff(p, buffTVVN)) and CheckCDs(TVVN) then OnAddOnUseSkill(TVVN) end

Tks bạn đã share, nhưng cho mình hỏi, mình có thể thay ID và thay phần khai báo biến thành skill Phá Thương Khung được ko :4cool_beauty:
 
Tks bạn đã share, nhưng cho mình hỏi, mình có thể thay ID và thay phần khai báo biến thành skill Phá Thương Khung được ko :4cool_beauty:

Tất nhiên là được vì mình viết cho TD mà, SkillID cua PTK là 359 và buffID của PTK là 375, thay vào là xong :4cool_beauty:

- - - Updated - - -

Cảm ơn KatherineHaAnh nhiều lắm lắm, nhờ có đoạn code check buff mà combo của mình đc 90% rồi, còn 10% nữa đang nghiên cứu nốt

10% là cái gì thế? xem mình có giải quyết hộ đc ko :5cool_big_smile:
 
Đang vọc cái add-on đập đá mà bị vướng chỗ này. Đồng chí nào gỡ dùm.

Cái code bắt viên đá của bản TQ:
Mã:
("五行石·(.+)((.+)级)")

Về bản VN đang thử đoạn này nhưng ko bắt được
Mã:
("Đá Ngũ Hành-(.+) (Lv(.+))")

Ký tự này()là ký tự đặc biệt của TQ ko phải dấu () thường.


#so nếu để dấu đấy thì vào game không có font nó tự mất rồi, bỏ luôn đi
 
Cảm ơn KatherineHaAnh nhiều lắm lắm, nhờ có đoạn code check buff mà combo của mình đc 90% rồi, còn 10% nữa đang nghiên cứu nốt
đọc câu này làm tưởng là làm dc marco cho buff dc 90% =.= làm ngồi ngâm cứu đoạn code của KatherineHaAnh :6cool_beat_brick:
 
- - - Updated - - -

Đoan code dưới đây sẽ tự cast TVVN nếu ko có và skill ko đang bị cooldown
Mã:
/script local p = GetClientPlayer()
local TVVN = 312
local buffTVVN = 1376
local function CheckBuff(target,buffID)
BuffList = target.GetBuffList()
buffed = false
for z,x in pairs(BuffList) do
if x.dwID == buffID then 
buffed = true
end
end
return buffed
end
local function CheckCDs(skillId)
bOnCD,currentCDTime,totalCDTime = p.GetSkillCDProgress(skillId,p.GetSkillLevel(skillId)) 
return currentCDTime/16 == 0
end
if not(CheckBuff(p, buffTVVN)) and CheckCDs(TVVN) then OnAddOnUseSkill(TVVN) end

Cái này là check buff của bản thân mà o.o đâu phải checkbuff target
Nếu chỉ dùng để checkbuff r` tự buff thì thế này xài tạm cũng ổn còn nếu nhét vào marco dame để pve thì dài quá sao đủ trong 1024 ký tự
Có thể rút gọn lại thế này
Mã:
/script local p = GetClientPlayer()
local function CheckBuff(buffID)
buffed = false
for z,x in pairs(p.GetBuffList()) do
if x.dwID == buffID then
buffed = true
end
end
return buffed
end
local function CheckCDs(skillId)
bOnCD,currentCDTime,totalCDTime = p.GetSkillCDProgress(skillId,p.GetSkillLevel(skillId)) 
return currentCDTime/16 == 0
end
if not(CheckBuff(p,1376)) then OnAddOnUseSkill(312) end
Ko cần skill nào cũng phải khai báo local Skill=.... Lệnh này dùng khi mình muốn khai báo 1 list các skill cần xài trong 1 thời điểm nào đó.
Nếu chỉ dùng 1 skill thì trực tiếp add ID skill đó vào luôn cho gọn

- - - Updated - - -

Ah còn 1 cái nữa, mình thấy mấy bạn hay thêm lệnh CheckCDs(skill) vào lệnh if o.o cái này ko cần thiết bởi vì đã có function check CD toàn bộ những skill nào mình có rồi nên ko cần thêm vào if làm j cho dài dòng cả :D
 
Cái này là check buff của bản thân mà o.o đâu phải checkbuff target
Nếu chỉ dùng để checkbuff r` tự buff thì thế này xài tạm cũng ổn còn nếu nhét vào marco dame để pve thì dài quá sao đủ trong 1024 ký tự
Có thể rút gọn lại thế này
Mã:
/script local p = GetClientPlayer()
local function CheckBuff(buffID)
buffed = false
for z,x in pairs(p.GetBuffList()) do
if x.dwID == buffID then
buffed = true
end
end
return buffed
end
local function CheckCDs(skillId)
bOnCD,currentCDTime,totalCDTime = p.GetSkillCDProgress(skillId,p.GetSkillLevel(skillId)) 
return currentCDTime/16 == 0
end
if not(CheckBuff(p,1376)) then OnAddOnUseSkill(312) end
Ko cần skill nào cũng phải khai báo local Skill=.... Lệnh này dùng khi mình muốn khai báo 1 list các skill cần xài trong 1 thời điểm nào đó.
Nếu chỉ dùng 1 skill thì trực tiếp add ID skill đó vào luôn cho gọn

- - - Updated - - -

Ah còn 1 cái nữa, mình thấy mấy bạn hay thêm lệnh CheckCDs(skill) vào lệnh if o.o cái này ko cần thiết bởi vì đã có function check CD toàn bộ những skill nào mình có rồi nên ko cần thêm vào if làm j cho dài dòng cả :D

Viết ra cho người khác đọc thì phải để thế cho nó dễ hiểu, add thằng skillID vào thì ai mà biết là cái gì :5cool_sweat:
Muốn check target thì thay cái biến p bằng biến target là xong. Ví dụ: t=GetTargetHandle(p.GetTarget()) rồi thay t cho p là có buff của target thôi.
ko hiểu ý bạn muốn nói cái CheckCDs để trong lệnh if là thế nào. Ko có thì nó cứ gọi một chiêu cho tới khi đánh được thì thôi à :2cool_burn_joss_sti

- - - Updated - - -

Còn nếu viết code cho mình thì ngay cả tên biến mình cũng chỉ đặt là x1, x2 thôi cho nó đỡ tốn ký tự chứ ko đặt theo kiểu chủ thớt đặt đâu :4cool_beauty:
 
Có ai làm giúp mình được cái chi lệnh cho 5đ buff với?_? Chỉ dùng 2 skill Túy vũ cửu thiên + Thiên điệp thổ thúy vì 2 skill này không cần target để buff :9cool_too_sad:
 
Cái này là check buff của bản thân mà o.o đâu phải checkbuff target
Nếu chỉ dùng để checkbuff r` tự buff thì thế này xài tạm cũng ổn còn nếu nhét vào marco dame để pve thì dài quá sao đủ trong 1024 ký tự
Có thể rút gọn lại thế này
Mã:
/script local p = GetClientPlayer()
local function CheckBuff(buffID)
buffed = false
for z,x in pairs(p.GetBuffList()) do
if x.dwID == buffID then
buffed = true
end
end
return buffed
end
local function CheckCDs(skillId)
bOnCD,currentCDTime,totalCDTime = p.GetSkillCDProgress(skillId,p.GetSkillLevel(skillId)) 
return currentCDTime/16 == 0
end
if not(CheckBuff(p,1376)) then OnAddOnUseSkill(312) end
Ko cần skill nào cũng phải khai báo local Skill=.... Lệnh này dùng khi mình muốn khai báo 1 list các skill cần xài trong 1 thời điểm nào đó.
Nếu chỉ dùng 1 skill thì trực tiếp add ID skill đó vào luôn cho gọn

- - - Updated - - -

Ah còn 1 cái nữa, mình thấy mấy bạn hay thêm lệnh CheckCDs(skill) vào lệnh if o.o cái này ko cần thiết bởi vì đã có function check CD toàn bộ những skill nào mình có rồi nên ko cần thêm vào if làm j cho dài dòng cả :D

Mình dùng đoạn code của bạn thì nó vẫn cast TVVN khi đang có hiệu ứng buff, trong khi dùng đoạn của KatherineHaAnh thì khi nào ko có buff + ko bị CD thì nó mới buff :9cool_haha:
 
Mình dùng đoạn code của bạn thì nó vẫn cast TVVN khi đang có hiệu ứng buff, trong khi dùng đoạn của KatherineHaAnh thì khi nào ko có buff + ko bị CD thì nó mới buff :9cool_haha:

Vì bạn ấy cắt cái tham số target trong hàm đi nhưng lúc gọi hàm thì vẫn để target là p nên nó ko có tác dụng :5cool_big_smile:
 
Mình dùng đoạn code của bạn thì nó vẫn cast TVVN khi đang có hiệu ứng buff, trong khi dùng đoạn của KatherineHaAnh thì khi nào ko có buff + ko bị CD thì nó mới buff :9cool_haha:
local function CheckBuff(buffID) đoạn này mình thiếu khai báo p :5cool_big_smile: sửa lại thành local function CheckBuff(p,buffID) là dc

- - - Updated - - -

ko hiểu ý bạn muốn nói cái CheckCDs để trong lệnh if là thế nào. Ko có thì nó cứ gọi một chiêu cho tới khi đánh được thì thôi à :2cool_burn_joss_sti
if not(CheckBuff(p, buffTVVN)) and CheckCDs(TVVN) then OnAddOnUseSkill(TVVN) end
ý mình nói là đoạn này nếu đã function checkCD skill ở trên r` xuống hàm điều kiện lại check thêm lần nữa làm j o.o
 
Back
Top