This commit is contained in:
lifestorm
2024-08-04 23:54:45 +03:00
parent 0e770b2b49
commit df294d03aa
7526 changed files with 4011945 additions and 15 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("I am already learning "..languageName..", delete progress?", "Languages", "Yes", function()
netstream.Start("QueryDeleteLanguageSuccess")
end, "No")
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 = "Albanian Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Albanian", 1)
inventory:Add("audiobook_2Albanian", 1)
inventory:Add("audiobook_3Albanian", 1)
inventory:Add("audiobook_4Albanian", 1)
inventory:Add("audiobook_5Albanian", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Arabic Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Arabic", 1)
inventory:Add("audiobook_2Arabic", 1)
inventory:Add("audiobook_3Arabic", 1)
inventory:Add("audiobook_4Arabic", 1)
inventory:Add("audiobook_5Arabic", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Bengali Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Bengali", 1)
inventory:Add("audiobook_2Bengali", 1)
inventory:Add("audiobook_3Bengali", 1)
inventory:Add("audiobook_4Bengali", 1)
inventory:Add("audiobook_5Bengali", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Bosnian Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Bosnian", 1)
inventory:Add("audiobook_2Bosnian", 1)
inventory:Add("audiobook_3Bosnian", 1)
inventory:Add("audiobook_4Bosnian", 1)
inventory:Add("audiobook_5Bosnian", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Bulgarian Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Bulgarian", 1)
inventory:Add("audiobook_2Bulgarian", 1)
inventory:Add("audiobook_3Bulgarian", 1)
inventory:Add("audiobook_4Bulgarian", 1)
inventory:Add("audiobook_5Bulgarian", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Chinese Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Chinese", 1)
inventory:Add("audiobook_2Chinese", 1)
inventory:Add("audiobook_3Chinese", 1)
inventory:Add("audiobook_4Chinese", 1)
inventory:Add("audiobook_5Chinese", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Croatian Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Croatian", 1)
inventory:Add("audiobook_2Croatian", 1)
inventory:Add("audiobook_3Croatian", 1)
inventory:Add("audiobook_4Croatian", 1)
inventory:Add("audiobook_5Croatian", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Czech Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Czech", 1)
inventory:Add("audiobook_2Czech", 1)
inventory:Add("audiobook_3Czech", 1)
inventory:Add("audiobook_4Czech", 1)
inventory:Add("audiobook_5Czech", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Danish Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Danish", 1)
inventory:Add("audiobook_2Danish", 1)
inventory:Add("audiobook_3Danish", 1)
inventory:Add("audiobook_4Danish", 1)
inventory:Add("audiobook_5Danish", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Dutch Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Dutch", 1)
inventory:Add("audiobook_2Dutch", 1)
inventory:Add("audiobook_3Dutch", 1)
inventory:Add("audiobook_4Dutch", 1)
inventory:Add("audiobook_5Dutch", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Finnish Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Finnish", 1)
inventory:Add("audiobook_2Finnish", 1)
inventory:Add("audiobook_3Finnish", 1)
inventory:Add("audiobook_4Finnish", 1)
inventory:Add("audiobook_5Finnish", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Flipino Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Flipino", 1)
inventory:Add("audiobook_2Flipino", 1)
inventory:Add("audiobook_3Flipino", 1)
inventory:Add("audiobook_4Flipino", 1)
inventory:Add("audiobook_5Flipino", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "French Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1French", 1)
inventory:Add("audiobook_2French", 1)
inventory:Add("audiobook_3French", 1)
inventory:Add("audiobook_4French", 1)
inventory:Add("audiobook_5French", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Gaeilge Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Gaeilge", 1)
inventory:Add("audiobook_2Gaeilge", 1)
inventory:Add("audiobook_3Gaeilge", 1)
inventory:Add("audiobook_4Gaeilge", 1)
inventory:Add("audiobook_5Gaeilge", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Gaelic Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Gaelic", 1)
inventory:Add("audiobook_2Gaelic", 1)
inventory:Add("audiobook_3Gaelic", 1)
inventory:Add("audiobook_4Gaelic", 1)
inventory:Add("audiobook_5Gaelic", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "German Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1German", 1)
inventory:Add("audiobook_2German", 1)
inventory:Add("audiobook_3German", 1)
inventory:Add("audiobook_4German", 1)
inventory:Add("audiobook_5German", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Greek Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Greek", 1)
inventory:Add("audiobook_2Greek", 1)
inventory:Add("audiobook_3Greek", 1)
inventory:Add("audiobook_4Greek", 1)
inventory:Add("audiobook_5Greek", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Hebrew Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Hebrew", 1)
inventory:Add("audiobook_2Hebrew", 1)
inventory:Add("audiobook_3Hebrew", 1)
inventory:Add("audiobook_4Hebrew", 1)
inventory:Add("audiobook_5Hebrew", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Hindi", 1)
inventory:Add("audiobook_2Hindi", 1)
inventory:Add("audiobook_3Hindi", 1)
inventory:Add("audiobook_4Hindi", 1)
inventory:Add("audiobook_5Hindi", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Hungarian Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Hungarian", 1)
inventory:Add("audiobook_2Hungarian", 1)
inventory:Add("audiobook_3Hungarian", 1)
inventory:Add("audiobook_4Hungarian", 1)
inventory:Add("audiobook_5Hungarian", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Indonesian Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Indonesian", 1)
inventory:Add("audiobook_2Indonesian", 1)
inventory:Add("audiobook_3Indonesian", 1)
inventory:Add("audiobook_4Indonesian", 1)
inventory:Add("audiobook_5Indonesian", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Italian Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Italian", 1)
inventory:Add("audiobook_2Italian", 1)
inventory:Add("audiobook_3Italian", 1)
inventory:Add("audiobook_4Italian", 1)
inventory:Add("audiobook_5Italian", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Japanese Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Japanese", 1)
inventory:Add("audiobook_2Japanese", 1)
inventory:Add("audiobook_3Japanese", 1)
inventory:Add("audiobook_4Japanese", 1)
inventory:Add("audiobook_5Japanese", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Korean Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Korean", 1)
inventory:Add("audiobook_2Korean", 1)
inventory:Add("audiobook_3Korean", 1)
inventory:Add("audiobook_4Korean", 1)
inventory:Add("audiobook_5Korean", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Polish Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Polish", 1)
inventory:Add("audiobook_2Polish", 1)
inventory:Add("audiobook_3Polish", 1)
inventory:Add("audiobook_4Polish", 1)
inventory:Add("audiobook_5Polish", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Portuguese Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Portuguese", 1)
inventory:Add("audiobook_2Portuguese", 1)
inventory:Add("audiobook_3Portuguese", 1)
inventory:Add("audiobook_4Portuguese", 1)
inventory:Add("audiobook_5Portuguese", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Romanian Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Romanian", 1)
inventory:Add("audiobook_2Romanian", 1)
inventory:Add("audiobook_3Romanian", 1)
inventory:Add("audiobook_4Romanian", 1)
inventory:Add("audiobook_5Romanian", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Russian Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Russian", 1)
inventory:Add("audiobook_2Russian", 1)
inventory:Add("audiobook_3Russian", 1)
inventory:Add("audiobook_4Russian", 1)
inventory:Add("audiobook_5Russian", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Serbian Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Serbian", 1)
inventory:Add("audiobook_2Serbian", 1)
inventory:Add("audiobook_3Serbian", 1)
inventory:Add("audiobook_4Serbian", 1)
inventory:Add("audiobook_5Serbian", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Spanish Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Spanish", 1)
inventory:Add("audiobook_2Spanish", 1)
inventory:Add("audiobook_3Spanish", 1)
inventory:Add("audiobook_4Spanish", 1)
inventory:Add("audiobook_5Spanish", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Swahili", 1)
inventory:Add("audiobook_2Swahili", 1)
inventory:Add("audiobook_3Swahili", 1)
inventory:Add("audiobook_4Swahili", 1)
inventory:Add("audiobook_5Swahili", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Swedish Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Swedish", 1)
inventory:Add("audiobook_2Swedish", 1)
inventory:Add("audiobook_3Swedish", 1)
inventory:Add("audiobook_4Swedish", 1)
inventory:Add("audiobook_5Swedish", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
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 = "Turkish Audiobook Box"
ITEM.description = "A box containing a full set of Audiobooks. How convenient."
ITEM.category = "Audiobook Boxes"
ITEM.model = "models/items/item_item_crate.mdl"
ITEM.width = 2
ITEM.height = 2
ITEM.functions.Convert = {
name = "Convert",
icon = "icon16/wrench.png",
OnRun = function(item)
local client = item.player
local inventory = client:GetCharacter():GetInventory()
inventory:Add("audiobook_1Turkish", 1)
inventory:Add("audiobook_2Turkish", 1)
inventory:Add("audiobook_3Turkish", 1)
inventory:Add("audiobook_4Turkish", 1)
inventory:Add("audiobook_5Turkish", 1)
client:Notify("You have converted the " .. item.name .. " into its relevant Audiobook set.")
end
}

View File

@@ -0,0 +1,389 @@
--[[
| 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("Bu dili bilmiyorum..")
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
self.format = "%s, "..language.name.." "..self.sayType.." \"%s\""
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)))
self.format = "%s "..self.sayType.." in "..language.name.." \"%s\""
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 = "diyor ki"
-- languageClass.format = "%s "..languageClass.sayType.." something in "..language.name
languageClass.format = "%s, "..language.name.." "..languageClass.sayType.." \"%s\""
languageClass.CanHear = ix.config.Get("chatRange", 280)
languageClass.description = "Eğer biliyorsan "..language.name.." bir şeyler söylemeni sağlar."
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 = "fısıldayarak"
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 = "Eğer biliyorsan "..language.name.." fısıldamanı sağlar."
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 = "bağırarak"
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 = "Eğer biliyorsan "..language.name.." bağırmanı sağlar."
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 = "haykırarak"
languageClassShout.format = languageClass.format
languageClassShout.CanHear = ix.config.Get("chatRange", 280) * 20
languageClassShout.indicator = "chatYelling"
languageClassShout.prefix = "/vortshout"
languageClassShout.description = "Vortigese dilini kullanarak neredeyse haritanın yarısını kaplayacak bir alanda haykırmanı sağlar."
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 = "Add a language to a character's vocabulary.",
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("This character already knows "..language.name.."!")
return false
else
table.insert(knownLanguages, language.uniqueID)
character:SetLanguages(knownLanguages)
client:NotifyLocalized("You have extended "..character:GetName().."'s vocabulary with "..language.name)
end
else
client:NotifyLocalized("This language does not exist!")
return false
end
else
client:NotifyLocalized("Could not find this character!")
return false
end
end
})
ix.command.Add("CharRemoveLanguage", {
description = "Remove a language to a character's vocabulary.",
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("This character doesn't know "..language.name.."!")
return false
else
table.RemoveByValue(knownLanguages, language.uniqueID)
character:SetLanguages(knownLanguages)
client:NotifyLocalized("You have removed "..language.name.." from "..character:GetName().."'s vocabulary.")
end
else
client:NotifyLocalized("This language does not exist!")
return false
end
else
client:NotifyLocalized("Could not find this character!")
return false
end
end
})

View File

@@ -0,0 +1,616 @@
--[[
| 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 = "Dil Bayraklarını Etkinleştir",
optdLanguageFlagsEnabled = "İngilizce olmayan IC metni için bir şeyin konuşulduğu dili belirtmek üzere sohbet simgelerini etkinleştirin."
})
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.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 = "Vortigese"
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 = "Danca"
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 = "Japonca"
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 = "Korece"
language.uniqueID = "kor"
language.icon = "flags16/kr.png"
language.gibberish = {"력황도가", "빈니산", "상단포", "광참은", "녈하", "홀퍄이", "샤도", "듕귁", "댤하", "나랃말", "싸미", "수므며", "서르", "사맏띠", "젼차", "뜨들", "몯할", "이랄", "어엳삐",
"해여", "날로", "쑤메", "뼌안킈", "하고져", "녀려신", "머리곰", "노코시라", "졈그", "셰라", "비취오", "시라", "옌니응", "샤미", "회신", "향주", "탼명", "추자", "한두", "대막간", "오행", "세존",
"", "채헐", "왕후", "관물", "빛쳐", "말정", "개국", "", "", "놀뎌", "탸다", "텽퍄", "합격", "엇리", "매일", "영겨", "", "가야", "금관", "권상", "천강", "지곡",
"월인", "방문", "여뱌", "관자", "용봉", "창살", "드세욜", "세라", "어긔", "어강됴리", "다롱", "디리", "달하", "마리", "둘흔", "밤드리", "네히어라", "엇디호", "릿고", "만구", "투치아", "악탐", "밴지하"}
language:Register()
end
do
-- Chinese
local language = ix.languages:New()
language.name = "Çince"
language.uniqueID = "chi"
language.icon = "flags16/cn.png"
language.gibberish = {"相对", "服务", "认识", "普遍", "假如", "只是", "改变", "报纸", "然而", "", "", "", "展开", "政策", "教育部", "理论", "国际", "", "保持", "培养",
"非常", "感到", "算是", "", "台大", "博物馆", "全球", "担心", "北京", "", "好像", "", "差异", "观点", "", "", "宇宙", "公斤", "欢迎", "", "无论", "股票", "照顾",
"执行", "", "放弃", "女儿", "院长", "工人", "", "", "直到", "里面", "考虑", "原本", "", "牠们", "避免", "上课", "自动化", "构成", "音乐", "工作", "", "组成", "组织",
"过程", "人文", "或者", "", "清楚", "革命", "功能", "办法", "", "加以", "在一起", "学术", "股票", "代表", "", "", "台北", "", "参加", "提高", "品质", "妈妈", "重新"}
language:Register()
end
do
-- Spanish
local language = ix.languages:New()
language.name = "İspanyolca"
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 = "Rusça"
language.uniqueID = "rus"
language.icon = "flags16/ru.png"
language.gibberish = {"поделиться", "хитрость", "посвистывать", "схема", "развиться", "однородный", "беспокоить", "правление", "торжественно", "пять", "пень", "венок", "обедня", "неизбежный",
"неразрывно", "дружина", "зрелище", "мозг", "раздел", "как", "скульптор", "март", "платить", "развести", "тень", "сгорание", "лепёшка", "пронестись", "скопление", "пятнадцать", "хрусталь",
"припомнить", "глубинный", "некий", "временно", "обозреватель", "закуривать", "пускай", "отдохнуть", "зелень", "рукавица", "сейчас", "голосовать", "выдавать", "весёлый", "оживление",
"отправляться", "прорыв", "целесообразный", "ширма", "копия", "металлургический", "верность", "история", "выработать", "познавать", "синяк", "серебряный", "версия", "таракан", "тропа"}
language:Register()
end
do
-- Bulgarian
local language = ix.languages:New()
language.name = "Bulgarca"
language.uniqueID = "bul"
language.icon = "flags16/bg.png"
language.gibberish = {"гледай", "коя", "поговоря", "чу", "момента", "защото", "някакво", "направил", "излизай", "големите", "спра", "сила", "светлина", "намери", "обратно", "срещу", "връщам",
"мои", "вид", "малката", "бизнеса", "отиде", "дълго", "песен", "надявам", "маса", "направим", "използва", "отвън", "направят", "казвам", "бива", "свят", "имаме", "живи", "честит", "дядо", "шеф",
"спомням", "съпруга", "предам", "брат", "случи", "вечерята", "начина", "вечно", "останало", "умре", "движи", "документи", "гледат", "нужно", "щеше", "дадем", "излезеш", "макс", "първото",
"семейство", "голямо", "сине", "пред", "тръгна", "тях", "появи", "града", "влюбен", "вдигни", "казаха", "мария", "пиеш", "децата", "излиза", "тялото", "бе", "си", "край", "полиция", "чао"}
language:Register()
end
do
-- German
local language = ix.languages:New()
language.name = "Almanca"
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 = "Fransızca"
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 = "Arapça"
language.uniqueID = "ara"
language.icon = "flags16/sa.png"
language.gibberish = {"الابتسامة", "منزلي", "ولكني", "مجرد", "فقرة", "اللعنة", "للغاية", "الشعر", "أسفل", "سمعت", "الولادة", "حصة",
"الوحيدة", "سيدى", "كتلة", "السليم", "الموقف", "منا", "المقبل", "الجحيم", "موقف", "غذاء", "الطعام", "سيئة", "النار", "انتهت", "خطأ", "سيحدث",
"هنالك", "الواضح", "نقطة", "الكرة", "أيضا", "اعتقدت", "بـ", "صرخة", "تسمع", "بأنني", "فيكتور",
"مستر", "يطير", "عنصر", "العين", "يفعل", "اعمل", "الآن", "البلاد", "البلاد", "خاص", "ذاك", "مرة", "منطقة", "سمع", "وظيفة", "الجيد", "ساعات", "تريدون", "السابق", "على الرغم من",
"الارض", "يريد", "إلهى", "أهل"}
language:Register()
end
do
-- Italian
local language = ix.languages:New()
language.name = "İtalyanca"
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 = "Hollandaca"
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 = "Fince"
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 = "İsveççe"
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 = "Yunanca"
language.uniqueID = "gre"
language.icon = "flags16/gr.png"
language.gibberish = {"έτος", "εβδομάδα", "σήμερα", "αύριο", "χθες", "ημερολόγιο", "δευτερόλεπτο", "ώρα", "λεπτό", "η ώρα", "μια ώρα", "μπορώ", "χρησιμοποιώ", "κάνω", "πηγαίνω", "έρχομαι", "γελάω", "φτιάχνω", "βλέπω", "μακρινός",
"μικρός", "καλός", "όμορφος", "άσχημος", "δύσκολος", "εύκολος", "κακός", "κοντινός", "Χαίρω πολύ", "Γειά", "Καλημέρα", "Καλησπέρα", "Καλησπέρα", "Καληνύχτα", "Τι κάνεις", "Σ' ευχαριστώ", "Όχι", "Νόστιμο", "Αντίο", "Ναι", "Δευτέρα",
"Τρίτη", "Τετάρτη", "Πέμπτη", "Σάββατο", "ένα", "μηδέν", "δύο", "μπίρα", "τσάι"}
language:Register()
end
do
-- Hindi
local language = ix.languages:New()
language.name = "Hintçe"
language.uniqueID = "hin"
language.icon = "icon16/world.png"
language.gibberish = {"हां", "नहीं", "नमस्ते", "आप कैसे हैं", "परीक्षण", "बेवकूफ", "क्या", "कैसे", "कब", "क्यों", "कहा पे", "आप कैसे हैं", "शिखर सम्मेलन", "प्रेम", "घृणा", "दिलकश", "विचार", "कल्पना करना", "सर्वर", "कौन",
"करना", "मैं", "बटन", "मौजूद", "गूगल", "अनुवाद करना", "संघ", "जोड़ना", "जादू", "जिंदगी", "पेड़", "घास", "खोलना", "बंद करे", "कप", "कांच", "पुस्तक", "सेब", "पाई", "चापलूसी", "घृणा",
"कोई नहीं कर सकता", "आपका क्या मतलब है", "यह कैसे हो सकता है", "अस्तित्व", "जोड़ना", "पॉप", "गुब्बारे", "डेस्क", "का अस्तित्व"}
language:Register()
end
do
-- Bengali
local language = ix.languages:New()
language.name = "Bengalce"
language.uniqueID = "ben"
language.icon = "icon16/world.png"
language.gibberish = {"পরীক্ষা", "হ্যালো", "কেন", "কিভাবে", "কোথায়", "আমি", "কেন এটা", "ভাষা", "গুগল", "অনুবাদ করা", "বই", "গাছ", "ঘাস", "গ্লাস", "কাপ", "আপেল", "খাদ্য", "প্রেমিকা", "পরীক্ষামূলক", "জীবন",
"বিদ্যমান", "অস্তিত্ব", "বিশ্ব", "এটা", "কখন", "মৃত্যু", "ভালবাসা", "ঘৃণা", "ঘৃণা", "মুখ", "শরীর", "বোতাম", "বেলুন", "মজা", "ডেস্ক", "খাদ্য", "বিয়ার", "সমুদ্র", "জল", "আকাশ", "একত্রিত করুন",
"মিলন", "সর্বজনীন", "দেশ", "জমি", "জাহাজ", "ক্রুজ", "হাঁটা", "চালান", "সম্প্রচার"}
language:Register()
end
do
-- Croatian
local language = ix.languages:New()
language.name = "Hırvatça"
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 = "Swahili"
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 = "Sırpça"
language.uniqueID = "ser"
language.icon = "icon16/world.png"
language.gibberish = {"Здраво", "Иди", "Зашто", "Шта", "Љубав", "Спринт", "Изађи", "Интеллигенце", "Оверватцх трансхуман арм", "Цивилна заштита", "Зомбие", "Мртав", "Трцати", "ти", "ја", "изговор",
"Извињавам се", "Ауто", "Не", "Вода", "кафу", "Живот", "Комбинујте", "Цити", "Остави", "Требао би", "Није у реду", "Изађи одавде", "Ш'а има", "Нешто"}
language:Register()
end
do
-- English (previously Turkish)
local language = ix.languages:New()
language.name = "İngilizce"
language.uniqueID = "eng"
language.icon = "icon16/world.png"
language.gibberish = {"coffee", "table", "window", "phone", "book", "chair", "pen", "lamp", "door", "bag", "watch", "mirror", "plant", "paper", "key", "shoe", "sock", "bowl", "fork", "cup", "spoon", "clock", "radio", "mug", "notebook", "pillow", "blanket", "coat", "hat", "glasses"}
language:Register()
end
do
-- Romanian
local language = ix.languages:New()
language.name = "Romanca"
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 = "Flipino"
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 = "Gaeilge"
language.uniqueID = "gai"
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 = "Arnavutça"
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şnakça"
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 = "Lehçe"
language.uniqueID = "pol"
language.icon = "flags16/pl.png"
language.gibberish = {"rok", "tydzień", "dzisiaj", "jutro", "wczoraj", "kalendarz", "sekunda", "godzina", "minuta", "godzina", "jedna godzina", "może", "użyć", "robić", "iść", "przyjść", "śmiać się", "robić", "widzieć", "daleko", "mały", "dobry", "piękny", "brzydki", "trudny", "łatwy", "zły", "blisko", "Miło Cię poznać", "Cześć", "Dzień dobry", "Dzień dobry", "Dobry wieczór", "Dobranoc", "Jak się masz", "Dziękuję", "Nie", "Smaczne", "Do widzenia", "Tak", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Sobota", "jeden", "zero", "dwa", "piwo", "herbata"}
language:Register()
end
do
-- Gaelic
local language = ix.languages:New()
language.name = "Galce"
language.uniqueID = "gae"
language.icon = "flags16/gb.png"
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 = "Portekizce"
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 = "Endonezce"
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 = "İbranice"
language.uniqueID = "heb"
language.icon = "flags16/il.png"
language.gibberish = {"שנה", "שבוע", "היום", "מחר", "אתמול", "לוח שנה", "שנייה", "שעה", "דקה", "שעון", "שעה אחת", "יכול", "להשתמש", "לעשות", "ללכת", "לבוא", "לצחוק", "לעשות", "לראות", "רחוק", "קטן", "טוב", "יפה", "גרוע", "קשה", "קל", "רע", "קרוב", "נחמד להכיר אותך", "שלום", "בוקר טוב", "צהריים טובים", "ערב טוב", "לילה טוב", "איך אתה", "תודה", "לא", "נהדר", "להתראות", "כן", "יום שני", "יום שלישי", "יום רביעי", "יום חמישי", "יום שישי", "אחד", "אפס", "שתיים", "בירה", "תה"}
language:Register()
end
do
-- Czech
local language = ix.languages:New()
language.name = "Çekçe"
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 = "Macarca"
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
-- Mongolian
local language = ix.languages:New()
language.name = "Mongolian"
language.uniqueID = "mon"
language.icon = "flags16/mn.png"
language.gibberish = {"жил", "долоо хоног", "өнөөдөр", "маргааш", "өчигдөр", "хуанли", "секунд", "цаг", "минут", "нэг цаг", "чадна", "ашиглах", "хийх", "явах", "ирэх", "инээх", "харах", "хол", "жижиг", "сайн", "сайхан", "муухай", "хүнд", "хялбар", "муу", "ойрхон", "Уулзсандаа таатай байна", "Сайн уу", "Өглөөний мэнд", "Өдрийн мэнд", "Оройн мэнд", "Сайхан амраарай", "Юу байна", "Баярлалаа", "Үгүй", "Амттай", "Баяртай", "Тийм", "Даваа гараг", "Мягмар гараг", "Лхагва гараг", "Пүрэв гараг", "Бямба гараг", "нэг", "тэг", "хоёр", "шар айраг", "цай", "ус", "хоол", "гурил", "талх", "жүрж", "алим", "ногоо", "мах", "өндөг", "цаг агаар", "гэр", "машин", "гудамж", "эмнэлэг", "сургууль", "их сургууль", "дэлгүүр", "зах", "ном", "кино", "театр", "аялал", "амралт", "ажил", "албан газар", "компьютер", "утас", "телевизор", "музeй", "цэцэрлэг", "ногоон", "хөх", "улаан", "шар", "цэнхэр", "цагаан", "хар"}
language:Register()
end
do
-- Vietnamese
local language = ix.languages:New()
language.name = "Vietnamese"
language.uniqueID = "vie"
language.icon = "flags16/vn.png"
language.gibberish = {"năm", "tuần", "hôm nay", "ngày mai", "hôm qua", "lịch", "giây", "giờ", "phút", "một giờ", "có thể", "sử dụng", "làm", "đi", "đến", "cười", "nhìn", "xa", "nhỏ", "tốt", "đẹp", "xấu", "nặng", "dễ", "tồi", "gần", "Rất vui được gặp bạn", "Xin chào", "Chào buổi sáng", "Chào buổi chiều", "Chào buổi tối", "Chúc ngủ ngon", "Bạn khỏe không", "Cảm ơn", "Không", "Ngon", "Tạm biệt", "", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ bảy", "một", "không", "hai", "bia", "trà", "nước", "thức ăn", "bột mì", "bánh mì", "cam", "táo", "rau", "thịt", "trứng", "thời tiết", "nhà", "xe hơi", "đường phố", "bệnh viện", "trường học", "đại học", "cửa hàng", "chợ", "sách", "phim", "rạp hát", "du lịch", "kỳ nghỉ", "công việc", "văn phòng", "máy tính", "điện thoại", "tivi", "bảo tàng", "vườn", "xanh lá cây", "xanh dương", "đỏ", "vàng", "xanh nước biển", "trắng", "đen"}
language:Register()
end
do
-- Alien
local language = ix.languages:New()
language.name = "Xendarian"
language.uniqueID = "xen"
language.icon = "icon16/briefcase.png"
language.notSelectable = true
language.color = Color(92, 29, 5)
language.gibberish = {"⊑⟒⌰⌰⍜", "⍙⊑⊬", "", "⋏⍜", "⍙⊑⏃⏁", "⟟⋔⌿⍜⌇⌇⟟⏚⌰⟒", "⌿⍜⌇⌇⟟⏚⌰⟒", "☊⏃⋏'⏁", "⌿⍀⍜☌⍀⏃⋔⋔⟟⋏☌", "☊⍜⎅⟟⋏☌", "⋉⟒⏁⏃", "⌇⌿⊑⟒⍀⟟☊⏃⌰", "⌇⟒☊⏁⍜⍀",
"⎎⎍⋏⋏⊬", "⍾⍙⟒⍀⏁⊬", "⎅⏃", "⋏⍜⎍", "⊑⍜⍙", "⍙⊑⟒⋏", "⋏⟒⎐⟒⍀", "⊬⟒⏃⍀⌇", "⎅⏃⊬⌇", "⋔⍜⋏⏁⊑⌇", "⎅⟒☊⏃⎅⟒⌇", "☊⟒⋏⏁⎍⍀⊬", "⊬⍜⍀☍", "⋏⟒⍙", "⌇⍜⋔⟒⍙⊑⏃⏁", "⌇⏃⎎⟒", "⎎⍜⌰⌰⍜⍙",
"☊⍜⋔⟒", "⍙⟟⏁⊑", "⋔⟒", "⋏⍜⍙", "⍙⏃⏁⟒⍀", "⎎⍜⍜⎅", "⟊⏃☊⍜⏚", "⟊⍜⏚", "⏁⟟⌇", "⎍⋏⍙⟟⌇⟒", "⍙⟟⌇⟒", "⏁⍜", "☌⍜", "⏁⊑⟒⍀⟒","⌿⍜⌿", "⌿⍜☌☌⟒⍀⌇", "⏁⟟⏁", "☊⏃", "☊⌿", "⍜⏁⏃", "⌇⊬⋏⏁⊑", "⌇⏁⍀⟟⎅⟒⍀",
"⏃⟟⍀⍙⏃⏁☊⊑", "☌⍀⍜⎍⋏⎅⍙⏃⏁☊⊑", "☊⟟⏁⊬", "⋔⏃⌿", "⋔⍜", "⏚⍜⏃⊑", "☊⟟⏁⟟⋉⟒⋏", "⎅⟒⎎⟒⋏⌇⟒", "⌇⟒☊⏁⍜⍀ ⌇⟒☊⎍⍀⟒", "⏚⏃⋏", "⎅⟒⏃⏁⊑", "☌⍜⏁", "⌰⍜", "☌⍀⟒⋏⏃⎅⟒", "☊⎎", "☍⍜⌿", "☊⍜⌿",
"⌇⟒", "⍙⊑⟟⋏⟒", "⏚⍜⋔⏚", "⋏⟒☌⏃⏁⟟⎐⟒", "⏃⎎⎎⟟⍀⋔⏃⏁⟟⎐⟒", "⍜⎐⟒⍀⍙⏃⏁☊⊑", "⌇⏁⏃⋏⎅⏚⊬", "⊬⏃⋔⏃⏁⍜", "⊬⏃", "⊬⍜", "⌇⏁⍜⌿", "☌⟒⏁ ⎅⍜⍙⋏", "⏚⏃☊☍", "⍾⍙", "⎎⏃⟟⌰⎍⍀⟒", "⟒⋏⍜⎍☌⊑", "☌⏃⊬",
"⏃⏁⌰⟒", "⎅⟒⎐", "⎐⟒☊⏁⍜⍀", "⊑⍜⌿⌿⟒⍀", "⋔⟟⋏⟒", "⋔⟟⋏⟒⎎⟟⟒⌰⎅", "⋔⟟⌰⟟⏁⏃⍀⊬", "☊⍜⋏⌇☊⍀⟟⌿⏁", "⏁⍀⟒⌇⌿⏃⌇⌇⟒⍀", "⎍⋏⟟⏁⟒", "⎍⋏⟟⎎⊬", "⋉⏃⏁", "⟊⏃☊☍", "⍙⊑⊬ ⍙⍜⎍⌰⎅ ⊬⍜⎍ ⎅⍜ ⏁⊑⟟⌇ ⏁⍜ ⋔⟒",
"⏃⟟", "⎐⟟", "☊⍜⍀⟒", "⌿⍜⍙⟒⍀", "⎅⟒⌇⏁⍀⎍☊⏁⟟⍜⋏", "⍀⎍⟟⋏", "⌰⏃⌇⏁⌰⊬", "⍙⟒"}
language:Register()
end
do
-- Alien
local language = ix.languages:New()
language.name = "Incongruous"
language.uniqueID = "inc"
language.icon = "icon16/briefcase.png"
language.notSelectable = true
language.color = Color(92, 29, 5)
language.gibberish = {"⊑⟒⌰⌰⍜", "⍙⊑⊬", "", "⋏⍜", "⍙⊑⏃⏁", "⟟⋔⌿⍜⌇⌇⟟⏚⌰⟒", "⌿⍜⌇⌇⟟⏚⌰⟒", "☊⏃⋏'⏁", "⌿⍀⍜☌⍀⏃⋔⋔⟟⋏☌", "☊⍜⎅⟟⋏☌", "⋉⟒⏁⏃", "⌇⌿⊑⟒⍀⟟☊⏃⌰", "⌇⟒☊⏁⍜⍀",
"⎎⎍⋏⋏⊬", "⍾⍙⟒⍀⏁⊬", "⎅⏃", "⋏⍜⎍", "⊑⍜⍙", "⍙⊑⟒⋏", "⋏⟒⎐⟒⍀", "⊬⟒⏃⍀⌇", "⎅⏃⊬⌇", "⋔⍜⋏⏁⊑⌇", "⎅⟒☊⏃⎅⟒⌇", "☊⟒⋏⏁⎍⍀⊬", "⊬⍜⍀☍", "⋏⟒⍙", "⌇⍜⋔⟒⍙⊑⏃⏁", "⌇⏃⎎⟒", "⎎⍜⌰⌰⍜⍙",
"☊⍜⋔⟒", "⍙⟟⏁⊑", "⋔⟒", "⋏⍜⍙", "⍙⏃⏁⟒⍀", "⎎⍜⍜⎅", "⟊⏃☊⍜⏚", "⟊⍜⏚", "⏁⟟⌇", "⎍⋏⍙⟟⌇⟒", "⍙⟟⌇⟒", "⏁⍜", "☌⍜", "⏁⊑⟒⍀⟒","⌿⍜⌿", "⌿⍜☌☌⟒⍀⌇", "⏁⟟⏁", "☊⏃", "☊⌿", "⍜⏁⏃", "⌇⊬⋏⏁⊑", "⌇⏁⍀⟟⎅⟒⍀",
"⏃⟟⍀⍙⏃⏁☊⊑", "☌⍀⍜⎍⋏⎅⍙⏃⏁☊⊑", "☊⟟⏁⊬", "⋔⏃⌿", "⋔⍜", "⏚⍜⏃⊑", "☊⟟⏁⟟⋉⟒⋏", "⎅⟒⎎⟒⋏⌇⟒", "⌇⟒☊⏁⍜⍀ ⌇⟒☊⎍⍀⟒", "⏚⏃⋏", "⎅⟒⏃⏁⊑", "☌⍜⏁", "⌰⍜", "☌⍀⟒⋏⏃⎅⟒", "☊⎎", "☍⍜⌿", "☊⍜⌿",
"⌇⟒", "⍙⊑⟟⋏⟒", "⏚⍜⋔⏚", "⋏⟒☌⏃⏁⟟⎐⟒", "⏃⎎⎎⟟⍀⋔⏃⏁⟟⎐⟒", "⍜⎐⟒⍀⍙⏃⏁☊⊑", "⌇⏁⏃⋏⎅⏚⊬", "⊬⏃⋔⏃⏁⍜", "⊬⏃", "⊬⍜", "⌇⏁⍜⌿", "☌⟒⏁ ⎅⍜⍙⋏", "⏚⏃☊☍", "⍾⍙", "⎎⏃⟟⌰⎍⍀⟒", "⟒⋏⍜⎍☌⊑", "☌⏃⊬",
"⏃⏁⌰⟒", "⎅⟒⎐", "⎐⟒☊⏁⍜⍀", "⊑⍜⌿⌿⟒⍀", "⋔⟟⋏⟒", "⋔⟟⋏⟒⎎⟟⟒⌰⎅", "⋔⟟⌰⟟⏁⏃⍀⊬", "☊⍜⋏⌇☊⍀⟟⌿⏁", "⏁⍀⟒⌇⌿⏃⌇⌇⟒⍀", "⎍⋏⟟⏁⟒", "⎍⋏⟟⎎⊬", "⋉⏃⏁", "⟊⏃☊☍", "⍙⊑⊬ ⍙⍜⎍⌰⎅ ⊬⍜⎍ ⎅⍜ ⏁⊑⟟⌇ ⏁⍜ ⋔⟒",
"⏃⟟", "⎐⟟", "☊⍜⍀⟒", "⌿⍜⍙⟒⍀", "⎅⟒⌇⏁⍀⎍☊⏁⟟⍜⋏", "⍀⎍⟟⋏", "⌰⏃⌇⏁⌰⊬", "⍙⟒"}
language:Register()
end
do
-- Combine
local language = ix.languages:New()
language.name = "Imperial"
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.name != "Xendarian" and v.name != "Incongruous" and v.name != "Imperial" and v.name != "Vortigese" then
for i = 1, 5 do
local ITEM = ix.item.Register("audiobook_"..i..v.name, nil, false, nil, true)
ITEM.name = v.name.." Öğren - Bölüm "..i.." - Bir Sesli Kitap"
ITEM.category = "Audiobooks"
ITEM.model = "models/props_lab/reciever01d.mdl"
ITEM.description = v.name.." öğrenmek için kullanılan 5 bölümlük sesli kitap"
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.name
RECIPE.name = "Sesli Kitap - "..v.name.." - Bölüm: "..i
RECIPE.description = "Bu rustik sesli kitap cihazını dinlemek, sana "..v.name.." öğretmeye yardımcı olur. Bu, 5 bölümlük serinin "..i..". bölümüdür."
RECIPE.model = "models/props_lab/reciever01d.mdl"
RECIPE.category = "Sesli Kitaplar"
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("You have scrapped the progress on your learning languages.")
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("Your character already knows "..v.name.."!")
return false
end
if client.CantPlace then
client:NotifyLocalized("Bunu kullanmak için biraz beklemelisin!")
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("You need to listen to chapter "..tostring(tonumber(learningLanguages[1].progress) + 1).." of this audiobook to learn more!")
return false
end
local nextUse = learningLanguages[1].timestamp
if time < nextUse then
client:NotifyLocalized("I am not ready to listen to another book.. I need to wait.")
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("Congratulations, you have now become fluent in "..v.name.."!")
table.Empty(learningLanguages)
character:SetLearningLanguages(learningLanguages)
else
client:NotifyLocalized("You have increased your proficiency to level "..learningLanguages[1].progress.." in "..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("You have increased your proficiency to level "..learningLanguages[1].progress.." in "..v.name)
character:SetLearningLanguages(learningLanguages)
else
client:NotifyLocalized("You need to listen to chapter 1 first!")
return false
end
end
end