Files
wnsrc/gamemodes/darkrp/plugins/combineutilities/pda/derma/cl_derma_datafile.lua
lifestorm 6a58f406b1 Upload
2024-08-04 23:54:45 +03:00

2414 lines
85 KiB
Lua
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--[[
| 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)