Code Monkey home page Code Monkey logo

ndui's Introduction

ScreenShot

NDui Intro

  • This is not just a UI that changes your ingame appearence.
  • It contains build-in auras watcher and toolbar for all specs and talents.
  • Locales include 简体中文, 繁體中文, English, Russian and French.
  • Published Pages: NGA - WowInterface - CurseForge - WAGO

Main Features

  • Reskin default UI skins.
  • Ingame config panel.
  • Auras watcher for all classes with low usage.
  • oUF frameworks, include PartyFrames, RaidFrames and Nameplates.
    • PartyFrame: simple spells cooldown watcher and buff indicator for group members.
    • RaidFrame: two mode for differ needs, configurable click cast and raid debuffs.
    • Nameplate: highlight special units, target and mouseover highlight, dispellable auras highlight, tank treat color, auras filter.
  • Chat spam filter, whisper invite.
  • One-container system with filters by cargBags.
  • Classbar with spells for all classes, disabled as default (Console - Auras - Enable Personal Resource).
  • Raid Toolbar with ready check, count down, combat resurrect timer.
  • Optional event alerts.
    • Rare alert.
    • Interrupt/dispell alert.
    • Broken spell alert.
    • Quests progress notification.
    • Dungeons difficulty alert when solo.
    • Placed item alerts.
  • Infobars with auto sell junk, auto repair, invasion timers and quest completion check.

Default AddOns

  • !BaudErrorFrame: Error collecter
  • NDui: Core for NDui.

Skins Support

  • BigWigs, DBM, Details, PremadeGroupsFilter, Rematch, Skada, TMW, WeakAuras...

Download & Setup

  1. Download and unzip the file.
  2. Delete or backup your old "Interface" folder, replace with mine.
  3. Log into game, and follow the tutorial.

FAQ

Q: I find a problem that a...
A: Make sure you know the options from GUI panel and the slash cmd list from /ndui.

Q: How to change opacity of UI? How to disable the font outlines?
A: GUI-Skins.

Q: How to setup the spells on pensonal resource bar?
A: Search folder "Lumos" and find your own class, it can only be changed in LUA files.

Q: How to compare items?
A: Hold shift key. Or auto compare via "/run SetCVar("alwaysCompareItems", 1)".

Q: Can I modify the unitframes or actionbars?
A: Disable the features in GUI panel, and use your own addon.

Q: How to tell whether the castbars interruptable or not?
A: Blue color: interruptable, red color: not interruptable.

Q: Minimap tracker and calendar?
A: Right click minimap to toggle tracker, scroll button click to toggle calendar.

Q: How to toggle auto repair, auto sell junk?
A: Check with your infobar tooltips.

Q: How to scroll chat frame to top or bottom?
A: Hold shift and scroll.

Q: Loot banner after encounter end? Talking header for quests?
A: Go check the GUI panel in section MISC.

Q: How to invite a unit to party or guild?
A: ALT+LeftButton=Invite unit, CTRL+LeftButton=Guild invite, SHIFT+LeftButton=Copy name.

Credits

  • Elv, Freebaser, Haleth, Haste, lightspark, Loshine, Neavo, p3lim, Paopao001, Qulight, Ray, Rubgrsch, Simpy, Tuller, zork.

Others

ndui's People

Contributors

davidrosseljong avatar eke00372 avatar hxcktivist avatar siweia avatar unw1s3 avatar zeddicus40 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ndui's Issues

How To: Bag Item filters

How would I go about adding additional bag filter. For example If I wanted to filter all by Heart Stone into if own filter or add an item to one.

任务追踪栏的一个小问题

有进度条的世界任务,在进度条已经显示的情况下,如果重载界面,会造成进度条以及右侧图标出现双份

issue

1处报错,1处细节。

1、重构的SpecLevel.lua会报错,RL后依然会报错,但是触发条件不明。
Interface\AddOns\NDui\Modules\Tooltip\SpecLevel.lua:58: attempt to index field '?' (a nil value)
Count: 5

Call Stack:
[C]: ?
Interface\AddOns\NDui\Modules\Tooltip\SpecLevel.lua:58: in function `func'
Interface\AddOns\NDui\Init.lua:20: in function <Interface\AddOns\NDui\Init.lua:15>

2、AC设置面板的取消按钮宽度和其他按钮不一样(其他都是22)。
cancel:SetSize(100, 20)

No sound from !BaudErrorFrame

Hi, siweia

BaudErrorFrame When I looked at the Lua file, I get a sound when an error is output.

However, in the game there is no sound even if the Lua Error is output.

I even switched from "EnableSound=false to true"

Can I find out why there is no sound?

Friends error

Not sure if this has happened before or not but figured I would post the error here.

4x NDui\Modules\Infobar\Friends-Friends.lua:365: bad argument #3 to 'format' (string expected, got nil)
[C]: ?
NDui\Modules\Infobar\Friends-Friends.lua:365: in function <NDui\Modules\Infobar\Friends.lua:314>
NDui\Modules\Infobar\Friends-Friends.lua:427: in function <NDui\Modules\Infobar\Friends.lua:401>

Locals:
(*temporary) = "%s%s"
(*temporary) = "|cff7b8489"
(*temporary) = nil
(*temporary) = "string expected, got nil"

Screenfreeze

Hi,
my problem is that every time if I leave a Combat, it happens that my fps are dropping down for a 0,5 sec. Can you help me by the way? Ive disabled the "SimpleCombatText" but it doesnt help me further. I really like your UI and I use it all a Long time and I didnt had this problem earlier.
inkedwowscrnshot_110418_183138_li

能否改进一下背包分类

比如去刷幻化,刷了一堆低级装备和包里的当前版本装备都混一起了,卖店卖半天还容易卖错,现在的新物品闪光辨识度不够
能否让低级装备(比如ilvl<266)不进入装备分类,新增一个分类或者直接进入底层的主背包,或者直接像cargBags_Nivaya那样,新获得的东西都暂时放在一个新分类里

A small problem with my Garrison

...terface\FrameXML\FloatingGarrisonFollowerTooltip.lua:388: attempt to get length of field 'Properties' (a nil value)
Count: 2

Call Stack:
[C]: ?
...terface\FrameXML\FloatingGarrisonFollowerTooltip.lua:388: in function <...terface\FrameXML\FloatingGarrisonFollowerTooltip.lua:319>
[C]: in function GarrisonFollowerTooltipTemplate_SetShipyardFollower' Interface\FrameXML\GarrisonFollowerTooltip.lua:42: in function <Interface\FrameXML\GarrisonFollowerTooltip.lua:32> [C]: in function GarrisonFollowerTooltip_ShowWithData'
Interface\FrameXML\GarrisonFollowerTooltip.lua:29: in function `GarrisonFollowerTooltip_Show'
...\Blizzard_GarrisonUI\Blizzard_GarrisonShipyardUI.lua:2191: in function <...\Blizzard_GarrisonUI\Blizzard_GarrisonShipyardUI.lua:2180>
[C]: ?

Totem bar

Is there a way to hide the totem bar in pet battles.

Option request

For the Shaman Resto could the resource bar be removed and just have the Icon showing. Don't need to see my mana and heath as I can see it under my unit frame or raid frame. Now thinking about it could the unit frame also be hidden as a option too?

Feature Auras ItemID

Anyway to included ItemID for Auras would like to track a few items that are not in slot. Example would be Flight Master's Whistler

Feature request

能否加入聊天栏上ctrl+左键点击人名直接举报玩家*扰的功能,默认的举报功能会弹出面板要选择理由再确认太麻烦了~
以前用的是下面这段,但是8.0以后举报系统有改动就失效了 😢

function ChatFrame_OnHyperlinkShow (chatframe,link,text,button)
	if IsControlKeyDown() then
		local line = string.match(link,"player:[^:]+:(%d+):");
			if line then
				ReportPlayer("spam",line);
			return;
		end
	end
	return _ChatFrame_OnHyperlinkShow (chatframe,link,text,button);
end

One more thing about !BaudErrorFrame

Hi, siweia

I have confirmed that the sound output issue of !BaudErrorFrame has been resolved in version 3.13.2 released on Github. Thank you very much.

But there is one more request.

Sound is disabled by default. If you enable in the config window, it will be disabled again every time you /reload.

So you can not change the default value? I beg you.

zhTW 文本错误

在繁体本地化文件中的 430 行当前为
L["Azerite Item"] = "艾澤萊晶岩護甲"
而应该是
L["Azerite Armor"] = "艾澤萊晶岩護甲"
现在背包中护甲还是用英文分类的,可能是修改的时候忘记改了吧~

QuestNotifier.lua:20: bad argument #2 to 'format' (string expected, got nil)

Interface\AddOns\NDui\Modules\Misc\QuestNotifier.lua:20: bad argument #2 to 'format' (string expected, got nil)
Count: 1

Call Stack:
[C]: ?
[C]: ?
Interface\AddOns\NDui\Modules\Misc\QuestNotifier.lua:20: in function <Interface\AddOns\NDui\Modules\Misc\QuestNotifier.lua:18>
Interface\AddOns\NDui\Modules\Misc\QuestNotifier.lua:105: in function `func'
Interface\AddOns\NDui\Init.lua:23: in function <Interface\AddOns\NDui\Init.lua:18>

应该是海岛完成时候报错的。

Request - WoW Token

I would like to request to have the WoW token price added to the gold on-hover in the bottom right bar.

image

提议整合一个小功能:点击大幻象的宝珠的宏

    -- credit: EJedi42 https://www.curseforge.com/wow/addons/zoneabilitybinding
    BINDING_HEADER_ZoneAbilityBinding = "ZoneAbilityBinding";
    _G["BINDING_NAME_" .. "CLICK myZA:LeftButton"] = "Activate Zone Ability Button";
    local myza = myZA or CreateFrame("button","myZA",nil,"SecureActionButtonTemplate");
    myza:SetAttribute("type","click");
    myza:SetAttribute("clickbutton",ZoneAbilityFrame.SpellButton);

可以放在extrabar.lua 里。

用法示例:

# 一个宏搞定各种特殊按钮
/click ExtraActionButton1
/click ExtraQuestButton
/click myZA

Russian Locale

Here is Russian localization, as I promised. And about the filters in the bags, I would like to have at least a category of materials. I hope it is not too difficult.
ruRU.zip

twitch/curse update

Notice on twitch the UI for BFA has not updated since 4.5.0. Will there be a push to that client soon?

请教一下获取 SavedVariables 值的问题

根据我的理解,在 NDUI 里只有在 module:OnLogin() 后才能获取 SavedVariables 表里的值

比如说直接 print(NDuiDB["BFA"]) 结果是 nil
必须这样
function module:OnLogin()
print(NDuiDB["BFA"])
end
才能得到这个值为 true

但是有些代码并没有在 module:OnLogin() 里面也能成功获取 SavedVariables 表里的某个值,为啥呢,研究了很久没搞懂 😢

[Request] ClassColor Castbars

Was not able to find such a setting though I would enjoy this as a feature if this is something you would add. Thank you.

Buff

Buff duration do not show pass 1hr. For example Grim Visage is a 2 hour buff but on show 1hr. If I disable the UI the default show 2hr. This is for Darkmoon Fair Wheee! buff and flask with alchemy buff.

image

可以考虑这样来避免开头的一堆local

-- init.lua
local _, ns = ...
local function BuildEnv(env, module)
    if module then
        if not env[module] then env[module] = {} end
        setfenv(2, setmetatable(env[module], {__index = function(self, key)
                if key == "_G" then return _G end
                local value = rawget(env, key)
                if value == nil then
                    value = _G[key]
                    rawset(self, key, value)
                end
                return value
            end
        }))
    else
        setfenv(2, setmetatable(env, {__index = function(self, key)
                if key == "_G" then return _G end
                rawset(self, key, _G[key])
                return _G[key]
            end
        }))
    end
end

BuildEnv(ns)
ns._meta = getmetatable(ns)
ns._meta.__call = BuildEnv

ns()

-- 其他文件
select(2, ...)("chat")
-- balabala

这样用过的全局变量就自动缓存了,稍微改一下还能避免拼错引用到空值

AuroraClassic几个自定义API,希望能提供一点小帮助。

1、清除一些材质。
function F:CleanTextures(noIcon)
--if self.SetCheckedTexture then self:SetCheckedTexture("") end
if self.SetDisabledTexture then self:SetDisabledTexture("") end
if self.SetHighlightTexture then self:SetHighlightTexture("") end
if self.SetNormalTexture then self:SetNormalTexture("") end
if self.SetPushedTexture then self:SetPushedTexture("") end

local name = self:GetName()

local Left = self.Left or (name and _G[name.."Left"])
if Left then Left:Hide() end
local Right = self.Right or (name and _G[name.."Right"])
if Right then Right:Hide() end
local Top = self.Top or (name and _G[name.."Top"])
if Top then Top:Hide() end
local Bottom = self.Bottom or (name and _G[name.."Bottom"])
if Bottom then Bottom:Hide() end
local Middle = self.Middle or (name and (_G[name.."Middle"] or _G[name.."Mid"]))
if Middle then Middle:Hide() end
local TopLeft = self.TopLeft or (name and _G[name.."TopLeft"])
if TopLeft then TopLeft:Hide() end
local TopMiddle = self.TopMiddle or (name and (_G[name.."TopMiddle"] or _G[name.."TopMid"]))
if TopMiddle then TopMiddle:Hide() end
local TopRight = self.TopRight or (name and _G[name.."TopRight"])
if TopRight then TopRight:Hide() end
local MiddleLeft = self.MiddleLeft or (name and _G[name.."MiddleLeft"])
if MiddleLeft then MiddleLeft:Hide() end
local MiddleMiddle = self.MiddleMiddle or (name and (_G[name.."MiddleMiddle"] or _G[name.."MiddleMid"]))
if MiddleMiddle then MiddleMiddle:Hide() end
local MiddleRight = self.MiddleRight or (name and _G[name.."MiddleRight"])
if MiddleRight then MiddleRight:Hide() end
local BottomLeft = self.BottomLeft or (name and _G[name.."BottomLeft"])
if BottomLeft then BottomLeft:Hide() end
local BottomMiddle = self.BottomMiddle or (name and (_G[name.."BottomMiddle"] or _G[name.."BottomMid"]))
if BottomMiddle then BottomMiddle:Hide() end
local BottomRight = self.BottomRight or (name and _G[name.."BottomRight"])
if BottomRight then BottomRight:Hide() end

local track = self.Track or self.trackBG or self.Background or (name and (_G[name.."Track"] or _G[name.."BG"]))
if track then track:Hide() end
local top = self.ScrollBarTop or self.ScrollUpBorder
if top then top:Hide() end
local middle = self.ScrollBarMiddle or self.Border
if middle then middle:Hide() end
local bottom = self.ScrollBarBottom or self.ScrollDownBorder
if bottom then bottom:Hide() end

local bd = self.Border or self.border
if bd then bd:Hide() end

if noIcon then
	local ic = self.icon or self.Icon
	if ic then ic:Hide() end
end

end

2、美化HighlightTexture或者其他一些材质。
function F:ReskinTexture(relativeTo, classColor, isBorder)
if not self then return end

local r, g, b = 1, 1, 1
if classColor then r, g, b = cr, cg, cb end

local mult = C.mult
if isBorder then mult = -C.mult end

local tex
if self.SetHighlightTexture then
	self:SetHighlightTexture(C.media.bdTex)
	tex = self:GetHighlightTexture()
else
	tex = self
	tex:SetTexture(C.media.bdTex)
	if isBorder then
		tex.SetTexture = F.dummy
		tex:SetDrawLayer("BACKGROUND")
	end
end

if not isBorder then
	tex:SetColorTexture(r, g, b, .25)
end

tex:SetPoint("TOPLEFT", relativeTo, mult, -mult)
tex:SetPoint("BOTTOMRIGHT", relativeTo, -mult, mult)

end

3、美化StatusBar,大部分情况都适用。
function F:ReskinStatusBar(classColor, stripTex)
F.StripTextures(self, stripTex)
F.CleanTextures(self, true)

self:SetStatusBarTexture(C.media.normTex)
if classColor then self:SetStatusBarColor(cr*.8, cg*.8, cb*.8) end

local lvl = self:GetFrameLevel()
local bg = F.CreateBDFrame(self, .25)
bg:SetFrameLevel(lvl == 0 and 1 or lvl - 1)

end

Feature request: Option to show regular portrait

Since you already can display a dynamic portrait spread across the healthbar, I'd like to ask if it would be too much trouble to add an option to display a static (+ dynamic?) character potrait next to the unitbars (left/right options for self/target)?

typo

L["Tutorial Page5"] = "Done! You have complete the tutorial.\n\n|cffff0000CAUTIONS:|r\n\n|cff00ccffRIGHT-CLICK on Minimap to open track menu;\n\nAnd note that, most of the infobars contain extra functions;\n\nYou can easily set focus by holding SHIFT and LEFT click on the unit;\n\nMost of the settins can be changed in |cffffcc00NDuiConsole|r.|r"

settins

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.