⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 combatsct.lua

📁 时间太紧了
💻 LUA
📖 第 1 页 / 共 4 页
字号:
-- global flags/vars
DSCTPlayer = nil;
DSCT_NameRegistered = 0;
initCE_OK = false;
local fixfor_sw_stats = true;

currentclass = nil;
DSCT_LastHPPercent = 0;
DSCT_LastTargetHPPercent = 0;
DSCT_LastManaPercent = 0;
DSCT_EventRecord = nil;
DSCT_This = nil;


-- local constants
DSCT_Ani_Fix = {{0,0,1},{0,0,1},{0,0,1}};
DSCT_DIR3_LIST = {{0,0},{100,40},{100,-40},{-100,-40},{-100,40}};

DENNIE_cusMessLast = 1;
DENNIE_CUSMESS_TEXTSIZE = 18;
DENNIE_cusMess_posX = 0;
DENNIE_cusMess_posY = 180;
DENNIE_ani_posX = 0;
DENNIE_ani_posY = 0;
DSCT_HEX_LIST = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"}

SpellAlert_Mob_head = "";
SpellAlert_Spell_head = "";
DSCT_ROTATION_COS = 0;
DSCT_ROTATION_SIN = 0;
DSCT_MESS_TIMER = 4;
DSCT_MESS_FADETIMER = 3;
DSCT_MESS_ALPHAMAX = 1;
DSCT_ANI_SPEED = 1;
DSCT_ANI_TEXTSIZE = 20;
DSCT_ANI_ALPHAMAX = 1;
DSCT_ANI_PARAM1 = 1;
DSCT_ANI_PARAM2 = 1;
DSCT_ENTEXT = 1;
--Animation System variables
DSCT_LastBar = 1;					-- Holds what the next avalible fontstring for the animation system is
arrAniData = {
		["aniData1"] = {},					-- These are structures that define the animation data
		["aniData2"] = {},
		["aniData3"] = {},
		["aniData4"] = {},
		["aniData5"] = {},
		["aniData6"] = {},
		["aniData7"] = {},
		["aniData8"] = {},
		["aniData9"] = {},
		["aniData10"] = {}
}

arrCusMessData = {
		["cusMessData1"] = {},					-- These are structures that define the animation data
		["cusMessData2"] = {},
		["cusMessData3"] = {}
}

local default_config = {
		["VERSION"] = DSCT_Version,
		["ENABLED"] = 1,
		["ANIMATIONSPEED"] = 1,
		["TEXTSIZE"] = 22,
		["MESSAGESIZE"] = 16,
		["LOWHP"] = .4,
		["LOWMANA"] = .4,
		["SHOWHIT"] = 1,
		["SHOWMISS"] = 0,
		["SHOWDODGE"] = 0,
		["SHOWPARRY"] = 0,
		["SHOWBLOCK"] = 0,
		["SHOWSPELL"] = 1,
		["SHOWHEAL"] = 1,
		["SHOWRESIST"] = 2,
		["SHOWDEBUFF"] = 2,
		["SHOWBUFF"] = 4,
		["SHOWFADE"] = 4,
		["SHOWABSORB"] = 2,
		["SHOWLOWHP"] = 2,
		["SHOWLOWMANA"] = 2,
		["SHOWPOWER"] = 1,
		["SHOWCOMBATIN"] = 2,
		["SHOWCOMBATOUT"] = 2,
		["SHOWCOMBOPOINTS"] = 3,
		["SHOWHONOR_DSCT"] = 1,
		["SHOWSPELLALERT"] = 4,
		["SHOWEMOTE"] = 4,
		["SHOWYELL"] = 4,
		["SHOWSPELLCRIT"] = 0,
		["SHOWDMGCRIT"] = 0,
		["SHOWCUSTOM"] = 0,
		["SHOWSPELLTIMER"] = 0,
		["ALPHA"] = 1,
		["SHOWSELF"] = 0,
		["ANIMODE"] = 3,
		["FONT"] = 1,
		["MESSAGEFONT"] = 3,
		["MESSAGETIMER"] = 4,
		["MESSAGEFADETIMER"] = 3,
		["FONTOUTLINE"] = 1,
		["MESSAGEPOSX"] = 0,
		["MESSAGEPOSY"] = 180,
		["MESSFONTOUTLINE"] = 1,
		["ANIPOSX"] = 0,
		["ANIPOSY"] = 0,
		["MESSAGEALPHA"] = 1,
		["ANIC"] = 10,
		["ROTATION"] = 0,
		["DAMAGETYPE"] = 1,
		["CUSTOMEVENT"] = 0,
		["HEALERNAME"] = 1,
		["ENTEXT"] = 0,
		["SHORTALERT"] = 0,
		["SHOWEXECUTE"] = 4,
		["SHOWSA_BEGINCAST"] = 1,
		["SHOWSA_CAST"] = 1,
		["SHOWSA_GAIN"] = 1,
		
		["ANIMODE_Param1"] = 1,
		["ANIMODE_Param2"] = 1,
		["ANIMODE_ParamList"] = {[0]={1,1},[1]={1,1},[2]={1,1},[3]={1,1},[4]={1,1},[5]={1,1},[6]={1,1}};
		
		["COLORS"] = {
			["SHOWHIT"] = {	b = 0,g = 0,r = 1,},
			["SHOWMISS"] = {b = 0.8,g = 0.5,r = 0,},
			["SHOWDODGE"] = {
				b = 0.8,
				g = 0.5,
				r = 0,
			},
			["SHOWPARRY"] = {
				b = 0.8,
				g = 0.5,
				r = 0,
			},
			["SHOWBLOCK"] = {
				b = 0.8,
				g = 0.5,
				r = 0,
			},
			["SHOWRESIST"] = {
				b = 0.780392,
				g = 0.388235,
				r = 0.905882,
			},
			["SHOWABSORB"] = {
				b = 0,
				g = 0.85,
				r = 1,
			},
			["SHOWCOMBATIN"] = {
				b = 0,
				g = 0.7,
				r = 1,
			},
			["SHOWCOMBATOUT"] = {
				b = 0,
				g = 1,
				r = 0,
			},
			["SHOWSPELLCRIT"] = {
				b = 0,
				g = 1,
				r = 1,
			},
			["SHOWLOWHP"] = {
				b = 0.5,
				g = 0.5,
				r = 1,
			},
			["SHOWLOWMANA"] = {
				b = 1,
				g = 0.5,
				r = 0.5,
			},
			["SHOWDMGCRIT"] = {
				b = 1,
				g = 1,
				r = 1,
			},
			["SHOWSPELL"] = {
				b = 1,
				g = 0,
				r = 1,
			},
			["SHOWHEAL"] = {
				b = 0,
				g = 1,
				r = 0,
			},
			["SHOWDEBUFF"] =  {r = 1.0, g = 0.17, b = 0.0},
			["SHOWBUFF"] =  {r = 0, g = 1.0, b = 0},
			["SHOWFADE"] =  {r = 1.0, g = 0.5, b = 0.0},
			["SHOWPOWER"] =  {r = 1.0, g = 1.0, b = 0.0},
			["SHOWCOMBOPOINTS"] =  {r = 0.0, g = 1.0, b = 0.0},
			["SHOWHONOR_DSCT"] =  {r = 1, g = 1, b = 0.0},
			["SHOWEMOTE"] =  {r = 1.0, g = 0.5, b = 0.0},
			["SHOWYELL"] =  {r = 1.0, g = 0.5, b = 0.0},
			["SHOWCUSTOM"] =  {r = 1.0, g = 1.0, b = 0.0},
			["SHOWSPELLALERT"] =  {r = 1.0, g = 1.0, b = 1.0},
			["SPELLALERT_MOB_COLOR"] =  {r = 0.47, g = 1, b = 0.57},
			["SPELLALERT_SPELL_COLOR"] =  {r = 1, g = 0.42, b = 0.32},
			["SHOWEXECUTE"] = {r = 1, g = 1, b = 0},
		}
	};

local EVENT_LIST = {
	["SHOWHIT"] = {"UNIT_COMBAT"},
	["SHOWMISS"] = {"UNIT_COMBAT"},
	["SHOWDODGE"] = {"UNIT_COMBAT"},
	["SHOWPARRY"] = {"UNIT_COMBAT"},
	["SHOWBLOCK"] = {"UNIT_COMBAT","CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS","CHAT_MSG_COMBAT_HOSTILEPLAYER_HITS"},
	["SHOWRESIST"] = {"UNIT_COMBAT","UNIT_SPELLMISS"},
	["SHOWABSORB"] = {"UNIT_COMBAT","CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES","CHAT_MSG_COMBAT_HOSTILEPLAYER_MISSES",
					"CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS","CHAT_MSG_COMBAT_HOSTILEPLAYER_HITS"},
	["SHOWSPELLCRIT"] = {"CHAT_MSG_SPELL_SELF_DAMAGE"},
	["SHOWLOWHP"] = {"UNIT_HEALTH"},
	["SHOWLOWMANA"] = {"UNIT_MANA"},
	["SHOWDMGCRIT"] = {"CHAT_MSG_COMBAT_SELF_HITS"},
	["SHOWSPELL"] = {"UNIT_COMBAT"},
	["SHOWHEAL"] = {"CHAT_MSG_SPELL_SELF_BUFF","CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS",
					"CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF","CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_BUFFS"},
	["SHOWDEBUFF"] =  {"CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE"},
	["SHOWBUFF"] =  {"CHAT_MSG_SPELL_SELF_BUFF","CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS"},
	["SHOWFADE"] =  {"CHAT_MSG_SPELL_AURA_GONE_SELF"},
	["SHOWPOWER"] =  {"UNIT_COMBAT","CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE","CHAT_MSG_SPELL_SELF_BUFF","CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS"},
	["SHOWCOMBOPOINTS"] =  {"PLAYER_COMBO_POINTS"},
	["SHOWHONOR_DSCT"] =  {"CHAT_MSG_COMBAT_HONOR_GAIN"},
	["SHOWEMOTE"] =  {"CHAT_MSG_MONSTER_EMOTE"},
	["SHOWYELL"] =  {"CHAT_MSG_MONSTER_YELL"},
	["SHOWSPELLALERT"] =  {"CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE","CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF",
				"CHAT_MSG_SPELL_CREATURE_VS_CREATURE_BUFF","CHAT_MSG_SPELL_CREATURE_VS_CREATURE_DAMAGE",
				"CHAT_MSG_SPELL_PERIODIC_CREATURE_BUFFS","CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_BUFFS",
				"CHAT_MSG_SPELL_SELF_BUFF","CHAT_MSG_SPELL_SELF_DAMAGE","CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS",
				"CHAT_MSG_SPELL_AURA_GONE_SELF","CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE",
				"CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE"},
	["CUSTOMEVENT"] =  {"CHAT_MSG_MONSTER_YELL","CHAT_MSG_SPELL_SELF_BUFF","CHAT_MSG_SPELL_PERIODIC_SELF_BUFFS",
				"CHAT_MSG_COMBAT_SELF_HITS","CHAT_MSG_COMBAT_SELF_MISSES",
				"CHAT_MSG_SPELL_SELF_DAMAGE","CHAT_MSG_SPELL_AURA_GONE_SELF",
				"CHAT_MSG_SPELL_PERIODIC_CREATURE_DAMAGE","CHAT_MSG_SPELL_PERIODIC_HOSTILEPLAYER_DAMAGE",
				"CHAT_MSG_SPELL_DAMAGESHIELDS_ON_SELF","CHAT_MSG_SPELL_AURA_GONE_OTHER",
				"CHAT_MSG_SPELL_CREATURE_VS_SELF_DAMAGE","CHAT_MSG_COMBAT_CREATURE_VS_SELF_HITS",
				"CHAT_MSG_SPELL_PERIODIC_SELF_DAMAGE","CHAT_MSG_SPELL_HOSTILEPLAYER_DAMAGE",
				"CHAT_MSG_SPELL_BREAK_AURA","CHAT_MSG_COMBAT_CREATURE_VS_SELF_MISSES",
				"CHAT_MSG_COMBAT_HOSTILEPLAYER_HITS","CHAT_MSG_COMBAT_HOSTILEPLAYER_MISSES"},
	["SHOWEXECUTE"] = {"UNIT_HEALTH","PLAYER_TARGET_CHANGED"},
	["HEALERNAME"] =  {"CHAT_MSG_SPELL_HOSTILEPLAYER_BUFF"},
};

function DSCT_Debug(msg)	DEFAULT_CHAT_FRAME:AddMessage(msg);end

--Called when its loaded
function DSCT_OnLoad()
	-- Register Startup Events
	this:RegisterEvent("PLAYER_ENTERING_WORLD");
	this:RegisterEvent("VARIABLES_LOADED");
	this:RegisterEvent("ADDON_LOADED");
end

-- Show the Option Menu
function DSCT_showMenu()
	if DSCTOptions then
		PlaySound("igMainMenuOpen");
		ShowUIPanel(DSCTOptions);	
		DSCT_openPreView();
		DSCTOptions_HideAll();
		DSCTOptions_ShowEnevt();
	else
		DSCT_Debug("None Menu");
	end
end

--Hide the Option Menu
function DSCT_hideMenu()
	if DSCTOptions then
		PlaySound("igMainMenuClose");
		HideUIPanel(DSCTOptions);
		DSCTOptions_HideAll();
		
		DSCT_closePreView();
		DSCT_RefreshStaticVar();
		DSCT_aniInit();--reload with Current Config	
		DSCT_cusMessInit();
	end
end

--Get a clean config
function DSCT_FreshVar()
	DSCT_NEWCONFIG = {};
end

function DSCT_RegisterEvent(event)
	if (DSCT_EventRecord[event]) then
		if DSCT_EventRecord[event] ~= 1 then
			DSCT_This:RegisterEvent(event);
			DSCT_EventRecord[event] = 1;
		end
	else
		DSCT_This:RegisterEvent(event);
		DSCT_EventRecord[event] = 1;
	end	
end
function DSCT_UnRegisterEvent(event)	
	DSCT_This:UnregisterEvent(event);
	DSCT_EventRecord[event] = 0;
end
function DSCT_UnRefreshAllEvent()
	for keyA, valueA in EVENT_LIST do
		for keyB ,valueB in EVENT_LIST[keyA] do
			DSCT_UnRegisterEvent(valueB);
		end
	end
end
function DSCT_RefreshAllEvent()	
	for keyA, valueA in EVENT_LIST do
		if DSCT_Get(keyA) ~= 0 then
			if keyA ~= "SHOWSPELLALERT" then
				for keyB ,valueB in EVENT_LIST[keyA] do
					DSCT_RegisterEvent(valueB);
				end
			else
				if DSCT_SP_OnEvent then
					for keyB ,valueB in EVENT_LIST[keyA] do
						DSCT_RegisterEvent(valueB);
					end
				end
			end
		end
	end
end
function DSCT_UnRegisterEventGroup(name)
	if EVENT_LIST[name] then
		for keyB ,valueB in EVENT_LIST[name] do
			DSCT_UnRegisterEvent(valueB);
		end
	end
end
function DSCT_RegisterEventGroup(name)
	if EVENT_LIST[name] then
		for keyB ,valueB in EVENT_LIST[name] do
			DSCT_RegisterEvent(valueB);
		end
	end
end
function DSCT_AllSearch_Filter()
	if fixfor_sw_stats == false then return;end
	DSCT_DEBUFF_NAME_SEARCH = DSCTD_Filter(AURAADDEDSELFHARMFUL);
	DSCT_YOU_GAIN_SEARCH = DSCTD_Filter(AURAADDEDSELFHELPFUL);
	DSCT_FADE_SEARCH = DSCTD_Filter(AURAREMOVEDSELF);
	DSCT_YOUCRIT_SEARCH = DSCTD_Filter(SPELLLOGCRITSCHOOLSELFOTHER);
	DSCT_YOUCRIT_SEARCH2 = DSCTD_Filter(SPELLLOGCRITSELFOTHER);
	DSCT_YOUCRIT_SEARCH3 = DSCTD_Filter(COMBATHITCRITSELFOTHER);
	DSCT_HEAL_SEARCH1 = DSCTD_Filter(HEALEDOTHERSELF);
	DSCT_HEAL_SEARCH2 = DSCTD_Filter(HEALEDSELFSELF);
	DSCT_AURAHEAL_SEARCH1 = DSCTD_Filter(PERIODICAURAHEALOTHERSELF);
	DSCT_AURAHEAL_SEARCH2 = DSCTD_Filter(PERIODICAURAHEALSELFSELF);
	DSCT_CRITHEAL_SEARCH1 = DSCTD_Filter(HEALEDCRITOTHERSELF);
	DSCT_CRITHEAL_SEARCH2 = DSCTD_Filter(HEALEDCRITSELFSELF);
	DSCT_SA_CASTS_PLY_VS_PLY = DSCTD_Filter(SPELLCASTGOOTHERTARGETTED);
	DSCT_SA_FADE_BUFF = DSCTD_Filter(AURAREMOVEDOTHER);
	DSCT_ABSORB_AMOUNT_SEARCH1 = DSCTD_Filter(VSABSORBOTHERSELF);
	DSCT_ABSORB_AMOUNT_SEARCH2 = DSCTD_Filter(SPELLLOGABSORBOTHERSELF);
	DSCT_YOU_GAIN_POWER_SEARCH1 = DSCTD_Filter(SPELLPOWERLEECHSELFOTHER);--spell,mob,virnum,virname,num,name
	DSCT_YOU_GAIN_POWER_SEARCH2 = DSCTD_Filter(POWERGAINSELFSELF);--mob,num,name
	DSCT_YOU_GAIN_POWER_SEARCH3 = DSCTD_Filter(POWERGAINOTHERSELF);--mob,spell,num,name

	DSCT_SA_BEGIN_CAST[1] = DSCTD_Filter(SPELLCASTOTHERSTART);	
	DSCT_SA_CASTS_TOTEM[1] = DSCTD_Filter(SPELLCASTGOOTHER);	
	DSCT_SA_GAIN_BUFF[1] = DSCTD_Filter(AURAADDEDOTHERHELPFUL);
	DSCT_SAEX_PERFORMOTHERSTART[1] = DSCTD_Filter(SPELLPERFORMOTHERSTART);
	DSCT_SAEX_PERFORMGOOTHER[1] = DSCTD_Filter(SPELLPERFORMGOOTHER);

end
--Set the global player config
function DSCT_Initialize()
	if (DSCT_NameRegistered == 1) then return;end	
	local playerName = UnitName("player");
	
	if DSCT_Support_NewFont then DSCT_Support_NewFont();end
	
	currentclass = UnitClass("player");
	DSCT_This = this;
	DSCT_EventRecord = {};
	-- Add Slash Commands
	SlashCmdList["DSCT"] = function(msg) DSCT_Cmd(msg); end
	SLASH_DSCT1 = "/sct";	
	
	SlashCmdList["DSCTMENU"] = DSCT_showMenu;
	SLASH_DSCTMENU1 = "/sctmenu";
	
	-- Add my options frame to the global UI panel list
	UIPanelWindows["DSCTOptions"] = {area = "center", pushable = 0};

	DSCT_RegisterEvent("PLAYER_REGEN_ENABLED");
	DSCT_RegisterEvent("PLAYER_REGEN_DISABLED");
	DSCT_RegisterEvent("PLAYER_CONTROL_LOST");

	if ( DSCT_NEWCONFIG == nil) then DSCT_FreshVar();end	
	DSCTPlayer = DSCT_Config_GetPlayer();	
	DSCT_RefreshStaticVar();
	DSCT_aniInit();--reload with Current Config	
	DSCT_cusMessInit();
	
	
	DSCT_RefreshAllEvent();
	
	DSCT_InitCustomEvent();
	
	DSCT_AllSearch_Filter();
	DSCT_NameRegistered = 1;	
end

function DSCT_RefreshStaticVar()
	local tmp = DSCT_nGetColor("SPELLALERT_MOB_COLOR");
	SpellAlert_Mob_head = DSCT_ColorFlip(tmp.r,tmp.g,tmp.b);
	tmp = DSCT_nGetColor("SPELLALERT_SPELL_COLOR");
	SpellAlert_Spell_head = DSCT_ColorFlip(tmp.r,tmp.g,tmp.b);
	DSCT_ROTATION_SIN = sin(360 - DSCT_Get("ROTATION"));
	DSCT_ROTATION_COS = cos(360 - DSCT_Get("ROTATION"));
	
	DSCT_MESS_TIMER = DSCT_Get("MESSAGETIMER");
	DSCT_MESS_FADETIMER = DSCT_Get("MESSAGEFADETIMER");
	DSCT_MESS_ALPHAMAX = DSCT_Get("MESSAGEALPHA");
	DSCT_ANI_SPEED = DSCT_Get("ANIMATIONSPEED");
	DSCT_ANI_TEXTSIZE = DSCT_Get("TEXTSIZE");
	DSCT_ANI_ALPHAMAX = DSCT_Get("ALPHA");
	DSCT_ENTEXT = DSCT_Get("ENTEXT") + 1;
	
	DENNIE_cusMess_posX = DSCT_Get("MESSAGEPOSX");
	DENNIE_cusMess_posY = DSCT_Get("MESSAGEPOSY");
	DENNIE_ani_posX = DSCT_Get("ANIPOSX");
	DENNIE_ani_posY = DSCT_Get("ANIPOSY");
	
	local paramList = DSCT_Get("ANIMODE_ParamList");
	DSCT_ANI_PARAM1 = paramList[DSCT_Get("ANIMODE")][1];
	DSCT_ANI_PARAM2 = paramList[DSCT_Get("ANIMODE")][2];
end

--Get or Create a config based on the current player
function DSCT_Config_GetPlayer()
	if (DSCT_NEWCONFIG[UnitName("player").." of "..GetCVar("realmName")] == nil) then
		--DSCT_Debug("NEWDSCT"..UnitName("player").." of "..GetCVar("realmName"));
		DSCT_Config_NewPlayer(UnitName("player").." of "..GetCVar("realmName"));
	end
	return DSCT_NEWCONFIG[UnitName("player").." of "..GetCVar("realmName")];
end

--Set up a default config
function DSCT_Config_NewPlayer(PlayerName)
	DSCT_NEWCONFIG[PlayerName] = DSCT_clone(default_config);
end

--Copy a whole table
function DSCT_clone(t)             -- return a copy of the table t
  local new = {};             -- create a new table
  local i, v = next(t, nil);  -- i is an index of t, v = t[i]
  while i do
  	if type(v)=="table" then 
  		v=DSCT_clone(v);
  	end 
    new[i] = v;
    i, v = next(t, i);        -- get next index
  end
  return new;
end

function DSCT_Load(config)
	DSCT_NEWCONFIG[UnitName("player").." of "..GetCVar("realmName")] = nil;
	DSCT_NEWCONFIG[UnitName("player").." of "..GetCVar("realmName")] = DSCT_clone(config);
	DSCTPlayer = DSCT_Config_GetPlayer();
	DSCT_aniInit();
	DSCT_cusMessInit();		
	DSCT_RefreshAllEvent();
	DSCT_RefreshStaticVar();
end
--Reset everything to default
function DSCT_Reset()
	DSCT_Load(default_config);
	DSCT_hideMenu();
	DSCT_showMenu();
end

--Get a value from player config
function DSCT_Get(option)
	if (DSCTPlayer ~= nil) and (DSCTPlayer[option]) then
		return DSCTPlayer[option];
	else
		if default_config[option] then
			return default_config[option];
		else
			return nil;
		end
	end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -