1) 인터럽트 바

1.Interrupt
/run skill={52870,1766,96231,6552,47528,80964,47476,2139,19647,34490,6726,8122,5484}; c_skill={6,10,10,10,10,10,120,24,24,20,45,24,32};sVal={-200,-20,35,5};x=sVal[1];

 

2.Interrupt
/run function mCool(name,id,size,x,y) f.t=f:CreateTexture(name,"BORDER");f.t:SetSize(size,size);f.t:SetTexture(GetSpellTexture(id));f.c=CreateFrame("Cooldown",name.."C"); f.c:SetAllPoints(f.t); f.t:SetPoint("Center",x,y);f.t:Show();end;

 

3.Interrupt
/run function dCool() for j=1,5 do for i=1,#skill do frame=_G[skill[i].."arena"..j]; if(frame) then frame:Hide();_G[skill[i].."arena"..j]=nil;_G[skill[i].."arena"..j.."C"]:SetCooldown(0,0);end;end;end;x=sVal[1];end;

 

4.Interrupt
/run function cSpell(unit,spellID) for i=1,#skill do if(spellID==skill[i])then if(_G[spellID..unit]==nil)then mCool(spellID..unit,spellID,sVal[3],x,sVal[2]);x=x+sVal[3]+sVal[4];end;ActCooldown(spellID..unit,c_skill[i]);end;end;end;

 

5.Interrupt
/run function checkCool(self,e,unit,a1,a2,a3,a4) if(e==e1 and a1=="cleared")then for i=1,5 do if(unit=="arena"..i)then print(unit);end;end;dCool();end;if(e==e2)then for i=1,5 do if(unit=="arena"..i)then cSpell(unit,a4);end;end;end;end;

 

6.Interrupt
/run function ActCooldown(name,time) _G[name.."C"]:SetCooldown(GetTime(),time);end;

 

7.Interrupt
/run e1="ARENA_OPPONENT_UPDATE";e2="UNIT_SPELLCAST_SUCCEEDED";f=CreateFrame("frame");f:SetAllPoints();
/script f:SetScript("OnEvent", checkCool) f:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED"); f:RegisterEvent("ARENA_OPPONENT_UPDATE")

 

2) 글라디우스(급장체크)

1. Gladius(Interrup 2번과 동일)
/run function mCool(name,id,size,x,y) f.t=f:CreateTexture(name,"BORDER");f.t:SetSize(size,size);f.t:SetTexture(GetSpellTexture(id));f.c=CreateFrame("Cooldown",name.."C"); f.c:SetAllPoints(f.t); f.t:SetPoint("Center",x,y);f.t:Show();end;

 

2. Gladius(Interrup 3번과 동일)
/run function ActCooldown(name,time) _G[name.."C"]:SetCooldown(GetTime(),time);end;

 

3. Gladius(셋팅하는부분) - 굵게 표시된 부분이 사이즈를 조정한다.
/run f=CreateFrame("frame");f:SetAllPoints();
/run e1="ARENA_OPPONENT_UPDATE";e2="UNIT_SPELLCAST_SUCCEEDED"; for i=1,5 do mCool("Farena"..i,42292,35,0,0);_G["Farena"..i]:Hide();end;

 

4.Gladius
/run function cArena(unit) for i=1,5 do if (unit=="arena"..i) then _G["Farena"..i]:SetPoint("Left",_G["ArenaEnemyFrame"..i.."HealthBar"],"Right",35,0); _G["Farena"..i]:Show(); end;end;end;

 

5.Gladius
/run function dArena() for i=1,5 do _G["Farena"..i]:Hide(); _G["Farena"..i.."C"]:SetCooldown(GetTime(),0);end;end;

 

6..Gladius
/run function cInsig(unit,spellID) if(spellID==42292 or spellID==59752)then ActCooldown("F"..unit,120);end;if(spellID==7744)then ActCooldown("F"..unit,45); end;end;

 

7..Gladius
/run function checkInsig(self,e,unit,a1,a2,a3,a4) if(e==e1 and a1=="seen")then cArena(unit);end;if(e==e1 and a1=="cleared")then dArena();end;if(e==e2)then for i=1,5 do if(unit=="arena"..i)then cInsig(unit,a4);end;end;end;end;

 

8..Gladius
/run e1="ARENA_OPPONENT_UPDATE";e2="UNIT_SPELLCAST_SUCCEEDED";f=CreateFrame("frame");f:SetAllPoints();
/script f:SetScript("OnEvent", checkInsig) f:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED");f:RegisterEvent("ARENA_OPPONENT_UPDATE");

 

3) 버프필터(플레이어)

 

1.Buff Filter(Player)
/run buff={84963,31884,59578,90174,56659,90811,1044,53657,498,96923};bVal={100,-20,35,5};nBuff=5;
/run f=CreateFrame("frame");f:SetAllPoints();
/run function checkBuff(unit,id) return UnitBuff(unit,GetSpellInfo(id)) end;

 

2.Buff Filter(Player)
/run function mString(name,size) f.s=f:CreateFontString(name,"BORDER");f.s:SetFont("Fonts2002B.TTF",size,0); return f.s;end;

 

3.Buff Filter(Player)
/run function mFrame(name,size) f.t=f:CreateTexture("F"..name,"BORDER") f.t:SetSize(size,size) f.c=mString("S"..name,15);f.c:SetPoint("Bottom",f.t,"Top",0,0);f.c=mString("C"..name,14);f.c:SetPoint("Topleft",f.t,"Bottom",0,14);end;

 

4.Buff Filter(Player)
/run function Act(name,id,count)_G["F"..name]:SetTexture(GetSpellTexture(id));if(count>1)then _G["C"..name]:SetText(count);else _G["C"..name]:SetText("");end;end;

 

5.Buff Filter(Player)
/run function MakeFrame(name,num,val)local x=val[1];for i=1,num do mFrame(name..i,val[3]);_G["F"..name..i]:SetPoint("Center", x,val[2]);x=x+val[3]+val[4]end;end;


6.Buff Filter(Player)
/run function Buff(s,e, unit) if(unit=="player")then local num=1;for i=1,#buff do a={checkBuff(unit,buff[i])};if(a[1])then Act("B"..num,buff[i],a[4]);num=num+1;end;end;for i=num,nBuff do _G["FB"..i]:SetTexture("");_G["CB"..i]:SetText("");end;end;end;

 

7.Buff Filter(Player)
/run function BuffStr() num=1;for i=1,#buff do a={checkBuff("player",buff[i])};if(a[1])then _G["SB"..num]:SetText(floor(a[7]-GetTime()));num=num+1;end;end;for i=num,nBuff do _G["SB"..i]:SetText("");end;end;

 

8.Buff Filter(Player)
/run MakeFrame("B", nBuff, bVal);
/script f:SetScript("OnEvent",Buff) f:RegisterEvent("UNIT_AURA");f:SetScript("OnUpdate", BuffStr);

 

 

4) 디버프필터(플레이어)

 - 빈부분 2~5번은 버프필터랑 겹칩니다. 따로 쓰실때는 버프필터 2~5를가져다쓰세요

1.Debuff Filter(player)
/run debuff={85388,5246,47476,853,20066,19503,1499,11641,408,1833,2094,29538,5782,5484,6789,118,23187,82676,1330,6770};dVal={-370,190,35,5};nDebuff=5;
/run f=CreateFrame("frame");f:SetAllPoints()

 

6.Debuff Filter(player)
/run function Debuff(self,e, unit) local num=1;for i=1,#debuff do a={checkDebuff("player",debuff[i])};if(a[1])then Act("DB"..num,debuff[i],a[4]);num=num+1;end;end;for i=num,nDebuff do _G["FDB"..i]:SetTexture("");_G["CDB"..i]:SetText("");end;end;


7.Debuff Filter(player)
/run function DebuffStr() local num=1;for i=1,#debuff do a={checkDebuff("player",debuff[i])};if(a[1])then _G["SDB"..num]:SetText(floor(a[7]-GetTime()));num=num+1;end;end;for i=num,nDebuff do _G["SDB"..i]:SetText("");end;end;

 

8.Debuff Filter(player)
/run function checkDebuff(unit,id) return UnitDebuff(unit,GetSpellInfo(id)) end;
/run MakeFrame("DB", nDebuff, dVal);
/script f:SetScript("OnEvent",Debuff) f:RegisterEvent("UNIT_AURA");f:SetScript("OnUpdate",DebuffStr);

 

5) 디버프필터(타겟)

 - 빈부분 2~5번은 버프필터랑 겹칩니다. 따로 쓰실때는 버프필터 2~5를가져다쓰세요

1.Debuff Filter(Target)
/run tdebuff={1130,80354,31803,90174,56659,90811,1044,53657};tdVal={130,190,35,5};ntDebuff=5;
/run f=CreateFrame("frame");f:SetAllPoints();
/run function checkDebuff(unit,id) return UnitDebuff(unit,GetSpellInfo(id)) end;

 

6.Debuff Filter(Target)
/run function tDebuff(self,e, unit) local num=1;for i=1,#tdebuff do a={checkDebuff("target",tdebuff[i])}if(a[1])then Act("TDB"..num,tdebuff[i],a[4]);num=num+1;end;end;for i=num,ntDebuff do _G["FTDB"..i]:SetTexture("");_G["CTDB"..i]:SetText("");end;end;

 

7.Debuff Filter(Target)
/run function tDebuffStr() local num=1;for i=1,#tdebuff do a={checkDebuff("target",tdebuff[i])};if(a[1])then _G["STDB"..num]:SetText(floor(a[7]-GetTime()));num=num+1;end;end;for i=num,ntDebuff do _G["STDB"..i]:SetText("");end;end;

 

8.Debuff Filter(Target)
/run MakeFrame("TDB", ntDebuff, tdVal);
/script f:SetScript("OnEvent",tDebuff);f:RegisterEvent("UNIT_AURA");f:RegisterEvent("PLAYER_TARGET_CHANGED");f:SetScript("OnUpdate", tDebuffStr);

 

 

==========================================================================================================

 

각 1번 부분이 셋팅하는 함수를 의도적으로 몰았습니다. 그래서 셋팅하기에 조금 편할겁니다.

 

1) 인터럽트바

 - 1번의 skill은 인터럽트바에서 보고싶은 스킬들의 리스트입니다. 스킬ID가 지금 정확하지않습니다.

    찾아서 skill에 스킬아이디를 c_skill에는 쿨타임을 적어주세요(차단기 뿐만아니라 상대방이 쓰는 모든 쿨기가 체크가능)

    sVal={중심으로부터 X좌표,Y좌표,Size, 간격} 입니다.

    현재 한파나, 맘가등 스킬을 초기화 하는 스킬등은 고려 하지 않았습니다.

  ex)Skill={영절,비난} 순이면 c_skill={24,10} 이런식으로 스킬순서대로 쿨시간 맞춰서 적어야합니다.

 

 

2) 글라디우스 

 - 3번의 밑줄 그어둔 부분이 급장 크기를 결정하는 부분입니다. 4번의 밑줄은 X축 이동 좌표입니다. 만약 아이콘이랑 겹치면

   이 4번의 수치를 조정하세요

 

3) 버프필터(플레이어)

- buff는 필터하고싶은 스킬리스트 bVal는 위의 인터럽트와 같습니다.{중심으로부터 X좌표,Y좌표,Size, 간격}. nBuff:한번에 필터가능한 버프의 맥스 갯수. 예전 버전과는 다르게 지속시간도 표시가되고 중첩도 표시가됩니다.

 

4) 디버프필터(플레이어)

- 셋팅은 위와 동일합니다. 여기는 메즈류 스킬ID는 모두 등록된 상태입니다. 그냥 쓰셔도 무방할듯 하네요

 

5) 디버프필터(타겟)

 - 셋팅은 위와 동일힙니다. 스킬ID 다엉터리입니다. 알아서들 등록하세요


추가내용 :


버프필터의 2번ㅤㅉㅒㅤ mString에서 폰트 위치가 에러입니다. Fonts다음에 역슬러쉬 2개를 추가하세요

=============================================================================================================

 

  위의 화면은  노에드온으로 만들어진 화면입니다. 노에드온이지만 매크로로 에드온과 같은 효과를 낼 수 있네요..

 

이상이고 당분간 다른거는 만들 계획없습니다.