mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-19 06:33:47 +03:00
Upload
This commit is contained in:
157
gamemodes/ixhl2rp/plugins/cid/items/sh_request_device.lua
Normal file
157
gamemodes/ixhl2rp/plugins/cid/items/sh_request_device.lua
Normal file
@@ -0,0 +1,157 @@
|
||||
--[[
|
||||
| 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
|
||||
Reference in New Issue
Block a user