Files
wnsrc/gamemodes/darkrp/plugins/combineutilities/pda/derma/cl_derma_datafile.lua

2414 lines
85 KiB
Lua
Raw Normal View History

2024-08-04 23:54:45 +03:00
--[[
| This file was obtained through the combined efforts
| of Madbluntz & Plymouth Antiquarian Society.
|
| Credits: lifestorm, Gregory Wayne Rossel JR.,
| Maloy, DrPepper10 @ RIP, Atle!
|
| Visit for more: https://plymouth.thetwilightzone.ru/
--]]
local PLUGIN = PLUGIN
local color = Color(41, 243, 229, 255)
function PLUGIN:CreateRow(parent, title, text, date, bSecondInRow, bUpdateable)
parent:SetSize(parent:GetWide(), SScaleMin(48 / 3))
parent:Dock(TOP)
parent.Paint = function(this, w, h)
if (bSecondInRow) then
surface.SetDrawColor(0, 0, 0, 75)
surface.DrawRect(0, 0, w, h)
else
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
end
end
local top = parent:Add("EditablePanel")
top:SetSize(parent:GetWide(), parent:GetTall() * 0.5)
top:Dock(TOP)
top.Paint = nil
local topTitle = top:Add("DLabel")
topTitle:SetTextColor(Color(154, 169, 175, 255))
topTitle:SetFont("MenuFontNoClamp")
topTitle:SetText(string.utf8upper(title)..":")
topTitle:Dock(LEFT)
topTitle:DockMargin(SScaleMin(20 / 3), SScaleMin(5 / 3), 0, 0)
topTitle:SizeToContents()
parent.bottom = parent:Add("EditablePanel")
parent.bottom:SetSize(parent:GetWide(), parent:GetTall() * 0.4)
parent.bottom:Dock(TOP)
parent.bottom.Paint = nil
parent.bottom:SetName( "bottom" )
parent.bottom.titleText = parent.bottom:Add("DLabel")
parent.bottom.titleText:SetTextColor(color)
parent.bottom.titleText:SetFont("MenuFontNoClamp")
parent.bottom.titleText:SetText(text)
parent.bottom.titleText:Dock(LEFT)
parent.bottom.titleText:DockMargin(SScaleMin(20 / 3), 0, 0, 0)
parent.bottom.titleText:SizeToContents()
if (bUpdateable) then
local topDate = top:Add("DLabel")
topDate:SetFont("MenuFontNoClamp")
topDate:SetTextColor(Color(154, 169, 175, 255))
topDate:SetText(string.utf8upper((string.find(title, "receiver") and "date" or "updated")..": "..date))
topDate:Dock(RIGHT)
topDate:DockMargin(0, SScaleMin(5 / 3), SScaleMin(20 / 3), 0)
topDate:SizeToContents()
end
end
local function CreateButton(name, text, path)
name:SetSize(SScaleMin(480 / 3), SScaleMin(40 / 3))
name:SetContentAlignment(4)
name:SetTextInset(SScaleMin(20 / 3), 0)
name:Dock(TOP)
name:SetFont("TitlesFontNoClamp")
name:DockMargin(0, 0, 0, SScaleMin(9 / 3))
name:SetText(string.utf8upper(text))
name.Paint = function(self, w, h)
surface.SetDrawColor(Color(255, 255, 255, 255))
surface.SetMaterial(ix.util.GetMaterial("willardnetworks/datafile/"..path))
surface.DrawTexturedRect(0, 0, w, h)
end
end
local function CreateHalfButton(name, text, path, bDockLeft)
name:SetSize(SScaleMin(235 / 3), SScaleMin(40 / 3))
name:SetContentAlignment(4)
name:SetTextInset(SScaleMin(20 / 3), 0)
if bDockLeft then
name:Dock(LEFT)
name:DockMargin(0, 0, SScaleMin(5 / 3), 0)
else
name:Dock(RIGHT)
name:DockMargin(SScaleMin(5 / 3), 0, 0, 0)
end
name:SetFont("TitlesFontNoClamp")
name:SetText(string.utf8upper(text))
name.Paint = function(self, w, h)
surface.SetDrawColor(Color(255, 255, 255, 255))
surface.SetMaterial(ix.util.GetMaterial("willardnetworks/datafile/"..path))
surface.DrawTexturedRect(0, 0, w, h)
end
end
local function createUpdateButton(parent)
parent:SetSize(SScaleMin(137 / 3), SScaleMin(18 / 3))
parent:Dock(RIGHT)
parent:DockMargin(0, 0, SScaleMin(21 / 3), 0)
parent:SetFont("MenuFontNoClamp")
parent:SetText(string.utf8upper("güncelle"))
parent:SetContentAlignment(5)
parent.Paint = function(self, w, h)
surface.SetDrawColor(255, 255, 255, 255)
surface.SetMaterial(ix.util.GetMaterial("willardnetworks/datafile/smallestbutton.png"))
surface.DrawTexturedRect(0, 0, w, h)
end
end
local PANEL = {}
function PANEL:GetLoyaltyText()
local loyaltyText = PLUGIN.file.genericdata.loyaltyStatus or "N/A"
if PLUGIN.file.genericdata.socialCredits and !PLUGIN.file.genericdata.combine then
if PLUGIN.file.genericdata.socialCredits < 40 then
return "UNDERCLASS"
end
end
return loyaltyText
end
function PANEL:Init()
ix.gui.citizenDatafile = self
if !PLUGIN.file.genericdata.permits then
PLUGIN.file.genericdata.permits = {}
netstream.Start("RemovePermitDatapad", PLUGIN.file.genericdata)
end
local permitsGeneric = PLUGIN.file.genericdata.permit
if permitsGeneric == true or permitsGeneric == false then
PLUGIN.file.genericdata.permits = {}
netstream.Start("RemovePermitDatapad", PLUGIN.file.genericdata)
end
PLUGIN.mainTitle:SetText(string.utf8upper("datafile"))
self:SetSize(self:GetParent():GetWide(), SScaleMin(338 / 3))
self:Dock(TOP)
self:DockMargin(0, 0, 0, SScaleMin(15 / 3))
self.Paint = nil
local titleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(titleFrame, self, "bilgi")
local titleSubframe = titleFrame:Add("EditablePanel")
titleSubframe:SetSize(SScaleMin(300 / 3), 0)
titleSubframe:Dock(RIGHT)
titleSubframe.Paint = nil
local viewLogs = titleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(viewLogs, titleSubframe, 87, "kayıtlar", RIGHT)
PLUGIN:DrawDividerLine(titleSubframe, 2, 13, 0, SScaleMin( 4 / 3), RIGHT )
local back = titleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(back, titleSubframe, 68, "geri", RIGHT)
back.DoClick = function()
PLUGIN.mainTitle:SetText(string.utf8upper("datapad"))
surface.PlaySound("willardnetworks/datapad/back.wav")
if IsValid(PLUGIN.datafileInfo) then
PLUGIN.datafileInfo:SetVisible(false)
end
if IsValid(PLUGIN.datafileFunctions) then
PLUGIN.datafileFunctions:SetVisible(false)
end
PLUGIN.updates:SetVisible(true)
PLUGIN.functions:SetVisible(true)
end
viewLogs.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
PLUGIN.datafileInfo:SetVisible(false)
PLUGIN.datafileFunctions:SetVisible(false)
PLUGIN.viewEntryLogs = vgui.Create("ixDatafileEntryLogs", PLUGIN.contentSubframe)
end
local infoContentFrame = self:Add("EditablePanel")
infoContentFrame:SetSize(self:GetWide(), SScaleMin(288 / 3))
infoContentFrame:Dock(TOP)
infoContentFrame:DockMargin(0, 0 - SScaleMin(2 / 3), 0, 0)
infoContentFrame.Paint = nil
local name = infoContentFrame:Add("EditablePanel")
if (!PLUGIN.file.genericdata.cohesionPoints) then
PLUGIN:CreateRow(name, "isim", PLUGIN.file.genericdata.name, nil, false, false)
end
local clientName = LocalPlayer():Name()
local clientRank = 1
local genericName = PLUGIN.file.genericdata.name
local genericRank = 1
local ranks = {}
ranks[1] = "RCT"
ranks[2] = "i5"
ranks[3] = "i4"
ranks[4] = "i3"
ranks[5] = "i2"
ranks[6] = "i1"
ranks[7] = "RL"
ranks[8] = "CpT"
ranks[9] = "ChF"
if PLUGIN.file.genericdata.combine == true and LocalPlayer():IsCombine() then
for k, v in pairs(ranks) do
if Schema:IsCombineRank(clientName, v) then
clientRank = k
end
if Schema:IsCombineRank(genericName, v) then
genericRank = k
end
end
if clientRank == 7 or clientRank == 8 or clientRank == 9 then
if (clientRank > genericRank) or (genericRank == 9 and clientRank != 9) then
local rankTopTitle = name:GetChildren()[1]:Add("DLabel")
rankTopTitle:SetTextColor(Color(154, 169, 175, 255))
rankTopTitle:SetFont("MenuFontNoClamp")
rankTopTitle:SetText(string.utf8upper("RÜTBE SEÇENEKLERİ")..":")
rankTopTitle:Dock(RIGHT)
rankTopTitle:DockMargin(0, SScaleMin(5 / 3), SScaleMin(20 / 3), 0)
rankTopTitle:SizeToContents()
local demote = name.bottom:Add("DButton")
demote:Dock(RIGHT)
demote:SetText("RÜTBE DÜŞÜR")
demote:SetFont("MenuFontNoClamp")
demote:DockMargin(SScaleMin(4 / 3), 0, SScaleMin(18 / 3), 0)
demote.Paint = nil
demote:SetTextColor(color)
demote:SizeToContents()
demote.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
if genericRank == 1 then
return
end
local newName = string.Replace( name.bottom.titleText:GetText(), ranks[genericRank], ranks[genericRank - 1] )
PLUGIN.file.genericdata.name = newName
name.bottom.titleText:SetText(newName)
name.bottom.titleText:SizeToContents()
genericRank = genericRank - 1
netstream.Start("DatafilePromoteDemote", PLUGIN.file.genericdata.id, newName)
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, "DEMOTED TO: "..ranks[genericRank])
end
local divider = name.bottom:Add("DShape")
divider:SetType("Rect")
divider:SetColor(color)
divider:Dock(RIGHT)
divider:SetWide(SScaleMin(2 / 3))
divider:DockMargin(SScaleMin(5 / 3), SScaleMin(3 / 3), 0, SScaleMin(3 / 3), 0)
if genericRank != 9 then
local promote = name.bottom:Add("DButton")
promote:Dock(RIGHT)
promote:SetText("TERFİ")
promote:SetFont("MenuFontNoClamp")
promote.Paint = nil
promote:SetTextColor(color)
promote:SizeToContents()
promote.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
if genericRank + 1 == 8 or genericRank + 1 >= clientRank then
promote:Remove()
demote:Remove()
divider:Remove()
rankTopTitle:SetText(string.utf8upper("DOKUNULAMAZ RÜTBE"))
rankTopTitle:SizeToContents()
end
local newName = string.Replace( name.bottom.titleText:GetText(), ranks[genericRank], ranks[genericRank + 1] )
PLUGIN.file.genericdata.name = newName
name.bottom.titleText:SetText(newName)
name.bottom.titleText:SizeToContents()
genericRank = genericRank + 1
netstream.Start("DatafilePromoteDemote", PLUGIN.file.genericdata.id, newName)
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, "PROMOTED TO: "..ranks[genericRank])
end
end
end
end
end
self.cid = infoContentFrame:Add("EditablePanel")
local function shouldGetBioticCredits()
if (PLUGIN.file.genericdata.cid != "N/A") then
netstream.Start("RequestCIDCreditsDatafile", PLUGIN.file.genericdata.cid)
end
end
if (PLUGIN.file.genericdata.collarID) then
PLUGIN:CreateRow(self.cid, "collar id | cid | credits", PLUGIN.file.genericdata.collarID.. " | " .. PLUGIN.file.genericdata.cid .. " | ".."0", nil, false, false)
shouldGetBioticCredits()
else
PLUGIN:CreateRow(self.cid, "cid | krediler", PLUGIN.file.genericdata.cid.." | ".."0", nil, true, false)
netstream.Start("RequestCIDCreditsDatafile", PLUGIN.file.genericdata.cid)
end
local nullification = infoContentFrame:Add("EditablePanel")
if PLUGIN.file.genericdata.cohesionPoints then
PLUGIN:CreateRow(nullification, "nullification", string.upper(PLUGIN.file.genericdata.nulled), PLUGIN.file.genericdata.cohesionPointsDate, true, true)
for _, v in ipairs(nullification:GetChildren()) do
if v:GetName() == "bottom" then
local updateStatusButton = v:Add("DButton")
createUpdateButton(updateStatusButton)
updateStatusButton.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
titleFrame:SetVisible(false)
infoContentFrame:SetVisible(false)
local updateStatusTitleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(updateStatusTitleFrame, self, "edit nullification status")
local updateStatusTitleSubframe = updateStatusTitleFrame:Add("EditablePanel")
updateStatusTitleSubframe:SetSize(SScaleMin(300 / 3), 0)
updateStatusTitleSubframe:Dock(RIGHT)
updateStatusTitleSubframe.Paint = nil
local editStatus = updateStatusTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(editStatus, updateStatusTitleSubframe, 87, "edit status", RIGHT)
PLUGIN:DrawDividerLine(updateStatusTitleSubframe, 2, 13, 0, SScaleMin( 4 / 3), RIGHT )
local back2 = updateStatusTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(back2, updateStatusTitleSubframe, 68, "geri", RIGHT)
local updateStatusFrame = self:Add("DPanel")
updateStatusFrame:SetSize(self:GetWide(), SScaleMin(288 / 3))
updateStatusFrame:Dock(TOP)
updateStatusFrame:DockMargin(0, 0 - SScaleMin(2 / 3), 0, 0)
updateStatusFrame.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 40)
surface.DrawRect(0, 0, w, h)
end
local statusName = updateStatusFrame:Add("DLabel")
statusName:SetFont("MenuFontNoClamp")
statusName:SetText(string.utf8upper("Durum seç:"))
statusName:SetTextColor(color)
statusName:Dock(TOP)
statusName:DockMargin(SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(10 / 3))
local nullificationOptions = vgui.Create("DComboBox", updateStatusFrame)
nullificationOptions:SetZPos(7)
nullificationOptions:SetFont("MenuFontNoClamp")
nullificationOptions:SetTextColor(color)
nullificationOptions:Dock(TOP)
nullificationOptions:SetTall(SScaleMin(46 / 3))
nullificationOptions:SetFont("TitlesFontNoClamp")
nullificationOptions:DockMargin(SScaleMin(20 / 3), 0, SScaleMin(20 / 3), 0)
nullificationOptions:SetValue(string.utf8upper("/////"))
nullificationOptions:AddChoice( string.utf8upper("ACTIVE") )
nullificationOptions:AddChoice( string.utf8upper("INACTIVE") )
nullificationOptions.Paint = function(panel, width, height)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, width, height)
end
back2.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
updateStatusTitleFrame:SetVisible(false)
updateStatusFrame:SetVisible(false)
titleFrame:SetVisible(true)
infoContentFrame:SetVisible(true)
end
editStatus.DoClick = function()
if (nullificationOptions:GetSelected()) then
PLUGIN.file.genericdata.nulled = nullificationOptions:GetSelected()
PLUGIN.file.genericdata.cohesionPointsDate = os.date("%d/%m/%Y")
surface.PlaySound("willardnetworks/datapad/navigate.wav")
netstream.Start("EditDatafile", PLUGIN.file.genericdata, "Nullification Status updated to " .. nullificationOptions:GetSelected())
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, "UPDATED NULLIFICATION STATUS TO: ".. nullificationOptions:GetSelected())
end
end
end
end
end
end
local statusTopTitle = self.cid:GetChildren()[1]:Add("DLabel")
statusTopTitle:SetTextColor(Color(154, 169, 175, 255))
statusTopTitle:SetFont("MenuFontNoClamp")
statusTopTitle:SetText(string.utf8upper("SADAKAT DURUMU")..":")
statusTopTitle:Dock(RIGHT)
statusTopTitle:DockMargin(0, SScaleMin(5 / 3), SScaleMin(20 / 3), 0)
statusTopTitle:SizeToContents()
local titleText = self.cid:GetChildren()[2]:Add("DLabel")
titleText:SetTextColor(color)
titleText:SetFont("MenuFontNoClamp")
titleText:SetText(self:GetLoyaltyText())
titleText:Dock(RIGHT)
titleText:DockMargin(0, 0, SScaleMin(20 / 3), 0)
titleText:SizeToContents()
local socialCredits = infoContentFrame:Add("EditablePanel")
if (isbool(PLUGIN.file.genericdata.combine)) then
local date = PLUGIN.file.genericdata.socialCreditsDate
if (PLUGIN.file.genericdata.combine) then
PLUGIN:CreateRow(socialCredits, "sterilize kredi", !PLUGIN.file.genericdata.combine and math.Clamp(tonumber(PLUGIN.file.genericdata.socialCredits), 0, 200) or tonumber(PLUGIN.file.genericdata.socialCredits), isnumber(date) and os.date("%d/%m/%Y", date) or date, false, true)
elseif PLUGIN.file.genericdata.cohesionPoints or PLUGIN.file.genericdata.collarID then
date = PLUGIN.file.genericdata.cohesionPointsDate
PLUGIN:CreateRow(socialCredits, "uyum puanı", !PLUGIN.file.genericdata.combine and math.Clamp(tonumber(PLUGIN.file.genericdata.cohesionPoints), 0, 200) or tonumber(PLUGIN.file.genericdata.cohesionPoints), isnumber(date) and os.date("%d/%m/%Y", date) or date, false, true)
else
PLUGIN:CreateRow(socialCredits, "sosyal kredi", !PLUGIN.file.genericdata.combine and math.Clamp(tonumber(PLUGIN.file.genericdata.socialCredits), 0, 200) or tonumber(PLUGIN.file.genericdata.socialCredits), isnumber(date) and os.date("%d/%m/%Y", date) or date, false, true)
end
end
for _, v in pairs(socialCredits:GetChildren()) do
if v:GetName() == "bottom" then
local updateSocialButton = v:Add("DButton")
createUpdateButton(updateSocialButton)
updateSocialButton.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
titleFrame:SetVisible(false)
infoContentFrame:SetVisible(false)
local updateCreditsTitleFrame = self:Add("EditablePanel")
if (PLUGIN.file.genericdata.cohesionPoints) then
PLUGIN:CreateTitle(updateCreditsTitleFrame, self, "uyum punlarını düzenle")
else
PLUGIN:CreateTitle(updateCreditsTitleFrame, self, "sosyal kredileri düzenle")
end
local updateCreditsTitleSubframe = updateCreditsTitleFrame:Add("EditablePanel")
updateCreditsTitleSubframe:SetSize(SScaleMin(300 / 3), 0)
updateCreditsTitleSubframe:Dock(RIGHT)
updateCreditsTitleSubframe.Paint = nil
local editCredits = updateCreditsTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(editCredits, updateCreditsTitleSubframe, 87, "kredileri düzenle", RIGHT)
PLUGIN:DrawDividerLine(updateCreditsTitleSubframe, 2, 13, 0, SScaleMin( 4 / 3), RIGHT )
local back2 = updateCreditsTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(back2, updateCreditsTitleSubframe, 68, "geri", RIGHT)
local updateCreditsFrame = self:Add("DPanel")
updateCreditsFrame:SetSize(self:GetWide(), SScaleMin(288 / 3))
updateCreditsFrame:Dock(TOP)
updateCreditsFrame:DockMargin(0, 0 - SScaleMin(2 / 3), 0, 0)
updateCreditsFrame.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 40)
surface.DrawRect(0, 0, w, h)
end
local reason = updateCreditsFrame:Add("DLabel")
reason:SetFont("MenuFontNoClamp")
reason:SetText(string.utf8upper("sebep:"))
reason:SetTextColor(color)
reason:Dock(TOP)
reason:DockMargin( SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(10 / 3))
local entry = vgui.Create("DTextEntry", updateCreditsFrame)
entry:Dock(TOP)
entry:DockMargin(SScaleMin(20 / 3), 0, SScaleMin(20 / 3), SScaleMin(10 / 3))
entry:SetMultiline(false)
entry:SetVerticalScrollbarEnabled( false )
entry:SetEnterAllowed(false)
entry:SetTall(SScaleMin(20 / 3))
entry:SetFont("MenuFontNoClamp")
entry:SetTextColor( color )
entry:SetCursorColor( color )
entry.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
this:DrawTextEntryText( this:GetTextColor(), this:GetHighlightColor(), this:GetCursorColor() )
end
entry.MaxChars = 50
entry.OnTextChanged = function(this)
local txt = this:GetValue()
local amt = string.utf8len(txt)
if amt > this.MaxChars then
this:SetText(this.OldText)
this:SetValue(this.OldText)
else
this.OldText = txt
end
end
local amount = updateCreditsFrame:Add("DLabel")
amount:SetFont("MenuFontNoClamp")
amount:SetText(string.utf8upper("miktar:"))
amount:SetTextColor(color)
amount:Dock(TOP)
amount:DockMargin( SScaleMin(20 / 3), 0, SScaleMin(20 / 3), SScaleMin(10 / 3))
local number = vgui.Create("DNumberWang", updateCreditsFrame)
number:Dock(TOP)
number:DockMargin(SScaleMin(20 / 3), 0, SScaleMin(20 / 3), 0)
number:SetMinMax( -10, 10 )
number:SetTall(SScaleMin(20 / 3))
number:SetFont("MenuFontNoClamp")
number:SetTextColor( color )
number:SetCursorColor( color )
number.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
this:DrawTextEntryText( this:GetTextColor(), this:GetHighlightColor(), this:GetCursorColor() )
end
local limitCount = 0
for _, v1 in pairs(PLUGIN.file.datafilelogs) do
if v1.points and v1.points != 0 and isnumber(v1.date) and (os.date("%d/%m/%Y", v1.date) == os.date("%d/%m/%Y")) then
limitCount = limitCount + v1.points
end
end
editCredits.DoClick = function()
if (!PLUGIN.file.genericdata.cohesionPoints and number:GetValue() > 20 or number:GetValue() < -20) then
LocalPlayer():NotifyLocalized("Miktar -20 ile 20 arasında olmalıdır!")
return false
elseif (PLUGIN.file.genericdata.cohesionPoints and number:GetValue() > 20 or number:GetValue() < -20) then
LocalPlayer():NotifyLocalized("Miktar -20 ile 20 arasında olmalıdır!")
return false
end
if (LocalPlayer():Team() != FACTION_ADMIN and PLUGIN.file.genericdata.name and ((number:GetValue() + limitCount) > 20 or (number:GetValue() + limitCount) < -20)) then
LocalPlayer():NotifyLocalized("Bu kişi bugün "..limitCount.." SC kazandı, günlük maksimum -20/20'dir!")
return false
end
if (number:GetValue() == 0) then
LocalPlayer():NotifyLocalized("Puan eklemeniz ya da çıkarmanız gerekiyor!")
return false
end
surface.PlaySound("willardnetworks/datapad/navigate.wav")
if PLUGIN.file.genericdata.collarID then
PLUGIN.file.genericdata.cohesionPoints = !PLUGIN.file.genericdata.combine and math.Clamp(PLUGIN.file.genericdata.cohesionPoints + number:GetValue(), 0, 200) or PLUGIN.file.genericdata.cohesionPoints + number:GetValue()
netstream.Start("EditDatafile", PLUGIN.file.genericdata, "Uyum puanı " .. number:GetValue() .. " olarak değiştirildi")
else
PLUGIN.file.genericdata.socialCredits = !PLUGIN.file.genericdata.combine and math.Clamp(PLUGIN.file.genericdata.socialCredits + number:GetValue(), 0, 200) or PLUGIN.file.genericdata.socialCredits + number:GetValue()
netstream.Start("EditDatafile", PLUGIN.file.genericdata, "Sosyal Kredi " .. number:GetValue() .. " olarak değiştirildi")
end
PLUGIN.file.genericdata.socialCreditsDate = os.time()
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), number:GetValue(), entry:GetText())
end
back2.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
updateCreditsTitleFrame:SetVisible(false)
updateCreditsFrame:SetVisible(false)
titleFrame:SetVisible(true)
infoContentFrame:SetVisible(true)
end
end
end
end
local geneticDescription = infoContentFrame:Add("EditablePanel")
if PLUGIN.file.genericdata.combine != "overwatch" then
PLUGIN:CreateRow(geneticDescription, "genetik açıklama", PLUGIN.file.genericdata.geneticDesc, nil, true, false)
else
PLUGIN:CreateRow(geneticDescription, "genetik açıklama", "OVERWATCH", nil, true, false)
end
local occupation = infoContentFrame:Add("EditablePanel")
PLUGIN:CreateRow(occupation, "meslek", string.Left(PLUGIN.file.genericdata.occupation, 38), PLUGIN.file.genericdata.occupationDate, false, true)
for _, v in pairs(occupation:GetChildren()) do
if v:GetName() == "bottom" then
local updateOccupationButton = v:Add("DButton")
createUpdateButton(updateOccupationButton)
updateOccupationButton.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
titleFrame:SetVisible(false)
infoContentFrame:SetVisible(false)
local updateOccupationTitleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(updateOccupationTitleFrame, self, "meslek düzenle")
local updateOccupationTitleSubframe = updateOccupationTitleFrame:Add("EditablePanel")
updateOccupationTitleSubframe:SetSize(SScaleMin(300 / 3), 0)
updateOccupationTitleSubframe:Dock(RIGHT)
updateOccupationTitleSubframe.Paint = nil
local editOccupation = updateOccupationTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(editOccupation, updateOccupationTitleSubframe, 87, "meslek düzenle", RIGHT)
PLUGIN:DrawDividerLine(updateOccupationTitleSubframe, 2, 13, 0, SScaleMin( 4 / 3), RIGHT )
local back2 = updateOccupationTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(back2, updateOccupationTitleSubframe, 68, "geri", RIGHT)
local updateOccupationFrame = self:Add("DPanel")
updateOccupationFrame:SetSize(self:GetWide(), SScaleMin(288 / 3))
updateOccupationFrame:Dock(TOP)
updateOccupationFrame:DockMargin(0, 0 - SScaleMin(2 / 3), 0, 0)
updateOccupationFrame.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 40)
surface.DrawRect(0, 0, w, h)
end
local occupationName = updateOccupationFrame:Add("DLabel")
occupationName:SetFont("MenuFontNoClamp")
occupationName:SetText(string.utf8upper("meslek adı giriniz:"))
occupationName:SetTextColor(color)
occupationName:Dock(TOP)
occupationName:DockMargin( SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(10 / 3))
local entry = vgui.Create("DTextEntry", updateOccupationFrame)
entry:Dock(TOP)
entry:DockMargin(SScaleMin(20 / 3), 0, SScaleMin(20 / 3), SScaleMin(10 / 3))
entry:SetMultiline(false)
entry:SetVerticalScrollbarEnabled( false )
entry:SetText(PLUGIN.file.genericdata.occupation)
entry:SetEnterAllowed(false)
entry:SetTall(SScaleMin(20 / 3))
entry:SetFont("MenuFontNoClamp")
entry:SetTextColor( color )
entry:SetCursorColor( color )
entry.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
this:DrawTextEntryText( this:GetTextColor(), this:GetHighlightColor(), this:GetCursorColor() )
end
entry.MaxChars = 50
entry.OnTextChanged = function(this)
local txt = this:GetValue()
local amt = string.utf8len(txt)
if amt > this.MaxChars then
this:SetText(this.OldText)
this:SetValue(this.OldText)
else
this.OldText = txt
end
end
editOccupation.DoClick = function()
local occupation = entry:GetText()
surface.PlaySound("willardnetworks/datapad/navigate.wav")
PLUGIN.file.genericdata.occupation = occupation
PLUGIN.file.genericdata.occupationDate = os.date("%d/%m/%Y")
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, "MESLEK: " .. occupation)
netstream.Start("EditDatafile", PLUGIN.file.genericdata, "Meslek '" .. string.upper(occupation) .. "' olarak değiştirildi")
end
back2.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
updateOccupationTitleFrame:SetVisible(false)
updateOccupationFrame:SetVisible(false)
titleFrame:SetVisible(true)
infoContentFrame:SetVisible(true)
end
end
end
end
local designatedStatus = infoContentFrame:Add("EditablePanel")
PLUGIN:CreateRow(designatedStatus, "belirlenen durum", string.Left(PLUGIN.file.genericdata.designatedStatus, 38), PLUGIN.file.genericdata.designatedStatusDate, true, true)
for _, v in pairs(designatedStatus:GetChildren()) do
if v:GetName() == "bottom" then
local updateStatusButton = v:Add("DButton")
createUpdateButton(updateStatusButton)
updateStatusButton.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
titleFrame:SetVisible(false)
infoContentFrame:SetVisible(false)
local updateStatusTitleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(updateStatusTitleFrame, self, "belirlenen durumu düzenle")
local updateStatusTitleSubframe = updateStatusTitleFrame:Add("EditablePanel")
updateStatusTitleSubframe:SetSize(SScaleMin(300 / 3), 0)
updateStatusTitleSubframe:Dock(RIGHT)
updateStatusTitleSubframe.Paint = nil
local editStatus = updateStatusTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(editStatus, updateStatusTitleSubframe, 87, "durumu düzenle", RIGHT)
PLUGIN:DrawDividerLine(updateStatusTitleSubframe, 2, 13, 0, SScaleMin( 4 / 3), RIGHT )
local back2 = updateStatusTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(back2, updateStatusTitleSubframe, 68, "geri", RIGHT)
local updateStatusFrame = self:Add("DPanel")
updateStatusFrame:SetSize(self:GetWide(), SScaleMin(288 / 3))
updateStatusFrame:Dock(TOP)
updateStatusFrame:DockMargin(0, 0 - SScaleMin(2 / 3), 0, 0)
updateStatusFrame.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 40)
surface.DrawRect(0, 0, w, h)
end
local statusName = updateStatusFrame:Add("DLabel")
statusName:SetFont("MenuFontNoClamp")
statusName:SetText(string.utf8upper("durum adını giriniz:"))
statusName:SetTextColor(color)
statusName:Dock(TOP)
statusName:DockMargin( SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(10 / 3))
local entry = vgui.Create("DTextEntry", updateStatusFrame)
entry:Dock(TOP)
entry:DockMargin(SScaleMin(20 / 3), 0, SScaleMin(20 / 3), SScaleMin(10 / 3))
entry:SetMultiline(false)
entry:SetVerticalScrollbarEnabled( false )
entry:SetText(PLUGIN.file.genericdata.designatedStatus)
entry:SetEnterAllowed(false)
entry:SetFont("MenuFontNoClamp")
entry:SetTall(SScaleMin(20 / 3))
entry:SetTextColor( color )
entry:SetCursorColor( color )
entry.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
this:DrawTextEntryText( this:GetTextColor(), this:GetHighlightColor(), this:GetCursorColor() )
end
entry.MaxChars = 50
entry.OnTextChanged = function(this)
local txt = this:GetValue()
local amt = string.utf8len(txt)
if amt > this.MaxChars then
this:SetText(this.OldText)
this:SetValue(this.OldText)
else
this.OldText = txt
end
end
editStatus.DoClick = function()
local status = entry:GetText()
surface.PlaySound("willardnetworks/datapad/navigate.wav")
PLUGIN.file.genericdata.designatedStatus = status
PLUGIN.file.genericdata.designatedStatusDate = os.date("%d/%m/%Y")
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, "BELİRLENEN DURUM: " .. status)
netstream.Start("EditDatafile", PLUGIN.file.genericdata, "Belirlenen durum '" .. string.upper(status) .. "' olarak değiştirildi")
end
back2.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
updateStatusTitleFrame:SetVisible(false)
updateStatusFrame:SetVisible(false)
titleFrame:SetVisible(true)
infoContentFrame:SetVisible(true)
end
end
end
end
end
vgui.Register("ixDatafileInfo", PANEL, "EditablePanel")
PANEL = {}
function PANEL:Init()
self:SetSize(self:GetParent():GetWide(), self:GetParent():GetTall())
self:Dock(TOP)
self:DockMargin(0, 0, 0, SScaleMin(15 / 3))
self.Paint = nil
PLUGIN.viewDatafileLogs = self
self.titleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(self.titleFrame, self, "datafile kayıtlarını gör")
local titleSubframe = self.titleFrame:Add("EditablePanel")
titleSubframe:SetSize(SScaleMin(300 / 3), 0)
titleSubframe:Dock(RIGHT)
titleSubframe.Paint = nil
local addGenericNote = titleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(addGenericNote, titleSubframe, 87, "genel not ekle", RIGHT)
PLUGIN:DrawDividerLine(titleSubframe, 2, 13, 0, SScaleMin( 4 / 3), RIGHT )
local back = titleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(back, titleSubframe, 68, "geri", RIGHT)
back.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
self:SetVisible(false)
if IsValid(PLUGIN.datafileInfo) then
PLUGIN.datafileInfo:SetVisible(true)
end
if IsValid(PLUGIN.datafileFunctions) then
PLUGIN.datafileFunctions:SetVisible(true)
end
end
self.transactionLogs = self:Add("DButton")
CreateButton(self.transactionLogs, "işlem kayıtları", "smallerbuttonarrow.png")
self.transactionLogs:DockMargin(0, 0 - SScaleMin(2 / 3), 0, SScaleMin(9 / 3))
self.logsFrame = self:Add("DScrollPanel")
self.logsFrame:SetSize(self:GetWide(), SScaleMin(576 / 3) - self.transactionLogs:GetTall() - SScaleMin(11 / 3))
self.logsFrame:Dock(FILL)
self.logsFrame:DockMargin(0, 0 - SScaleMin(2 / 3), 0, 0)
self.transactionLogs.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
if (LocalPlayer():Team() != FACTION_ADMIN and !LocalPlayer():IsCombineRankAbove("i3") and !LocalPlayer():GetCharacter():HasFlags("T")) then
LocalPlayer():Notify("İşlem günlüklerine yalnızca CCA ve CP i3+ erişebilir!")
return
end
if self.titleFrame then
self.titleFrame:SetVisible(false)
end
self.logsFrame:SetVisible(false)
self.transactionLogs:SetVisible(false)
self.genericTitleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(self.genericTitleFrame, self, "transaction logs")
local genericTitleSubframe = self.genericTitleFrame:Add("EditablePanel")
genericTitleSubframe:SetSize(SScaleMin(300 / 3), 0)
genericTitleSubframe:Dock(RIGHT)
genericTitleSubframe.Paint = nil
self.genericBack = genericTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(self.genericBack, genericTitleSubframe, 68, "geri", RIGHT)
PLUGIN.viewTransactionLogs = vgui.Create("ixDatafileTransactionLogs", self)
self.genericBack.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
self.genericTitleFrame:SetVisible(false)
self.transactionLogs:SetVisible(true)
if self.titleFrame then
self.titleFrame:SetVisible(true)
end
self.logsFrame:SetVisible(true)
PLUGIN.viewTransactionLogs:SetVisible(false)
end
end
addGenericNote.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
if self.titleFrame then
self.titleFrame:SetVisible(false)
end
self.logsFrame:SetVisible(false)
self.transactionLogs:SetVisible(false)
local genericTitleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(genericTitleFrame, self, "genel not ekle")
local genericTitleSubframe = genericTitleFrame:Add("EditablePanel")
genericTitleSubframe:SetSize(SScaleMin(300 / 3), 0)
genericTitleSubframe:Dock(RIGHT)
genericTitleSubframe.Paint = nil
local saveGenericNote = genericTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(saveGenericNote, genericTitleSubframe, 87, "genel notu kaydet", RIGHT)
PLUGIN:DrawDividerLine(genericTitleSubframe, 2, 13, 0, SScaleMin( 4 / 3), RIGHT )
local genericBack = genericTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(genericBack, genericTitleSubframe, 68, "geri", RIGHT)
local textEntryPanel = self:Add("DPanel")
textEntryPanel:Dock(TOP)
textEntryPanel:DockMargin(0, 0 - SScaleMin(2 / 3), 0, 0)
textEntryPanel:SetSize(self:GetWide(), SScaleMin(576 / 3))
textEntryPanel.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
end
local genericEntry = textEntryPanel:Add("DTextEntry")
genericEntry:Dock(FILL)
genericEntry:DockMargin(0, 0 - SScaleMin(2 / 3), 0, 0)
genericEntry:SetMultiline(true)
genericEntry:RequestFocus()
genericEntry:SetFont("MenuFontNoClamp")
genericEntry:SetVerticalScrollbarEnabled( true )
genericEntry:SetTextColor( color )
genericEntry:SetCursorColor( color )
genericEntry.Paint = function(this, w, h)
this:DrawTextEntryText( this:GetTextColor(), this:GetHighlightColor(), this:GetCursorColor() )
end
genericEntry.MaxChars = 70 * 20
genericEntry.OnTextChanged = function(this)
local txt = this:GetValue()
local amt = string.utf8len(txt)
if amt > this.MaxChars then
this:SetText(this.OldText)
this:SetValue(this.OldText)
else
this.OldText = txt
end
end
saveGenericNote.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate.wav")
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, genericEntry:GetText(), false, true)
end
genericBack.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
genericTitleFrame:SetVisible(false)
textEntryPanel:SetVisible(false)
self.transactionLogs:SetVisible(true)
if self.titleFrame then
self.titleFrame:SetVisible(true)
end
self.logsFrame:SetVisible(true)
end
end
for k, v in SortedPairs(PLUGIN.file.datafilelogs, true) do
if v.disabled then continue end
local frame = self.logsFrame:Add("DPanel")
frame:SetTall(SScaleMin(48 / 3))
frame:Dock(TOP)
frame.Paint = function(this, w, h)
if (k % 2 == 0) then
surface.SetDrawColor(0, 0, 0, 75)
surface.DrawRect(0, 0, w, h)
else
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
end
end
local top = frame:Add("EditablePanel")
top:SetSize(frame:GetWide(), frame:GetTall() * 0.5)
top:Dock(TOP)
top.Paint = nil
local topPoster = top:Add("DLabel")
topPoster:SetTextColor(Color(154, 169, 175, 255))
topPoster:SetFont("MenuFontNoClamp")
topPoster:SetText(string.utf8upper(PLUGIN.file.datafilelogs[k].poster))
topPoster:Dock(LEFT)
topPoster:DockMargin(SScaleMin(20 / 3), SScaleMin(5 / 3), 0, 0)
topPoster:SizeToContents()
local topDate = top:Add("DLabel")
topDate:SetTextColor(Color(154, 169, 175, 255))
topDate:SetFont("MenuFontNoClamp")
local date = PLUGIN.file.datafilelogs[k].date
topDate:SetText(string.utf8upper("yayınlanma: ")..(isnumber(date) and os.date("%H:%M:%S - %d/%m/%Y", date) or date))
topDate:Dock(RIGHT)
topDate:DockMargin(0, SScaleMin(5 / 3), SScaleMin(20 / 3), 0)
topDate:SizeToContents()
local bottom = frame:Add("EditablePanel")
bottom:SetSize(frame:GetWide(), frame:GetTall() * 0.4)
bottom:Dock(TOP)
bottom.Paint = nil
bottom:SetName( "bottom" )
local excerpt = string.Left( PLUGIN.file.datafilelogs[k].text, 33)
if string.len(PLUGIN.file.datafilelogs[k].text) > 33 then
excerpt = excerpt..".."
end
local bottomText = bottom:Add("DLabel")
bottomText:SetTextColor(color)
bottomText:SetFont("MenuFontNoClamp")
bottomText:SetText(excerpt)
bottomText:Dock(LEFT)
bottomText:DockMargin(SScaleMin(20 / 3), 0, 0, SScaleMin(5 / 3))
bottomText:SizeToContents()
local viewLog = bottom:Add("DButton")
viewLog:Dock(RIGHT)
viewLog:DockMargin(0, 0, SScaleMin(20 / 3), SScaleMin(5 / 3))
viewLog:SetFont("MenuFontNoClamp")
viewLog:SetTextColor(color)
viewLog:SetText(string.utf8upper("incele"))
viewLog:SizeToContents()
viewLog.Paint = nil
viewLog.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
PLUGIN.viewDatafileLogs:SetVisible(false)
PLUGIN.viewDatafileLog = vgui.Create("ixDatafileOpenLog", PLUGIN.contentSubframe)
PLUGIN.viewDatafileLog:Update(PLUGIN.file.datafilelogs[k].text)
end
PLUGIN:DrawDividerLine(bottom, 2, 13, 0, SScaleMin( 4 / 3), RIGHT, true )
local removeLog = bottom:Add("DButton")
removeLog:Dock(RIGHT)
removeLog:DockMargin(0, 0, 0, SScaleMin(5 / 3))
removeLog:SetFont("MenuFontNoClamp")
removeLog:SetTextColor(color)
removeLog:SetText(string.utf8upper("kaldır"))
removeLog:SizeToContents()
removeLog.Paint = nil
removeLog.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
if (!LocalPlayer():IsCombineRankAbove("RL") and !LocalPlayer():GetCharacter():HasFlags("L") and LocalPlayer():Team() != FACTION_ADMIN) then
LocalPlayer():Notify("Yeterince yüksek rütbeye sahip olmadığınız veya Combine kıyafetinizi giymediğiniz için bu kütüğü kaldıramazsınız!")
return false
end
frame:Remove()
PLUGIN.file.datafilelogs[k] = {
poster = PLUGIN.file.datafilelogs[k].poster,
date = PLUGIN.file.datafilelogs[k].date,
text = PLUGIN.file.datafilelogs[k].text,
points = PLUGIN.file.datafilelogs[k].points or 0,
disabled = true
}
if !PLUGIN.file.genericdata.name then
netstream.Start("UpdateDatafileLogs", PLUGIN.file.genericdata.id, PLUGIN.file.datafilelogs, k, PLUGIN.file.genericdata.collarID)
else
netstream.Start("UpdateDatafileLogs", PLUGIN.file.genericdata.id, PLUGIN.file.datafilelogs, k, PLUGIN.file.genericdata.name)
end
end
if PLUGIN.file.datafilelogs[k].points then
if PLUGIN.file.datafilelogs[k].points != 0 then
PLUGIN:DrawDividerLine(bottom, 2, 13, 0, SScaleMin( 4 / 3), RIGHT, true )
local points = bottom:Add("DLabel")
points:SetTextColor(color)
points:SetFont("MenuFontNoClamp")
points:SetText(string.utf8upper("puanlar: ")..PLUGIN.file.datafilelogs[k].points)
points:Dock(RIGHT)
points:SizeToContents()
points:DockMargin(0, 0, SScaleMin(2 / 3), SScaleMin(5 / 3))
end
end
end
end
vgui.Register("ixDatafileEntryLogs", PANEL, "EditablePanel")
PANEL = {}
function PANEL:Init()
self:SetSize(self:GetParent():GetWide(), self:GetParent():GetTall())
self:Dock(TOP)
self:DockMargin(0, 0, 0, SScaleMin(15 / 3))
self.Paint = nil
PLUGIN.openDatafileLog = self
self.shouldOpenMedical = false
local titleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(titleFrame, self, "kaydı gör")
local titleSubframe = titleFrame:Add("EditablePanel")
titleSubframe:SetSize(SScaleMin(300 / 3), 0)
titleSubframe:Dock(RIGHT)
titleSubframe.Paint = nil
self.back = titleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(self.back, titleSubframe, 68, "geri", RIGHT)
self.back.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
self:SetVisible(false)
if IsValid(PLUGIN.viewDatafileLogs) and !self.shouldOpenMedical then
PLUGIN.viewDatafileLogs:SetVisible(true)
return
end
if IsValid(PLUGIN.viewDatafileMedicalLogs) then
PLUGIN.viewDatafileMedicalLogs:SetVisible(true)
end
PLUGIN.viewDatafileLog.shouldOpenMedical = false
end
end
function PANEL:Update(text)
local textEntryPanel = self:Add("DPanel")
textEntryPanel:Dock(TOP)
textEntryPanel:DockMargin(0, 0 - SScaleMin(2 / 3), 0, 0)
textEntryPanel:SetSize(self:GetWide(), SScaleMin(576 / 3))
textEntryPanel.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
end
local genericEntry = textEntryPanel:Add("DTextEntry")
genericEntry:Dock(FILL)
genericEntry:DockMargin(0, 0 - SScaleMin(2 / 3), 0, 0)
genericEntry:SetMultiline(true)
genericEntry:SetEditable(true)
genericEntry:RequestFocus()
genericEntry:SetValue(text)
genericEntry:SetFont("MenuFontNoClamp")
genericEntry:SetVerticalScrollbarEnabled( true )
genericEntry:SetTextColor( color )
genericEntry:SetCursorColor( color )
genericEntry.Paint = function(this, w, h)
this:DrawTextEntryText( this:GetTextColor(), this:GetHighlightColor(), this:GetCursorColor() )
end
local cover = genericEntry:Add("Panel")
cover:Dock(FILL)
cover:DockMargin(0, 0, 19, 0)
end
vgui.Register("ixDatafileOpenLog", PANEL, "EditablePanel")
PANEL = {}
function PANEL:Init()
self:SetSize(self:GetParent():GetWide(), SScaleMin(300 / 3))
self:Dock(TOP)
self.Paint = nil
local titleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(titleFrame, self, "fonksiyonlar")
local titleViolations = self:Add("DButton")
CreateButton(titleViolations, "ihlal kayıtları", "smallerbuttonarrow.png")
titleViolations:DockMargin(0, 0 - SScaleMin(2 / 3), 0, SScaleMin(9 / 3))
titleViolations.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
PLUGIN.datafileInfo:SetVisible(false)
PLUGIN.datafileFunctions:SetVisible(false)
PLUGIN.viewTitleViolations = vgui.Create("ixDatafileTitleViolations", PLUGIN.contentSubframe)
end
local medicalRecords = self:Add("DButton")
CreateButton(medicalRecords, "tıbbi kayıtlar", "smallerbuttonarrow.png")
medicalRecords.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
PLUGIN.datafileInfo:SetVisible(false)
PLUGIN.datafileFunctions:SetVisible(false)
PLUGIN.viewMedicalRecords = vgui.Create("ixDatafileMedicalRecords", PLUGIN.contentSubframe)
PLUGIN.viewMedicalRecords.medicalRecords = PLUGIN.file.datafilemedicalrecords
PLUGIN.viewMedicalRecords.genericData = PLUGIN.file.genericdata
PLUGIN.viewMedicalRecords:Populate(PLUGIN.file.datafilemedicalrecords)
end
local housingInfo = self:Add("DButton")
CreateButton(housingInfo, "ev bilgisi", "smallerbuttonarrow.png")
housingInfo.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
PLUGIN.datafileInfo:SetVisible(false)
PLUGIN.datafileFunctions:SetVisible(false)
PLUGIN.viewHousingInfo = vgui.Create("ixDatafileHousingInfo", PLUGIN.contentSubframe)
end
local permitWagesFrame = self:Add("Panel")
permitWagesFrame:Dock(TOP)
permitWagesFrame:SetTall(SScaleMin(40 / 3))
permitWagesFrame:DockMargin(0, 0, 0, SScaleMin(9 / 3))
local permits = permitWagesFrame:Add("DButton")
CreateHalfButton(permits, "izinler", "licensebutton.png", true)
local characterFaction = LocalPlayer():GetCharacter():GetFaction()
permits.DoClick = function()
if (characterFaction != FACTION_WORKERS and characterFaction != FACTION_ADMIN and characterFaction != FACTION_SERVERADMIN and !LocalPlayer():GetCharacter():HasFlags("U")) then
LocalPlayer():NotifyLocalized("Sadece CWU ve CA buna erişebilir.")
return
end
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
PLUGIN.datafileInfo:SetVisible(false)
PLUGIN.datafileFunctions:SetVisible(false)
PLUGIN.viewPermits = vgui.Create("ixDatafilePermits", PLUGIN.contentSubframe)
end
local loyalistTools = permitWagesFrame:Add("DButton")
CreateHalfButton(loyalistTools, "Sadık Ayarları", "medium-button-arrow.png", false)
loyalistTools.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
PLUGIN.datafileInfo:SetVisible(false)
PLUGIN.datafileFunctions:SetVisible(false)
PLUGIN.viewLoyalistTools = vgui.Create("ixDatafileLoyalistTools", PLUGIN.contentSubframe)
end
local bolAntiCitizenFrame = self:Add("Panel")
bolAntiCitizenFrame:Dock(TOP)
bolAntiCitizenFrame:SetTall(SScaleMin(40 / 3))
bolAntiCitizenFrame:DockMargin(0, 0, 0, SScaleMin(9 / 3))
local bol = bolAntiCitizenFrame:Add("DButton")
if PLUGIN.file.genericdata.bol == false then
CreateHalfButton(bol, "b.o.l", "bolbutton.png", false)
else
CreateHalfButton(bol, "b.o.l", "bolbuttonon.png", false)
end
bol.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
if (PLUGIN.file.genericdata.bol == false) then
PLUGIN.file.genericdata.bol = true
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, "B.O.L. durumu aktifleştirildi")
else
PLUGIN.file.genericdata.bol = false
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, "B.O.L durumu devre dışı bırakıldı.")
end
netstream.Start("EditDatafile", PLUGIN.file.genericdata, "B.O.L durumu " .. (PLUGIN.file.genericdata.bol and "aktif" or "deaktif"))
end
local anticitizen = bolAntiCitizenFrame:Add("DButton")
if PLUGIN.file.genericdata.anticitizen == false then
CreateHalfButton(anticitizen, "anti-sivil", "acbutton.png", true)
else
CreateHalfButton(anticitizen, "anti-sivil", "acbuttonon.png", true)
end
anticitizen.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
if PLUGIN.file.genericdata.anticitizen == false then
PLUGIN.file.genericdata.anticitizen = true
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, "Anti-Sivil durumu aktifleştirildi.")
else
PLUGIN.file.genericdata.anticitizen = false
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, "Anti-Sivil durumu deaktifleştirildi.")
end
netstream.Start("EditDatafile", PLUGIN.file.genericdata, "Anti-Sivil durumu " .. (PLUGIN.file.genericdata.anticitizen and "aktif" or "deaktif"))
end
end
vgui.Register("ixDatafileFunctions", PANEL, "EditablePanel")
PANEL = {}
function PANEL:GetLoyaltyText()
local loyaltyText = PLUGIN.file.genericdata.loyaltyStatus or "N/A"
if PLUGIN.file.genericdata.socialCredits and !PLUGIN.file.genericdata.combine then
if PLUGIN.file.genericdata.socialCredits < 40 then
return "UNDERCLASS"
end
end
return loyaltyText
end
function PANEL:Init()
self:SetSize(self:GetParent():GetWide(), self:GetParent():GetTall())
self:Dock(TOP)
self:DockMargin(0, 0, 0, SScaleMin(15 / 3))
self.Paint = nil
local titleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(titleFrame, self, "sadık seçenekleri")
local titleSubframe = titleFrame:Add("EditablePanel")
titleSubframe:SetSize(SScaleMin(159 / 3), 0)
titleSubframe:Dock(RIGHT)
titleSubframe.Paint = nil
local back = titleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(back, titleSubframe, 87, "geri", RIGHT)
back.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
self:SetVisible(false)
if IsValid(PLUGIN.datafileInfo) then
PLUGIN.datafileInfo:SetVisible(true)
end
if IsValid(PLUGIN.datafileFunctions) then
PLUGIN.datafileFunctions:SetVisible(true)
end
end
local wagesFrame = self:Add("DPanel")
wagesFrame:Dock(TOP)
wagesFrame:SetZPos(1)
wagesFrame:DockMargin(0, 0 - SScaleMin(2 / 3), 0, SScaleMin(5 / 3))
wagesFrame:SetSize(self:GetWide(), (SScaleMin(576 / 3) / 3) - SScaleMin(5 / 3))
wagesFrame.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h - SScaleMin(46 / 3))
end
local wagesTitle = wagesFrame:Add("DLabel")
wagesTitle:SetFont("TitlesFontNoClamp")
wagesTitle:SetTextColor(color)
wagesTitle:SetText(string.utf8upper("rasyonlara eklenecek ekstra maaşlar"))
wagesTitle:Dock(TOP)
wagesTitle:SetZPos(2)
wagesTitle:DockMargin(SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(10 / 3))
local wagesString = wagesFrame:Add("DTextEntry")
wagesString:Dock(TOP)
wagesString:SetTall(SScaleMin(46 / 3))
wagesString:SetMultiline(false)
wagesString:RequestFocus()
wagesString:MoveToFront()
wagesString:DockMargin(SScaleMin(20 / 3), 0, SScaleMin(20 / 3), 0)
wagesString:SetEnterAllowed(false)
wagesString:SetText(PLUGIN.file.genericdata.wages or 0)
wagesString:SetVerticalScrollbarEnabled( false )
wagesString:SetFont("TitlesFontNoClamp")
wagesString:SetTextColor( color )
wagesString:SetZPos(3)
wagesString:SetCursorColor( color )
wagesString.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
this:DrawTextEntryText( this:GetTextColor(), this:GetHighlightColor(), this:GetCursorColor() )
end
local saveWages = wagesFrame:Add("DButton")
saveWages:Dock(BOTTOM)
saveWages:SetTall(SScaleMin(46 / 3))
saveWages:SetText("kaydet")
saveWages:SetZPos(4)
saveWages:SetContentAlignment(5)
saveWages:SetFont("TitlesFontNoClamp")
saveWages.Paint = function(this, w, h)
surface.SetDrawColor(color_white)
surface.SetMaterial(ix.util.GetMaterial("willardnetworks/datafile/buttonnoarrow.png"))
surface.DrawTexturedRect(0, 0, w, h)
end
saveWages.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate.wav")
if LocalPlayer():GetCharacter():GetFaction() == FACTION_ADMIN or LocalPlayer():IsCombineRankAbove("i1") or LocalPlayer():GetCharacter():HasFlags("U") then
if tonumber(wagesString:GetText()) > 200 then
LocalPlayer():NotifyLocalized("Maaş değeri 200 veya daha az olmalıdır.")
return
end
netstream.Start("SetWagesDatafile", PLUGIN.file.genericdata, tonumber(wagesString:GetText()))
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, "Ekstra maaş miktarını şuna değiştir "..wagesString:GetText())
else
LocalPlayer():NotifyLocalized("Sadece CCA buna erişebilir.")
end
end
local loyalistStatusFrame = self:Add("DPanel")
loyalistStatusFrame:Dock(TOP)
loyalistStatusFrame:DockMargin(0, SScaleMin(5 / 3), 0, 0)
loyalistStatusFrame:SetZPos(5)
loyalistStatusFrame:SetSize(self:GetWide(), (SScaleMin(576 / 3) / 3) - SScaleMin(5 / 3))
loyalistStatusFrame.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h - SScaleMin(46 / 3))
end
local loyalistTitle = loyalistStatusFrame:Add("DLabel")
loyalistTitle:SetFont("TitlesFontNoClamp")
loyalistTitle:SetTextColor(color)
loyalistTitle:SetText(string.utf8upper("sadık durumunu değiştir (T3 üzeri)"))
loyalistTitle:Dock(TOP)
loyalistTitle:SetZPos(6)
loyalistTitle:DockMargin(SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(10 / 3))
local loyalistBox = loyalistStatusFrame:Add("DComboBox")
loyalistBox:SetZPos(7)
loyalistBox:SetFont("MenuFontNoClamp")
loyalistBox:SetTextColor(color)
loyalistBox:Dock(TOP)
loyalistBox:SetTall(SScaleMin(46 / 3))
loyalistBox:SetFont("TitlesFontNoClamp")
loyalistBox:DockMargin(SScaleMin(20 / 3), 0, SScaleMin(20 / 3), 0)
loyalistBox:SetValue( self:GetLoyaltyText() or string.utf8upper("Yok") )
loyalistBox:AddChoice( string.utf8upper("TIER 4 (blue)") )
loyalistBox:AddChoice( string.utf8upper("TIER 5 (green)") )
loyalistBox:AddChoice( string.utf8upper("TIER 6 (white)") )
loyalistBox:AddChoice( string.utf8upper("TIER 7 (commended)"))
loyalistBox:AddChoice( string.utf8upper("CCA MEMBER") )
loyalistBox:AddChoice( string.utf8upper("Yok") )
loyalistBox.Paint = function(panel, width, height)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, width, height)
end
local saveLoyalist = loyalistStatusFrame:Add("DButton")
saveLoyalist:Dock(BOTTOM)
saveLoyalist:SetTall(SScaleMin(46 / 3))
saveLoyalist:SetZPos(8)
saveLoyalist:SetText("kaydet")
saveLoyalist:SetContentAlignment(5)
saveLoyalist:SetFont("TitlesFontNoClamp")
saveLoyalist.Paint = function(this, w, h)
surface.SetDrawColor(color_white)
surface.SetMaterial(ix.util.GetMaterial("willardnetworks/datafile/buttonnoarrow.png"))
surface.DrawTexturedRect(0, 0, w, h)
end
saveLoyalist.DoClick = function()
if (loyalistBox:GetSelected()) then
surface.PlaySound("willardnetworks/datapad/navigate.wav")
netstream.Start("SetLoyalistStatusDatafile", PLUGIN.file.genericdata, loyalistBox:GetSelected())
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, "Set Loyalist Status to "..loyalistBox:GetSelected())
end
end
local bypassCommunionFrame = self:Add("DPanel")
bypassCommunionFrame:Dock(TOP)
bypassCommunionFrame:DockMargin(0, SScaleMin(5 / 3), 0, 0)
bypassCommunionFrame:SetZPos(9)
bypassCommunionFrame:SetSize(self:GetWide(), (SScaleMin(576 / 3) / 3) - SScaleMin(5 / 3))
bypassCommunionFrame.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h - SScaleMin(46 / 3))
end
local communionTitle = bypassCommunionFrame:Add("DLabel")
communionTitle:SetFont("TitlesFontNoClamp")
communionTitle:SetTextColor(color)
communionTitle:SetText(string.utf8upper("Birlik Gereksinimi Terminalini Yoksay"))
communionTitle:Dock(TOP)
communionTitle:SetZPos(10)
communionTitle:DockMargin(SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(10 / 3))
local enableDisableCommunion = bypassCommunionFrame:Add("DButton")
enableDisableCommunion:Dock(BOTTOM)
enableDisableCommunion:SetTall(SScaleMin(46 / 3))
enableDisableCommunion:SetZPos(8)
enableDisableCommunion:SetText(PLUGIN.file.genericdata.bypassCommunion == true and "AKTİF" or "DEAKTİF")
enableDisableCommunion:SetContentAlignment(5)
enableDisableCommunion:SetFont("TitlesFontNoClamp")
enableDisableCommunion.Paint = function(this, w, h)
surface.SetDrawColor(color_white)
surface.SetMaterial(ix.util.GetMaterial("willardnetworks/datafile/buttonnoarrow.png"))
if PLUGIN.file.genericdata then
if PLUGIN.file.genericdata.bypassCommunion == true then
surface.SetMaterial(ix.util.GetMaterial("willardnetworks/datafile/buttonnoarrow.png"))
else
surface.SetMaterial(ix.util.GetMaterial("willardnetworks/datafile/buttonnoarrow-off.png"))
end
end
surface.DrawTexturedRect(0, 0, w, h)
end
enableDisableCommunion.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate.wav")
if PLUGIN.file.genericdata then
if PLUGIN.file.genericdata.bypassCommunion then
netstream.Start("SetBypassDatafile", PLUGIN.file.genericdata, false)
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, "Set Bypass Communion to: ENABLED")
else
netstream.Start("SetBypassDatafile", PLUGIN.file.genericdata, true)
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, "Set Bypass Communion to: DISABLED")
end
end
end
end
vgui.Register("ixDatafileLoyalistTools", PANEL, "EditablePanel")
PANEL = {}
function PANEL:Init()
self:SetSize(self:GetParent():GetWide(), self:GetParent():GetTall())
self:Dock(TOP)
self:DockMargin(0, 0, 0, SScaleMin(15 / 3))
self.Paint = nil
local titleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(titleFrame, self, "ihlal kayıtları")
local titleSubframe = titleFrame:Add("EditablePanel")
titleSubframe:SetSize(SScaleMin(300 / 3), 0)
titleSubframe:Dock(RIGHT)
titleSubframe.Paint = nil
local addViolation = titleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(addViolation, titleSubframe, 87, "ihlal ekle", RIGHT)
PLUGIN:DrawDividerLine(titleSubframe, 2, 13, 0, SScaleMin( 4 / 3), RIGHT )
local back = titleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(back, titleSubframe, 68, "geri", RIGHT)
back.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
self:SetVisible(false)
if IsValid(PLUGIN.datafileInfo) then
PLUGIN.datafileInfo:SetVisible(true)
end
if IsValid(PLUGIN.datafileFunctions) then
PLUGIN.datafileFunctions:SetVisible(true)
end
end
local violationsFrame = self:Add("DScrollPanel")
violationsFrame:SetSize(self:GetWide(), SScaleMin(576 / 3))
violationsFrame:Dock(TOP)
violationsFrame:DockMargin(0, 0 - SScaleMin(2 / 3), 0, 0)
addViolation.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
titleFrame:SetVisible(false)
violationsFrame:SetVisible(false)
local violationsTitleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(violationsTitleFrame, self, "ihlal ekle")
PLUGIN.violationsTitleSubframe = violationsTitleFrame:Add("EditablePanel")
PLUGIN.violationsTitleSubframe:SetSize(SScaleMin(300 / 3), 0)
PLUGIN.violationsTitleSubframe:Dock(RIGHT)
PLUGIN.violationsTitleSubframe.Paint = nil
local saveViolation = PLUGIN.violationsTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(saveViolation, PLUGIN.violationsTitleSubframe, 87, "ihlali kaydet", RIGHT)
PLUGIN:DrawDividerLine(PLUGIN.violationsTitleSubframe, 2, 13, 0, SScaleMin( 4 / 3), RIGHT )
local violationBack = PLUGIN.violationsTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(violationBack, PLUGIN.violationsTitleSubframe, 68, "geri", RIGHT)
local violationsNewFrame = self:Add("DPanel")
violationsNewFrame:Dock(TOP)
violationsNewFrame:DockMargin(0, 0 - SScaleMin(2 / 3), 0, 0)
violationsNewFrame:SetSize(self:GetWide(), SScaleMin(576 / 3))
violationsNewFrame.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
end
local verdictCodeText = violationsNewFrame:Add("DLabel")
verdictCodeText:SetFont("MenuFontNoClamp")
verdictCodeText:SetTextColor(color)
verdictCodeText:SetText(string.utf8upper("karar kodu [format: V###]:"))
verdictCodeText:Dock(TOP)
verdictCodeText:SetZPos(1)
verdictCodeText:DockMargin(SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(10 / 3))
local verdictCode = violationsNewFrame:Add("DTextEntry")
verdictCode:Dock(TOP)
verdictCode:DockMargin(SScaleMin(20 / 3), 0, SScaleMin(20 / 3), SScaleMin(10 / 3))
verdictCode:SetMultiline(false)
verdictCode:RequestFocus()
verdictCode:SetFont("MenuFontNoClamp")
verdictCode:SetEnterAllowed(false)
verdictCode:SetTall(SScaleMin(20 / 3))
verdictCode:SetVerticalScrollbarEnabled( false )
verdictCode:SetTextColor( color )
verdictCode:SetZPos(2)
verdictCode:SetCursorColor( color )
verdictCode.MaxChars = 4
verdictCode.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
this:DrawTextEntryText( this:GetTextColor(), this:GetHighlightColor(), this:GetCursorColor() )
end
verdictCode.OnTextChanged = function(this)
local txt = this:GetValue()
local amt = string.utf8len(txt)
if amt > this.MaxChars then
if this.OldText then
this:SetText(this.OldText)
this:SetValue(this.OldText)
end
else
this.OldText = txt
end
end
local reasonText = violationsNewFrame:Add("DLabel")
reasonText:SetFont("MenuFontNoClamp")
reasonText:SetTextColor(color)
reasonText:SetText(string.utf8upper("sebep:"))
reasonText:Dock(TOP)
reasonText:DockMargin(SScaleMin(20 / 3), 0, SScaleMin(20 / 3), SScaleMin(10 / 3))
reasonText:SetZPos(3)
local reason = violationsNewFrame:Add("DTextEntry")
reason:Dock(TOP)
reason:DockMargin(SScaleMin(20 / 3), 0, SScaleMin(20 / 3), SScaleMin(10 / 3))
reason:SetMultiline(false)
reason:RequestFocus()
reason:SetEnterAllowed(false)
reason:SetVerticalScrollbarEnabled( false )
reason:SetTextColor( color )
reason:SetFont("MenuFontNoClamp")
reason:SetTall(SScaleMin(20 / 3))
reason:SetCursorColor( color )
reason:SetZPos(4)
reason.MaxChars = 45
reason.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
this:DrawTextEntryText( this:GetTextColor(), this:GetHighlightColor(), this:GetCursorColor() )
end
reason.OnTextChanged = function(this)
local txt = this:GetValue()
local amt = string.utf8len(txt)
if amt > this.MaxChars then
if this.OldText then
this:SetText(this.OldText)
this:SetValue(this.OldText)
end
else
this.OldText = txt
end
end
local punishmentText = violationsNewFrame:Add("DLabel")
punishmentText:SetFont("MenuFontNoClamp")
punishmentText:SetTextColor(color)
punishmentText:SetText(string.utf8upper("cezalandırma:"))
punishmentText:Dock(TOP)
punishmentText:SetZPos(5)
punishmentText:DockMargin(SScaleMin(20 / 3), 0, SScaleMin(20 / 3), SScaleMin(10 / 3))
local punishmentBox = violationsNewFrame:Add("DComboBox")
punishmentBox:SetZPos(6)
punishmentBox:SetFont("MenuFontNoClamp")
punishmentBox:SetTextColor(color)
punishmentBox:Dock(TOP)
punishmentBox:SetTall(SScaleMin(20 / 3))
punishmentBox:DockMargin(SScaleMin(20 / 3), 0, SScaleMin(20 / 3), SScaleMin(10 / 3))
punishmentBox:SetValue( string.utf8upper("seçenekler") )
punishmentBox:AddChoice( string.utf8upper("ampütasyon") )
punishmentBox:AddChoice( string.utf8upper("yeniden eğitim") )
punishmentBox:AddChoice( string.utf8upper("sözlü uyarı") )
punishmentBox:AddChoice( string.utf8upper("diğer") )
punishmentBox.Paint = function(panel, width, height)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, width, height)
end
saveViolation.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate.wav")
netstream.Start("AddViolation", PLUGIN.file.datafileviolations, PLUGIN.file.genericdata, LocalPlayer():Name(), "["..verdictCode:GetText().."] :: ["..reason:GetText().."] :: ["..punishmentBox:GetText().."]", LocalPlayer():GetCharacter():GetID())
end
violationBack.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
violationsTitleFrame:SetVisible(false)
violationsNewFrame:SetVisible(false)
titleFrame:SetVisible(true)
violationsFrame:SetVisible(true)
end
end
for k, v in SortedPairs(PLUGIN.file.datafileviolations, true) do
local frame = violationsFrame:Add("DPanel")
frame:SetTall(SScaleMin(48 / 3))
frame:Dock(TOP)
frame.Paint = function(this, w, h)
if (k % 2 == 0) then
surface.SetDrawColor(0, 0, 0, 75)
surface.DrawRect(0, 0, w, h)
else
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
end
end
local top = frame:Add("EditablePanel")
top:SetSize(frame:GetWide(), frame:GetTall() * 0.5)
top:Dock(TOP)
top.Paint = nil
local topPoster = top:Add("DLabel")
topPoster:SetTextColor(Color(154, 169, 175, 255))
topPoster:SetFont("MenuFontNoClamp")
topPoster:SetText(string.utf8upper(v.poster))
topPoster:Dock(LEFT)
topPoster:DockMargin(SScaleMin(20 / 3), SScaleMin(5 / 3), 0, 0)
topPoster:SizeToContents()
local topDate = top:Add("DLabel")
topDate:SetTextColor(Color(154, 169, 175, 255))
topDate:SetFont("MenuFontNoClamp")
topDate:SetText(string.utf8upper("yayınlanma: ")..v.date)
topDate:Dock(RIGHT)
topDate:DockMargin(0, SScaleMin(5 / 3), SScaleMin(20 / 3), 0)
topDate:SizeToContents()
local bottom = frame:Add("EditablePanel")
bottom:SetSize(frame:GetWide(), frame:GetTall() * 0.4)
bottom:Dock(TOP)
bottom.Paint = nil
bottom:SetName( "bottom" )
local bottomText = bottom:Add("DLabel")
bottomText:SetTextColor(color)
bottomText:SetFont("MenuFontNoClamp")
bottomText:SetText(v.text)
bottomText:Dock(LEFT)
bottomText:DockMargin(SScaleMin(20 / 3), 0, 0, 0)
bottomText:SizeToContents()
local removeLog = bottom:Add("DButton")
removeLog:Dock(RIGHT)
removeLog:DockMargin(0, 0, SScaleMin(18 / 3), 0)
removeLog:SetFont("MenuFontNoClamp")
removeLog:SetTextColor(color)
removeLog:SetText(string.utf8upper("kaldır"))
removeLog:SizeToContents()
removeLog.Paint = nil
removeLog.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
local posterID = PLUGIN.file.datafileviolations[k].posterID or false
if (posterID and posterID == LocalPlayer():GetCharacter():GetID()) or (PLUGIN.file.datafileviolations[k].poster == LocalPlayer():GetName()) or (LocalPlayer():IsCombineRankAbove("RL")) then
frame:Remove()
PLUGIN.file.datafileviolations[k] = nil
netstream.Start("UpdateDatafileViolations", PLUGIN.file.genericdata.id, PLUGIN.file.datafileviolations, PLUGIN.file.genericdata.name)
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, "REMOVED VIOLATION.")
else
LocalPlayer():NotifyLocalized("Erişime izin verilmiyor. RL veya CpT değilsiniz, Combine zırhı giymiyorsunuz veya bu ihlali siz eklemediniz.")
end
end
end
end
vgui.Register("ixDatafileTitleViolations", PANEL, "EditablePanel")
PANEL = {}
function PANEL:Init()
self:SetSize(self:GetParent():GetWide(), self:GetParent():GetTall())
self:Dock(TOP)
self:DockMargin(0, 0, 0, SScaleMin(15 / 3))
self.Paint = nil
self.contentSubframe = PLUGIN.contentSubframe
PLUGIN.viewDatafileMedicalLogs = self
local titleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(titleFrame, self, "tıbbi kayıtlar")
local titleSubframe = titleFrame:Add("EditablePanel")
titleSubframe:SetSize(SScaleMin(300 / 3), 0)
titleSubframe:Dock(RIGHT)
titleSubframe.Paint = nil
local addRecord = titleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(addRecord, titleSubframe, 87, "kayıt ekle", RIGHT)
self.topDivider = PLUGIN:DrawDividerLine(titleSubframe, 2, 13, 0, SScaleMin( 4 / 3), RIGHT )
self.back = titleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(self.back, titleSubframe, 68, "geri", RIGHT)
self.back.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
self:SetVisible(false)
if IsValid(PLUGIN.datafileInfo) then
PLUGIN.datafileInfo:SetVisible(true)
end
if IsValid(PLUGIN.datafileFunctions) then
PLUGIN.datafileFunctions:SetVisible(true)
end
end
self.recordsFrame = self:Add("DScrollPanel")
self.recordsFrame:SetSize(self:GetWide(), SScaleMin(576 / 3))
self.recordsFrame:Dock(TOP)
self.recordsFrame:DockMargin(0, 0 - SScaleMin(2 / 3), 0, 0)
addRecord.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
titleFrame:SetVisible(false)
self.recordsFrame:SetVisible(false)
local recordsTitleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(recordsTitleFrame, self, "tıbbi kayıt ekle")
local recordsTitleSubframe = recordsTitleFrame:Add("EditablePanel")
recordsTitleSubframe:SetSize(SScaleMin(300 / 3), 0)
recordsTitleSubframe:Dock(RIGHT)
recordsTitleSubframe.Paint = nil
local saveRecord = recordsTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(saveRecord, recordsTitleSubframe, 87, "kaydı kaydet", RIGHT)
PLUGIN:DrawDividerLine(recordsTitleSubframe, 2, 13, 0, SScaleMin( 4 / 3), RIGHT )
local recordBack = recordsTitleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(recordBack, recordsTitleSubframe, 68, "geri", RIGHT)
local recordsNewFrame = self:Add("DPanel")
recordsNewFrame:Dock(TOP)
recordsNewFrame:DockMargin(0, 0 - SScaleMin(2 / 3), 0, 0)
recordsNewFrame:SetSize(self:GetWide(), SScaleMin(576 / 3))
recordsNewFrame.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
end
local recordsCodeText = recordsNewFrame:Add("DLabel")
recordsCodeText:SetFont("MenuFontNoClamp")
recordsCodeText:SetTextColor(color)
recordsCodeText:SetText(string.utf8upper("Kayıt içeriği:"))
recordsCodeText:Dock(TOP)
recordsCodeText:SetZPos(1)
recordsCodeText:DockMargin(SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(20 / 3), SScaleMin(10 / 3))
local record = recordsNewFrame:Add("DTextEntry")
record:Dock(FILL)
record:DockMargin(SScaleMin(20 / 3), 0, SScaleMin(20 / 3), SScaleMin(20 / 3))
record:SetMultiline(true)
record:RequestFocus()
record:SetEnterAllowed(true)
record:SetVerticalScrollbarEnabled( true )
record:SetTextColor( color )
record:SetFont("MenuFontNoClamp")
record:SetTall(SScaleMin(20 / 3))
record:SetZPos(2)
record:SetCursorColor( color )
record.Paint = function(this, w, h)
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
this:DrawTextEntryText( this:GetTextColor(), this:GetHighlightColor(), this:GetCursorColor() )
end
saveRecord.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate.wav")
netstream.Start("AddMedicalRecord", self.medicalRecords, self.genericData, LocalPlayer():Name(), record:GetText(), self.cmuPDA)
self:OnSaveRecord()
end
recordBack.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
recordsTitleFrame:SetVisible(false)
recordsNewFrame:SetVisible(false)
titleFrame:SetVisible(true)
self.recordsFrame:SetVisible(true)
end
end
end
function PANEL:OnSaveRecord() end
function PANEL:Populate(records)
for k, v in SortedPairs(records, true) do
local frame = self.recordsFrame:Add("DPanel")
frame:SetTall(SScaleMin(48 / 3))
frame:Dock(TOP)
frame.Paint = function(this, w, h)
if (k % 2 == 0) then
surface.SetDrawColor(0, 0, 0, 75)
surface.DrawRect(0, 0, w, h)
else
surface.SetDrawColor(40, 88, 115, 75)
surface.DrawRect(0, 0, w, h)
end
end
local top = frame:Add("EditablePanel")
top:SetSize(frame:GetWide(), frame:GetTall() * 0.5)
top:Dock(TOP)
top.Paint = nil
local topPoster = top:Add("DLabel")
topPoster:SetTextColor(Color(154, 169, 175, 255))
topPoster:SetFont("MenuFontNoClamp")
topPoster:SetText(string.utf8upper(v.poster))
topPoster:Dock(LEFT)
topPoster:DockMargin(SScaleMin(20 / 3), SScaleMin(5 / 3), 0, 0)
topPoster:SizeToContents()
local topDate = top:Add("DLabel")
topDate:SetTextColor(Color(154, 169, 175, 255))
topDate:SetFont("MenuFontNoClamp")
topDate:SetText(string.utf8upper("yayınlanma: ")..v.date)
topDate:Dock(RIGHT)
topDate:DockMargin(0, SScaleMin(5 / 3), SScaleMin(20 / 3), 0)
topDate:SizeToContents()
local bottom = frame:Add("EditablePanel")
bottom:SetSize(frame:GetWide(), frame:GetTall() * 0.4)
bottom:Dock(TOP)
bottom.Paint = nil
bottom:SetName( "bottom" )
local excerpt = string.Left( v.text, 33)
if string.len(v.text) > 33 then
excerpt = excerpt..".."
end
local bottomText = bottom:Add("DLabel")
bottomText:SetTextColor(color)
bottomText:SetFont("MenuFontNoClamp")
bottomText:SetText(excerpt)
bottomText:Dock(LEFT)
bottomText:DockMargin(SScaleMin(20 / 3), 0, 0, SScaleMin(5 / 3))
bottomText:SizeToContents()
local viewLog = bottom:Add("DButton")
viewLog:Dock(RIGHT)
viewLog:DockMargin(0, 0, SScaleMin(20 / 3), SScaleMin(5 / 3))
viewLog:SetFont("MenuFontNoClamp")
viewLog:SetTextColor(color)
viewLog:SetText(string.utf8upper("incele"))
viewLog:SizeToContents()
viewLog.Paint = nil
viewLog.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
PLUGIN.viewDatafileMedicalLogs:SetVisible(false)
PLUGIN.viewDatafileLog = vgui.Create("ixDatafileOpenLog", self.contentSubframe)
PLUGIN.viewDatafileLog.shouldOpenMedical = true
PLUGIN.viewDatafileLog:Update(v.text)
end
PLUGIN:DrawDividerLine(bottom, 2, 13, 0, SScaleMin( 4 / 3), RIGHT, true )
local removeLog = bottom:Add("DButton")
removeLog:Dock(RIGHT)
removeLog:DockMargin(0, 0, 0, SScaleMin(5 / 3))
removeLog:SetFont("MenuFontNoClamp")
removeLog:SetTextColor(color)
removeLog:SetText(string.utf8upper("kaldır"))
removeLog:SizeToContents()
removeLog.Paint = nil
removeLog.DoClick = function()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
frame:Remove()
self.medicalRecords[k] = nil
netstream.Start("UpdateDatafileMedical", self.genericData.id, self.medicalRecords, self.genericData.name, self.cmuPDA)
end
end
end
vgui.Register("ixDatafileMedicalRecords", PANEL, "EditablePanel")
PANEL = {}
function PANEL:Init()
self:SetSize(self:GetParent():GetWide(), self:GetParent():GetTall())
self:Dock(TOP)
self.Paint = nil
local titleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(titleFrame, self, "izinler")
local titleSubframe = titleFrame:Add("EditablePanel")
titleSubframe:SetSize(SScaleMin(159 / 3), 0)
titleSubframe:Dock(RIGHT)
titleSubframe.Paint = nil
local back = titleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(back, titleSubframe, 87, "geri", RIGHT)
back.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
self:SetVisible(false)
if IsValid(PLUGIN.datafileInfo) then
PLUGIN.datafileInfo:SetVisible(true)
end
if IsValid(PLUGIN.datafileFunctions) then
PLUGIN.datafileFunctions:SetVisible(true)
end
end
local subtitlePanel = self:Add("Panel")
subtitlePanel:Dock(TOP)
subtitlePanel:SetTall(SScaleMin(20 / 3))
local title = subtitlePanel:Add("DLabel")
title:SetFont("MenuFontBoldNoClamp")
title:SetTextColor(color)
title:SetText(string.utf8upper("ZAMAN / HAFTA"))
title:SetTextInset(0, 0 - SScaleMin(5 / 3))
title:SizeToContents()
title:Dock(RIGHT)
title:DockMargin(0, 0, SScaleMin(156 / 3), 0)
local permitsTable = self:Add("DScrollPanel")
permitsTable:Dock(FILL)
if ix.permits.list and istable(ix.permits.list) then
for name, _ in SortedPairs(ix.permits.list, false) do
local permitPanel = permitsTable:Add("Panel")
permitPanel:Dock(TOP)
permitPanel:SetTall(SScaleMin(40 / 3))
permitPanel:DockMargin(0, 0, 0, SScaleMin((0 - 1) / 3))
local namePanel = permitPanel:Add("Panel")
namePanel:Dock(FILL)
namePanel.Paint = function(this, w, h)
surface.SetDrawColor(Color(0, 0, 0, 100))
surface.DrawRect(0, 0, w, h)
surface.SetDrawColor(Color(36, 243, 230, 255 / 100 * 30))
surface.DrawOutlinedRect(0, 0, w, h)
end
local permitName = namePanel:Add("DLabel")
permitName:Dock(LEFT)
permitName:DockMargin(SScaleMin(10 / 3), 0, 0, 0)
permitName:SetTextColor(Color(36, 243, 230, 255))
permitName:SetText(string.upper(name) or "")
permitName:SetFont("MenuFontBoldNoClamp")
permitName:SizeToContents()
local disabled = permitPanel:Add("DButton")
self:CreateButton(disabled, "X")
local unlimited = permitPanel:Add("DButton")
self:CreateButton(unlimited, "")
local threeWeeks = permitPanel:Add("DButton")
self:CreateButton(threeWeeks, "3")
local twoWeeks = permitPanel:Add("DButton")
self:CreateButton(twoWeeks, "2")
local oneWeek = permitPanel:Add("DButton")
self:CreateButton(oneWeek, "1")
self:SetupButtons(unlimited, threeWeeks, twoWeeks, oneWeek, disabled, name, namePanel)
end
end
local save = self:Add("DButton")
createUpdateButton(save)
save:Dock(BOTTOM)
save:SetTall(SScaleMin(50 / 3))
save:SetText("kaydet")
save:DockMargin(0, 0, 0 ,0)
save.DoClick = function()
if self.toSave then
for key, value in pairs(self.toSave) do
PLUGIN.file.genericdata.permits[key] = value
end
end
self:UpdatePermits()
end
end
function PANEL:AddLog(text)
local Timestamp = os.time()
PLUGIN.file.datafilelogs[#PLUGIN.file.datafilelogs + 1] = {
text = text,
date = Timestamp,
points = 0,
poster = LocalPlayer():Name()
}
netstream.Start("AddLog", PLUGIN.file.datafilelogs, PLUGIN.file.genericdata, LocalPlayer():Name(), 0, text, true)
end
function PANEL:SetupButtons(unlimited, three, two, one, disabled, name, namePanel)
local buttons = {unlimited, three, two, one, disabled}
self:GetTimeSpan(buttons, name, namePanel)
self.toSave = {}
unlimited.DoClick = function()
self.toSave[name] = true
self:RefreshUpdatePanel(buttons, name, namePanel)
self:AddLog("Enabled "..Schema:FirstToUpper(name).." Bartering Permit | Duration: Unlimited")
end
three.DoClick = function()
self.toSave[name] = os.time() + 3600 * 24 * 7 * 3
self:RefreshUpdatePanel(buttons, name, namePanel)
self:AddLog("Enabled "..Schema:FirstToUpper(name).." Bartering Permit | Duration: Three Weeks")
end
two.DoClick = function()
self.toSave[name] = os.time() + 3600 * 24 * 7 * 2
self:RefreshUpdatePanel(buttons, name, namePanel)
self:AddLog("Enabled "..Schema:FirstToUpper(name).." Bartering Permit | Duration: Two Weeks")
end
one.DoClick = function()
self.toSave[name] = os.time() + 3600 * 24 * 7 * 1
self:RefreshUpdatePanel(buttons, name, namePanel)
self:AddLog("Enabled "..Schema:FirstToUpper(name).." Bartering Permit | Duration: One Week")
end
disabled.DoClick = function()
PLUGIN.file.genericdata.permits[name] = nil
self.toSave[name] = nil
self:RefreshUpdatePanel(buttons, name, namePanel)
self:AddLog("Disabled "..Schema:FirstToUpper(name).." Bartering Permit")
end
end
function PANEL:RefreshUpdatePanel(buttons, name, namePanel)
surface.PlaySound("willardnetworks/datapad/navigate.wav")
self:GetTimeSpan(buttons, name, namePanel)
end
function PANEL:UpdatePermits()
netstream.Start("SetDatafilePermit", PLUGIN.file.genericdata, PLUGIN.file.genericdata.permits)
end
function PANEL:CreateInfoText(text, namePanel, bDisabled)
if namePanel:GetChildren()[2] then
namePanel:GetChildren()[2]:Remove()
end
local infotext = namePanel:Add("DLabel")
infotext:Dock(RIGHT)
infotext:DockMargin(0, 0, SScaleMin(10 / 3), 0)
infotext:SetTextColor(bDisabled and Color(243, 36, 36, 255) or Color(51, 243, 36, 255))
infotext:SetText(string.utf8upper(text))
infotext:SetFont("MenuFontBoldNoClamp")
infotext:SizeToContents()
end
function PANEL:GetTimeSpan(buttons, name, namePanel)
local permitTableValue = self.toSave and self.toSave[name] or PLUGIN.file.genericdata.permits[name]
if !permitTableValue or ( permitTableValue and isnumber(permitTableValue) and (permitTableValue <= os.time()) ) then
buttons[5].Paint = function(this, w, h)
surface.SetDrawColor(color_white)
surface.SetMaterial(ix.util.GetMaterial("willardnetworks/datafile/licensedisabled2.png"))
surface.DrawTexturedRect(0, 0, w, h)
end
self:CreateInfoText("disabled", namePanel, true)
for k, v in pairs(buttons) do
if k == 5 then
break
end
self:PaintDisabled(v)
end
return
end
-- Unlimited
if isbool(permitTableValue) and permitTableValue == true then
self:PaintEnabled(buttons[1])
self:CreateInfoText("unlimited", namePanel)
end
if !isnumber(tonumber(permitTableValue)) then
for k, v in pairs(buttons) do
if k != 1 then
self:PaintDisabled(v)
end
end
return
end
-- 3 weeks
if permitTableValue > (os.time() + 3600 * 24 * 7 * 2) then
for _, v in pairs(buttons) do
self:PaintDisabled(v)
end
self:CreateInfoText(os.date( "%d/%m/%Y" , permitTableValue ), namePanel)
return self:PaintEnabled(buttons[2])
end
-- 2 weeks
if permitTableValue > (os.time() + 3600 * 24 * 7 * 1) then
for _, v in pairs(buttons) do
self:PaintDisabled(v)
end
self:CreateInfoText(os.date( "%d/%m/%Y" , permitTableValue ), namePanel)
return self:PaintEnabled(buttons[3])
end
-- 1 weeks
if permitTableValue > os.time() then
for _, v in pairs(buttons) do
self:PaintDisabled(v)
end
self:CreateInfoText(os.date( "%d/%m/%Y" , permitTableValue ), namePanel)
return self:PaintEnabled(buttons[4])
end
end
function PANEL:CreateButton(parent, text)
parent:Dock(RIGHT)
parent:SetWide(SScaleMin(40 / 3))
parent:DockMargin(SScaleMin(10 / 3), 0, 0, 0)
parent:SetText(string.utf8upper(text))
parent:SetFont("MenuFontBoldNoClamp")
end
function PANEL:PaintDisabled(parent)
parent.Paint = function(this, w, h)
surface.SetDrawColor(color_white)
surface.SetMaterial(ix.util.GetMaterial("willardnetworks/datafile/licensedisabled.png"))
surface.DrawTexturedRect(0, 0, w, h)
end
end
function PANEL:PaintEnabled(parent)
parent.Paint = function(this, w, h)
surface.SetDrawColor(color_white)
surface.SetMaterial(ix.util.GetMaterial("willardnetworks/datafile/licenseenabled.png"))
surface.DrawTexturedRect(0, 0, w, h)
end
end
vgui.Register("ixDatafilePermits", PANEL, "EditablePanel")
PANEL = {}
function PANEL:Init()
ix.gui.datafileHousingInfo = self
self:SetSize(self:GetParent():GetWide(), self:GetParent():GetTall())
self:Dock(TOP)
self.Paint = nil
local titleFrame = self:Add("EditablePanel")
PLUGIN:CreateTitle(titleFrame, self, "ev bilgisi")
local titleSubframe = titleFrame:Add("EditablePanel")
titleSubframe:SetSize(SScaleMin(159 / 3), 0)
titleSubframe:Dock(RIGHT)
titleSubframe.Paint = nil
local back = titleSubframe:Add("DButton")
PLUGIN:CreateTitleFrameRightTextButton(back, titleSubframe, 87, "geri", RIGHT)
back.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
self:SetVisible(false)
if IsValid(PLUGIN.datafileInfo) then
PLUGIN.datafileInfo:SetVisible(true)
end
if IsValid(PLUGIN.datafileFunctions) then
PLUGIN.datafileFunctions:SetVisible(true)
end
end
self.shouldNameShop = false
if PLUGIN.file.genericdata.housing then
netstream.Start("RequestApartmentNamesDatafile", tonumber(PLUGIN.file.genericdata.housing))
end
if PLUGIN.file.genericdata.shop then
netstream.Start("RequestApartmentNamesDatafile", tonumber(PLUGIN.file.genericdata.shop))
end
self.apartmentsList = vgui.Create("ixDatapadApartments", PLUGIN.contentSubframe)
self.apartmentsList:SetVisible(false)
end
function PANEL:CreateHousingRow(tApartments)
for key, appTable in pairs(tApartments) do
local apartment = self:Add("EditablePanel")
PLUGIN:CreateRow(apartment, "last known "..(self.shouldNameShop and "shop" or "housing"), appTable.name, nil, false, false)
local view = apartment:GetChildren()[2]:Add("DButton")
view:SetFont("MenuFontNoClamp")
view:Dock(RIGHT)
view:SetTextColor(color)
view:SetText("İNCELE")
view:SetContentAlignment(6)
view:DockMargin(0, 0, SScaleMin(20 / 3), 0)
view:SizeToContents()
view.Paint = nil
view.DoClick = function()
self:SetVisible(false)
self.apartmentsList:SetVisible(true)
if self.apartmentsList.apartmentButtons then
if self.apartmentsList.apartmentButtons[tonumber(key)] then
if self.apartmentsList.apartmentButtons[key].DoClick then
self.apartmentsList.apartmentButtons[key].DoClick()
else
surface.PlaySound("willardnetworks/datapad/navigate.wav")
end
self.apartmentsList.back.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
self:SetVisible(true)
if IsValid(self.apartmentsList) then
self.apartmentsList:Remove()
end
self.apartmentsList = vgui.Create("ixDatapadApartments", PLUGIN.contentSubframe)
self.apartmentsList:SetVisible(false)
end
else
LocalPlayer():NotifyLocalized("Could not find the apartment.")
end
end
end
end
self.shouldNameShop = true
end
vgui.Register("ixDatafileHousingInfo", PANEL, "EditablePanel")
netstream.Hook("UpdateDatafileCredits", function(credits)
if IsValid(ix.gui.citizenDatafile) then
if (PLUGIN.file.genericdata.collarID) then
ix.gui.citizenDatafile.cid.bottom.titleText:SetText(string.upper(PLUGIN.file.genericdata.collarID .. " | " .. PLUGIN.file.genericdata.cid.." | "..credits))
else
ix.gui.citizenDatafile.cid.bottom.titleText:SetText(string.upper(PLUGIN.file.genericdata.cid.." | "..credits))
end
ix.gui.citizenDatafile.cid.bottom.titleText:SizeToContents()
end
end)
PANEL = {}
function PANEL:Init()
self:Dock(FILL)
self:RequestTransactionLogs()
end
function PANEL:RequestTransactionLogs()
netstream.Start("ixDatafileRequestTransactionLogs", PLUGIN.file.genericdata.cid)
end
function PANEL:UpdateLogs(list)
if !list then return end
for _, tTransaction in pairs(list) do
local transaction = self:Add("EditablePanel")
PLUGIN:CreateRow(transaction, "amount | sender | receiver", tTransaction.amount.." | "..tTransaction.sender_cid.." | "..tTransaction.receiver_cid, os.date("%d/%m/%Y", tTransaction.datetime), false, true)
local viewLog = transaction.bottom:Add("DButton")
viewLog:Dock(RIGHT)
viewLog:DockMargin(0, 0, SScaleMin(20 / 3), SScaleMin(5 / 3))
viewLog:SetFont("MenuFontNoClamp")
viewLog:SetTextColor(color)
viewLog:SetText(string.utf8upper("sebebi incele"))
viewLog:SizeToContents()
viewLog.Paint = nil
viewLog.DoClick = function()
local parent = self:GetParent()
surface.PlaySound("willardnetworks/datapad/navigate2.wav")
parent:SetVisible(false)
PLUGIN.viewDatafileLog = vgui.Create("ixDatafileOpenLog", PLUGIN.contentSubframe)
PLUGIN.viewDatafileLog:Update(tTransaction.reason or "")
PLUGIN.viewDatafileLog.back.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
parent:SetVisible(true)
PLUGIN.viewDatafileLog:SetVisible(false)
parent.genericBack.DoClick = function()
surface.PlaySound("willardnetworks/datapad/back.wav")
parent.genericTitleFrame:SetVisible(false)
parent.transactionLogs:SetVisible(true)
parent.titleFrame:SetVisible(true)
parent.logsFrame:SetVisible(true)
PLUGIN.viewTransactionLogs:SetVisible(false)
end
end
end
end
end
vgui.Register("ixDatafileTransactionLogs", PANEL, "DScrollPanel")
netstream.Hook("ixDatafileReplyTransactionLogs", function(list)
if IsValid(PLUGIN.viewTransactionLogs) then
PLUGIN.viewTransactionLogs:UpdateLogs(list)
end
end)