This commit is contained in:
lifestorm
2024-08-04 23:12:27 +03:00
parent 0e770b2b49
commit ba1fc01b16
7084 changed files with 2173495 additions and 14 deletions

View File

@@ -0,0 +1,22 @@
--[[
| 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
netstream.Hook("QueryDeleteLanguageLearningProgress", function(languageName)
Derma_Query("Uczę się już "..languageName..", usunąć postęp?", "Języki", "Tak", function()
netstream.Start("QueryDeleteLanguageSuccess")
end, "Nie")
end)
function PLUGIN:DoVortShout(speaker)
netstream.Start("ForceShoutAnim", speaker)
end

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_albanian"
ITEM.name = "Albański Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1alb", 1)
inventory:Add("audiobook_2alb", 1)
inventory:Add("audiobook_3alb", 1)
inventory:Add("audiobook_4alb", 1)
inventory:Add("audiobook_5alb", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_arabic"
ITEM.name = "Arabski Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1ara", 1)
inventory:Add("audiobook_2ara", 1)
inventory:Add("audiobook_3ara", 1)
inventory:Add("audiobook_4ara", 1)
inventory:Add("audiobook_5ara", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_bengali"
ITEM.name = "Bengalski Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1ben", 1)
inventory:Add("audiobook_2ben", 1)
inventory:Add("audiobook_3ben", 1)
inventory:Add("audiobook_4ben", 1)
inventory:Add("audiobook_5ben", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_bosnian"
ITEM.name = "Bośniacki Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1bos", 1)
inventory:Add("audiobook_2bos", 1)
inventory:Add("audiobook_3bos", 1)
inventory:Add("audiobook_4bos", 1)
inventory:Add("audiobook_5bos", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_bulgarian"
ITEM.name = "Bulgarski Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1bul", 1)
inventory:Add("audiobook_2bul", 1)
inventory:Add("audiobook_3bul", 1)
inventory:Add("audiobook_4bul", 1)
inventory:Add("audiobook_5bul", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_chinese"
ITEM.name = "Chiński Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1chi", 1)
inventory:Add("audiobook_2chi", 1)
inventory:Add("audiobook_3chi", 1)
inventory:Add("audiobook_4chi", 1)
inventory:Add("audiobook_5chi", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_croatian"
ITEM.name = "Chorwacki Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1cro", 1)
inventory:Add("audiobook_2cro", 1)
inventory:Add("audiobook_3cro", 1)
inventory:Add("audiobook_4cro", 1)
inventory:Add("audiobook_5cro", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_czech"
ITEM.name = "Czeski Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1cze", 1)
inventory:Add("audiobook_2cze", 1)
inventory:Add("audiobook_3cze", 1)
inventory:Add("audiobook_4cze", 1)
inventory:Add("audiobook_5cze", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_danish"
ITEM.name = "Duński Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1dan", 1)
inventory:Add("audiobook_2dan", 1)
inventory:Add("audiobook_3dan", 1)
inventory:Add("audiobook_4dan", 1)
inventory:Add("audiobook_5dan", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_dutch"
ITEM.name = "Niderlandzki Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1dut", 1)
inventory:Add("audiobook_2dut", 1)
inventory:Add("audiobook_3dut", 1)
inventory:Add("audiobook_4dut", 1)
inventory:Add("audiobook_5dut", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_finnish"
ITEM.name = "Fiński Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1fin", 1)
inventory:Add("audiobook_2fin", 1)
inventory:Add("audiobook_3fin", 1)
inventory:Add("audiobook_4fin", 1)
inventory:Add("audiobook_5fin", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_flipino"
ITEM.name = "Filipiński Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1fli", 1)
inventory:Add("audiobook_2fli", 1)
inventory:Add("audiobook_3fli", 1)
inventory:Add("audiobook_4fli", 1)
inventory:Add("audiobook_5fli", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_french"
ITEM.name = "Francuski Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1fre", 1)
inventory:Add("audiobook_2fre", 1)
inventory:Add("audiobook_3fre", 1)
inventory:Add("audiobook_4fre", 1)
inventory:Add("audiobook_5fre", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_gaeilge"
ITEM.name = "Irlandzki Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1iri", 1)
inventory:Add("audiobook_2iri", 1)
inventory:Add("audiobook_3iri", 1)
inventory:Add("audiobook_4iri", 1)
inventory:Add("audiobook_5iri", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_gaelic"
ITEM.name = "Gaelicki Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1gae", 1)
inventory:Add("audiobook_2gae", 1)
inventory:Add("audiobook_3gae", 1)
inventory:Add("audiobook_4gae", 1)
inventory:Add("audiobook_5gae", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_german"
ITEM.name = "Niemiecki Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1ger", 1)
inventory:Add("audiobook_2ger", 1)
inventory:Add("audiobook_3ger", 1)
inventory:Add("audiobook_4ger", 1)
inventory:Add("audiobook_5ger", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_greek"
ITEM.name = "Grecki Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1gre", 1)
inventory:Add("audiobook_2gre", 1)
inventory:Add("audiobook_3gre", 1)
inventory:Add("audiobook_4gre", 1)
inventory:Add("audiobook_5gre", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_hebrew"
ITEM.name = "Hebrajski Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1heb", 1)
inventory:Add("audiobook_2heb", 1)
inventory:Add("audiobook_3heb", 1)
inventory:Add("audiobook_4heb", 1)
inventory:Add("audiobook_5heb", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_hindi"
ITEM.name = "Hindi Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1hin", 1)
inventory:Add("audiobook_2hin", 1)
inventory:Add("audiobook_3hin", 1)
inventory:Add("audiobook_4hin", 1)
inventory:Add("audiobook_5hin", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_hungarian"
ITEM.name = "Węgierski Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1hun", 1)
inventory:Add("audiobook_2hun", 1)
inventory:Add("audiobook_3hun", 1)
inventory:Add("audiobook_4hun", 1)
inventory:Add("audiobook_5hun", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_indonesian"
ITEM.name = "Indonezyjski Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1ind", 1)
inventory:Add("audiobook_2ind", 1)
inventory:Add("audiobook_3ind", 1)
inventory:Add("audiobook_4ind", 1)
inventory:Add("audiobook_5ind", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_italian"
ITEM.name = "Włoski Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1ita", 1)
inventory:Add("audiobook_2ita", 1)
inventory:Add("audiobook_3ita", 1)
inventory:Add("audiobook_4ita", 1)
inventory:Add("audiobook_5ita", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_japanese"
ITEM.name = "Japoński Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1jap", 1)
inventory:Add("audiobook_2jap", 1)
inventory:Add("audiobook_3jap", 1)
inventory:Add("audiobook_4jap", 1)
inventory:Add("audiobook_5jap", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_korean"
ITEM.name = "Koreański Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1kor", 1)
inventory:Add("audiobook_2kor", 1)
inventory:Add("audiobook_3kor", 1)
inventory:Add("audiobook_4kor", 1)
inventory:Add("audiobook_5kor", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_polish"
ITEM.name = "Polski Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1pol", 1)
inventory:Add("audiobook_2pol", 1)
inventory:Add("audiobook_3pol", 1)
inventory:Add("audiobook_4pol", 1)
inventory:Add("audiobook_5pol", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_portuguese"
ITEM.name = "Portugalski Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1por", 1)
inventory:Add("audiobook_2por", 1)
inventory:Add("audiobook_3por", 1)
inventory:Add("audiobook_4por", 1)
inventory:Add("audiobook_5por", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_romanian"
ITEM.name = "Rumuński Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1rom", 1)
inventory:Add("audiobook_2rom", 1)
inventory:Add("audiobook_3rom", 1)
inventory:Add("audiobook_4rom", 1)
inventory:Add("audiobook_5rom", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_russian"
ITEM.name = "Rosyjski Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1rus", 1)
inventory:Add("audiobook_2rus", 1)
inventory:Add("audiobook_3rus", 1)
inventory:Add("audiobook_4rus", 1)
inventory:Add("audiobook_5rus", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_serbian"
ITEM.name = "Serbski Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1ser", 1)
inventory:Add("audiobook_2ser", 1)
inventory:Add("audiobook_3ser", 1)
inventory:Add("audiobook_4ser", 1)
inventory:Add("audiobook_5ser", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_spanish"
ITEM.name = "Hiszpański Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1spa", 1)
inventory:Add("audiobook_2spa", 1)
inventory:Add("audiobook_3spa", 1)
inventory:Add("audiobook_4spa", 1)
inventory:Add("audiobook_5spa", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_swahili"
ITEM.name = "Swahili Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1swa", 1)
inventory:Add("audiobook_2swa", 1)
inventory:Add("audiobook_3swa", 1)
inventory:Add("audiobook_4swa", 1)
inventory:Add("audiobook_5swa", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_swedish"
ITEM.name = "Szwecki Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1swe", 1)
inventory:Add("audiobook_2swe", 1)
inventory:Add("audiobook_3swe", 1)
inventory:Add("audiobook_4swe", 1)
inventory:Add("audiobook_5swe", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_turkish"
ITEM.name = "Turecki Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1tur", 1)
inventory:Add("audiobook_2tur", 1)
inventory:Add("audiobook_3tur", 1)
inventory:Add("audiobook_4tur", 1)
inventory:Add("audiobook_5tur", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_turkish"
ITEM.name = "Ukraiński Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1ukr", 1)
inventory:Add("audiobook_2ukr", 1)
inventory:Add("audiobook_3ukr", 1)
inventory:Add("audiobook_4ukr", 1)
inventory:Add("audiobook_5ukr", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,35 @@
--[[
| 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/
--]]
ITEM.uniqueID = "languagebox_turkish"
ITEM.name = "Wietnamski Audiobook Box"
ITEM.description = "Pudełko zawierające pełny zestaw audiobooków. Co za wygoda."
ITEM.category = "Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Konwertuj",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1vie", 1)
inventory:Add("audiobook_2vie", 1)
inventory:Add("audiobook_3vie", 1)
inventory:Add("audiobook_4vie", 1)
inventory:Add("audiobook_5vie", 1)
client:Notify("Przekonwertowałeś " .. item.name .. " w odpowiadający zestaw Audiobooków.")
end
}

View File

@@ -0,0 +1,396 @@
--[[
| 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 ix = ix
local PLUGIN = PLUGIN
ix.languages = ix.languages or {}
ix.languages.stored = ix.languages.stored or {}
--[[
Begin defining the language class base for other languages to inherit from.
--]]
--[[ Set the __index meta function of the class. --]]
--luacheck: globals CLASS_TABLE
local CLASS_TABLE = {__index = CLASS_TABLE}
CLASS_TABLE.name = "Language Base"
CLASS_TABLE.uniqueID = "language_base"
CLASS_TABLE.gibberish = {}
CLASS_TABLE.color = Color(102, 204, 255)
CLASS_TABLE.format = "%s says in language \"%s\""
-- Called when the language is converted to a string.
function CLASS_TABLE:__tostring()
return "LANGUAGE["..self.name.."]"
end
--[[
A function to override language base data. This is
just a nicer way to set a value to go along with
the method of querying.
--]]
function CLASS_TABLE:Override(varName, value)
self[varName] = value
end
-- A function to register a new language.
function CLASS_TABLE:Register()
return ix.languages:Register(self)
end
function CLASS_TABLE:PlayerCanSpeakLanguage(client)
return ix.languages:PlayerCanSpeakLanguage(self.uniqueID, client)
end
--[[
End defining the base language class.
Begin defining the language utility functions.
--]]
-- A function to get all languages.
function ix.languages:GetAll()
return self.stored
end
-- A function to get a new language.
function ix.languages:New(language)
local object = {}
setmetatable(object, CLASS_TABLE)
CLASS_TABLE.__index = CLASS_TABLE
return object
end
local function CanSay(self, speaker, text)
local language = ix.languages:FindByID(self.langID)
if (language:PlayerCanSpeakLanguage(speaker)) then
return true
end
speaker:NotifyLocalized("Nie znam tego języka..")
return false
end
local OnChatAdd
if (CLIENT) then
OnChatAdd = function(self, speaker, text, anonymous)
local language = ix.languages:FindByID(self.langID)
local icon = language.icon or nil
if icon then
icon = ix.util.GetMaterial(icon)
end
local name = anonymous and L"someone" or
hook.Run("GetCharacterName", speaker, "ic") or
(IsValid(speaker) and speaker:Name() or "Console")
text = ix.chat.Format(text)
if language:PlayerCanSpeakLanguage(LocalPlayer()) then
if string.EndsWith( language.name, "ski" ) or string.EndsWith( language.name, "ny" ) then
self.format = "%s "..self.sayType.." w języku "..language.name.."m \"%s\""
else
self.format = "%s "..self.sayType.." w języku "..language.name.." \"%s\""
end
if icon and ix.option.Get("languageFlagsEnabled") then
chat.AddText(icon, self.color, string.format(self.format, name, text))
else
chat.AddText(self.color, string.format(self.format, name, text))
end
if self.langID == "vort" and IsValid(speaker) and speaker:IsVortigaunt() then
if string.find(self.sayType, "shout") then
PLUGIN:DoVortShout(speaker)
end
end
else
if language.gibberish then
if istable(language.gibberish) then
if !table.IsEmpty(language.gibberish) then
local gibberish = language.gibberish
local recreateLast = false
local endText = string.utf8sub(text, -1) -- Is it shout, question or period? If yes save it to recreate it after gibberish.
if (endText == "." or endText == "!" or endText == "?") then
recreateLast = true
end
local splitWords = string.Split(text, " ")
text = ""
for _, _ in pairs(splitWords) do
if math.random(0,5) == 3 then
text = text..gibberish[math.random( #gibberish )].."'"
else
text = text..gibberish[math.random( #gibberish )].." "
end
end
-- Remove space at end
text = string.TrimRight(text)
-- Make a period at the ending.
if (recreateLast) then
text = (text..endText)
end
endText = string.utf8sub(text, -1)
if (endText != "." and endText != "!" and endText != "?") then
text = (text..".")
end
-- Make capital at start
local editCapital = string.utf8sub(text, 1, 1)
text = (string.utf8upper(editCapital)..string.utf8sub(text, 2, string.utf8len(text)))
if string.EndsWith( language.name, "ski" ) or string.EndsWith( language.name, "ny" ) then
self.format = "%s "..self.sayType.." w języku "..language.name.."m \"%s\""
else
self.format = "%s "..self.sayType.." w języku "..language.name.." \"%s\""
end
if icon and ix.option.Get("languageFlagsEnabled") then
chat.AddText(icon, self.color, string.format(self.format, name, text))
else
chat.AddText(self.color, string.format(self.format, name, text))
end
return
end
end
end
if icon and ix.option.Get("languageFlagsEnabled") then
chat.AddText(icon, self.color, string.format(self.format, name))
else
chat.AddText(self.color, string.format(self.format, name))
end
end
end
end
-- A function to register a new language.
function ix.languages:Register(language)
language.uniqueID = string.utf8lower(string.gsub(language.uniqueID or string.gsub(language.name, "%s", "_"), "['%.]", ""))
self.stored[language.uniqueID] = language
local languageClass = {}
languageClass.color = language.color or Color(102, 204, 255)
languageClass.sayType = "mówi"
languageClass.format = "%s "..languageClass.sayType.." mówi w jęzku "..language.name.."m"
languageClass.CanHear = ix.config.Get("chatRange", 280)
languageClass.description = "Pozwala Ci powiedzieć coś w języku "..language.name.."m, jeśli znasz ten język."
languageClass.indicator = "chatTalking"
languageClass.prefix = {"/"..language.uniqueID, "/"..string.utf8lower(language.name)}
languageClass.langID = language.uniqueID
languageClass.CanSay = CanSay
if (CLIENT) then
languageClass.OnChatAdd = OnChatAdd
end
ix.chat.Register(language.uniqueID, languageClass)
if (CLIENT) then
ix.command.list[language.uniqueID].OnCheckAccess = function(_, client) return language:PlayerCanSpeakLanguage(client) end
ix.command.list[string.utf8lower(language.name)].OnCheckAccess = function(_, client) return language:PlayerCanSpeakLanguage(client) end
ix.command.list[language.uniqueID].combineBeep = true
ix.command.list[string.utf8lower(language.name)].combineBeep = true
end
local languageClassWhisper = {}
languageClassWhisper.sayType = "szepcze"
languageClassWhisper.CanHear = ix.config.Get("chatRange", 280) * 0.25
languageClassWhisper.format = languageClass.format
languageClassWhisper.indicator = "chatWhispering"
languageClassWhisper.prefix = {"/w"..language.uniqueID, "/w"..string.utf8lower(language.name)}
languageClassWhisper.description = "Pozwala Ci szepnąć coś w języku "..language.name.."m, jeśli znasz ten język."
languageClassWhisper.langID = language.uniqueID
languageClassWhisper.CanSay = CanSay
languageClassWhisper.color = Color(102 - 35, 204 - 35, 255 - 35)
if (CLIENT) then
languageClassWhisper.OnChatAdd = OnChatAdd
end
ix.chat.Register("w"..language.uniqueID, languageClassWhisper)
if (CLIENT) then
ix.command.list["w"..language.uniqueID].OnCheckAccess = function(_, client) return language:PlayerCanSpeakLanguage(client) end
ix.command.list["w"..string.utf8lower(language.name)].OnCheckAccess = function(_, client) return language:PlayerCanSpeakLanguage(client) end
ix.command.list["w"..language.uniqueID].combineBeep = true
ix.command.list["w"..string.utf8lower(language.name)].combineBeep = true
end
local languageClassYell = {}
languageClassYell.sayType = "krzyczy"
languageClassYell.format = languageClass.format
languageClassYell.CanHear = ix.config.Get("chatRange", 280) * 2
languageClassYell.indicator = "chatYelling"
languageClassYell.prefix = {"/y"..language.uniqueID, "/y"..string.utf8lower(language.name)}
languageClassYell.description = "Pozwala Ci krzyknąć coś w języku "..language.name.."m, jeśli znasz ten język."
languageClassYell.langID = language.uniqueID
languageClassYell.CanSay = CanSay
languageClassYell.color = Color(102 + 35, 204 + 35, 255 + 35)
if (CLIENT) then
languageClassYell.OnChatAdd = OnChatAdd
end
ix.chat.Register("y"..language.uniqueID, languageClassYell)
if (CLIENT) then
ix.command.list["y"..language.uniqueID].OnCheckAccess = function(_, client) return language:PlayerCanSpeakLanguage(client) end
ix.command.list["y"..string.utf8lower(language.name)].OnCheckAccess = function(_, client) return language:PlayerCanSpeakLanguage(client) end
ix.command.list["y"..language.uniqueID].combineBeep = true
ix.command.list["y"..string.utf8lower(language.name)].combineBeep = true
end
if language.uniqueID == "vort" then
local languageClassShout = {}
languageClassShout.sayType = "woła"
languageClassShout.format = languageClass.format
languageClassShout.CanHear = ix.config.Get("chatRange", 280) * 20
languageClassShout.indicator = "chatYelling"
languageClassShout.prefix = "/vortshout"
languageClassShout.description = "Używa języka vortigese i ma niezwykle duży zasięg, zdolny pokryć co najmniej pół mapy."
languageClassShout.langID = language.uniqueID
languageClassShout.CanSay = CanSay
languageClassShout.color = Color(51, 153, 51)
if (CLIENT) then
languageClassShout.OnChatAdd = OnChatAdd
end
ix.chat.Register("vortshout", languageClassShout)
if (CLIENT) then
ix.command.list["vortshout"].OnCheckAccess = function(_, client) return language:PlayerCanSpeakLanguage(client) end
ix.command.list["vortshout"].combineBeep = true
end
end
end
-- A function to get a language by its name.
function ix.languages:FindByID(identifier)
if (identifier and identifier != 0 and type(identifier) != "boolean") then
if (self.stored[identifier]) then
return self.stored[identifier]
end
local lowerName = string.utf8lower(identifier)
local language = nil
for _, v in pairs(self.stored) do
local languageName = v.name
if (string.find(string.utf8lower(languageName), lowerName)
and (!language or string.utf8len(languageName) < string.utf8len(language.name))) then
language = v
end
end
return language
end
end
-- Called when the language is initialized
function ix.languages:Initialize()
local languages = self:GetAll()
for _, v in pairs(languages) do
if (v.OnSetup) then
v:OnSetup()
end
end
end
-- Called when a player attempts to speak a language
function ix.languages:PlayerCanSpeakLanguage(language, client)
if (client:GetMoveType() == MOVETYPE_NOCLIP and !client:InVehicle()) then return true end
local clientFaction = client:Team()
if clientFaction then
if (ix.faction.Get(clientFaction).allLanguages) then
return true
end
end
local languages = client:GetCharacter():GetLanguages()
if (languages) then
if (!table.IsEmpty(languages) and table.HasValue(languages, language)) then
return true
end
end
return false
end
if (CLIENT) then
ix.option.Add("languageFlagsEnabled", ix.type.bool, true, {
category = "chat"
})
end
ix.command.Add("CharSetLanguage", {
description = "Dodaj język do słownictwa postaci.",
adminOnly = true,
arguments = {ix.type.character, ix.type.text},
alias = "CharSetBilingual",
OnRun = function(self, client, character, lang)
if (character) then
local language = ix.languages:FindByID(lang)
if (language) then
local knownLanguages = character:GetLanguages()
if (table.HasValue(knownLanguages, language.uniqueID)) then
client:NotifyLocalized("Ta postać zna już "..language.name.."!")
return false
else
table.insert(knownLanguages, language.uniqueID)
character:SetLanguages(knownLanguages)
client:NotifyLocalized("Poszerzyłeś słownictwo "..character:GetName().." o język "..language.name)
end
else
client:NotifyLocalized("Ten język nie istnieje!")
return false
end
else
client:NotifyLocalized("Nie udało się znaleźć tej postaci!")
return false
end
end
})
ix.command.Add("CharRemoveLanguage", {
description = "Usuń język ze słownika postaci.",
adminOnly = true,
arguments = {ix.type.character, ix.type.text},
OnRun = function(self, client, character, lang)
if (character) then
local language = ix.languages:FindByID(lang)
if (language) then
local knownLanguages = character:GetLanguages()
if (!table.HasValue(knownLanguages, language.uniqueID)) then
client:NotifyLocalized("Ta postać nie zna "..language.name.."!")
return false
else
table.RemoveByValue(knownLanguages, language.uniqueID)
character:SetLanguages(knownLanguages)
client:NotifyLocalized("Usunełeś "..language.name.." ze słownictwa "..character:GetName())
end
else
client:NotifyLocalized("Ten język nie istnieje!")
return false
end
else
client:NotifyLocalized("Nie udało się znaleźć tej postaci!")
return false
end
end
})

View File

@@ -0,0 +1,629 @@
--[[
| 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
PLUGIN.name = "Languages"
PLUGIN.author = "Fruity"
PLUGIN.description = "Adds a library that can handle registration of languages and actual speech of it."
ix.util.Include("cl_hooks.lua")
ix.util.Include("sv_hooks.lua")
function PLUGIN:AdjustCreationPayload(client, payload, newPayload)
if (newPayload.data.languages) then
newPayload.languages = newPayload.data.languages
newPayload.data.languages = nil
end
newPayload.data.language = nil
end
ix.lang.AddTable("english", {
optLanguageFlagsEnabled = "Włącz flagi językowe",
optdLanguageFlagsEnabled = "Aktywuj ikony, aby wskazać język wypowiedzi w języku innym niż angielskim na czacie IC."
})
ix.lang.AddTable("spanish", {
optLanguageFlagsEnabled = "Activa las Flags de Idiomas",
optdLanguageFlagsEnabled = "Activa los iconos de para indicar el idioma de cosas habladas en otro idioma que no sea español dentro del chat IC."
})
ix.lang.AddTable("polish", {
optLanguageFlagsEnabled = "Włącz flagi językowe",
optdLanguageFlagsEnabled = "Aktywuj ikony, aby wskazać język wypowiedzi w języku innym niż angielskim na czacie IC."
})
ix.char.RegisterVar("languages", {
field = "languages",
default = {},
isLocal = true,
bNoDisplay = true
})
ix.char.RegisterVar("learningLanguages", {
field = "learningLanguages",
default = {},
isLocal = true,
bNoDisplay = true
})
do
-- Vortigese
local language = ix.languages:New()
language.name = "Vortigeski"
language.uniqueID = "vort"
language.color = Color(51, 153, 51)
language.notSelectable = true
function language:PlayerCanSpeakLanguage(client)
if (client:GetCharacter():IsVortigaunt() and !client:GetNetVar("ixVortNulled")) then
return true
end
return ix.languages:PlayerCanSpeakLanguage(self, client)
end
language.gibberish = {"ahglah", "ahhhr", "alla", "allu", "baah", "beh", "bim", "buu", "chaa", "chackt", "churr", "dan", "darr", "dee", "eeya", "ge", "ga", "gaharra",
"gaka", "galih", "gallalam", "gerr", "gog", "gram", "gu", "gunn", "gurrah", "ha", "hallam", "harra", "hen", "hi", "jah", "jurr", "kallah", "keh", "kih",
"kurr", "lalli", "llam", "lih", "ley", "lillmah", "lurh", "mah", "min", "nach", "nahh", "neh", "nohaa", "nuy", "raa", "ruhh", "rum", "saa", "seh", "sennah",
"shaa", "shuu", "surr", "taa", "tan", "tsah", "turr", "uhn", "ula", "vahh", "vech", "veh", "vin", "voo", "vouch", "vurr", "xkah", "xih", "zurr"}
language:Register()
end
do
-- Danish
local language = ix.languages:New()
language.name = "Duński"
language.uniqueID = "dan"
language.icon = "flags16/dk.png"
language.gibberish = {"alt", "hænder", "ingen", "enig", "mange", "større", "afsted", "hånden", "pludselig", "sød", "tilfreds", "ordre", "færdig", "menneske", "hurtigt", "voksen", "spillede", "papirer",
"valgt", "lkke", "seks", "sherif", "ringe", "dronning", "opmærksomhed", "kæft", "kiggede", "fald", "morder", "sammen", "forsvinder", "hop", "forsøge", "kaldte", "oberst", "mødte", "brugte",
"tal", "sad", "røg", "her", "fis", "rigtig", "alvorligt", "vidst", "kop", "danny", "dreng", "været", "bilen", "tror", "masser", "sat", "lade", "bryde", "fart", "skoven",
"tale", "kører", "dens", "klarede", "rummet", "luk", "føre", "blevet", "trænger", "and", "været", "spørger", "nede", "endda", "stor", "vågn", "købt", "klasse", "overlever"}
language:Register()
end
do
-- Japanese
local language = ix.languages:New()
language.name = "Japoński"
language.uniqueID = "jap"
language.icon = "flags16/jp.png"
language.gibberish = {"通り", "危険", "全部", "ある", "見つかる", "聞こえる", "すわる", "あめ", "料理", "返す", "準備", "被る", "ひも", "など", "やくしょ、役所", "二日", "まず", "下げる",
"通る", "つもり", "低い", "ひくい", "選ぶ", "だの", "降る", "相談", "エンジニア", "", "残念", "うるさい", "うるさい", "勉強", "年間", "みせ、店", "大切", "たいせつ", "あれ", "買い物", "",
"こぼれる", "給料", "", "公園", "太い", "英語", "みかん", "やかん", "開く", "セーター", "サンドイッチ", "訪ねる", "場所", "ずっと", "高校生", "なみだ", "うまい", "トラック", "四つ角", "最初",
"どうぞ", "", "", "男の子", "どろ、泥", "生活", "とても", "まま", "そっち", "火傷", "努力", "病院", "帰る", "教科書", "スイカ、西瓜", "複雑", "いとこ", "遊び", "クラス", "緩い", "小さい"}
language:Register()
end
do
-- Korean. It is very awkward for Koreans in real life. Change to Medieval Korean
local language = ix.languages:New()
language.name = "Koreański"
language.uniqueID = "kor"
language.icon = "flags16/kr.png"
language.gibberish = {"력황도가", "빈니산", "상단포", "광참은", "녈하", "홀퍄이", "샤도", "듕귁", "댤하", "나랃말", "싸미", "수므며", "서르", "사맏띠", "젼차", "뜨들", "몯할", "이랄", "어엳삐",
"해여", "날로", "쑤메", "뼌안킈", "하고져", "녀려신", "머리곰", "노코시라", "졈그", "셰라", "비취오", "시라", "옌니응", "샤미", "회신", "향주", "탼명", "추자", "한두", "대막간", "오행", "세존",
"", "채헐", "왕후", "관물", "빛쳐", "말정", "개국", "", "", "놀뎌", "탸다", "텽퍄", "합격", "엇리", "매일", "영겨", "", "가야", "금관", "권상", "천강", "지곡",
"월인", "방문", "여뱌", "관자", "용봉", "창살", "드세욜", "세라", "어긔", "어강됴리", "다롱", "디리", "달하", "마리", "둘흔", "밤드리", "네히어라", "엇디호", "릿고", "만구", "투치아", "악탐", "밴지하"}
language:Register()
end
do
-- Chinese
local language = ix.languages:New()
language.name = "Chiński"
language.uniqueID = "chi"
language.icon = "flags16/cn.png"
language.gibberish = {"相对", "服务", "认识", "普遍", "假如", "只是", "改变", "报纸", "然而", "", "", "", "展开", "政策", "教育部", "理论", "国际", "", "保持", "培养",
"非常", "感到", "算是", "", "台大", "博物馆", "全球", "担心", "北京", "", "好像", "", "差异", "观点", "", "", "宇宙", "公斤", "欢迎", "", "无论", "股票", "照顾",
"执行", "", "放弃", "女儿", "院长", "工人", "", "", "直到", "里面", "考虑", "原本", "", "牠们", "避免", "上课", "自动化", "构成", "音乐", "工作", "", "组成", "组织",
"过程", "人文", "或者", "", "清楚", "革命", "功能", "办法", "", "加以", "在一起", "学术", "股票", "代表", "", "", "台北", "", "参加", "提高", "品质", "妈妈", "重新"}
language:Register()
end
do
-- Spanish
local language = ix.languages:New()
language.name = "Hiszpański"
language.uniqueID = "spa"
language.icon = "flags16/es.png"
language.gibberish = {"listos", "tarjeta", "ayudarte", "parecen", "siempre", "si", "gustó", "minuto", "tanto", "cuarto", "ios", "quedarse", "regreso", "caso", "tengas", "dan", "vuelto", "dejó",
"llamada", "fuiste", "haberte", "aquellos", "terminar", "déjeme", "con", "traje", "habéis", "nosotras", "posición", "negra", "tony", "línea", "metros", "debió", "caballeros", "dedos", "abuela",
"nosotros", "duro", "eres", "probablemente", "bella", "nada", "mes", "inmediatamente", "brazo", "futuro", "brillante", "usar", "sube", "haya", "propósito", "eran", "más", "médico", "volverá", "hazlo",
"vistazo", "george", "humano", "caso", "oportunidad", "perfecto", "pelea", "lugares", "llevó", "tome", "hoy", "banco", "diferente", "algunos", "estas", "otra", "informe", "durante", "entrada"}
language:Register()
end
do
-- Russian
local language = ix.languages:New()
language.name = "Rosyjski"
language.uniqueID = "rus"
language.icon = "flags16/ru.png"
language.gibberish = {"поделиться", "хитрость", "посвистывать", "схема", "развиться", "однородный", "беспокоить", "правление", "торжественно", "пять", "пень", "венок", "обедня", "неизбежный",
"неразрывно", "дружина", "зрелище", "мозг", "раздел", "как", "скульптор", "март", "платить", "развести", "тень", "сгорание", "лепёшка", "пронестись", "скопление", "пятнадцать", "хрусталь",
"припомнить", "глубинный", "некий", "временно", "обозреватель", "закуривать", "пускай", "отдохнуть", "зелень", "рукавица", "сейчас", "голосовать", "выдавать", "весёлый", "оживление",
"отправляться", "прорыв", "целесообразный", "ширма", "копия", "металлургический", "верность", "история", "выработать", "познавать", "синяк", "серебряный", "версия", "таракан", "тропа"}
language:Register()
end
do
-- Bulgarian
local language = ix.languages:New()
language.name = "Bułgarski"
language.uniqueID = "bul"
language.icon = "flags16/bg.png"
language.gibberish = {"гледай", "коя", "поговоря", "чу", "момента", "защото", "някакво", "направил", "излизай", "големите", "спра", "сила", "светлина", "намери", "обратно", "срещу", "връщам",
"мои", "вид", "малката", "бизнеса", "отиде", "дълго", "песен", "надявам", "маса", "направим", "използва", "отвън", "направят", "казвам", "бива", "свят", "имаме", "живи", "честит", "дядо", "шеф",
"спомням", "съпруга", "предам", "брат", "случи", "вечерята", "начина", "вечно", "останало", "умре", "движи", "документи", "гледат", "нужно", "щеше", "дадем", "излезеш", "макс", "първото",
"семейство", "голямо", "сине", "пред", "тръгна", "тях", "появи", "града", "влюбен", "вдигни", "казаха", "мария", "пиеш", "децата", "излиза", "тялото", "бе", "си", "край", "полиция", "чао"}
language:Register()
end
do
-- German
local language = ix.languages:New()
language.name = "Niemiecki"
language.uniqueID = "ger"
language.icon = "flags16/de.png"
language.gibberish = {"durchsuchen", "gerecht", "draußen", "zusehen", "international", "behalten", "verbrannt", "deswegen", "geführt", "dahinter", "abhalten", "blödsinn", "rache", "als",
"die Untersuchung", "der Brauch", "immer", "beinahe", "erscheinen", "Schuld", "endlich", "dass", "riechen", "unterscheiden", "kollege", "fahrer", "beziehung", "reissen", "kleider",
"angetan", "erde", "huhn", "fein", "entkommen", "rause", "stimmen", "wunderbar", "tot", "haus", "senden", "schade", "woche", "nutzen", "lunge", "anfassen", "schiff", "wissen", "geld",
"zahlen", "begeistert", "hungrig", "einsam", "schalfen", "vertraut", "bein", "tragen", "spiegel", "heimat", "schuldig", "sie", "festhalten", "irgendwann", "zurecht"}
language:Register()
end
do
-- French
local language = ix.languages:New()
language.name = "Francuski"
language.uniqueID = "fre"
language.icon = "flags16/fr.png"
language.gibberish = {"plénier", "hier", "caresser", "charge", "huitième", "journée", "bras", "commerçant", "aspiration", "hélas", "pétrole", "succéder", "marche", "talent", "vérification",
"rigoler", "contribuable", "vraisemblablement", "différence", "recherche", "efficace", "d'ailleurs", "domine", "radio", "survenir", "naval", "gouverneur", "relever", "vieillard", "déchirer",
"amendement", "satisfaisant", "motif", "souhait", "opérateur", "courrier", "conservation", "formalité", "aire", "augmentation", "tard", "vague", "vanter", "détruire", "vanter", "besoin",
"accorder", "fait", "fonder", "dizaine", "logiciel", "chirurgien", "confus", "borne", "baigner", "restructuration", "règlement", "pleuvoir", "vingt-quatre", "croyant", "orientation"}
language:Register()
end
do
-- Arabic
local language = ix.languages:New()
language.name = "Arabski"
language.uniqueID = "ara"
language.icon = "flags16/sa.png"
language.gibberish = {"الابتسامة", "منزلي", "ولكني", "مجرد", "فقرة", "اللعنة", "للغاية", "الشعر", "أسفل", "سمعت", "الولادة", "حصة",
"الوحيدة", "سيدى", "كتلة", "السليم", "الموقف", "منا", "المقبل", "الجحيم", "موقف", "غذاء", "الطعام", "سيئة", "النار", "انتهت", "خطأ", "سيحدث",
"هنالك", "الواضح", "نقطة", "الكرة", "أيضا", "اعتقدت", "بـ", "صرخة", "تسمع", "بأنني", "فيكتور",
"مستر", "يطير", "عنصر", "العين", "يفعل", "اعمل", "الآن", "البلاد", "البلاد", "خاص", "ذاك", "مرة", "منطقة", "سمع", "وظيفة", "الجيد", "ساعات", "تريدون", "السابق", "على الرغم من",
"الارض", "يريد", "إلهى", "أهل"}
language:Register()
end
do
-- Italian
local language = ix.languages:New()
language.name = "Włoski"
language.uniqueID = "ita"
language.icon = "flags16/it.png"
language.gibberish = {"che", "nostro", "qualsiasi", "oro", "vuoi", "siediti", "new", "last", "capelli", "terribile", "danneggiare", "alcuni", "un po'", "qualche", "testa", "guerra", "povero",
"niente", "mettere", "caso", "ho", "dirmi", "vestire", "attraverso", "dovere", "unica", "tieni", "peccato", "già", "chiave", "persone", "apparire", "lasciami", "felice", "circa", "vedi", "prima",
"condurre", "sembrare", "settimana", "speranza", "qui", "resto", "doveva", "centro", "lasci", "fine", "affari", "ricordare", "vuole", "sapete", "prendere", "sposare", "portafoglio", "completamente",
"cosa", "possiamo", "via", "radio", "attento", "morire", "vincere", "regolare", "sento", "bisogno", "cibo", "primo", "incidente", "capelli", "avrei", "quante", "sinistra", "cielo", "piede", "lasciato"}
language:Register()
end
do
-- Dutch
local language = ix.languages:New()
language.name = "Niderlandzki"
language.uniqueID = "dut"
language.icon = "flags16/nl.png"
language.gibberish = {"ik", "toen", "werk", "vandaag", "enige", "buiten", "probleem", "krijgt", "minuten", "blij", "vergeten", "mevrouw", "betekent", "belangrijk", "verloren", "ervoor", "acht",
"getrouwd", "kantoor", "vliegtuig", "boot", "vliegen", "voorstellen", "mocht", "bekend", "paard", "gebouw", "broek", "and", "club", "bereiken", "lot", "hoeven", "aandacht", "neuken", "hoelang",
"bedanken", "geslagen", "geweten", "reed", "dol", "kleur", "genoegen", "station", "vrolijk", "papier", "dankbaar", "wensen", "wed", "meegemaakt", "wie", "alleen", "niemand", "werd", "gebeurd",
"kleine", "pak", "vanavond", "ergens", "hoi", "los", "rust", "avond", "valt", "kopen", "gisteren", "gebruik", "liefje", "wonen", "beschermen", "jong", "tafel", "ruimte", "belde", "regelen", "spul"}
language:Register()
end
do
-- Finnish
local language = ix.languages:New()
language.name = "Fiński"
language.uniqueID = "fin"
language.icon = "flags16/fi.png"
language.gibberish = {"kaikki", "kädet", "ei mitään", "olla samaa mieltä", "monta", "suurempi", "vinossa", "käsi", "yhtäkkiä", "makea", "tyytyväinen", "tilaus", "tehty", "ihminen", "nopeasti", "aikuinen", "soitti", "paperit",
"valitut", "ei", "kuusi", "sheriffi", "soittaa puhelimella", "kuningatar", "huomio", "turpa kiinni", "vähennä", "tappaja", "yhdessä", "hypätä", "yrittää", "nimeltään", "eversti", "tavannut", "käytetty",
"puhua", "surullinen", "savu", "tässä", "oikea", "vakavasti", "tunnettu", "kuppi", "poika", "ajatella", "massat", "aseta", "antaa", "tauko", "nopeus", "metsä",
"puhua", "ajo", "sen", "selvitettävä", "huone", "karjala", "omena", "täyslihapihvi", "kana", "idiootti", "makkara", "saatana", "helvetti", "jumalauta", "perkele", "kalja", "sauna"}
language:Register()
end
do
-- Swedish
local language = ix.languages:New()
language.name = "Szwedzki"
language.uniqueID = "swe"
language.icon = "flags16/se.png"
language.gibberish = {"aldrig", "alla", "andra", "andra", "att", "att", "av", "bara", "barn", "bli", "bra", "de", "dem", "den", "denna", "det", "detta", "dig", "dom", "du", "", "där", "efter", "eller", "en", "ett", "finnas",
"från", "", "för", "", "göra", "ha", "han", "helt", "hon", "honom", "hur", "här", "i", "idag", "innan", "inte", "jag", "ju", "kanske", "komma", "kunna", "lite", "man", "med", "men", "mig", "min",
"mot", "mycket", "många", "måste", "ni", "nog", "nu", "någon", "något", "några", "när", "och", "också", "om", "om", "", "samma", "se", "sen", "sen", "sig",
"sin", "själv", "skola", "som", "Sverige", "", "säga", "till", "tro", "två", "tycka", "under", "utan", "vad", "vara", "veta", "vi", "vid", "vilja", "väl", "väl", "år", "än", "även", "över"}
language:Register()
end
do
-- Greek
local language = ix.languages:New()
language.name = "Grecki"
language.uniqueID = "gre"
language.icon = "flags16/gr.png"
language.gibberish = {"έτος", "εβδομάδα", "σήμερα", "αύριο", "χθες", "ημερολόγιο", "δευτερόλεπτο", "ώρα", "λεπτό", "η ώρα", "μια ώρα", "μπορώ", "χρησιμοποιώ", "κάνω", "πηγαίνω", "έρχομαι", "γελάω", "φτιάχνω", "βλέπω", "μακρινός",
"μικρός", "καλός", "όμορφος", "άσχημος", "δύσκολος", "εύκολος", "κακός", "κοντινός", "Χαίρω πολύ", "Γειά", "Καλημέρα", "Καλησπέρα", "Καλησπέρα", "Καληνύχτα", "Τι κάνεις", "Σ' ευχαριστώ", "Όχι", "Νόστιμο", "Αντίο", "Ναι", "Δευτέρα",
"Τρίτη", "Τετάρτη", "Πέμπτη", "Σάββατο", "ένα", "μηδέν", "δύο", "μπίρα", "τσάι"}
language:Register()
end
do
-- Hindi
local language = ix.languages:New()
language.name = "Hindi"
language.uniqueID = "hin"
language.icon = "icon16/world.png"
language.gibberish = {"हां", "नहीं", "नमस्ते", "आप कैसे हैं", "परीक्षण", "बेवकूफ", "क्या", "कैसे", "कब", "क्यों", "कहा पे", "आप कैसे हैं", "शिखर सम्मेलन", "प्रेम", "घृणा", "दिलकश", "विचार", "कल्पना करना", "सर्वर", "कौन",
"करना", "मैं", "बटन", "मौजूद", "गूगल", "अनुवाद करना", "संघ", "जोड़ना", "जादू", "जिंदगी", "पेड़", "घास", "खोलना", "बंद करे", "कप", "कांच", "पुस्तक", "सेब", "पाई", "चापलूसी", "घृणा",
"कोई नहीं कर सकता", "आपका क्या मतलब है", "यह कैसे हो सकता है", "अस्तित्व", "जोड़ना", "पॉप", "गुब्बारे", "डेस्क", "का अस्तित्व"}
language:Register()
end
do
-- Bengali
local language = ix.languages:New()
language.name = "Bengalski"
language.uniqueID = "ben"
language.icon = "icon16/world.png"
language.gibberish = {"পরীক্ষা", "হ্যালো", "কেন", "কিভাবে", "কোথায়", "আমি", "কেন এটা", "ভাষা", "গুগল", "অনুবাদ করা", "বই", "গাছ", "ঘাস", "গ্লাস", "কাপ", "আপেল", "খাদ্য", "প্রেমিকা", "পরীক্ষামূলক", "জীবন",
"বিদ্যমান", "অস্তিত্ব", "বিশ্ব", "এটা", "কখন", "মৃত্যু", "ভালবাসা", "ঘৃণা", "ঘৃণা", "মুখ", "শরীর", "বোতাম", "বেলুন", "মজা", "ডেস্ক", "খাদ্য", "বিয়ার", "সমুদ্র", "জল", "আকাশ", "একত্রিত করুন",
"মিলন", "সর্বজনীন", "দেশ", "জমি", "জাহাজ", "ক্রুজ", "হাঁটা", "চালান", "সম্প্রচার"}
language:Register()
end
do
-- Croatian
local language = ix.languages:New()
language.name = "Chorwacki"
language.uniqueID = "cro"
language.icon = "icon16/world.png"
language.gibberish = {"Unija", "Kombinirati", "emitirati", "Univerzalni", "Obrazovanje", "Tko", "Kada", "Gdje", "Što", "Zašto", "postojati", "Postojanje", "Opstanak", "Trava", "Zemljište", "Drvo", "Nebo", "More", "Voda", "Više",
"Dodvoravanje", "Život", "Smrt", "Pametan", "Glup", "glazba, muzika", "Koncert", "Ljubavnici", "Mrziti", "Mržnja", "Bolest", "Zemlja", "Prevedi", "Jezik", "stranica", "Ne", "Da", "Stol", "Stolica", "Glumi", "mreža"}
language:Register()
end
do
-- Swahili
local language = ix.languages:New()
language.name = "Suahili"
language.uniqueID = "swa"
language.icon = "icon16/world.png"
language.gibberish = {"Mtandao", "Muungano", "Ardhi", "Mti", "Pai", "Chakula", "Zaidi", "Wakati", "Kwa nini", "Vipi", "Nini", "Wapi", "Lini", "Zipo", "Chai", "Kahawa", "Tafsiri", "Lugha", "Ulimwengu", "Unganisha",
"Pakiti", "Mfuko", "Nchi", "Kimbia", "Tembea", "Gurudumu", "Lori", "Treni", "Jiji", "Upendo", "Chuki", "Funga", "Fungua", "Uza", "Nunua", "Hifadhi", "Upepo", "Wingu", "Anga", "Bahari", "Maji"}
language:Register()
end
do
-- Serbian
local language = ix.languages:New()
language.name = "Serbski"
language.uniqueID = "ser"
language.icon = "icon16/world.png"
language.gibberish = {"Здраво", "Иди", "Зашто", "Шта", "Љубав", "Спринт", "Изађи", "Интеллигенце", "Оверватцх трансхуман арм", "Цивилна заштита", "Зомбие", "Мртав", "Трцати", "ти", "ја", "изговор",
"Извињавам се", "Ауто", "Не", "Вода", "кафу", "Живот", "Комбинујте", "Цити", "Остави", "Требао би", "Није у реду", "Изађи одавде", "Ш'а има", "Нешто"}
language:Register()
end
do
-- Turkish
local language = ix.languages:New()
language.name = "Turecki"
language.uniqueID = "tur"
language.icon = "icon16/world.png"
language.gibberish = {"Merhaba", "Sayın", "Koşmak", "sürat koşusu", "yakın", "Nasılsın", "programcı", "kafa", "ayak", "tavuk", "satıcı", "bira", "güzel", "gülmek", "Yapabilmek", "kullanmak", "Yapmak",
"takvim", "yarın", "bugün", "Ev", "Menşei", "Ülke", "vatandaş", "Gün batımı", "Şehir", "Güneş", "Sivil Savunma", "birleştir", "Aşk"}
language:Register()
end
do
-- Romanian
local language = ix.languages:New()
language.name = "Rumuński"
language.uniqueID = "rom"
language.icon = "icon16/world.png"
language.gibberish = {"Buna ziua", "păsări", "farfurie", "drept", "spațiu", "în mare măsură", "mai puțin", "sector", "cerere", "pâine", "dispus", "origine", "curat", "bunic", "date", "domnișoară", "furtună",
"petrece", "risc", "îngrijire", "militar", "relief", "tigru", "conveni", "îndepărta", "vecin", "apărea", "elefant", "prezice", "scump"}
language:Register()
end
do
-- Flipino
local language = ix.languages:New()
language.name = "Filipiński"
language.uniqueID = "fli"
language.icon = "icon16/world.png"
language.gibberish = {"Kamusta", "oras ng paggawa", "tahanan", "maglaro", "kung", "hanay", "tatlong", "gusto", "gumagana", "pamanahan", "ibang", "ang kanilang", "gawin", "namin", "maaari", "isang", "nagkaroon",
"kung ano", "para sa", "noon ay", "na", "sa", "ito", "ngunit", "salita", "sa pamamagitan ng", "mayroon", "may", "kanyang", "bilang"}
language:Register()
end
do
-- Irish
local language = ix.languages:New()
language.name = "Irlandzki"
language.uniqueID = "iri"
language.icon = "flags16/ie.png"
language.gibberish = {"Ar chuala", "Tá a lán", "Tráthnóna ciúin", "Tá súil", "gcloiseann", "tú sinn", "chóras Londain", "chun báis", "bhfaca tú ár", "Massacre Phádraig",
"chathair", "rudaí i gcuimhne", "Uaireanta", "smaoiním", "páirceanna", "dúchais", "cúis imní dúinn", "gcéad", "ghlúin", "súil", "atá", "caite", "chách", "thubaiste",
"fhios", "phláinéid", "éiceachóras", "ndáiríre", "ndeachaigh", "dhílseoir", "bheith", "bealach", "An é", "agam", "ráflaí", "chuala", "Tá mé tinn", "níos fearr", "Tíogair",
"Longthógáil", "Gáire", "Pólus", "Impireacht", "Úll", "prátaí", "go raibh maith agat", "Is amadán thú", "tharrang", "thar maoil", "fuar"}
language:Register()
end
do
-- Albanian
local language = ix.languages:New()
language.name = "Albański"
language.uniqueID = "alb"
language.icon = "flags16/al.png"
language.gibberish = {"viti", "javë", "sot", "nesër", "dje", "kalendar", "sekonda", "orë", "minutë", "orë", "një orë", "mund", "përdor", "bëj", "shko", "vij", "qesh", "bëj", "shih", "i largët", "i vogël", "mirë", "i bukur", "i keq", "i vështirë", "i lehtë", "i keq", "i afërt", "I gëzohem të njohesh", "Përshëndetje", "Mirëmbrëma", "Mirëmbrëma", "Mirëmbajtje", "Si je", "Faleminderit", "Jo", "I shijshëm", "Përshëndetje", "Po", "E hënë", "E martë", "E mërkurë", "E enjte", "E premte", "një", "zero", "dy", "bira", "çaj"}
language:Register()
end
do
-- Bosnian
local language = ix.languages:New()
language.name = "Bośniacki"
language.uniqueID = "bos"
language.icon = "flags16/ba.png"
language.gibberish = {"godina", "tjedan", "danas", "sutra", "jučer", "kalendar", "sekunda", "sat", "minuta", "sat", "jedan sat", "može", "koristiti", "učiniti", "ići", "doći", "smijati se", "napraviti", "vidjeti", "daleko", "mali", "dobar", "lijep", "ružan", "teško", "lako", "loše", "blizu", "Lijepo te upoznati", "Pozdrav", "Dobro jutro", "Dobar dan", "Dobro veče", "Dobro jutro", "Kako si", "Hvala", "Ne", "Užitak", "Doviđenja", "Da", "Ponedjeljak", "Utorak", "Srijeda", "Četvrtak", "Subota", "jedan", "nula", "dva", "pivo", "čaj"}
language:Register()
end
do
-- Polish
local language = ix.languages:New()
language.name = "Polski"
language.uniqueID = "pol"
language.icon = "flags16/pl.png"
language.gibberish = {"lato", "tydzień", "dzisia", "zajutrze", "wczora", "kalendarz", "chwila", "godzina", "minuta", "godzina", "jedna godzina", "snadź", "użyć", "czyni", "iść", "przyjść", "śmiać się", "robić", "widzieć", "daleko", "mały", "dobry", "cudny", "szpetny", "trudny", "snadny", "zły", "blisko", "Miło Cię poznać", "Witaj", "Czołem", "Dzień dobry", "Dobry wieczór", "Dobranoc", "Jak się miewasz", "Dziękuję", "Nie", "Smaczne", "Bywaj zdrów", "Tak", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Sobota", "jeden", "nulla", "dwa", "piwo", "czaj"}
language:Register()
end
do
-- Gaelic
local language = ix.languages:New()
language.name = "Gaelicki"
language.uniqueID = "gae"
language.icon = "flags16/gb.png"
language.notSelectable = true
language.gibberish = {"bliain", "seachtain", "inniu", "amárach", "inné", "foclóir", "soicind", "uair", "nóiméad", "uair", "uair amháin", "céad", "úsáid", "déan", "téigh", "téigh", "bualadh", "cruthaigh", "féach", "faoi", "beag", "gorm", "beo", "cosúil", "dubh", "difriúil", "easpa", "dubh", "líne", "Is maith liom tabhairt duit", "Dia dhuit", "Dia mhaith", "Dia duit", "Dia mhaith", "Dia mhaith", "Conas atá tú", "Go raibh maith agat", "Níl", "Bia iontach", "Slán", "", "Dé Luain", "Dé Máirt", "Dé Céadaoin", "Déardaoin", "Dé hAoine", "aon", "sifre", "dhá", "bíodh", "beoir", ""}
language:Register()
end
do
-- Portuguese
local language = ix.languages:New()
language.name = "Portugalski"
language.uniqueID = "por"
language.icon = "flags16/pt.png"
language.gibberish = {"ano", "semana", "hoje", "amanhã", "ontem", "calendário", "segundo", "hora", "minuto", "em ponto", "uma hora", "pode", "usar", "fazer", "ir", "vir", "rir", "fazer", "ver", "longe", "pequeno", "bom", "bonito", "feio", "difícil", "fácil", "ruim", "perto", "Prazer em conhecê-lo", "Olá", "Bom dia", "Boa tarde", "Boa noite", "Boa noite", "Como vai você", "Obrigado", "Não", "Delicioso", "Tchau", "Sim", "Segunda-feira", "Terça-feira", "Quarta-feira", "Quinta-feira", "Sábado", "um", "zero", "dois", "cerveja", "chá"}
language:Register()
end
do
-- Indonesian
local language = ix.languages:New()
language.name = "Indonezyjski"
language.uniqueID = "ind"
language.icon = "flags16/id.png"
language.gibberish = {"tahun", "minggu", "hari ini", "besok", "kemarin", "kalender", "detik", "jam", "menit", "jam", "satu jam", "bisa", "gunakan", "lakukan", "pergi", "datang", "tertawa", "buat", "lihat", "jauh", "kecil", "baik", "indah", "jelek", "sulit", "mudah", "buruk", "dekat", "Senang bertemu Anda", "Halo", "Selamat pagi", "Selamat siang", "Selamat sore", "Selamat malam", "Bagaimana kabarmu", "Terima kasih", "Tidak", "Enak", "Selamat tinggal", "Ya", "Senin", "Selasa", "Rabu", "Kamis", "Sabtu", "satu", "nol", "dua", "bir", "teh"}
language:Register()
end
do
-- Hebrew
local language = ix.languages:New()
language.name = "Hebrajski"
language.uniqueID = "heb"
language.icon = "flags16/il.png"
language.gibberish = {"שנה", "שבוע", "היום", "מחר", "אתמול", "לוח שנה", "שנייה", "שעה", "דקה", "שעון", "שעה אחת", "יכול", "להשתמש", "לעשות", "ללכת", "לבוא", "לצחוק", "לעשות", "לראות", "רחוק", "קטן", "טוב", "יפה", "גרוע", "קשה", "קל", "רע", "קרוב", "נחמד להכיר אותך", "שלום", "בוקר טוב", "צהריים טובים", "ערב טוב", "לילה טוב", "איך אתה", "תודה", "לא", "נהדר", "להתראות", "כן", "יום שני", "יום שלישי", "יום רביעי", "יום חמישי", "יום שישי", "אחד", "אפס", "שתיים", "בירה", "תה"}
language:Register()
end
do
-- Czech
local language = ix.languages:New()
language.name = "Czeski"
language.uniqueID = "cze"
language.icon = "flags16/cz.png"
language.gibberish = {"rok", "týden", "dnes", "zítra", "včera", "kalendář", "sekunda", "hodina", "minuta", "hodin", "jedna hodina", "může", "použít", "dělat", "jít", "přijít", "smát se", "udělat", "vidět", "daleko", "malý", "dobrý", "krásný", "hrozný", "těžký", "lehký", "špatný", "blízko", "Příjemné vás poznat", "Ahoj", "Dobré ráno", "Dobré odpoledne", "Dobrý večer", "Dobrou noc", "Jak se máš", "Děkuji", "Ne", "Chutná", "Nashledanou", "Ano", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Sobota", "jeden", "nula", "dva", "pivo", "čaj"}
language:Register()
end
do
-- Hungarian
local language = ix.languages:New()
language.name = "Węgierski"
language.uniqueID = "hun"
language.icon = "flags16/hu.png"
language.gibberish = {"év", "hét", "ma", "holnap", "tegnap", "naptár", "másodperc", "óra", "perc", "óra", "egy óra", "tud", "használ", "csinál", "megy", "jön", "nevet", "csinál", "lát", "messze", "kicsi", "", "szép", "csúnya", "nehez", "könnyű", "rossz", "közel", "Örülök, hogy találkoztunk", "Szia", "Jó reggelt", "Jó napot", "Jó estét", "Jó éjszakát", "Hogy vagy", "Köszönöm", "Nem", "Finom", "Viszlát", "Igen", "Hétfő", "Kedd", "Szerda", "Csütörtök", "Szombat", "egy", "nulla", "kettő", "sör", "tea"}
language:Register()
end
do
-- Vietnam
local language = ix.languages:New()
language.name = "Wietnamski"
language.uniqueID = "vie"
language.icon = "flags16/vn.png"
language.gibberish = {"no", "hôm qua", "nét", "phí", "thứ tám", "ngày", "cánh tay", "thương nhân", "khát vọng", "than ôi", "dầu", "thành công", "hành quân", "tài năng", "xác minh",
"cười", "người nộp thuế", "có lẽ", "sự khác biệt", "nghiên cứu", "hiệu quả", "nhân tiện", "thống trị", "đài phát thanh", "xảy ra", "hải quân", "thống đốc", "nâng", "ông già", "",
"sửa đổi", "thỏa đáng", "lý do", "mong muốn", "điều hành", "thư tín", "bảo tồn", "hình thức", "diện tích", "tăng", "muộn", "mơ hồ", "khoe khoang", "phá hủy", "khoe khoang", "cần",
"cấp", "xong", "tìm thấy", "mười", "phần mềm", "bác sĩ phẫu thuật", "bối rối", "ranh giới", "tắm", "tái cấu trúc", "quy định", "mưa", "hai mươi bốn", "tín đồ", "hướng dẫn"}
language:Register()
end
do
-- Ukrainian
local language = ix.languages:New()
language.name = "Ukraiński"
language.uniqueID = "ukr"
language.icon = "flags16/ua.png"
language.gibberish = {"міста", "великі", "та", "галасливі", "компанії", "дупа", "авто", "що", "здійснює", "якусь", "робить", "корисну", "роботу", "перетворенням", "інший", "в", "гірська", "суцільною",
"масою", "уламок", "такої", "з", "від", "до", "як", "позначає", "напрямок", "бік", "у", "включення", "додавання", "просторовому", "тощо", "відносинах", "і", "зброї", "праці", "за зброю", "візьміться",
"мов", "мова", "відносяться", "українська", "та ін", "всього", "додалася", "нова", "турбота", "надія", "очікування", "впевненість", "здійсненні", "чогось", "радісного'", "сприятливо", "янгол", "істота", "людині",
"колір", "забарвлення", "світловий", "напій", "готується", "також із"}
language:Register()
end
do
-- Alien (Wszystkie rasy Xen nievortowe, czyli Alien Grunt, Controller etc)
local language = ix.languages:New()
language.name = "Xendariański"
language.uniqueID = "xen"
language.icon = "icon16/briefcase.png"
language.notSelectable = true
language.color = Color(92, 29, 5)
language.gibberish = {"⊑⟒⌰⌰⍜", "⍙⊑⊬", "", "⋏⍜", "⍙⊑⏃⏁", "⟟⋔⌿⍜⌇⌇⟟⏚⌰⟒", "⌿⍜⌇⌇⟟⏚⌰⟒", "☊⏃⋏'⏁", "⌿⍀⍜☌⍀⏃⋔⋔⟟⋏☌", "☊⍜⎅⟟⋏☌", "⋉⟒⏁⏃", "⌇⌿⊑⟒⍀⟟☊⏃⌰", "⌇⟒☊⏁⍜⍀",
"⎎⎍⋏⋏⊬", "⍾⍙⟒⍀⏁⊬", "⎅⏃", "⋏⍜⎍", "⊑⍜⍙", "⍙⊑⟒⋏", "⋏⟒⎐⟒⍀", "⊬⟒⏃⍀⌇", "⎅⏃⊬⌇", "⋔⍜⋏⏁⊑⌇", "⎅⟒☊⏃⎅⟒⌇", "☊⟒⋏⏁⎍⍀⊬", "⊬⍜⍀☍", "⋏⟒⍙", "⌇⍜⋔⟒⍙⊑⏃⏁", "⌇⏃⎎⟒", "⎎⍜⌰⌰⍜⍙",
"☊⍜⋔⟒", "⍙⟟⏁⊑", "⋔⟒", "⋏⍜⍙", "⍙⏃⏁⟒⍀", "⎎⍜⍜⎅", "⟊⏃☊⍜⏚", "⟊⍜⏚", "⏁⟟⌇", "⎍⋏⍙⟟⌇⟒", "⍙⟟⌇⟒", "⏁⍜", "☌⍜", "⏁⊑⟒⍀⟒","⌿⍜⌿", "⌿⍜☌☌⟒⍀⌇", "⏁⟟⏁", "☊⏃", "☊⌿", "⍜⏁⏃", "⌇⊬⋏⏁⊑", "⌇⏁⍀⟟⎅⟒⍀",
"⏃⟟⍀⍙⏃⏁☊⊑", "☌⍀⍜⎍⋏⎅⍙⏃⏁☊⊑", "☊⟟⏁⊬", "⋔⏃⌿", "⋔⍜", "⏚⍜⏃⊑", "☊⟟⏁⟟⋉⟒⋏", "⎅⟒⎎⟒⋏⌇⟒", "⌇⟒☊⏁⍜⍀ ⌇⟒☊⎍⍀⟒", "⏚⏃⋏", "⎅⟒⏃⏁⊑", "☌⍜⏁", "⌰⍜", "☌⍀⟒⋏⏃⎅⟒", "☊⎎", "☍⍜⌿", "☊⍜⌿",
"⌇⟒", "⍙⊑⟟⋏⟒", "⏚⍜⋔⏚", "⋏⟒☌⏃⏁⟟⎐⟒", "⏃⎎⎎⟟⍀⋔⏃⏁⟟⎐⟒", "⍜⎐⟒⍀⍙⏃⏁☊⊑", "⌇⏁⏃⋏⎅⏚⊬", "⊬⏃⋔⏃⏁⍜", "⊬⏃", "⊬⍜", "⌇⏁⍜⌿", "☌⟒⏁ ⎅⍜⍙⋏", "⏚⏃☊☍", "⍾⍙", "⎎⏃⟟⌰⎍⍀⟒", "⟒⋏⍜⎍☌⊑", "☌⏃⊬",
"⏃⏁⌰⟒", "⎅⟒⎐", "⎐⟒☊⏁⍜⍀", "⊑⍜⌿⌿⟒⍀", "⋔⟟⋏⟒", "⋔⟟⋏⟒⎎⟟⟒⌰⎅", "⋔⟟⌰⟟⏁⏃⍀⊬", "☊⍜⋏⌇☊⍀⟟⌿⏁", "⏁⍀⟒⌇⌿⏃⌇⌇⟒⍀", "⎍⋏⟟⏁⟒", "⎍⋏⟟⎎⊬", "⋉⏃⏁", "⟊⏃☊☍", "⍙⊑⊬ ⍙⍜⎍⌰⎅ ⊬⍜⎍ ⎅⍜ ⏁⊑⟟⌇ ⏁⍜ ⋔⟒",
"⏃⟟", "⎐⟟", "☊⍜⍀⟒", "⌿⍜⍙⟒⍀", "⎅⟒⌇⏁⍀⎍☊⏁⟟⍜⋏", "⍀⎍⟟⋏", "⌰⏃⌇⏁⌰⊬", "⍙⟒"}
language:Register()
end
do
-- Alien (Rasa X)
local language = ix.languages:New()
language.name = "Inkongruentny"
language.uniqueID = "inc"
language.icon = "icon16/briefcase.png"
language.notSelectable = true
language.color = Color(92, 29, 5)
language.gibberish = {"⊑⟒⌰⌰⍜", "⍙⊑⊬", "", "⋏⍜", "⍙⊑⏃⏁", "⟟⋔⌿⍜⌇⌇⟟⏚⌰⟒", "⌿⍜⌇⌇⟟⏚⌰⟒", "☊⏃⋏'⏁", "⌿⍀⍜☌⍀⏃⋔⋔⟟⋏☌", "☊⍜⎅⟟⋏☌", "⋉⟒⏁⏃", "⌇⌿⊑⟒⍀⟟☊⏃⌰", "⌇⟒☊⏁⍜⍀",
"⎎⎍⋏⋏⊬", "⍾⍙⟒⍀⏁⊬", "⎅⏃", "⋏⍜⎍", "⊑⍜⍙", "⍙⊑⟒⋏", "⋏⟒⎐⟒⍀", "⊬⟒⏃⍀⌇", "⎅⏃⊬⌇", "⋔⍜⋏⏁⊑⌇", "⎅⟒☊⏃⎅⟒⌇", "☊⟒⋏⏁⎍⍀⊬", "⊬⍜⍀☍", "⋏⟒⍙", "⌇⍜⋔⟒⍙⊑⏃⏁", "⌇⏃⎎⟒", "⎎⍜⌰⌰⍜⍙",
"☊⍜⋔⟒", "⍙⟟⏁⊑", "⋔⟒", "⋏⍜⍙", "⍙⏃⏁⟒⍀", "⎎⍜⍜⎅", "⟊⏃☊⍜⏚", "⟊⍜⏚", "⏁⟟⌇", "⎍⋏⍙⟟⌇⟒", "⍙⟟⌇⟒", "⏁⍜", "☌⍜", "⏁⊑⟒⍀⟒","⌿⍜⌿", "⌿⍜☌☌⟒⍀⌇", "⏁⟟⏁", "☊⏃", "☊⌿", "⍜⏁⏃", "⌇⊬⋏⏁⊑", "⌇⏁⍀⟟⎅⟒⍀",
"⏃⟟⍀⍙⏃⏁☊⊑", "☌⍀⍜⎍⋏⎅⍙⏃⏁☊⊑", "☊⟟⏁⊬", "⋔⏃⌿", "⋔⍜", "⏚⍜⏃⊑", "☊⟟⏁⟟⋉⟒⋏", "⎅⟒⎎⟒⋏⌇⟒", "⌇⟒☊⏁⍜⍀ ⌇⟒☊⎍⍀⟒", "⏚⏃⋏", "⎅⟒⏃⏁⊑", "☌⍜⏁", "⌰⍜", "☌⍀⟒⋏⏃⎅⟒", "☊⎎", "☍⍜⌿", "☊⍜⌿",
"⌇⟒", "⍙⊑⟟⋏⟒", "⏚⍜⋔⏚", "⋏⟒☌⏃⏁⟟⎐⟒", "⏃⎎⎎⟟⍀⋔⏃⏁⟟⎐⟒", "⍜⎐⟒⍀⍙⏃⏁☊⊑", "⌇⏁⏃⋏⎅⏚⊬", "⊬⏃⋔⏃⏁⍜", "⊬⏃", "⊬⍜", "⌇⏁⍜⌿", "☌⟒⏁ ⎅⍜⍙⋏", "⏚⏃☊☍", "⍾⍙", "⎎⏃⟟⌰⎍⍀⟒", "⟒⋏⍜⎍☌⊑", "☌⏃⊬",
"⏃⏁⌰⟒", "⎅⟒⎐", "⎐⟒☊⏁⍜⍀", "⊑⍜⌿⌿⟒⍀", "⋔⟟⋏⟒", "⋔⟟⋏⟒⎎⟟⟒⌰⎅", "⋔⟟⌰⟟⏁⏃⍀⊬", "☊⍜⋏⌇☊⍀⟟⌿⏁", "⏁⍀⟒⌇⌿⏃⌇⌇⟒⍀", "⎍⋏⟟⏁⟒", "⎍⋏⟟⎎⊬", "⋉⏃⏁", "⟊⏃☊☍", "⍙⊑⊬ ⍙⍜⎍⌰⎅ ⊬⍜⎍ ⎅⍜ ⏁⊑⟟⌇ ⏁⍜ ⋔⟒",
"⏃⟟", "⎐⟟", "☊⍜⍀⟒", "⌿⍜⍙⟒⍀", "⎅⟒⌇⏁⍀⎍☊⏁⟟⍜⋏", "⍀⎍⟟⋏", "⌰⏃⌇⏁⌰⊬", "⍙⟒"}
language:Register()
end
do
-- Combine (Advisorzy, syntetyki etc)
local language = ix.languages:New()
language.name = "Imperialny"
language.uniqueID = "imp"
language.icon = "icon16/briefcase.png"
language.notSelectable = true
language.color = Color(145, 45, 6)
language.gibberish = {"⊑⟒⌰⌰⍜", "⍙⊑⊬", "", "⋏⍜", "⍙⊑⏃⏁", "⟟⋔⌿⍜⌇⌇⟟⏚⌰⟒", "⌿⍜⌇⌇⟟⏚⌰⟒", "☊⏃⋏'⏁", "⌿⍀⍜☌⍀⏃⋔⋔⟟⋏☌", "☊⍜⎅⟟⋏☌", "⋉⟒⏁⏃", "⌇⌿⊑⟒⍀⟟☊⏃⌰", "⌇⟒☊⏁⍜⍀",
"⎎⎍⋏⋏⊬", "⍾⍙⟒⍀⏁⊬", "⎅⏃", "⋏⍜⎍", "⊑⍜⍙", "⍙⊑⟒⋏", "⋏⟒⎐⟒⍀", "⊬⟒⏃⍀⌇", "⎅⏃⊬⌇", "⋔⍜⋏⏁⊑⌇", "⎅⟒☊⏃⎅⟒⌇", "☊⟒⋏⏁⎍⍀⊬", "⊬⍜⍀☍", "⋏⟒⍙", "⌇⍜⋔⟒⍙⊑⏃⏁", "⌇⏃⎎⟒", "⎎⍜⌰⌰⍜⍙",
"☊⍜⋔⟒", "⍙⟟⏁⊑", "⋔⟒", "⋏⍜⍙", "⍙⏃⏁⟒⍀", "⎎⍜⍜⎅", "⟊⏃☊⍜⏚", "⟊⍜⏚", "⏁⟟⌇", "⎍⋏⍙⟟⌇⟒", "⍙⟟⌇⟒", "⏁⍜", "☌⍜", "⏁⊑⟒⍀⟒","⌿⍜⌿", "⌿⍜☌☌⟒⍀⌇", "⏁⟟⏁", "☊⏃", "☊⌿", "⍜⏁⏃", "⌇⊬⋏⏁⊑", "⌇⏁⍀⟟⎅⟒⍀",
"⏃⟟⍀⍙⏃⏁☊⊑", "☌⍀⍜⎍⋏⎅⍙⏃⏁☊⊑", "☊⟟⏁⊬", "⋔⏃⌿", "⋔⍜", "⏚⍜⏃⊑", "☊⟟⏁⟟⋉⟒⋏", "⎅⟒⎎⟒⋏⌇⟒", "⌇⟒☊⏁⍜⍀ ⌇⟒☊⎍⍀⟒", "⏚⏃⋏", "⎅⟒⏃⏁⊑", "☌⍜⏁", "⌰⍜", "☌⍀⟒⋏⏃⎅⟒", "☊⎎", "☍⍜⌿", "☊⍜⌿",
"⌇⟒", "⍙⊑⟟⋏⟒", "⏚⍜⋔⏚", "⋏⟒☌⏃⏁⟟⎐⟒", "⏃⎎⎎⟟⍀⋔⏃⏁⟟⎐⟒", "⍜⎐⟒⍀⍙⏃⏁☊⊑", "⌇⏁⏃⋏⎅⏚⊬", "⊬⏃⋔⏃⏁⍜", "⊬⏃", "⊬⍜", "⌇⏁⍜⌿", "☌⟒⏁ ⎅⍜⍙⋏", "⏚⏃☊☍", "⍾⍙", "⎎⏃⟟⌰⎍⍀⟒", "⟒⋏⍜⎍☌⊑", "☌⏃⊬",
"⏃⏁⌰⟒", "⎅⟒⎐", "⎐⟒☊⏁⍜⍀", "⊑⍜⌿⌿⟒⍀", "⋔⟟⋏⟒", "⋔⟟⋏⟒⎎⟟⟒⌰⎅", "⋔⟟⌰⟟⏁⏃⍀⊬", "☊⍜⋏⌇☊⍀⟟⌿⏁", "⏁⍀⟒⌇⌿⏃⌇⌇⟒⍀", "⎍⋏⟟⏁⟒", "⎍⋏⟟⎎⊬", "⋉⏃⏁", "⟊⏃☊☍", "⍙⊑⊬ ⍙⍜⎍⌰⎅ ⊬⍜⎍ ⎅⍜ ⏁⊑⟟⌇ ⏁⍜ ⋔⟒",
"⏃⟟", "⎐⟟", "☊⍜⍀⟒", "⌿⍜⍙⟒⍀", "⎅⟒⌇⏁⍀⎍☊⏁⟟⍜⋏", "⍀⎍⟟⋏", "⌰⏃⌇⏁⌰⊬", "⍙⟒"}
language:Register()
end
function PLUGIN:InitializedPlugins()
for _, v in pairs(ix.languages.stored) do
if v.uniqueID != "xen" and v.uniqueID != "inc" and v.uniqueID != "imp" and v.uniqueID != "vort" then
for i = 1, 5 do
local ITEM = ix.item.Register("audiobook_"..i..v.uniqueID, nil, false, nil, true)
ITEM.name = "Naucz się "..v.name.."ego - Część "..i.." - Audiobook"
ITEM.category = "Audiobooks"
ITEM.model = "models/props_lab/reciever01d.mdl"
ITEM.description = "Jedna z pięciu części serii audiobooków służącego do nauki "..v.name.."ego"
if (SERVER) then
ITEM.language = v
end
ITEM.functions.Listen = {
OnRun = function(itemTable)
return PLUGIN:ListenToAudioBook(itemTable, itemTable.player)
end
}
local RECIPE = ix.recipe:New()
RECIPE.uniqueID = "audiobook_"..i..v.uniqueID
RECIPE.name = "Audiobook - "..v.name.." - Część: "..i
RECIPE.description = "Słuchanie tego audiobooka pomoże Ci nauczyć się "..v.name.."ego. Część "..i.." z 5"
RECIPE.model = "models/props_lab/reciever01d.mdl"
RECIPE.category = "Audiobooki"
RECIPE.hidden = false
RECIPE.skill = "bartering"
RECIPE.cost = 15
RECIPE.result = {["audiobook_"..i..v.name] = 1}
RECIPE.buyAmount = 1 -- amount TEXT
RECIPE.level = 15
RECIPE.experience = {
{level = 15, exp = 60}, -- full XP
{level = 25, exp = 30}, -- half XP
{level = 30, exp = 0} -- 0 XP
}
RECIPE:Register()
end
end
end
end

View File

@@ -0,0 +1,131 @@
--[[
| 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
netstream.Hook("QueryDeleteLanguageSuccess", function(client)
if client:GetCharacter():GetLearningLanguages() then
local learningLanguages = client:GetCharacter():GetLearningLanguages()
if !table.IsEmpty(learningLanguages) then
table.Empty(learningLanguages)
client:GetCharacter():SetLearningLanguages(learningLanguages)
client:NotifyLocalized("Porzuciłeś swoje postępy w nauce języków.")
end
end
end)
netstream.Hook("ForceShoutAnim", function(client, speaker)
if speaker and speaker:Alive() then
if !client:IsVortigaunt() then
return false
end
timer.Simple(1.5, function()
local sounds = {"ol01_vortcall01", "ol01_vortcall02c", "ol01_vortresp01", "ol01_vortresp04"}
if (speaker) then
speaker:EmitSound( "vort/"..table.Random(sounds)..".wav", 511 / 2, 100, 1, CHAN_AUTO )
end
end)
speaker:ForceSequence("vort_shout", function()
if (!speaker:Alive()) then return end
speaker:Freeze(true)
speaker:ForceSequence("vort_shout_end", function()
speaker:Freeze(false)
end)
end)
end
end)
function PLUGIN:ListenToAudioBook(itemTable, client)
local character = client:GetCharacter()
local learningLanguages = character:GetLearningLanguages() or {}
local knownLanguages = character:GetLanguages() or {}
local v = itemTable.language
local cooldown = 86400 -- 24 hours in seconds (24*60*60)
local time = os.time()
if (table.HasValue(knownLanguages, v.uniqueID)) then
client:NotifyLocalized("Twoja postać zna już "..v.name.."!")
return false
end
if client.CantPlace then
client:NotifyLocalized("YMusisz poczekać, zanim będziesz mógł tego użyć!")
return false
end
if !table.IsEmpty(learningLanguages) and learningLanguages[1] then
if learningLanguages[1].name then
client.CantPlace = true
timer.Simple(3, function()
if client then
client.CantPlace = false
end
end)
if v.name != learningLanguages[1].name then
netstream.Start(client, "QueryDeleteLanguageLearningProgress", learningLanguages[1].name)
return false
end
if v.name == learningLanguages[1].name then
if learningLanguages[1].progress then
local str = ""
string.gsub(itemTable.name,"%d+",function(e)
str = str .. e
end)
if learningLanguages[1].progress + 1 != tonumber(str) then
client:NotifyLocalized("Musisz posłuchać rozdziału "..tostring(tonumber(learningLanguages[1].progress) + 1).." tego audiobooka, aby dowiedzieć się więcej!")
return false
end
local nextUse = learningLanguages[1].timestamp
if time < nextUse then
client:NotifyLocalized("Nie jestem gotowy na kolejną książkę... Potrzebuję poczekać.")
return false
end
learningLanguages[1].progress = math.Clamp(learningLanguages[1].progress + 1, 0, 5)
learningLanguages[1].timestamp = time + cooldown
if learningLanguages[1].progress == 5 then
table.insert(knownLanguages, v.uniqueID)
character:SetLanguages(knownLanguages)
client:NotifyLocalized("Gratulacje, mówisz teraz płynnie po "..v.name.."!")
table.Empty(learningLanguages)
character:SetLearningLanguages(learningLanguages)
else
client:NotifyLocalized("Zwiększyłeś swoją biegłość do poziomu "..learningLanguages[1].progress.." w "..v.name)
character:SetLearningLanguages(learningLanguages)
end
end
end
end
else
if string.find(itemTable.name, "1") then
learningLanguages[1] = {name = v.name, progress = 0, timestamp = time + cooldown}
learningLanguages[1].progress = math.Clamp(learningLanguages[1].progress + 1, 0, 5)
client:NotifyLocalized("Zwiększyłeś swoją biegłość do poziomu "..learningLanguages[1].progress.." w "..v.name)
character:SetLearningLanguages(learningLanguages)
else
client:NotifyLocalized("Musisz najpierw wysłuchać rozdziału 1!")
return false
end
end
end