확장팩 팁과 노하우 게시판

전체보기

모바일 상단 메뉴

본문 페이지

[애드온] 인벤 레이드 프레임 오류 수정하기

아이콘 다시날아
댓글: 21 개
조회: 7283
추천: 53
2013-03-08 23:31:10
인벤 레이드 프레임 1.6.5 버전에서 소환수 관련 오류가 있어서 렉현상이 있으신 분들께 급한대로 수정해서 쓰기를 원하시는 분들을 위한 팁입니다. 해당 애드온은 저작권이 인벤에 있어 직접 수정버전을 올려드리지 못하는 점 양해 부탁드리겠습니다.

가급적 에디터는 윈도우 메모장 대신 다른 에디터를 이용해 주시고, 없으신분은 
http://download.tuxfamily.org/notepadplus/6.3/npp.6.3.Installer.exe

에서 notepad++ 를 이용하시는것을 추천드립니다.

Interface/InvenRaidFrames3/Pet.lua 파일을 열어서 15라인으로 갑니다.

15: if IRF3.db then
self:SetScript("OnEvent", InvenRaidFrames3Pet_OnEvent)
self:SetScript("OnUpdate", InvenRaidFrames3Member_OnUpdate)
InvenRaidFrames3Pet_UpdateAll(self)
IRF3:BorderUpdate()

빨간색 부분을 15라인 아래 붙여 넣습니다.

15: if IRF3.db then
if IRF3.db.usePet == 2 then
self:RegisterEvent("UNIT_NAME_UPDATE")
self:RegisterEvent("UNIT_CONNECTION")
self:RegisterEvent("UNIT_HEALTH")
self:RegisterEvent("UNIT_MAXHEALTH")
self:RegisterEvent("UNIT_HEALTH_FREQUENT")
self:RegisterEvent("UNIT_HEAL_PREDICTION")
self:RegisterEvent("UNIT_POWER")
self:RegisterEvent("UNIT_MAXPOWER")
self:RegisterEvent("UNIT_DISPLAYPOWER")
self:RegisterEvent("UNIT_POWER_BAR_SHOW")
self:RegisterEvent("UNIT_POWER_BAR_HIDE")
self:RegisterEvent("UNIT_FACTION")
self:RegisterEvent("UNIT_AURA")
end
self:SetScript("OnEvent", InvenRaidFrames3Pet_OnEvent)
self:SetScript("OnUpdate", InvenRaidFrames3Member_OnUpdate)
InvenRaidFrames3Pet_UpdateAll(self)
IRF3:BorderUpdate()

이 이후 약간만 밑으로 스크롤 하시면 InvenRaidFrames3Pet_OnHide 함수가 있습니다.
다음 내용을 추가합니다.

function InvenRaidFrames3Pet_OnHide(self)
self.unit, self.displayedUnit = nil
if IRF3.db then
self:UnregisterEvent("UNIT_NAME_UPDATE")
self:UnregisterEvent("UNIT_CONNECTION")
self:UnregisterEvent("UNIT_HEALTH")
self:UnregisterEvent("UNIT_MAXHEALTH")
self:UnregisterEvent("UNIT_HEALTH_FREQUENT")
self:UnregisterEvent("UNIT_HEAL_PREDICTION")
self:UnregisterEvent("UNIT_POWER")
self:UnregisterEvent("UNIT_MAXPOWER")
self:UnregisterEvent("UNIT_DISPLAYPOWER")
self:UnregisterEvent("UNIT_POWER_BAR_SHOW")
self:UnregisterEvent("UNIT_POWER_BAR_HIDE")
self:UnregisterEvent("UNIT_FACTION")
self:UnregisterEvent("UNIT_AURA")
self:SetScript("OnEvent", nil)
self:SetScript("OnUpdate", nil)
InvenRaidFrames3Member_OnDragStop(self)
IRF3:BorderUpdate()
end
self.lostHealth, self.hasAggro, self.isOffline, self.isAFK, self.color, self.class = 0
IRF3.visibleMembers[self] = nil
end

위 내용을 다 붙여넣은 후 79 라인으로 갑니다.

function InvenRaidFrames3Pet_UpdateAll(self)
if IRF3.db then
if UnitExists(self.displayedUnit or "") then
InvenRaidFrames3Pet_UpdateDebuffs(self)
InvenRaidFrames3Member_UpdateState(self)
79: CompactUnitFrame_UpdateMaxHealth(self)
InvenRaidFrames3Member_UpdateHealth(self)
InvenRaidFrames3Member_UpdateHealPrediction(self)
CompactUnitFrame_UpdateMaxPower(self)
CompactUnitFrame_UpdatePower(self)
InvenRaidFrames3Member_UpdatePowerColor(self)
InvenRaidFrames3Member_UpdateOutline(self)
InvenRaidFrames3Member_OnUpdate2(self)
end
end
end

CompactUnitFrame_UpdateMaxHealth 함수를 InvenRaidFrames3Member_UpdateMaxHealth 함수로 변경합니다.

function InvenRaidFrames3Pet_UpdateAll(self)
if IRF3.db then
if UnitExists(self.displayedUnit or "") then
InvenRaidFrames3Pet_UpdateDebuffs(self)
InvenRaidFrames3Member_UpdateState(self)
InvenRaidFrames3Member_UpdateMaxHealth(self)
InvenRaidFrames3Member_UpdateHealth(self)
InvenRaidFrames3Member_UpdateHealPrediction(self)
CompactUnitFrame_UpdateMaxPower(self)
CompactUnitFrame_UpdatePower(self)
InvenRaidFrames3Member_UpdatePowerColor(self)
InvenRaidFrames3Member_UpdateOutline(self)
InvenRaidFrames3Member_OnUpdate2(self)
end
end
end

92 라인으로 갑니다. 똑같이 변경합니다.

eventHandler.UNIT_MAXHEALTH = function(self)
InvenRaidFrames3Member_UpdateMaxHealth(self)
InvenRaidFrames3Member_UpdateHealth(self)
InvenRaidFrames3Member_UpdateHealPrediction(self)
if self.optionTable.outline.type == 4 then
InvenRaidFrames3Member_UpdateOutline(self)
end
end

다 하셨으면 pet.lua 파일을 저장합니다.
이렇게 수정하시고 나면 큰 오류 없이 사용하실 수 있을 겁니다.

ps. 굳이 수정하지 않아도 되지만 일부 버그 

1.힐러를 하시는 분들은 무작위 공격대에서 부활 주문을 사용할때 공격대에 속해 있지 않습니다. 라고 오류가 나는데, 이 부분의 수정은 다음과 같습니다.

Interface/InvenRaidFrames3/Libs/LibResSync-1.0/LibResSync-1.0.lua 파일을 엽니다.

SendAddonMessage 함수를 찾아 (54 라인에 있습니다.) 다음과 같이 바꿉니다.

function lib:SendAddonMessage(info, content, whisper)
if info and content then
content = info.."="..content
if whisper then
SendAddonMessage("LibResSync", content, "WHISPER", whisper)
elseif IsInGroup(LE_PARTY_CATEGORY_INSTANCE) then
SendAddonMessage("LibResSync", content, "INSTANCE_CHAT")
elseif IsInGroup(LE_PARTY_CATEGORY_HOME) then
if IsInRaid() then
SendAddonMessage("LibResSync", content, "RAID")
else
SendAddonMessage("LibResSync", content, "PARTY")
end
end
end
end


2. 수도사 생존기 추가하기

Interface/InvenRaidFrames3/Modules/SurvivalSkill.lua 파일을 열어 ["MONK"] 와 ["*"] 라인을 수정합니다.

["MONK"] = { [SL(120954)] = "강화", [SL(122783)] = "마해", [SL(115176)] = "명상", [SL(122278)] = "해악", [SL(116849)] = "고치" },
["*"] = { [SL(1022)] = "보손", [SL(47788)] = "수호", [SL(33206)] = "고억", [SL(6940)] = "희손", [SL(114039)] = "정화", [SL(102342)] = "무껍", [SL(116849)] = "고치" },


3. 정술한테 마법이 해제 가능한 버프로 뜨는 버그 수정 + 문양박은 방밀 정보 추가 (사실상 의미 없지만)

Interface/InvenRaidFrames3/Libs/LibRealDispel-1.0/LibRealDispel-1.0.lua 파일을 엽니다.

161라인을 갑니다.

if class == "WARRIOR" then
function scanDispel()
local isGlyphSlam = false
if IsSpellKnown(23922) then
for i = 1, GetNumGlyphSockets() do
local enabled, _, _, spellId = GetGlyphSocketInfo(i)
if enabled and (spellId or 0) == 58375 then
isGlyphSlam = true
end
end
end
lib.tranquilize = nil
lib.harm = isGlyphSlam
wipe(lib.help)
end

빨간색 부분을 추가 또는 변경합니다.

정술 부분입니다.

elseif class == "SHAMAN" then
function scanDispel()
lib.tranquilize = nil
lib.harm = IsSpellKnown(370) and true or nil
wipe(lib.help)
lib.help.Curse = (IsSpellKnown(51886) or IsSpellKnown(95862)) and true or nil
lib.help.Magic = IsSpellKnown(95862) and true or nil
end

빨간색 부분을 수정합니다.

이상입니다.

Lv84 다시날아

모바일 게시판 하단버튼

댓글

새로고침
새로고침

모바일 게시판 하단버튼

지금 뜨는 인벤

더보기+

모바일 게시판 리스트

모바일 게시판 하단버튼

글쓰기

모바일 게시판 페이징

최근 HOT한 콘텐츠

  • 와우
  • 게임
  • IT
  • 유머
  • 연예
AD