This commit is contained in:
lifestorm
2024-08-04 22:55:00 +03:00
parent 8064ba84d8
commit 73479cff9e
7338 changed files with 1718883 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("J'apprends déjà : "..languageName..". Supprimer la progression ?", "Langage", "Oui", function()
netstream.Start("QueryDeleteLanguageSuccess")
end, "Non")
end)
function PLUGIN:DoVortShout(speaker)
netstream.Start("ForceShoutAnim", speaker)
end

View File

@@ -0,0 +1,388 @@
--[[
| 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 dit en \"%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("Je ne connais pas cette langue...")
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 "..self.sayType.." en "..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
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.." en "..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 = "dit"
languageClass.format = "%s "..languageClass.sayType.." quelque chose en "..language.name
languageClass.CanHear = ix.config.Get("chatRange", 280)
languageClass.description = "Permet de dire quelque chose en "..language.name.." si vous connaissez la langue."
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 = "chuchotte"
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 = "Permet de chuchoter quelque chose en "..language.name.." si vous connaissez la langue."
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 = "hurle"
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 = "Permet de crier quelque chose en "..language.name.." si vous connaissez la langue."
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 = "shouts"
languageClassShout.format = languageClass.format
languageClassShout.CanHear = ix.config.Get("chatRange", 280) * 20
languageClassShout.indicator = "chatYelling"
languageClassShout.prefix = "/vortshout"
languageClassShout.description = "Utilise la langue vort et a une portée extrêmement large, capable de couvrir au moins la moitié d'une carte."
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 = "Ajouter une langue au vocabulaire d'un personnage.",
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("Ce personnage sait déjà "..language.name.." !")
return false
else
table.insert(knownLanguages, language.uniqueID)
character:SetLanguages(knownLanguages)
client:NotifyLocalized("Vous avez prolongé le vocabulaire de "..character:GetName().." avec "..language.name)
end
else
client:NotifyLocalized("Cette langue n'existe pas !")
return false
end
else
client:NotifyLocalized("Impossible de trouver ce personnage !")
return false
end
end
})
ix.command.Add("CharRemoveLanguage", {
description = "Supprimer une langue du vocabulaire d'un personnage.",
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("Ce personnage ne sait pas"..language.name.."!")
return false
else
table.RemoveByValue(knownLanguages, language.uniqueID)
character:SetLanguages(knownLanguages)
client:NotifyLocalized("Vous avez supprimé "..language.name.." depuis "..character:GetName().." le vocabulaire.")
end
else
client:NotifyLocalized("Cette langue n'existe pas !")
return false
end
else
client:NotifyLocalized("Impossible de trouver ce personnage !")
return false
end
end
})

View File

@@ -0,0 +1,601 @@
--[[
| 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 = "Activer les indicateurs de langue",
optdLanguageFlagsEnabled = "Activer les icônes de chat pour indiquer la langue dans laquelle quelque chose est parlé pour le texte IC en langue non anglaise."
})
ix.lang.AddTable("french", {
optLanguageFlagsEnabled = "Activer les indicateurs de langue",
optdLanguageFlagsEnabled = "Activer les icônes de chat pour indiquer la langue dans laquelle quelque chose est parlé pour le texte IC en langue non anglaise."
})
ix.lang.AddTable("spanish", {
optLanguageFlagsEnabled = "Activer les indicateurs de langue",
optdLanguageFlagsEnabled = "Activer les icônes de chat pour indiquer la langue dans laquelle quelque chose est parlé pour le texte IC en langue non anglaise."
})
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 = "Vortigaunt"
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 = "Danois"
language.uniqueID = "danois"
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 = "Japonais"
language.uniqueID = "japonais"
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 = "Coréen"
language.uniqueID = "coréen"
language.icon = "flags16/kr.png"
language.gibberish = {"력황도가", "빈니산", "상단포", "광참은", "녈하", "홀퍄이", "샤도", "듕귁", "댤하", "나랃말", "싸미", "수므며", "서르", "사맏띠", "젼차", "뜨들", "몯할", "이랄", "어엳삐",
"해여", "날로", "쑤메", "뼌안킈", "하고져", "녀려신", "머리곰", "노코시라", "졈그", "셰라", "비취오", "시라", "옌니응", "샤미", "회신", "향주", "탼명", "추자", "한두", "대막간", "오행", "세존",
"", "채헐", "왕후", "관물", "빛쳐", "말정", "개국", "", "", "놀뎌", "탸다", "텽퍄", "합격", "엇리", "매일", "영겨", "", "가야", "금관", "권상", "천강", "지곡",
"월인", "방문", "여뱌", "관자", "용봉", "창살", "드세욜", "세라", "어긔", "어강됴리", "다롱", "디리", "달하", "마리", "둘흔", "밤드리", "네히어라", "엇디호", "릿고", "만구", "투치아", "악탐", "밴지하"}
language:Register()
end
do
-- Chinese
local language = ix.languages:New()
language.name = "Chinois"
language.uniqueID = "chinois"
language.icon = "flags16/cn.png"
language.gibberish = {"相对", "服务", "认识", "普遍", "假如", "只是", "改变", "报纸", "然而", "", "", "", "展开", "政策", "教育部", "理论", "国际", "", "保持", "培养",
"非常", "感到", "算是", "", "台大", "博物馆", "全球", "担心", "北京", "", "好像", "", "差异", "观点", "", "", "宇宙", "公斤", "欢迎", "", "无论", "股票", "照顾",
"执行", "", "放弃", "女儿", "院长", "工人", "", "", "直到", "里面", "考虑", "原本", "", "牠们", "避免", "上课", "自动化", "构成", "音乐", "工作", "", "组成", "组织",
"过程", "人文", "或者", "", "清楚", "革命", "功能", "办法", "", "加以", "在一起", "学术", "股票", "代表", "", "", "台北", "", "参加", "提高", "品质", "妈妈", "重新"}
language:Register()
end
do
-- Spanish
local language = ix.languages:New()
language.name = "Espagnol"
language.uniqueID = "espagnol"
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 = "Russe"
language.uniqueID = "russe"
language.icon = "flags16/ru.png"
language.gibberish = {"поделиться", "хитрость", "посвистывать", "схема", "развиться", "однородный", "беспокоить", "правление", "торжественно", "пять", "пень", "венок", "обедня", "неизбежный",
"неразрывно", "дружина", "зрелище", "мозг", "раздел", "как", "скульптор", "март", "платить", "развести", "тень", "сгорание", "лепёшка", "пронестись", "скопление", "пятнадцать", "хрусталь",
"припомнить", "глубинный", "некий", "временно", "обозреватель", "закуривать", "пускай", "отдохнуть", "зелень", "рукавица", "сейчас", "голосовать", "выдавать", "весёлый", "оживление",
"отправляться", "прорыв", "целесообразный", "ширма", "копия", "металлургический", "верность", "история", "выработать", "познавать", "синяк", "серебряный", "версия", "таракан", "тропа"}
language:Register()
end
do
-- Bulgarian
local language = ix.languages:New()
language.name = "Bulgare"
language.uniqueID = "bulgare"
language.icon = "flags16/bg.png"
language.gibberish = {"гледай", "коя", "поговоря", "чу", "момента", "защото", "някакво", "направил", "излизай", "големите", "спра", "сила", "светлина", "намери", "обратно", "срещу", "връщам",
"мои", "вид", "малката", "бизнеса", "отиде", "дълго", "песен", "надявам", "маса", "направим", "използва", "отвън", "направят", "казвам", "бива", "свят", "имаме", "живи", "честит", "дядо", "шеф",
"спомням", "съпруга", "предам", "брат", "случи", "вечерята", "начина", "вечно", "останало", "умре", "движи", "документи", "гледат", "нужно", "щеше", "дадем", "излезеш", "макс", "първото",
"семейство", "голямо", "сине", "пред", "тръгна", "тях", "появи", "града", "влюбен", "вдигни", "казаха", "мария", "пиеш", "децата", "излиза", "тялото", "бе", "си", "край", "полиция", "чао"}
language:Register()
end
do
-- German
local language = ix.languages:New()
language.name = "Allemand"
language.uniqueID = "allemand"
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
-- English
local language = ix.languages:New()
language.name = "English"
language.uniqueID = "english"
language.icon = "flags16/gb.png"
language.gibberish = {"plenary", "yesterday", "patpat", "charge", "eighth", "day", "arm", "commerce", "aspiration", "sadly", "petrol", "succeed", "walk", "talent", "verification",
"laugh", "taxpayer", "probably", "different", "research", "efficient", "also", "dominate", "radio", "occur", "naval", "governor", "raise", "old", "tear",
"amendment", "satisfactory", "motif", "wish", "operator", "mail", "conservation", "formality", "area", "augmentation", "late", "vague", "boast", "destroy", "boast", "need",
"grant", "done", "founded", "ten", "software", "surgeon", "confused", "terminal", "bathe", "restructuring", "settlement", "rain", "twenty-four", "believer", "orientation"}
language:Register()
end
do
-- Arabic
local language = ix.languages:New()
language.name = "Arabe"
language.uniqueID = "arabe"
language.icon = "flags16/sa.png"
language.gibberish = {"الابتسامة", "منزلي", "ولكني", "مجرد", "فقرة", "اللعنة", "للغاية", "الشعر", "أسفل", "سمعت", "الولادة", "حصة",
"الوحيدة", "سيدى", "كتلة", "السليم", "الموقف", "منا", "المقبل", "الجحيم", "موقف", "غذاء", "الطعام", "سيئة", "النار", "انتهت", "خطأ", "سيحدث",
"هنالك", "الواضح", "نقطة", "الكرة", "أيضا", "اعتقدت", "بـ", "صرخة", "تسمع", "بأنني", "فيكتور",
"مستر", "يطير", "عنصر", "العين", "يفعل", "اعمل", "الآن", "البلاد", "البلاد", "خاص", "ذاك", "مرة", "منطقة", "سمع", "وظيفة", "الجيد", "ساعات", "تريدون", "السابق", "على الرغم من",
"الارض", "يريد", "إلهى", "أهل"}
language:Register()
end
do
-- Italian
local language = ix.languages:New()
language.name = "Italien"
language.uniqueID = "italien"
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 = "Néerlandais"
language.uniqueID = "néerlandais"
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 = "Finois"
language.uniqueID = "finois"
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 = "Suédois"
language.uniqueID = "suédois"
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 = "Grec"
language.uniqueID = "grec"
language.icon = "flags16/gr.png"
language.gibberish = {"έτος", "εβδομάδα", "σήμερα", "αύριο", "χθες", "ημερολόγιο", "δευτερόλεπτο", "ώρα", "λεπτό", "η ώρα", "μια ώρα", "μπορώ", "χρησιμοποιώ", "κάνω", "πηγαίνω", "έρχομαι", "γελάω", "φτιάχνω", "βλέπω", "μακρινός",
"μικρός", "καλός", "όμορφος", "άσχημος", "δύσκολος", "εύκολος", "κακός", "κοντινός", "Χαίρω πολύ", "Γειά", "Καλημέρα", "Καλησπέρα", "Καλησπέρα", "Καληνύχτα", "Τι κάνεις", "Σ' ευχαριστώ", "Όχι", "Νόστιμο", "Αντίο", "Ναι", "Δευτέρα",
"Τρίτη", "Τετάρτη", "Πέμπτη", "Σάββατο", "ένα", "μηδέν", "δύο", "μπίρα", "τσάι"}
language:Register()
end
do
-- Hindi
local language = ix.languages:New()
language.name = "Hindie"
language.uniqueID = "hindie"
language.icon = "icon16/world.png"
language.gibberish = {"हां", "नहीं", "नमस्ते", "आप कैसे हैं", "परीक्षण", "बेवकूफ", "क्या", "कैसे", "कब", "क्यों", "कहा पे", "आप कैसे हैं", "शिखर सम्मेलन", "प्रेम", "घृणा", "दिलकश", "विचार", "कल्पना करना", "सर्वर", "कौन",
"करना", "मैं", "बटन", "मौजूद", "गूगल", "अनुवाद करना", "संघ", "जोड़ना", "जादू", "जिंदगी", "पेड़", "घास", "खोलना", "बंद करे", "कप", "कांच", "पुस्तक", "सेब", "पाई", "चापलूसी", "घृणा",
"कोई नहीं कर सकता", "आपका क्या मतलब है", "यह कैसे हो सकता है", "अस्तित्व", "जोड़ना", "पॉप", "गुब्बारे", "डेस्क", "का अस्तित्व"}
language:Register()
end
do
-- Bengali
local language = ix.languages:New()
language.name = "Bengali"
language.uniqueID = "bengali"
language.icon = "icon16/world.png"
language.gibberish = {"পরীক্ষা", "হ্যালো", "কেন", "কিভাবে", "কোথায়", "আমি", "কেন এটা", "ভাষা", "গুগল", "অনুবাদ করা", "বই", "গাছ", "ঘাস", "গ্লাস", "কাপ", "আপেল", "খাদ্য", "প্রেমিকা", "পরীক্ষামূলক", "জীবন",
"বিদ্যমান", "অস্তিত্ব", "বিশ্ব", "এটা", "কখন", "মৃত্যু", "ভালবাসা", "ঘৃণা", "ঘৃণা", "মুখ", "শরীর", "বোতাম", "বেলুন", "মজা", "ডেস্ক", "খাদ্য", "বিয়ার", "সমুদ্র", "জল", "আকাশ", "একত্রিত করুন",
"মিলন", "সর্বজনীন", "দেশ", "জমি", "জাহাজ", "ক্রুজ", "হাঁটা", "চালান", "সম্প্রচার"}
language:Register()
end
do
-- Croatian
local language = ix.languages:New()
language.name = "Croate"
language.uniqueID = "croate"
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 = "swahili"
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 = "Serbe"
language.uniqueID = "serbe"
language.icon = "icon16/world.png"
language.gibberish = {"Здраво", "Иди", "Зашто", "Шта", "Љубав", "Спринт", "Изађи", "Интеллигенце", "Оверватцх трансхуман арм", "Цивилна заштита", "Зомбие", "Мртав", "Трцати", "ти", "ја", "изговор",
"Извињавам се", "Ауто", "Не", "Вода", "кафу", "Живот", "Комбинујте", "Цити", "Остави", "Требао би", "Није у реду", "Изађи одавде", "Ш'а има", "Нешто"}
language:Register()
end
do
-- Turkish
local language = ix.languages:New()
language.name = "Turque"
language.uniqueID = "turque"
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 = "Roumain"
language.uniqueID = "roumain"
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 = "Philippin"
language.uniqueID = "philippin"
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 = "Irlandais"
language.uniqueID = "irlandais"
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 = "Albanais"
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 = "Bosnien"
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 = "Polonais"
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 = "Gaelic"
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 = "Portugais"
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 = "Indonesien"
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 = "Hebreu"
language.uniqueID = "heb"
language.icon = "flags16/il.png"
language.gibberish = {"שנה", "שבוע", "היום", "מחר", "אתמול", "לוח שנה", "שנייה", "שעה", "דקה", "שעון", "שעה אחת", "יכול", "להשתמש", "לעשות", "ללכת", "לבוא", "לצחוק", "לעשות", "לראות", "רחוק", "קטן", "טוב", "יפה", "גרוע", "קשה", "קל", "רע", "קרוב", "נחמד להכיר אותך", "שלום", "בוקר טוב", "צהריים טובים", "ערב טוב", "לילה טוב", "איך אתה", "תודה", "לא", "נהדר", "להתראות", "כן", "יום שני", "יום שלישי", "יום רביעי", "יום חמישי", "יום שישי", "אחד", "אפס", "שתיים", "בירה", "תה"}
language:Register()
end
do
-- Czech
local language = ix.languages:New()
language.name = "Czech"
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 = "Hungarian"
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
-- Alien
local language = ix.languages:New()
language.name = "Xendarien"
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 = "Incongru"
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 = "Impérial"
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 != "Xendarien" and v.name != "Incongru" and v.name != "Impérial" and v.name != "Vortigaunt" then
for i = 1, 5 do
local ITEM = ix.item.Register("audiobook_"..i..v.name, nil, false, nil, true)
ITEM.name = "Apprendre "..v.name.." - Chapitre "..i.." - Un livre audio"
ITEM.category = "Livres Audio"
ITEM.model = "models/props_lab/reciever01d.mdl"
ITEM.description = "Un livre audio qui permet d'apprendre le langage : "..v.name
if (SERVER) then
ITEM.language = v
end
ITEM.functions.Listen = {
name = "Écouter",
OnRun = function(itemTable)
return PLUGIN:ListenToAudioBook(itemTable, itemTable.player)
end
}
local RECIPE = ix.recipe:New()
RECIPE.uniqueID = "audiobook_"..i..v.name
RECIPE.name = ""..v.name.." - Chapitre : "..i
RECIPE.description = "Ecouter ce livre audio vous permettra d'apprendre la langue : "..v.name..". Ceci est le chapitre "..i.." sur 5."
RECIPE.model = "models/props_lab/reciever01d.mdl"
RECIPE.category = "Livres Audio"
RECIPE.hidden = false
RECIPE.skill = "bartering"
RECIPE.cost = 10
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("Vous avez abandonné les progrès de votre apprentissage des langues.")
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 = 14401 -- 24 hours in seconds (24*60*60)
local time = os.time()
if (table.HasValue(knownLanguages, v.uniqueID)) then
client:NotifyLocalized("Votre personnage sait déjà "..v.name.."!")
return false
end
if client.CantPlace then
client:NotifyLocalized("Vous devez attendre avant de pouvoir l'utiliser !")
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("Vous devez écouter le chapitre "..tostring(tonumber(learningLanguages[1].progress) + 1).." de ce livre audio pour en savoir plus!")
return false
end
local nextUse = learningLanguages[1].timestamp
if time < nextUse then
client:NotifyLocalized("Je ne suis pas prêt à écouter un autre livre.. Je dois attendre.")
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("Félicitations, vous maîtrisez désormais parfaitement "..v.name.."!")
table.Empty(learningLanguages)
character:SetLearningLanguages(learningLanguages)
else
client:NotifyLocalized("Vous avez augmenté votre compétence au niveau "..learningLanguages[1].progress.." dans "..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("Vous avez augmenté votre compétence au niveau "..learningLanguages[1].progress.." dans "..v.name)
character:SetLearningLanguages(learningLanguages)
else
client:NotifyLocalized("Vous devez d'abord écouter le chapitre 1 !")
return false
end
end
end