-- Craft Research Timer (CRT) by @aTo (EU) -- v0.4.8 function CRT.Research_Alert(k, id_craft, simcraft, start) if (start == true) then for i = 0, 2, 1 do local MaxResearch = CRT.SV.data.Craft[k][i].MaxResearch local Simu_craft = CRT.SV.data.Craft[k][i].Simu_craft if(Simu_craft < MaxResearch) then if (i == 0 and CRT.SV.Settings.ALERT.BS == true) then local msg = "Warning only "..Simu_craft.." / "..MaxResearch.." on Blacksmithing ( "..k.." )" CRT.UI.ALERT_WD:AddMessage(msg, CRT.SV.Settings.ALERT.Color.r, CRT.SV.Settings.ALERT.Color.g, CRT.SV.Settings.ALERT.Color.b) elseif (i == 1 and CRT.SV.Settings.ALERT.CL == true) then local msg = "Warning only "..Simu_craft.." / "..MaxResearch.." on Clothing ( "..k.." )" CRT.UI.ALERT_WD:AddMessage(msg, CRT.SV.Settings.ALERT.Color.r, CRT.SV.Settings.ALERT.Color.g, CRT.SV.Settings.ALERT.Color.b) elseif (i == 2 and CRT.SV.Settings.ALERT.WO == true) then local msg = "Warning only "..Simu_craft.." / "..MaxResearch.." on Woodworking ( "..k.." )" CRT.UI.ALERT_WD:AddMessage(msg, CRT.SV.Settings.ALERT.Color.r, CRT.SV.Settings.ALERT.Color.g, CRT.SV.Settings.ALERT.Color.b) end end end else -- UPDATE SIMU_CRAFT local MaxResearch = CRT.SV.data.Craft[k][id_craft].MaxResearch local Simu_craft = CRT.SV.data.Craft[k][id_craft].Simu_craft - 1 -- set new simucraft CRT.SV.data.Craft[k][id_craft].Simu_craft = Simu_craft -- save new simucraft if (id_craft == 0) then id_text = "BS_Text" elseif(id_craft == 1) then id_text = "CL_Text" elseif(id_craft == 2) then id_text = "WO_Text" end CRT.UI.GRID_WD[k][id_craft][0][id_text]:SetText(" "..Simu_craft.." / "..MaxResearch) local Item_name = CRT.SV.data.Craft[k][id_craft][simcraft]["Item_name"] local Trait_name = CRT.SV.data.Craft[k][id_craft][simcraft]["Trait_name"] local msg = CRT.L["Completed"].." "..k.." ( "..Item_name.." - "..Trait_name.." )" CRT.UI.ALERT_WD:AddMessage(msg,1,0,0) end end function CRT.Alert_Create() CRT.UI.ALERT_TLW = WINDOW_MANAGER:CreateTopLevelWindow("CRT_ALERT_TLW") CRT.UI.ALERT_TLW:SetDimensions(800,300) CRT.UI.ALERT_TLW:SetHidden(not CRT.SV.Settings.ALERT.hidden) CRT.UI.ALERT_TLW:SetClampedToScreen(false) CRT.UI.ALERT_TLW:SetMovable(CRT.SV.Settings.lock) CRT.UI.ALERT_TLW:SetMouseEnabled(true) CRT.UI.ALERT_TLW:SetDrawLayer(0) CRT.UI.ALERT_TLW:SetScale(1) CRT.UI.ALERT_TLW:SetAnchor(TOPLEFT, GuiRoot, TOPLEFT, CRT.SV.Settings.ALERT.offset.X, CRT.SV.Settings.ALERT.offset.Y) CRT.UI.ALERT_TLW:SetHandler("OnMouseUp", function(self) CRT.Save_position("ALERT")end) --Text Buffer CRT.UI.ALERT_WD = WINDOW_MANAGER:CreateControl("CRT_ALERT_WB",CRT.UI.ALERT_TLW,CT_TEXTBUFFER) CRT.UI.ALERT_WD:SetDimensions( 800, 300 ) CRT.UI.ALERT_WD:SetFont( "ZoFontGame" ) CRT.UI.ALERT_WD:SetAnchor(TOPLEFT,lsSum,TOPLEFT,0,0) CRT.UI.ALERT_WD:SetLineFade(10,2) CRT.UI.ALERT_WD:SetHorizontalAlignment(1) CRT.UI.ALERT_WD:SetClearBufferAfterFadeout(true) -- CRT_ALERT_WB:SetLinkEnabled( true ) CRT.UI.ALERT_BD = WINDOW_MANAGER:CreateControl("CRT_ALERT_BD",CRT.UI.ALERT_TLW,CT_BACKDROP) CRT.UI.ALERT_BD:SetHidden(not CRT.SV.Settings.ALERT.preview) CRT.UI.ALERT_BD:SetDimensions( 800 , 300 ) CRT.UI.ALERT_BD:SetCenterColor(0.1,0.1,0.1,1) CRT.UI.ALERT_BD:SetEdgeColor(0,0,0,1) CRT.UI.ALERT_BD:SetEdgeTexture("", 8, 1, 1) CRT.UI.ALERT_BD:SetAlpha(0.6) CRT.UI.ALERT_BD:SetAnchor(TOPLEFT,lsSum,TOPLEFT,0,0) end function CRT.ALERT_Update(timestamp) local k,j for k, _ in pairs(CRT.SV.data.Craft) do if (CRT.SV.data.Craft[CRT.playername]["Start"] == true) then local CRT_Current_PlayerPosition = GetMapPlayerPosition("player") if (CRT_Current_PlayerPosition ~= CRT_Start_PlayerPosition) then CRT.SV.data.Craft[CRT.playername]["Start"] = false CRT.Research_Alert(CRT.playername, nil, nil, true) for j, _ in pairs(CRT.SV.data.Craft) do if ((k ~= CRT.playername) and (CRT.SV.data.Craft[k][0].Simu_craft ~= 0 or CRT.SV.data.Craft[k][1].Simu_craft ~= 0 or CRT.SV.data.Craft[k][2].Simu_craft ~= 0)) then CRT.Research_Alert(k, nil, nil, true) end end end end for id_craft = 0, 2,1 do for simcraft = 1, 3,1 do if (CRT.SV.data.Craft[k][id_craft][simcraft] ~= nil)then local currenttimer = CRT.SV.data.Craft[k][id_craft][simcraft]["EndTimeStamp"] - timestamp - 1 if (currenttimer <= 0) then if (CRT.SV.data.Craft[k][id_craft][simcraft]["Alert"] == true) then CRT.SV.data.Craft[k][id_craft][simcraft]["Alert"] = false CRT.Research_Alert(k, id_craft, simcraft, false) end end end end end end end