레이블이 Commands인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Commands인 게시물을 표시합니다. 모든 게시물 표시

2018년 7월 5일 목요일

유물력 잡템 자동판매 매크로

Artifact power & Grey items

예시
Script
/run local p,N,c,n=0 for b=0,4 do for s=1,GetContainerNumSlots(b) do n=GetContainerItemLink(b,s) if n and string.find(n,"9d9d9d") then N={GetItemInfo(n)} c=GetItemCount(n) p=p+(N[11]*c)UseContainerItem(b,s) print(n) end end end print(GetCoinText(p))



참고(유물력이 회색템으로 인식되지 않았을 때)
/run for b=0,4 do for s=1,GetContainerNumSlots(b)do local K,D=GetContainerItemLink(b,s),GetContainerItemID(b,s);if K and MerchantFrame:IsShown()then if IsArtifactPowerItem(D)or string.find(K,"9d9d9d")then UseContainerItem(b,s)print(K)end;end;end;end

Addon : https://www.curseforge.com/wow/addons/artifactpowerseller

2018년 6월 17일 일요일

BfA Map API

채팅창에 /api C_Map 하면 대부분 나옴

Map ID
/dump WorldMapFrame:GetMapID()
Map Info
/dump C_Map.GetMapInfo(MapID)
- mapType, mapID, name, parentMapID

Coordinates
/dump C_Map.GetPlayerMapPosition(MapID, UnitToken):GetXY()
/run local x,y=C_Map.GetPlayerMapPosition(MapUtil.GetDisplayableMapForPlayer(), "player"):GetXY();print(string.format("%.1f %.1f", x*100, y*100))
Current Map
/dump MapUtil.GetDisplayableMapForPlayer();

2018년 6월 7일 목요일

자리비움 검사 (AFK)

1. 전투준비 API
/run DoReadyCheck();

2.자리비움 공대원 이름 출력 (공격대 상태일 경우에만 작동)
koKR
/run for i=1, GetNumGroupMembers() do local name, rank, sub, _, _, _ = GetRaidRosterInfo(i);if UnitIsAFK("raid"..i) then print("자리비움 ▶ ["..sub.."파티] "..name)end;end
EnUS
/run for i=1, GetNumGroupMembers() do local name, rank, sub, _, _, _ = GetRaidRosterInfo(i);if UnitIsAFK("raid"..i) then print("AFK ▶ [ Group"..sub.."] "..name)end;end

무작 던전 큐 넣기

Script
/run SetLFGRoles(1,1,1,1);SetLFGDungeon(1,GetRandomDungeonBestChoice());JoinLFG(1)
  • SetLFGRoles(1,1,1,1) - 역할 설정 모두 체크
  • SetLFGDungeon(1,GetRandomDungeonBestChoice()) - 현재 레벨에 적합한 던전으로 설정, 특정 던전 선택시에는 GetRandomDungeonBestChoice() 대신 해당 던전의 queue ID를 입력
  • JoinLFG(1) - 대기 시작

메시지 출력 스크립트 (SendChatMessage) 종족별 언어 적용



와민정음으로 종족 언어를 활용하여 적을 능욕하는 다양한 방법이 알려져 있지만 다들 전투중에 언어를 바꾸기 불편해서 오크어/공용어만 써먹느라 인성질을 찰지게 못하는 것 같아서 내심 안타까웠다.

이제 더 간편하게 종족별 언어를 활용하여 인성질하는 방법을 알아보자.

여기를 많이 참고했어. 출처: http://wowwiki.wikia.com/wiki/API_SendChatMessage



이렇게 생긴 메시지 보내기 스크립트 기본형에서 저 안의 내용들을 바꾸면 된다

/run SendChatMessage("내용" ,"chatType" ,"언어" ,"옵션")


항목별 설명

1. 내용 : 출력될 문구


2. chatType : 대화 종류

"SAY" 일반대화 (/s)

"EMOTE" 감정표현 (/e)
- "/e 테스트" 라고 입력하면 "ㅇㅇ가 테스트" 라고 채팅창에 출력되는 방식. 적에게는 알수없는 행동을 합니다로 나오게 됨. /엉엉 /낄낄같은 감정표현은 이거 말고 /run DoEmote("action")을 사용하면 되는데 감정표현 명령어 리스트는 여기를 참조해. [링크]

"YELL" 외치기 (/y).

"PARTY" 파티 (/p)

"GUILD" 길드 (/g)

"OFFICER" 길드 관리자 (/o)

"RAID" 공격대 (/raid)

"RAID_WARNING" 공격대 경보(/rw)

"INSTANCE_CHAT" 인스턴스 대화 (/i)
- 로컬 파티를 제외한 모든 인스턴스 파티에서 적용. (IsInGroup(2) 결과가 true일 경우)

"BATTLEGROUND" 전장 (/bg)

"WHISPER" 귓속말 (/w)
- "옵션"칸에 대상의 ID를 입력. ex> /run SendChatMessage("내용" ,"WHISPER" ,"" ,"아이디")

"CHANNEL" 채널대화 - "옵션"칸에 채널의 번호를 입력. ex> /run SendChatMessage("내용" ,"CHANNEL" ,"" ,"5")


3. 언어 : 일반 대화 또는 외치기일 경우에만 적용되는데 기본 언어를 사용할 경우 생략하고 종족별 언어를 사용할 경우 언어 번호를 입력.

자신이 구사할 수 있는 언어의 번호를 확인하려면 아래의 스크립트로 확인할 수 있어.
/run for i = 1, GetNumLanguages() do print(GetLanguageByIndex(i)) end
나엘 악사로 저 매크로를 입력하면 결과는 이렇게 출력되겠지?
나이트 엘프어 2
공용어 7
악마어 8

아래에 언어 번호 리스트를 써놨지만 패치마다 변동이 있을 수 있으니까 가급적 인게임에서 위의 스크립트로 확인하는것을 추천해

Orcish(오크-호드 공용어) = 1,
Darnassian(나엘) = 2,
Taurahe(타우렌) = 3,
Dwarvish(드워프) = 6,
Common(인간-공용어) = 7,
Demonic(악마어) = 8,
Thalassian(부렐) = 10,
Gnomish(노움) = 13,
Troll(트롤) = 14,
Gutterspeak(언데드)= 33,
Draenei(드레나이)= 35,
Worgen(늑인)= 39,
Goblin(고블린)= 40,
Pandaren1(판다중립)= 42,
Pandaren2(판다얼라)= 43,
Pandaren3(판다호드)= 44

예를 들어서 드레나이 캐릭터로 /run SendChatMessage("웁웁!" ,"YELL","");이라고 입력하면 평범하게 웁웁! 하고 외치게 되지만 /run SendChatMessage("웁웁!" ,"YELL" ,"35"); 라고 입력하면 좀더 귀엽게 드레나이어로 웁웁! 하고 외치게 됨


4. 옵션 : 평소에는 생략. 귓속말이나 채널대화일 경우에만 대상 아이디, 채널번호같은 추가정보 입력


이제 이걸 응용해서 마우스오버나 타게팅한 대상의 유닛이름을 넣어서 써먹을 수도 있음

/run local name = GetUnitName("mouseover",true); SendChatMessage("내용1" .. name .. "내용2", "SAY","")

이런 식으로.

그리고 트롤 캐릭터로 가로쉬 헬스크림 대족장님께 커서를 갖다대고

/run local name = GetUnitName("mouseover",true); SendChatMessage("" .. name .. "XX가지고 XX하고싶다", "SAY", 14)

라는 스크립트를 실행하면 [트롤어] 가로쉬 헬스크림 XX가지고 XX하고싶다 라고 일반대화로 출력됨. 이렇게 말하면 가로쉬님이 들으시더라도 트롤어를 알아들을 리 없으니까 크게 혼나지 않을거야.




이제 알겠지?

그럼 오늘부턴 보다 다양해진 레퍼토리를 활용해서 우리 모두 즐거운 능욕플레이를 하도록 하자

자동 올부공 (SetEveryoneIsAssistant)

내가 공격대장일 경우 전장 입장시 자동으로 부공 권한 부여

Lua
hooksecurefunc("RaidFrameAllAssistCheckButton_UpdateAvailable", function(self)
    if select(2,IsInInstance())=="pvp" and (UnitIsGroupLeader("player"))and not IsEveryoneAssistant() then
            SetEveryoneIsAssistant(true);
    end;
end)

부공 권한 부여 인게임 스크립트. 매크로에 넣고 써도 됨
Script
  • 전체 승급
/run SetEveryoneIsAssistant(true);
  • 특정인 승급
/run PromoteToAssistant("unit")


2018년 6월 6일 수요일

미니맵 위치 표시(Minimap ping)

Lua
 --미니맵 핑테러 검거
CreateFrame("FRAME","p")
p:RegisterEvent("MINIMAP_PING")
p:SetScript("OnEvent",function(s,e,u)
    local pn=UnitName(u)
    local _,c=UnitClass(u)
    local color=RAID_CLASS_COLORS[c]
    if pn~=UnitName("player") then
        print("Ping : \124c"..color.colorStr..pn.."\124r - "..tonumber(date("%H"))..":"..tonumber(date("%M"))..":"..tonumber(date("%S")))
    end
end)

 Script
/run local p=CreateFrame("FRAME")p:RegisterEvent("MINIMAP_PING")p:SetScript("OnEvent",function(s,e,u)local pn=UnitName(u)if pn~=UnitName("player") then print("Ping : \124cffff0000"..pn.."\124r")end end) 
현재 위치에 미니맵 핑 찍기
7.x.x Legion
/run Minimap:PingLocation(GetPlayerMapPosition("player"))
8.0.1 BfA
/run Minimap:PingLocation(C_Map.GetPlayerMapPosition(C_Map.GetBestMapForUnit("player"),"player"))

2018년 6월 5일 화요일

기본 레이드 프레임 설정


1. 기본프레임 사각형 크기조절
/run local n="CompactUnitFrameProfilesGeneralOptionsFrame"_G[n.."HeightSlider"]:SetMinMaxValues(100,200);_G[n.."WidthSlider"]:SetMinMaxValues(50,200)
 - 설정범위를 각각 가로 100~200/ 세로 50~200으로 만들어 준다

2. 기본프레임 오라 크기
버프 아이콘
/run hooksecurefunc("CompactUnitFrame_UpdateBuffs", function(frame)for i=1,frame.maxBuffs do local buffFrame=frame.buffFrames[i];buffFrame:SetSize(20,20)end;end)
디버프 아이콘
/run hooksecurefunc("CompactUnitFrame_UpdateDebuffs", function(frame)for i=1,frame.maxDebuffs do local dbuff=frame.debuffFrames[i];dbuff:SetSize(20,20)end;end)
 - 20,20 저게 아이콘 크기다

3. 레이드프레임 프로필 스위칭
/run if GetCVar("activeCUFProfile")=="주 설정"then CompactUnitFrameProfiles_ActivateRaidProfile("투박장")else CompactUnitFrameProfiles_ActivateRaidProfile("주 설정")end
- "주 설정"과 "투박장" 대신 기본프레임 프로필에서 설정된 이름을 넣으면 됨

4. 평소 주 설정을 이용하다가 투기장 입장시 "투박장" 프로필로 자동 교체
Lua

--레이드 프로필 변경
local CRFP = CreateFrame("FRAME")

CRFP:RegisterEvent("PLAYER_ENTERING_WORLD")
CRFP:Setscript("OnEvent", function()
if IsActiveBattlefieldArena() then
    CompactUnitFrameProfiles_ActivateRaidProfile("투박장")
else
    CompactUnitFrameProfiles_ActivateRaidProfile("주 설정")
end
end)
저장할때 인코딩이 UTF-8로 되어 있는지 확인

5. 디버프 아이콘 표시 갯수 늘리기 twitch.tv/cdewx

6. 기본프레임 파티숫자 숨기기+파티별 프레임 붙이기
-- 기본프레임 파티숫자 숨기기+프레임 붙이기
hooksecurefunc("CompactRaidGroup_UpdateLayout",function(f)
f.title:SetHeight(0);f.title:SetWidth(0);f.title:SetText(nil)
local f1 = _G[f:GetName().."Member1"]
f1:ClearAllPoints()
    if (CUF_HORIZONTAL_GROUPS)then
        f1:SetPoint("TOPLEFT")
        f:SetHeight(f1:GetHeight())
    else
        f1:SetPoint("TOP")
        f:SetWidth(f1:GetWidth())
    end
end)

특성 변환 매크로

당연하지만 특성 못바꾸는 상황에서는 안돌아감
1. 전문화(Spec) 2가지 스왑
/run local i=GetSpecialization()if i==1 then SetSpecialization(2)else SetSpecialization(1)end
  • 여기 예시는 특성창 눌렀을 때 1↔2번째 특성을 스왑함 각자 원하는 번호를 저기의 1,2 대신 넣으면 됨
2. 펫 전문화 (격아에서는 펫 특성 변환이 없어짐)
/run local i,S=GetSpecialization(false,true),SetSpecialization;if i==1 then S(2,true)else S(1,true)end
  • 1과 동일한 방식으로 펫 특성 1↔2번째 스왑
/run local i,S=GetSpecialization(false,true),SetSpecialization;if IsAltKeyDown() then S(3,true) elseif i==3 then S(1,true)else S(i+1,true)end
  • 매 클릭마다 펫 특성을 현재 선택한 특성의 다음 특성으로 바꾸되(1->2->3->1) 알트를 누르고 클릭하면 무조건 3번인 교활특성으로 교체
3. 특성(Talent) 스왑
/run local t={2,2,2,1,3,1,1};if IsSpellKnown(247938)then t={3,3,1,1,3,3,3}end;for k, v in pairs(t) do _G["PlayerTalentFrameTalentsTalentRow"..k.."Talent"..v]:Click()end
  • 이건 처음 접속하고 특성창 한번 열어놔야 사용할 수 있음
  • 예시에서는 매 클릭마다 특성 1번 = {2,2,2,1,3,1,1}; 특성2번={3,3,1,1,3,3,3} 을 스왑
  • 숫자는 특성창 열었을때 위에서부터 몇번째 특성 찍었는지 하는거. 예를 들어 3311333을 공홈 전정실에서 보면 이렇게됨 ->클릭
  • 특성1과 특성2를 원하는 숫자로 바꾸고 if IsSpellKnown(247938) 여기다 특성 1번에서만 쓸 수 있는 스킬의 ID를 넣고 사용하면 됨
4. 장비셋 포함 특성 좌우클릭 스왑
/run UseEquipmentSet(SecureCmdOptionParse"[btn:1]"and"혼숙"or"안광");for i,v in next,SecureCmdOptionParse"[btn:1]"and{2,2,2,1,3,1,1}or{3,3,1,1,3,3,3}do _G["PlayerTalentFrameTalentsTalentRow"..i.."Talent"..v]:Click()end
  • 이것도 특성창을 한번 열어야 사용할 수 있음
  • 그냥 클릭하면 {2,2,2,1,3,1,1} 특성과 함께 "혼숙"이라고 된 장비세트를 착용, 우클릭시 {3,3,1,1,3,3,3} 특성과 함께 "안광"이라고 된 장비세트를 착용