mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-18 22:23:46 +03:00
158 lines
4.9 KiB
Lua
158 lines
4.9 KiB
Lua
--[[
|
|
| 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
|
|
|
|
REQUEST_CP = 0
|
|
REQUEST_MED = 1
|
|
REQUEST_WORK = 2
|
|
|
|
ITEM.name = "Pager"
|
|
ITEM.model = Model("models/gibs/shield_scanner_gib1.mdl")
|
|
ITEM.description = "Małe urządzenie zgłaszające. Z tyłu widoczne jest logo kombinatu. \n\nNa instrukcji czytamy: Proszę najpierw zarejestrować urządzenie przykładając swój CID do urządzenia. Po zakończeniu rejestracji otrzymasz możliwość wezwania pomocy od Civil Protection, aby to zrobić naciśnij przycisk i zgłoś swoje zgłoszenie. Twoje imię i CID zostanie załączony ze zgłoszeniem.\nProszę być świadomym, że każde fałszywe zgłoszenie jak i korzystanie z urządzenia przypisanego do innej osoby jest karane i skutkować będzie surowymi karami od Civil Protection."
|
|
ITEM.price = 20
|
|
ITEM.category = "Combine"
|
|
function ITEM:GetDescription()
|
|
local idCard = ix.item.instances[self:GetData("cardID")]
|
|
return idCard and string.format(self.description.."\n\nAktualnie przypisane do CID #%s.", idCard:GetData("cardNumber")) or self.description
|
|
end
|
|
|
|
local function GetRequestTable(data)
|
|
return {
|
|
name = data.actionName,
|
|
icon = "icon16/help.png",
|
|
OnClick = function(itemTable)
|
|
if (ix.config.Get("creditsNoConnection")) then
|
|
itemTable.player:EmitSound("hl1/fvox/buzz.wav", 60, 100, 0.5)
|
|
return
|
|
end
|
|
|
|
Derma_StringRequest(data.requestTitle, data.requestMessage, PLUGIN.text,
|
|
function(text)
|
|
if (text and string.utf8len(text) > 0) then
|
|
netstream.Start("ixRequest", itemTable:GetID(), text, data.requestType)
|
|
end
|
|
|
|
PLUGIN.text = nil
|
|
end,
|
|
function(text)
|
|
if (text == PLUGIN.text) then
|
|
PLUGIN.text = text
|
|
elseif (text and string.utf8len(text) > 0)then
|
|
PLUGIN.text = text
|
|
else
|
|
PLUGIN.text = nil
|
|
end
|
|
end, "STWÓRZ ZGŁOSZENIE", "ANULUJ"
|
|
)
|
|
end,
|
|
OnRun = function(itemTable)
|
|
return false
|
|
end,
|
|
OnCanRun = function(itemTable)
|
|
if (IsValid(itemTable.entity)) then
|
|
return false
|
|
end
|
|
|
|
if (!itemTable:GetData("cardID", false)) then
|
|
return false
|
|
end
|
|
|
|
return true
|
|
end
|
|
}
|
|
end
|
|
|
|
ITEM.functions.RequestCp = GetRequestTable({
|
|
actionName = "Stwórz zgłoszenie do CP",
|
|
requestTitle = "Poproś o pomoc Civil Protection",
|
|
requestMessage = "Wprowadź swoje zgłoszenie dla Civil Protection. Twoje imię i CID zostaną automatycznie dodane do zgłoszenia.",
|
|
requestType = REQUEST_CP
|
|
})
|
|
|
|
ITEM.functions.RequestMed = GetRequestTable({
|
|
actionName = "Stwórz zgłoszenie do CMU",
|
|
requestTitle = "Poproś o pomoc Civil Medical Union",
|
|
requestMessage = "Wprowadź swoje zgłoszenie dla Civil Medical Union. Twoje imię i CID zostaną automatycznie dodane do zgłoszenia. Nie zapomnij podać swojej lokalizacji!",
|
|
requestType = REQUEST_MED
|
|
})
|
|
|
|
ITEM.functions.RequestCwu = GetRequestTable({
|
|
actionName = "Stwórz zgłoszenie do CWU",
|
|
requestTitle = "Poproś o pomoc Civil Workers Union",
|
|
requestMessage = "Wprowadź swoje zgłoszenie dla Civil Workers Union. Twoje imię i CID zostaną automatycznie dodane do zgłoszenia. Nie zapomnij podać swojej lokalizacji!",
|
|
requestType = REQUEST_WORK
|
|
})
|
|
|
|
ITEM.functions.Bind = {
|
|
name = "Przypisz CID",
|
|
icon = "icon16/vcard_edit.png",
|
|
OnClick = function(itemTable)
|
|
local cards = {}
|
|
|
|
for _, v in pairs(LocalPlayer():GetCharacter():GetInventory():GetItemsByUniqueID("id_card")) do
|
|
table.insert(cards, {
|
|
text = v:GetName(),
|
|
value = v
|
|
})
|
|
end
|
|
|
|
local cardsCount = table.Count(cards)
|
|
if (cardsCount > 1) then
|
|
Derma_Select("Przypisz CID do Pagera", "Prosze wybrać CID aby go przypisać:",
|
|
cards, "Wybierz CID",
|
|
"Potwierdź", function(value, name)
|
|
netstream.Start("ixBindRequestDevice", itemTable:GetID(), value:GetID())
|
|
end, "Anuluj")
|
|
elseif (cardsCount == 1) then
|
|
Derma_Query("Czy jesteś pewny, że chcesz przypisać ten CID do Pagera?", "Przypisz CID do Pagera",
|
|
"Potwierdź", function()
|
|
netstream.Start("ixBindRequestDevice", itemTable:GetID(), cards[1].value:GetID())
|
|
end, "Anuluj")
|
|
else
|
|
LocalPlayer():NotifyLocalized("Nie posiadasz CID, który można przypisać do tego pagera.")
|
|
end
|
|
end,
|
|
OnRun = function(itemTable)
|
|
return false
|
|
end,
|
|
OnCanRun = function(itemTable)
|
|
if (IsValid(itemTable.entity)) then
|
|
return false
|
|
end
|
|
|
|
if (!IsValid(itemTable.player)) then
|
|
return false
|
|
end
|
|
|
|
local inventory = itemTable.player:GetCharacter():GetInventory()
|
|
if (!inventory:HasItem("id_card")) then
|
|
return false
|
|
end
|
|
|
|
if (!itemTable:GetData("cardID", false)) then
|
|
return true
|
|
end
|
|
|
|
if (inventory:GetItemCount("id_card") == 1 and inventory:GetItemByID(itemTable:GetData("cardID"))) then
|
|
return false
|
|
end
|
|
|
|
return true
|
|
end
|
|
}
|
|
|
|
if (CLIENT) then
|
|
netstream.Hook("rdMoreThanOneText", function(text)
|
|
PLUGIN.rdText = text
|
|
end)
|
|
end
|