Initial commit
This commit is contained in:
90
addons/msd_ui/lua/autorun/msd_autorun.lua
Normal file
90
addons/msd_ui/lua/autorun/msd_autorun.lua
Normal file
@@ -0,0 +1,90 @@
|
||||
-- ┏━┓┏━┳━━━┳━━━┓───────────────────────
|
||||
-- ┃┃┗┛┃┃┏━┓┣┓┏┓┃───────────────────────
|
||||
-- ┃┏┓┏┓┃┗━━┓┃┃┃┃──By MacTavish <3──────
|
||||
-- ┃┃┃┃┃┣━━┓┃┃┃┃┃───────────────────────
|
||||
-- ┃┃┃┃┃┃┗━┛┣┛┗┛┃───────────────────────
|
||||
-- ┗┛┗┛┗┻━━━┻━━━┛───────────────────────
|
||||
|
||||
-- MIT License
|
||||
|
||||
-- Copyright (c) 2021 Ayden Mactavish
|
||||
|
||||
-- Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
-- of this software and associated documentation files (the "Software"), to deal
|
||||
-- in the Software without restriction, including without limitation the rights
|
||||
-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
-- copies of the Software, and to permit persons to whom the Software is
|
||||
-- furnished to do so, subject to the following conditions:
|
||||
|
||||
-- The above copyright notice and this permission notice shall be included in all
|
||||
-- copies or substantial portions of the Software.
|
||||
|
||||
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
-- SOFTWARE.
|
||||
|
||||
if MSD and MSD.Version ~= "1.0.3" then MsgC( Color(255, 8, 0), "[MSD] Another version of MSD detacted\n" ) return end
|
||||
|
||||
MSD = {}
|
||||
MSD.Version = "1.0.3"
|
||||
MSD.Config = {}
|
||||
MSD.Modules = {}
|
||||
MSD.ModuleIds = {}
|
||||
MSD.Language = {}
|
||||
|
||||
if SERVER then
|
||||
util.AddNetworkString( "MSD.GetConfigData" )
|
||||
util.AddNetworkString( "MSD.SaveConfig" )
|
||||
end
|
||||
|
||||
function MSD.Load()
|
||||
MsgC( Color(174, 0, 255), "[MSD] Initialization started\n" )
|
||||
if !file.Exists("msd_data", "DATA") then
|
||||
file.CreateDir("msd_data")
|
||||
MsgC( Color(174, 0, 255), "[MSD] Server DATA Dir created \n" )
|
||||
end
|
||||
|
||||
MsgC( Color(174, 0, 255), "[MSD] Initialization started\n" )
|
||||
|
||||
if SERVER then
|
||||
include("msd/sh_config.lua")
|
||||
include("msd/sh_language.lua")
|
||||
AddCSLuaFile("msd/sh_config.lua")
|
||||
AddCSLuaFile("msd/sh_language.lua")
|
||||
|
||||
local f = file.Find( "msd/ui/*", "LUA" )
|
||||
for k,v in ipairs( f ) do
|
||||
AddCSLuaFile( "msd/ui/" .. v )
|
||||
end
|
||||
|
||||
else
|
||||
include("msd/sh_config.lua")
|
||||
include("msd/sh_language.lua")
|
||||
|
||||
local f = file.Find( "msd/ui/*", "LUA" )
|
||||
for k,v in ipairs( f ) do
|
||||
include( "msd/ui/" .. v )
|
||||
end
|
||||
|
||||
list.Set( "DesktopWindows", "MSDModulesSetup", {
|
||||
title = "Setup Menu",
|
||||
icon = "msd/macnco.png",
|
||||
width = 960,
|
||||
height = 700,
|
||||
onewindow = true,
|
||||
init = function( icon, window )
|
||||
window:Close()
|
||||
icon.Window = MSD.OpenMenuManager(g_ContextMenu)
|
||||
end
|
||||
} )
|
||||
end
|
||||
|
||||
|
||||
MsgC( Color(174, 0, 255), "[MSD] Initialization done\n" )
|
||||
end
|
||||
|
||||
MSD.Load()
|
||||
369
addons/msd_ui/lua/msd/language/de.lua
Normal file
369
addons/msd_ui/lua/msd/language/de.lua
Normal file
@@ -0,0 +1,369 @@
|
||||
MSD.Language["de"] = {
|
||||
|
||||
-- UI
|
||||
|
||||
lang_name = "Deutsch",
|
||||
|
||||
ok = "OK",
|
||||
map = "Karte",
|
||||
off = "Aus",
|
||||
on = "An",
|
||||
time_add = "Zeit zum Hinzufügen",
|
||||
type = "Typ",
|
||||
delay = "Verzögerung",
|
||||
cancel = "Abbrechen",
|
||||
enable = "Aktivieren",
|
||||
model = "Model",
|
||||
name = "Name",
|
||||
settings = "Einstellungen",
|
||||
editor = "Editor",
|
||||
red = "Rot",
|
||||
green = "Grün",
|
||||
blue = "Blau",
|
||||
admin_menu = "Administrationsmenü",
|
||||
ui_settings = "UI Einstellungen",
|
||||
active = "Aktiv",
|
||||
inactive = "Inaktiv",
|
||||
disabled = "Deaktiviert",
|
||||
warning = "Warnung!",
|
||||
remove = "Entfernen",
|
||||
theme = "Theme",
|
||||
dark_theme = "Dunkles Theme",
|
||||
payment = "Zahlung",
|
||||
load_autosave = "Letzte automatische Speicherung laden?",
|
||||
load_save = "Speicherung laden",
|
||||
create_new = "Neu erstellen",
|
||||
enable_option = "Option aktivieren",
|
||||
main_opt = "Hauptoptionen",
|
||||
copy_data = "Kopiere Daten",
|
||||
save_chng = "Speichere Änderungen",
|
||||
enter_name = "Gib den Namen ein",
|
||||
enter_id = "Gib die ID ein",
|
||||
confirm_action = "Bitte bestätige deine Aktion",
|
||||
check_fpr_errors = "Auf Fehler prüfen",
|
||||
enter_description = "Gib die Beschreibung ein",
|
||||
cooldown_ok = "Abklingzeit bei Erfolg",
|
||||
cooldown_fail = "Abklingzeit bei Fehlschlag",
|
||||
s_team_whitelist = "Team-Whitelist einrichten",
|
||||
whitelist_blacklist = "Die Whitelist als Blacklist benutzen",
|
||||
custom_val = "Setze spezifischen Wert",
|
||||
set_hp_full = "Setze volle HP",
|
||||
dist_to_close = "Distanz zum nächsten",
|
||||
|
||||
e_text = "Text eingeben",
|
||||
e_number = "Nummer eingeben",
|
||||
e_class = "Klasse eingeben",
|
||||
e_value = "Wert eingeben",
|
||||
e_blank_dis = "Leer lassen, um es zu deaktiveren",
|
||||
e_blank_default = "Leer lassen, um Standard zu benutzen",
|
||||
e_url = "URL eingeben",
|
||||
e_model = "Modelpfad eingeben",
|
||||
e_material = "Materialpfad eingeben",
|
||||
e_wep_class = "Waffenklasse eingeben",
|
||||
e_ent_class = "Entityklasse eingeben",
|
||||
e_veh_class = "Fahrzeugklasse eingeben",
|
||||
e_npc_class = "NPC-Klasse eingeben",
|
||||
|
||||
|
||||
select_ammo = "Ausgewählte Munition",
|
||||
amount_ammo = "Munitionsmenge",
|
||||
disable_phys = "Physik deaktivieren",
|
||||
none = "Nichts",
|
||||
custom_icon = "Setzte eigenes Icon",
|
||||
weapon_name = "Waffenname",
|
||||
moveup = "Aufwärts bewegen",
|
||||
movedown = "Abwärts bewegen",
|
||||
movepoint = "Punkt bewegen",
|
||||
swap = "Tauschen",
|
||||
swapmod = "Tausch-Modus aktiviert. Klicke zum Deaktivieren",
|
||||
copy_from_ent = "Kopiere vom Entity",
|
||||
set_pos_self = "Zu deiner Position setzen",
|
||||
set_pos_aim = "Zu anvisiertem Punkt setzen",
|
||||
spawn_point = "Spawnpunkt",
|
||||
spawn_ang = "Spawnwinkel",
|
||||
mark_area = "Markiere Bereich",
|
||||
time_wait = "Zeit zum Warten",
|
||||
map_marker = "Wähle Map-Makierung aus",
|
||||
in_sec = "in Sekunden",
|
||||
def_units = "Standard %s Einheiten", -- "Default 350 units" leave %s as is
|
||||
def_seconds = "Standard %s Sekunden", -- "Default 10 seconds" leave %s as is
|
||||
ent_show_pointer = "Zeiger über dem Entity anzeigen",
|
||||
ent_arcade_style = "Erscheinungsbild des Entitys im Arcade-Stil",
|
||||
ent_stnd_style = "Standard Entity Erscheinungsbild",
|
||||
custom_color = "Aktiviere eigene Farbe",
|
||||
mat_default = "Leer lassen für Standardmaterial",
|
||||
|
||||
|
||||
set_ui = "UI Einstellungen",
|
||||
set_hud = "HUD Einstellungen",
|
||||
set_hud_pos = "Quest HUD Position",
|
||||
set_hud_themes = "HUD Themes",
|
||||
set_server = "Server Einstellungen",
|
||||
set_ui_blur = "Unscharfer Hintergrund",
|
||||
set_ui_mono = "Einfarbiger Hintergrund",
|
||||
set_ui_vignette = "Vignetteneffekt für den Hintergrund",
|
||||
set_ui_brightness = "Helligkeit des Hintergrunds",
|
||||
set_ui_color = "Wähle die Hauptfarbe",
|
||||
set_ui_align_left = "Horizontale Ausrichtung nach links",
|
||||
set_ui_align_right = "Horizontale Ausrichtung nach rechts",
|
||||
set_ui_align_top = "Vertikale Ausrichtung nach oben",
|
||||
set_ui_align_bottom = "Vertikale Ausrichtung nach unten",
|
||||
set_ui_offset_h = "Horizontaler Versatz",
|
||||
set_ui_offset_v = "Vertikaler Versatz",
|
||||
|
||||
|
||||
upl_changes = "Änderungen auf den Server hochladen",
|
||||
res_changes = "Änderungen wiederherstellen",
|
||||
|
||||
|
||||
-- Player
|
||||
|
||||
|
||||
dead = "Du bist tot",
|
||||
time_ex = "Zeit abgelaufen",
|
||||
vehicle_bum = "Dein Fahrzeug wurde zerstört",
|
||||
left_area = "Du hast den Bereich verlassen",
|
||||
m_blew = "Du hast die Mission gesprengt",
|
||||
m_failed = "Mission fehlgeschlagen",
|
||||
m_success = "Mission erfolgreich",
|
||||
m_loop = "Mission aktualisieren",
|
||||
|
||||
-- Errors
|
||||
|
||||
|
||||
inv_quest = "Ungültige Quest",
|
||||
team_bl = "Dein Team ist auf der Blacklist",
|
||||
no_players = "Der Server benötigt mehr Spieler, die gleichzeitig online sind, bevor du fortfahren kannst.",
|
||||
no_players_team = "Der Server benötigt mehr Spieler, die gleichzeitig in spezifischen Teams online sind, bevor du fortfahren kannst.",
|
||||
need_admin = "Nur Admins können diese Aktion durchführen",
|
||||
|
||||
|
||||
-- Quests
|
||||
|
||||
|
||||
active_quest = "Du hast eine aktive Quest",
|
||||
inactive_quest = "Du kannst diese Quest nicht spielen",
|
||||
quest_editor = "Quest Editor",
|
||||
quest_list = "Quest Liste",
|
||||
quests = "Quests",
|
||||
leave_pnt = "Punkt zum Verlassen",
|
||||
|
||||
|
||||
q_editobj = "Objekte bearbeiten",
|
||||
q_incvobj = "Ungültige Objekte",
|
||||
q_setobj = "Objekt Einstellungen",
|
||||
q_newobj = "Neues Objekt hinzufügen",
|
||||
q_editrwd = "Belohnungen bearbeiten",
|
||||
q_rwdeditor = "Belohnungs Editor",
|
||||
q_rwdlist = "Belohnungsliste",
|
||||
q_rwdsets = "Belohnungseinstellungen",
|
||||
q_findmap = "Quests aus anderen Maps suchen",
|
||||
q_obj_des = "Objekt Beschreibung",
|
||||
q_dist_point = "Distanz zum Punkt",
|
||||
q_dist_from_point = "Distanz vom Punkt",
|
||||
q_ignore_veh = "Quest Fahrzeug ignorieren",
|
||||
q_timer_show = "Dem Spieler einen Timer anzeigen",
|
||||
q_area_stay = "Der Spieler muss im Bereich bleiben",
|
||||
q_start = "Quest starten",
|
||||
q_new = "Neue Quest",
|
||||
q_submit = "Quest abschicken",
|
||||
q_addnew = "Neue Quest hinzufügen",
|
||||
q_remove = "Quest entfernen",
|
||||
q_id_unique = "Die ID muss für jede Quest einzigartig sein",
|
||||
q_complete_msg = "Nachricht für fertiggestellte Quest",
|
||||
q_dotime = "Nachricht für fertiggestellte Quest",
|
||||
q_dotime_ok = "Schließe die Quest am Ende der Zeit ab",
|
||||
q_dotime_fail = "Scheitere an der Quest am Ende der Zeit",
|
||||
q_death_fail = "Scheitere die Quest beim Tod des Spielers",
|
||||
q_loop = "Schleifenaufgaben Quest",
|
||||
q_loop_reward = "Belohne Spieler bei jeder Wiederholung",
|
||||
q_enable = "Aktiviere Quest",
|
||||
q_events = "Events",
|
||||
q_eventadd = "Event hinzufügen",
|
||||
q_eventedit = "Event bearbeiten",
|
||||
q_eventremove = "Event entfernen",
|
||||
q_in_progress = "Quest in Bearbeitung",
|
||||
q_time_left = "Verbleibende Zeit",
|
||||
q_ply_limit = "Spielerlimit für die Quest",
|
||||
q_ply_team_limit = "Teamlimit einrichten",
|
||||
q_ply_team_need = "Benötigte Spieler im Team",
|
||||
q_ply_need = "Zum Starten benötigte Anzahl der Spieler",
|
||||
q_play_limit = "Es gibt ein Limit wie viele Spieler diese Quest spielen können",
|
||||
q_must_stay_area = "Du musst in diesem Bereich bleiben, oder die Quest wird fehlgeschlagen",
|
||||
q_time_wait = "Du musst warten bevor du die Quest wiederholen kannst",
|
||||
q_dotime_reset = "Zeit für die Quest zurücksetzen",
|
||||
q_dotime_add = "Zeit zur Quest hinzufügen",
|
||||
q_noreplay = "Du kannst diese Quest nicht wiederholen",
|
||||
q_dis_replay = "Wiederholung der Quest deaktivieren",
|
||||
q_needquest = "Du musst zuerst eine andere Quest abschließen",
|
||||
q_needquest_menu = "Benötigt abgeschlossene Quest",
|
||||
q_enterror = "Quest Entities sind nicht gespawnt, überprüfe die Einrichtung der Quest",
|
||||
q_get = "Du kannst eine Quest von diesen NPCs erhalten",
|
||||
q_noquests = "Es gibt noch keine Möglichkeit Quests zu spielen :(",
|
||||
q_ent_draw = "Quest Entity Drawdistanz",
|
||||
q_loop_stop_key = "Schleifenquest Stoptaste",
|
||||
q_hold_key_stop = "Um die Quest zu stoppen, halte [%s]", -- To stop quest hold [P]
|
||||
q_enter_veh = "Steig in dein Fahrzeug ein",
|
||||
q_npc_link = "Verlinke Quest zu einem NPC",
|
||||
q_icon68 = "Gib eine URL zu einem .PNG Bild mit 68x68px ein",
|
||||
q_ent_pos_show = "Zeige dem Spieler die Positionen der Entities",
|
||||
q_area_size = "Größe des Bereichs",
|
||||
q_area_pos = "Position des Bereichs",
|
||||
q_s_area_size = "Suche Größe des Bereichs",
|
||||
q_s_area_pos = "Suche Position des Bereichs",
|
||||
q_npc_answer_ok = "Positive Antwort des Spielers",
|
||||
q_npc_answer_no = "Negative Antwort des Spielers",
|
||||
q_npc_answer_noq = "Antwort des Spielers bei keiner Quest",
|
||||
q_npc_quest_no = "NPC Sprache bei keiner Quest",
|
||||
q_money_give = "Geld zum Geben",
|
||||
|
||||
-- Simple NPCs
|
||||
|
||||
npc_editor = "NPC ",
|
||||
npc_new = "Neuer NPC",
|
||||
npc_select = "Wähle einen NPC",
|
||||
npc_e_speech = "Gib NPC Sprache ein",
|
||||
npc_submit = "Bestätige NPC Erstellung",
|
||||
npc_update = "Aktualisiere NPC",
|
||||
npc_remove = "Entferne NPC",
|
||||
npc_q_enable = "Aktiviere Quest NPCs",
|
||||
npc_did_open = "Dialog ID zum Öffnen",
|
||||
npc_q_target = "NPC ist ein objektives Ziel",
|
||||
npc_hostile = "Feindlicher NPC",
|
||||
|
||||
-- Update 1.1.0
|
||||
cam_start = "Startparameter der Kamera",
|
||||
cam_end = "Kamera-Endparameter",
|
||||
cam_pos = "Kamera Position",
|
||||
cam_ang = "Kamera Winkel",
|
||||
cam_fov = "Kamera-Sichtfeld",
|
||||
cam_effect = "Kameraverschluss-Effekt",
|
||||
q_open_target = "Erlaubt anderen Spielern NPCs zu töten",
|
||||
q_npc_mind = "Mindest Distanz zu NPCs",
|
||||
not_spawned = "nicht gespawnt",
|
||||
dis_text = "Angezeigter Text",
|
||||
cam_speed = "Kamerabewegungsgeschwindigkeit (niedrigere Zahl - langsamere Bewegung)",
|
||||
fov_speed = "FOV-Wechselgeschwindigkeit (niedrigere Zahl - langsamere Bewegung)",
|
||||
category_des = "Questkategorie, wird verwendet, um Quests zu sortieren",
|
||||
sortquests_cat = "Quests nach Kategorie sortieren",
|
||||
search_q = "Suche nach Quests",
|
||||
quest_tools = "Quest Tools",
|
||||
set_anim = "Animation einstellen",
|
||||
s_quest_blacklist = "Quest-Blacklist einrichten",
|
||||
s_quest_blacklist_desc = "Wählen Sie Quests aus, die diese Quest blockieren, wenn Sie sie gespielt haben",
|
||||
hold_use = "Halten sie [%s] gedrückt",
|
||||
duplicate = "Duplizieren",
|
||||
unsorted = "Unsortiert",
|
||||
search = "Suche",
|
||||
duration = "Dauer",
|
||||
category = "Kategorie",
|
||||
blacklist = "Blacklist",
|
||||
|
||||
|
||||
-- Update 1.2.0
|
||||
|
||||
restore_wep = "Stellen Sie Waffen am Questende wieder her",
|
||||
e_cmd = "Geben sie eine Konsolen Kommand ein",
|
||||
e_args = "Enter command arguments",
|
||||
hint_cmd = "Verknüpfungen zum automatischen Ausfüllen: \n$uid - UserID, \n$sid - SteamID, \n$s64 - SteamID 64, \n$n - Spielername",
|
||||
youaretracked = "Deine Positon ist nun für alle Sichtbar.",
|
||||
border_rounded = "Abgerundetes Border desgin",
|
||||
border_square = "Quadrat border design",
|
||||
access_settings = "Menüzugriff",
|
||||
compact_obj = "Kompakte Zielliste für Quests",
|
||||
e_usergroup = "Benutzergruppe eingeben",
|
||||
ug_isanadmin = "Diese Benutzergruppe hat bereits vollen Zugriff",
|
||||
find_player_id32 = "Finde Spielerdaten nach SteamID 32",
|
||||
user_data = "Benutzerdaten-Editor",
|
||||
access_editors = "Zugriff für Quest-Editoren festlegen",
|
||||
access_admins = "Vollzugriff einstellen",
|
||||
add_usergroup = "Benutzergruppe hinzufügen",
|
||||
edit_objmod = "Zielreihenfolge bearbeiten",
|
||||
editmod = "Bearbeitungsmodus",
|
||||
move = "Bewegen",
|
||||
q_errorloop = "Quest in einer Endlosschleife eingegeben",
|
||||
q_cooldow_perply = "Öffentlicher Cooldown-Timer",
|
||||
q_cooldow_publick = "Abklingzeit pro Spieler",
|
||||
q_stop_anytime = "Erlaube, die Quest manuell abzubrechen",
|
||||
quest_abandon = "Du hast die Quest abgebrochen",
|
||||
q_dotime_set = "Quest-Erledigungszeit einstellen",
|
||||
|
||||
|
||||
-- Ranks
|
||||
|
||||
enter_path_or_url = "Geben sie einen Pfad oder eine URL ein",
|
||||
rank_edit = "Rang einstellen",
|
||||
rank_list = "Rang Liste",
|
||||
group_list = "Gruppen Liste",
|
||||
group_addnew = "Eine neue Gruppe hinzufügen",
|
||||
blank = "Leer",
|
||||
mrs_show_all = "Ränge allen Spielern anzeigen",
|
||||
mrs_show_team = "Ränge nur der Gruppe anzeigen",
|
||||
mrs_use_sn = "Kurze Rangnamen anzeigen",
|
||||
use_url = "URL verwenden",
|
||||
enter_srt_name = "Kurznamen eingeben",
|
||||
srt_name = "Kurzbezeichnung",
|
||||
mrs_prom_demote = "Die nächsten 2 Optionen betreffen nur niedrigere Ränge. Spieler mit diesem Rang können keine anderen Spieler auf höhere Ränge oder den gleichen Rang befördern.",
|
||||
mrs_whilelist = "Wenn Sie eine Ranganforderung für einen Job auswählen, kann der Spieler diesen Job nur spielen, wenn sein Rang dem gewählten Rang entspricht oder höher ist.",
|
||||
can_promote = "Kann den Spielerrang erhöhen",
|
||||
can_demote = "Kann den Spielerrang zurückstufen",
|
||||
edit_player_model = "Benutzerdefiniertes Spielermodell bearbeiten",
|
||||
enable_player_model = "Benutzerdefiniertes Spielermodell aktivieren",
|
||||
disable_player_model = "Benutzerdefiniertes Spielermodell deaktivieren",
|
||||
edit_custom_stats = "Benutzerdefinierte Spielerstatistiken bearbeiten",
|
||||
autoprom = "Automatische Beförderung zum nächsten Rang",
|
||||
in_min = "in Minuten",
|
||||
mrs_promoted = "Sie sind befördert worden",
|
||||
mrs_demoted = "Sie sind degradiert worden",
|
||||
mrs_job_smallrank = "Du musst %s oder höher sein, um als %s zu spielen", -- You must be Sergeant II or higher to play as Watch Commander
|
||||
show_group = "Ranggruppenname anzeigen",
|
||||
hide_rank = "Nur Rangsymbol anzeigen",
|
||||
mrs_hud_follow = "Drehen der Benutzeroberfläche um den Spieler je nach Blickwinkel",
|
||||
set_overhead = "Spieler-Info UI",
|
||||
offline_users = "Offline-Benutzer",
|
||||
mrs_noranks = "Ihr derzeitiger Arbeitsplatz hat keine Dienstgrade",
|
||||
mrs_nopower = "Ihr aktueller Rang hat keine zusätzlichen Berechtigungen",
|
||||
promotion = "Beförderung",
|
||||
on_duty = "Im Dienst",
|
||||
other_players = "Andere Spieler",
|
||||
mrs_change_jobname = "Jobname in den Rangnamen ändern",
|
||||
mrs_set_prefix = "Fügen Sie den Namen des Dienstgrads als Präfix zum Jobnamen hinzu.",
|
||||
copy_all_data = "Alle Daten kopieren",
|
||||
copy_only_stats = "Nur Statistiken und Spielermodell kopieren",
|
||||
}
|
||||
|
||||
|
||||
-- Other phrases
|
||||
local lng = "de"
|
||||
|
||||
|
||||
MSD.Language[lng]["Move to point"] = "Zum Punkt bewegen"
|
||||
MSD.Language[lng]["Leave area"] = "Verlasse Bereich"
|
||||
MSD.Language[lng]["Kill NPC"] = "Töte NPC"
|
||||
MSD.Language[lng]["Collect quest ents"] = "Sammle Quest Gegenstände"
|
||||
MSD.Language[lng]["Talk to NPC"] = "Spreche mit dem NPC"
|
||||
|
||||
|
||||
MSD.Language[lng]["There is no quests avalible"] = "Es sind keine Quests verfügbar"
|
||||
|
||||
|
||||
MSD.Language[lng]["Give weapon"] = "Gebe Waffe"
|
||||
MSD.Language[lng]["Give ammo"] = "Gebe Munition"
|
||||
MSD.Language[lng]["Strip Weapon"] = "Nehme Waffe weg"
|
||||
MSD.Language[lng]["Spawn quest entity"] = "Spawne Quest Gegenstand"
|
||||
MSD.Language[lng]["Spawn entity"] = "Spawne Gegenstand"
|
||||
MSD.Language[lng]["Spawn npc"] = "Spawne NPC"
|
||||
MSD.Language[lng]["Manage do time"] = "Verwalte Do-Zeit"
|
||||
MSD.Language[lng]["Spawn vehicle"] = "Spawne Fahrzeug"
|
||||
MSD.Language[lng]["Remove vehicle"] = "Entferne Fahrzeug"
|
||||
MSD.Language[lng]["Remove all entites"] = "Entferne alle Gegenstände"
|
||||
MSD.Language[lng]["Set HP"] = "Setze HP"
|
||||
MSD.Language[lng]["Set Armor"] = "Setze Rüstung"
|
||||
|
||||
|
||||
MSD.Language[lng]["DarkRP Money"] = "DarkRP Geld"
|
||||
|
||||
|
||||
MSD.Language[lng]["Quest NPCs are disabled"] = "Quest NPCs sind deaktiviert"
|
||||
MSD.Language[lng]["You can enable them in settings"] = "Du kannst sie in den Einstellungen aktivieren"
|
||||
MSD.Language[lng]["Wait time"] = "Wartezeit"
|
||||
390
addons/msd_ui/lua/msd/language/en.lua
Normal file
390
addons/msd_ui/lua/msd/language/en.lua
Normal file
@@ -0,0 +1,390 @@
|
||||
MSD.Language["en"] = {
|
||||
|
||||
lang_name = "English",
|
||||
|
||||
ok = "OK",
|
||||
map = "Map",
|
||||
off = "Off",
|
||||
on = "On",
|
||||
time_add = "Time to add",
|
||||
type = "Type",
|
||||
delay = "Delay",
|
||||
cancel = "Cancel",
|
||||
enable = "Enable",
|
||||
model = "Model",
|
||||
name = "Name",
|
||||
settings = "Settings",
|
||||
editor = "Editor",
|
||||
red = "Red",
|
||||
green = "Green",
|
||||
blue = "Blue",
|
||||
admin_menu = "Administration menu",
|
||||
ui_settings = "UI Settings",
|
||||
active = "Active",
|
||||
inactive = "Inactive",
|
||||
disabled = "Disabled",
|
||||
warning = "Warning!",
|
||||
remove = "Remove",
|
||||
theme = "Theme",
|
||||
dark_theme = "Dark theme",
|
||||
payment = "Payment",
|
||||
load_autosave = "Load last autosave?",
|
||||
load_save = "Load save",
|
||||
create_new = "Create new",
|
||||
enable_option = "Enable option",
|
||||
main_opt = "Main options",
|
||||
copy_data = "Copy data",
|
||||
save_chng = "Save changes",
|
||||
enter_name = "Enter the name",
|
||||
enter_id = "Enter the ID",
|
||||
confirm_action = "Please confirm your actions",
|
||||
check_fpr_errors = "Check for errors",
|
||||
enter_description = "Enter description",
|
||||
cooldown_ok = "Cooldown on success",
|
||||
cooldown_fail = "Cooldown on fail",
|
||||
s_team_whitelist = "Setup team whitelist",
|
||||
whitelist_blacklist = "The whitelist is a blacklist",
|
||||
custom_val = "Set custom value",
|
||||
set_hp_full = "Set full HP",
|
||||
dist_to_close = "Distance to closest",
|
||||
|
||||
e_text = "Enter text",
|
||||
e_number = "Enter number",
|
||||
e_class = "Enter class",
|
||||
e_value = "Enter value",
|
||||
e_blank_dis = "Leave blank to disable",
|
||||
e_blank_default = "Leave blank to use default",
|
||||
e_url = "Enter URL",
|
||||
e_model = "Enter model path",
|
||||
e_material = "Enter material path",
|
||||
e_wep_class = "Enter weapon class",
|
||||
e_ent_class = "Enter entity class",
|
||||
e_veh_class = "Enter vehicle class",
|
||||
e_npc_class = "Enter NPC class",
|
||||
|
||||
select_ammo = "Selected ammo",
|
||||
amount_ammo = "Ammo amount",
|
||||
disable_phys = "Disable physics",
|
||||
none = "None",
|
||||
custom_icon = "Set custom icon",
|
||||
weapon_name = "Weapon name",
|
||||
moveup = "Move up",
|
||||
movedown = "Move down",
|
||||
movepoint = "Move point",
|
||||
swap = "Swap",
|
||||
swapmod = "Swap mod enabled. Click to disable",
|
||||
copy_from_ent = "Copy from looking entity",
|
||||
set_pos_self = "Set to your position",
|
||||
set_pos_aim = "Set to looking poit",
|
||||
spawn_point = "Spawn point",
|
||||
spawn_ang = "Spawn angle",
|
||||
mark_area = "Mark area",
|
||||
time_wait = "Time to wait",
|
||||
map_marker = "Select map marker",
|
||||
in_sec = "in seconds",
|
||||
def_units = "Default %s units", -- "Default 350 units" leave %s as is
|
||||
def_seconds = "Default %s seconds", -- "Default 10 seconds" leave %s as is
|
||||
ent_show_pointer = "Show pointer above the entity",
|
||||
ent_arcade_style = "Arcade-style entity appearance",
|
||||
ent_stnd_style = "Standart entity appearance",
|
||||
custom_color = "Enable custom color",
|
||||
mat_default = "Leave blank for default material",
|
||||
|
||||
set_ui = "UI settings",
|
||||
set_hud = "HUD settings",
|
||||
set_hud_pos = "Quest HUD position",
|
||||
set_hud_themes = "HUD Themes",
|
||||
set_server = "Server settings",
|
||||
set_ui_blur = "Blur background",
|
||||
set_ui_mono = "Monochrome background",
|
||||
set_ui_vignette = "Vignette effect for background",
|
||||
set_ui_brightness = "Background brightness",
|
||||
set_ui_color = "Select the main color",
|
||||
set_ui_align_left = "Horizontal alignment to the left",
|
||||
set_ui_align_right = "Horizontal alignment to the right",
|
||||
set_ui_align_top = "Vertical alignment to the top",
|
||||
set_ui_align_bottom = "Vertical alignment to the bottom",
|
||||
set_ui_offset_h = "Horizontal Offset",
|
||||
set_ui_offset_v = "Vertical Offset",
|
||||
|
||||
upl_changes = "Upload changes to server",
|
||||
res_changes = "Restore changes",
|
||||
|
||||
-- Player
|
||||
|
||||
dead = "You are dead",
|
||||
time_ex = "Time expired",
|
||||
vehicle_bum = "Your vehicle is destroyed",
|
||||
left_area = "You left the area",
|
||||
m_blew = "You blew up the mission",
|
||||
m_failed = "Mission failed",
|
||||
m_success = "Mission success",
|
||||
m_loop = "Mission update",
|
||||
|
||||
-- Errors
|
||||
|
||||
inv_quest = "Invalid quest",
|
||||
team_bl = "Your team is blacklisted",
|
||||
no_players = "Server needs more players to be online before you can do this",
|
||||
no_players_team = "Server needs more players for specific team(s) to be online before you can do this",
|
||||
need_admin = "Only admins can do this action",
|
||||
|
||||
-- Quests
|
||||
|
||||
active_quest = "You have an active quest",
|
||||
inactive_quest = "You can't play this quest",
|
||||
quest_editor = "Quest Editor",
|
||||
quest_list = "Quest List",
|
||||
quests = "Quests",
|
||||
leave_pnt = "Leave point",
|
||||
|
||||
q_editobj = "Edit objectives",
|
||||
q_incvobj = "Invalid objective",
|
||||
q_setobj = "Objective settings",
|
||||
q_newobj = "Add new objective",
|
||||
q_editrwd = "Edit rewards",
|
||||
q_rwdeditor = "Reward Editor",
|
||||
q_rwdlist = "Reward List",
|
||||
q_rwdsets = "Reward Settings",
|
||||
q_findmap = "Find quest from other maps",
|
||||
q_obj_des = "Objecive description",
|
||||
q_dist_point = "Distance to point",
|
||||
q_dist_from_point = "Distance from point",
|
||||
q_ignore_veh = "Ignore quest vehicle",
|
||||
q_timer_show = "Show the timer to player",
|
||||
q_area_stay = "Player must stay in area",
|
||||
q_start = "Start Quest",
|
||||
q_new = "New quest",
|
||||
q_submit = "Submit quest",
|
||||
q_addnew = "Add new quest",
|
||||
q_remove = "Remove quest",
|
||||
q_id_unique = "ID must be unique for each quest",
|
||||
q_complete_msg = "Quest complete message",
|
||||
q_dotime = "Quest do time",
|
||||
q_dotime_ok = "Succeed quest on time end",
|
||||
q_dotime_fail = "Fail quest on time end",
|
||||
q_death_fail = "Fail quest on player death",
|
||||
q_loop = "Loop quest tasks",
|
||||
q_loop_reward = "Reward player on each loop",
|
||||
q_enable = "Enable quest",
|
||||
q_events = "Events",
|
||||
q_eventadd = "Add Event",
|
||||
q_eventedit = "event edit",
|
||||
q_eventremove = "Remove event",
|
||||
q_in_progress = "Quest in progress",
|
||||
q_time_left = "Time left",
|
||||
q_ply_limit = "Player limit for the quest",
|
||||
q_ply_team_limit = "Setup team limits",
|
||||
q_ply_team_need = "Needed team players",
|
||||
q_ply_need = "Player amount needed to start",
|
||||
q_play_limit = "There is a limit on how much players can play this quest",
|
||||
q_must_stay_area = "You must stay inside this area, or quest will be failed",
|
||||
q_time_wait = "You need to wait before replaying this quest",
|
||||
q_dotime_reset = "Reset quest do time",
|
||||
q_dotime_add = "Add quest do time",
|
||||
q_noreplay = "You can't replay this quest",
|
||||
q_dis_replay = "Disable quest replay",
|
||||
q_needquest = "You need to finish another quest first",
|
||||
q_needquest_menu = "Require completed quest",
|
||||
q_enterror = "Quest entities didn't spawn, check quest setup",
|
||||
q_get = "You can get a quest from these NPCs",
|
||||
q_noquests = "There is no way to play quests yet :(",
|
||||
q_ent_draw = "Quest entity draw distance",
|
||||
q_loop_stop_key = "Looped quest stop key",
|
||||
q_hold_key_stop = "To stop quest hold [%s]", -- To stop quest hold [P]
|
||||
q_enter_veh = "Enter your vehicle",
|
||||
q_npc_link = "Link quest to an NPC",
|
||||
q_icon68 = "Enter url to .PNG icon 68x68 px",
|
||||
q_ent_pos_show = "Show entities location to the player",
|
||||
q_area_size = "Area size",
|
||||
q_area_pos = "Area postition",
|
||||
q_s_area_size = "Search area size",
|
||||
q_s_area_pos = "Search area postition",
|
||||
q_npc_answer_ok = "Player's positive answer",
|
||||
q_npc_answer_no = "Player's negative answer",
|
||||
q_npc_answer_noq = "Player's answer if no quests",
|
||||
q_npc_quest_no = "NPC speech if no quests",
|
||||
q_money_give = "Money to give",
|
||||
|
||||
-- Simple NPCs
|
||||
|
||||
npc_editor = "NPC Editor",
|
||||
npc_new = "New NPC",
|
||||
npc_select = "Select an NPC",
|
||||
npc_e_speech = "Enter NPC speech",
|
||||
npc_submit = "Confirm NPC creation",
|
||||
npc_update = "Update NPC",
|
||||
npc_remove = "Remove NPC",
|
||||
npc_q_enable = "Enable quest NPCs",
|
||||
npc_did_open = "Dialog ID to open",
|
||||
npc_q_target = "NPC is an objective target",
|
||||
npc_hostile = "Hostile NPC",
|
||||
|
||||
|
||||
-- Update 1.1.0
|
||||
|
||||
cam_start = "Camera start parameters",
|
||||
cam_end = "Camera end parameters",
|
||||
cam_pos = "Camera position",
|
||||
cam_ang = "Camera angle",
|
||||
cam_fov = "Camera FOV",
|
||||
cam_effect = "Camera shutter effect",
|
||||
q_open_target = "Allow other players to kill NPCs",
|
||||
q_npc_mind = "Min. distance to NPCs",
|
||||
not_spawned = "not spawned",
|
||||
dis_text = "Displayed text",
|
||||
cam_speed = "Camera movement speed (lower number - slower movement)",
|
||||
fov_speed = "FOV change speed (lower number - slower movement)",
|
||||
category_des = "Quest category, used to sort quests",
|
||||
sortquests_cat = "Sort quests by category",
|
||||
search_q = "Search quests",
|
||||
quest_tools = "Quest tools",
|
||||
set_anim = "Set Animation",
|
||||
s_quest_blacklist = "Setup quest blacklist",
|
||||
s_quest_blacklist_desc = "Select quests that will block this quest if you played them",
|
||||
hold_use = "Hold [%s] key",
|
||||
duplicate = "Duplicate",
|
||||
unsorted = "Unsorted",
|
||||
search = "Search",
|
||||
duration = "Duration",
|
||||
category = "Category",
|
||||
blacklist = "Blacklist",
|
||||
|
||||
|
||||
-- Update 1.2.0
|
||||
|
||||
restore_wep = "Restore weapons on quest end",
|
||||
e_cmd = "Enter console command",
|
||||
e_args = "Enter command arguments",
|
||||
hint_cmd = "Autofill shortcuts: \n$uid - UserID, \n$sid - SteamID, \n$s64 - SteamID 64, \n$n - Player name",
|
||||
youaretracked = "Your position is now compromised to other players!",
|
||||
border_rounded = "Rounded border design",
|
||||
border_square = "Square border design",
|
||||
access_settings = "Menu access",
|
||||
compact_obj = "Compact objective list for quests",
|
||||
e_usergroup = "Enter user group",
|
||||
ug_isanadmin = "This user group already has full access",
|
||||
find_player_id32 = "Find player data by SteamID 32",
|
||||
user_data = "User data editor",
|
||||
access_editors = "Set quest editors access",
|
||||
access_admins = "Set full access",
|
||||
add_usergroup = "Add user group",
|
||||
edit_objmod = "Edit objective order",
|
||||
editmod = "Edit mode",
|
||||
move = "Move",
|
||||
q_errorloop = "Quest entered in an endless loop",
|
||||
q_cooldow_perply = "Public cooldown timer",
|
||||
q_cooldow_publick = "Per-Player cooldown timer",
|
||||
q_stop_anytime = "Allow to abandon quest manually",
|
||||
quest_abandon = "You abandoned the quest",
|
||||
q_dotime_set = "Set quest do time",
|
||||
|
||||
-- Ranks
|
||||
|
||||
enter_path_or_url = "Enter path or url",
|
||||
rank_edit = "Ranks setup",
|
||||
rank_list = "Ranks list",
|
||||
group_list = "Group list",
|
||||
group_addnew = "Add new group",
|
||||
blank = "Blank",
|
||||
mrs_show_all = "Show ranks to all players",
|
||||
mrs_show_team = "Show ranks only to the group",
|
||||
mrs_use_sn = "Display short rank names",
|
||||
use_url = "Use URL",
|
||||
enter_srt_name = "Enter short name",
|
||||
srt_name = "Short name",
|
||||
mrs_prom_demote = "The next 2 options affect only lower ranks. Players with this rank will not be able to promote other players to higher ranks or the same rank.",
|
||||
mrs_whilelist = "If you select rank requirement for a job, the player will be able to play this job only if his rank matches the chosen one or higher.",
|
||||
can_promote = "Can promote player rank",
|
||||
can_demote = "Can demote player rank",
|
||||
edit_player_model = "Edit custom player model",
|
||||
enable_player_model = "Enable custom player model",
|
||||
disable_player_model = "Disable custom player model",
|
||||
edit_custom_stats = "Edit custom player stats",
|
||||
autoprom = "Auto promote to next rank",
|
||||
in_min = "in minutes",
|
||||
mrs_promoted = "You have been promoted",
|
||||
mrs_demoted = "You have been demoted",
|
||||
mrs_job_smallrank = "You must be %s or higher to play as %s", -- You must be Sergeant II or higher to play as Watch Commander
|
||||
show_group = "Display rank group name",
|
||||
hide_rank = "Display only rank icon",
|
||||
mrs_hud_follow = "Rotate UI around player depending on view angle",
|
||||
set_overhead = "Player info UI",
|
||||
offline_users = "Offline users",
|
||||
mrs_noranks = "Your current job has no ranks",
|
||||
mrs_nopower = "Your current rank has no extra permissions",
|
||||
promotion = "Promotion",
|
||||
on_duty = "On Duty",
|
||||
other_players = "Other players",
|
||||
mrs_change_jobname = "Change job name to the rank name",
|
||||
mrs_set_prefix = "Add the rank name as a prefix to the job name",
|
||||
copy_all_data = "Copy all data",
|
||||
copy_only_stats = "Copy only stats and player model",
|
||||
mrs_change_plyname = "Change player name to the rank name",
|
||||
mrs_set_prefix_ply = "Add the rank name as a prefix to the player name",
|
||||
|
||||
promote_limit = "Promotion limitationn",
|
||||
demote_limit = "Demotion limitation",
|
||||
salary_value = "Salary value",
|
||||
salary_set = "Set given value as a salary",
|
||||
salary_add = "Add given value on top of salary",
|
||||
salary_multiply = "Multiply salary by given value",
|
||||
force_team = "Force change team to",
|
||||
mrs_hud_3d2d = "Use 3D2D hud for players",
|
||||
mrs_chat_command = "Chat command to open the Rank menu",
|
||||
mrs_promote_command = "Chat command to promote a player",
|
||||
mrs_demote_command = "Chat command to demote a player",
|
||||
|
||||
mqs_fix_cam = "Fix Cinematic Camera event (toggle only if needed)",
|
||||
add_new_spawn = "Add new spawn point",
|
||||
remove_all_spawn = "Remove all spawn point",
|
||||
nolongertracked = "You are no longer tracked by other players",
|
||||
target = "Target",
|
||||
kill_player = "Kill Player",
|
||||
kill_amount = "Amount of targets to kill",
|
||||
into_quest = "Introduction quest",
|
||||
into_quest_auto = "Force player to play introduction quest",
|
||||
into_quest_start = "To strat quest hold [%s]",
|
||||
set_ui_align_center = "Horizontal alignment to the center",
|
||||
icon_size = "Icon size",
|
||||
icon_right = "Icon alignment to the right",
|
||||
font_size = "Font size",
|
||||
rank_hide = "Do not display this rank on the HUD",
|
||||
action_select = "Select an action",
|
||||
action_set_rank = "Set rank to selected, only if current rank is lower",
|
||||
action_set_rank_force = "Set rank to selected, anyway",
|
||||
action_promote_rank = "Promote only by one rank, selected rank is maximum",
|
||||
action_demote_rank = "Demote by one rank, selected rank is minimum",
|
||||
rank = "Rank",
|
||||
format = "Format",
|
||||
file_list = "File list",
|
||||
file_exist = "This save file is already exist",
|
||||
|
||||
show_team = "Display team name",
|
||||
use_team_colors = "Use team colors"
|
||||
}
|
||||
|
||||
-- Other phrases
|
||||
local lng = "en"
|
||||
|
||||
MSD.Language[lng]["Move to point"] = "Move to point"
|
||||
MSD.Language[lng]["Leave area"] = "Leave area"
|
||||
MSD.Language[lng]["Kill NPC"] = "Kill NPC"
|
||||
MSD.Language[lng]["Collect quest ents"] = "Collect quest ents"
|
||||
MSD.Language[lng]["Talk to NPC"] = "Talk to NPC"
|
||||
MSD.Language[lng]["There is no quests available"] = "There is no quests available"
|
||||
MSD.Language[lng]["Give weapon"] = "Give weapon"
|
||||
MSD.Language[lng]["Give ammo"] = "Give ammo"
|
||||
MSD.Language[lng]["Strip Weapon"] = "Strip Weapon"
|
||||
MSD.Language[lng]["Spawn quest entity"] = "Spawn quest entity"
|
||||
MSD.Language[lng]["Spawn entity"] = "Spawn entity"
|
||||
MSD.Language[lng]["Spawn npc"] = "Spawn npc"
|
||||
MSD.Language[lng]["Manage do time"] = "Manage do time"
|
||||
MSD.Language[lng]["Spawn vehicle"] = "Spawn vehicle"
|
||||
MSD.Language[lng]["Remove vehicle"] = "Remove vehicle"
|
||||
MSD.Language[lng]["Remove all entites"] = "Remove all entites"
|
||||
MSD.Language[lng]["Set HP"] = "Set HP"
|
||||
MSD.Language[lng]["Set Armor"] = "Set Armor"
|
||||
MSD.Language[lng]["DarkRP Money"] = "DarkRP Money"
|
||||
MSD.Language[lng]["Quest NPCs are disabled"] = "Quest NPCs are disabled"
|
||||
MSD.Language[lng]["You can enable them in settings"] = "You can enable them in settings"
|
||||
255
addons/msd_ui/lua/msd/language/es.lua
Normal file
255
addons/msd_ui/lua/msd/language/es.lua
Normal file
@@ -0,0 +1,255 @@
|
||||
MSD.Language["es"] = {
|
||||
|
||||
-- UI
|
||||
|
||||
lang_name = "Spanish",
|
||||
|
||||
ok = "OK",
|
||||
map = "Mapa",
|
||||
off = "Apagado",
|
||||
on = "Encendido",
|
||||
time_add = "Tiempo para agregar",
|
||||
type = "Tipo",
|
||||
delay = "Retraso",
|
||||
cancel = "Cancelar",
|
||||
enable = "Permitir",
|
||||
model = "Modelo",
|
||||
name = "Nombre",
|
||||
settings = "Ajustes",
|
||||
editor = "Editor",
|
||||
red = "Rojo",
|
||||
green = "Verde",
|
||||
blue = "Azul",
|
||||
admin_menu = "Menú de admin",
|
||||
ui_settings = "Ajustes de interfaz",
|
||||
active = "Activo",
|
||||
inactive = "Inactivo",
|
||||
disabled = "Deshabilitado",
|
||||
warning = "Peligro",
|
||||
remove = "Eliminar",
|
||||
theme = "Tema",
|
||||
dark_theme = "Tema oscuro",
|
||||
payment = "Pago",
|
||||
load_autosave = "Cargar el ultimo autoguardado?",
|
||||
load_save = "Cargar guardado",
|
||||
create_new = "Crear nuevo",
|
||||
enable_option = "Permitir opción",
|
||||
main_opt = "Opciones principales",
|
||||
copy_data = "Copiar datos",
|
||||
save_chng = "Guardar cambios",
|
||||
enter_name = "Ingresar el nombre",
|
||||
enter_id = "Ingresar el ID",
|
||||
confirm_action = "Por favor confirma tus acciones",
|
||||
check_fpr_errors = "Chequear errores",
|
||||
enter_description = "Ingresar descripción",
|
||||
cooldown_ok = "Enfriamiento en el éxito",
|
||||
cooldown_fail = "Enfriamiento en caso de falla",
|
||||
s_team_whitelist = "Configurar la lista blanca del equipo",
|
||||
whitelist_blacklist = "La lista blanca es una lista negra",
|
||||
custom_val = "Colocar valor personalizado",
|
||||
set_hp_full = "Colocar todo el HP",
|
||||
dist_to_close = "Distancia al más cercano",
|
||||
|
||||
e_text = "Ingresar texto",
|
||||
e_number = "Ingresar número",
|
||||
e_class = "Ingresar clase",
|
||||
e_value = "Ingresar valor",
|
||||
e_blank_dis = "Dejar en blanco para deshabilitar",
|
||||
e_blank_default = "Dejar en blanco para usar por defecto",
|
||||
e_url = "Ingresar URL",
|
||||
e_model = "Ingresar ruta del modelo",
|
||||
e_material = "Ingresar ruta del material",
|
||||
e_wep_class = "Ingresar ruta de la arma",
|
||||
e_ent_class = "Ingresar ruta de la entidad",
|
||||
e_veh_class = "Ingresar ruta del vehículo",
|
||||
e_npc_class = "Ingresar clase del NPC",
|
||||
|
||||
select_ammo = "Munición seleccionada",
|
||||
amount_ammo = " Cantidad munición",
|
||||
disable_phys = "Deshabilitar la física",
|
||||
none = "Ninguno",
|
||||
custom_icon = "Seleccionar icono personalizado",
|
||||
weapon_name = "Nombre del arma",
|
||||
moveup = "Mover hacia arriba",
|
||||
movedown = "Mover hacia abajo",
|
||||
movepoint = "Mover punto",
|
||||
swap = "Intercambiar",
|
||||
swapmod = "Intercambiar mod habilitado. Click para deshabilitar",
|
||||
copy_from_ent = "Copiar de la entidad que mira",
|
||||
set_pos_self = "Establecer en su posición",
|
||||
set_pos_aim = "Establecer en el punto de mira",
|
||||
spawn_point = "Spawnear punto",
|
||||
spawn_ang = "Spawnear ángulo",
|
||||
mark_area = "Marcar área",
|
||||
time_wait = "Tiempo de espera",
|
||||
map_marker = "Seleccionar punto del mapa",
|
||||
in_sec = "En segundos",
|
||||
def_units = "Default %s unidades", -- "350 unidades por defecto" leave %s as is
|
||||
def_seconds = "Default %s segundos", -- "10 segundos por defecto" leave %s as is
|
||||
ent_show_pointer = "Mostrar puntero sobre la entidad",
|
||||
ent_arcade_style = "Apariencia de entidad de estilo arcade",
|
||||
ent_stnd_style = "Apariencia de la entidad estándar",
|
||||
custom_color = "Habilitar color personalizado",
|
||||
mat_default = "Dejar en blanco para material por defecto",
|
||||
|
||||
set_ui = "Ajustes de la interfaz de usuario",
|
||||
set_hud = "Ajustes del HUD",
|
||||
set_hud_pos = "Posición HUD de las misiones",
|
||||
set_hud_themes = "Temas del HUD",
|
||||
set_server = "Ajustes de servidor",
|
||||
set_ui_blur = "Desenfoque del fondo",
|
||||
set_ui_mono = "Fondo monocromático",
|
||||
set_ui_vignette = "Efecto de viñeta para el fondo",
|
||||
set_ui_brightness = "Brillo de fondo",
|
||||
set_ui_color = "Seleccionar el color principal",
|
||||
set_ui_align_left = "Alineación vertical hacia la izquierda",
|
||||
set_ui_align_right = "Alineación vertical hacia la derecha",
|
||||
set_ui_align_top = "Alineación vertical hacia arriba",
|
||||
set_ui_align_bottom = "Alineación vertical hasta la parte inferior",
|
||||
set_ui_offset_h = "Compensación horizontal",
|
||||
set_ui_offset_v = "Compensación vertical",
|
||||
|
||||
upl_changes = "Subir cambios al servidor",
|
||||
res_changes = "Restablecer cambios",
|
||||
|
||||
-- Jugador
|
||||
|
||||
dead = "Estas muerto",
|
||||
time_ex = "Tiempo expirado",
|
||||
vehicle_bum = "Tu Vehículo esta destruido",
|
||||
left_area = "Dejaste la zona",
|
||||
m_blew = "You blew up the mission",
|
||||
m_failed = "Misión fallida",
|
||||
m_success = "Misión exitosa",
|
||||
m_loop = "Actualización de la misión",
|
||||
|
||||
-- Errores
|
||||
|
||||
inv_quest = "Misión Invalida",
|
||||
team_bl = "Tu equipo está en lista negra",
|
||||
no_players = "El servidor necesita más jugadores conectados antes que puedas hacer esto",
|
||||
no_players_team = "El servidor necesita más jugadores conectados para equipo(s) especifico(s)antes que puedas hacer esto",
|
||||
need_admin = "Solo los administradores pueden realizar esta accion",
|
||||
|
||||
-- Misiones
|
||||
|
||||
active_quest = "Tienes una misión activa",
|
||||
inactive_quest = "No puedes jugar esta misión",
|
||||
quest_editor = "Editor de misiones",
|
||||
quest_list = "Lista de misiones",
|
||||
quests = "Misiones",
|
||||
leave_pnt = "Dejar punto",
|
||||
|
||||
q_editobj = "Editar objetivos",
|
||||
q_incvobj = "Objetivo invalido",
|
||||
q_setobj = "Ajustes de objetivo",
|
||||
q_newobj = "Añadir nuevo objetivo",
|
||||
q_editrwd = "Editar recompensas",
|
||||
q_rwdeditor = "Editor de recompensas",
|
||||
q_rwdlist = "Lista de recompensas",
|
||||
q_rwdsets = "Ajustes de recompensas",
|
||||
q_findmap = "Encontrar misiones de otros mapas",
|
||||
q_obj_des = "Descripción de objetivo",
|
||||
q_dist_point = "Distancia al punto",
|
||||
q_dist_from_point = "Distancia desde el punto",
|
||||
q_ignore_veh = "Ignorar vehículo de misión",
|
||||
q_timer_show = "Mostrar el temporizador al jugador",
|
||||
q_area_stay = "El jugador debe quedarse en el area",
|
||||
q_start = "Empezar Misión",
|
||||
q_new = "Nueva misión",
|
||||
q_submit = "Enviar misión",
|
||||
q_addnew = "Añadir nueva misión",
|
||||
q_remove = "Eliminar misión",
|
||||
q_id_unique = "La ID debe ser única para cada misión",
|
||||
q_complete_msg = "Mensaje de misión completada",
|
||||
q_dotime = "Tiempo para hacer la misión",
|
||||
q_dotime_ok = "Misión exitosa al finalizar el tiempo",
|
||||
q_dotime_fail = "Falla la misión al finalizar el tiempo",
|
||||
q_death_fail = "Falló la misión al morir el jugador",
|
||||
q_loop = "Tareas de misiones en bucle",
|
||||
q_loop_reward = "Recompensa al jugador en cada bucle",
|
||||
q_enable = "Habilitar misión",
|
||||
q_events = "Eventos",
|
||||
q_eventadd = "Añadir Evento",
|
||||
q_eventedit = "Editor de evento",
|
||||
q_eventremove = "Eliminar evento",
|
||||
q_in_progress = "Misión en progreso",
|
||||
q_time_left = "Tiempo restante",
|
||||
q_ply_limit = "Limite de jugadores para la misión",
|
||||
q_ply_team_limit = "Configurar equipos limitados",
|
||||
q_ply_team_need = "Jugadores de equipo necesarios",
|
||||
q_ply_need = "Cantidad de jugadores necesarios para comenzar",
|
||||
q_play_limit = "Hay un límite en cuantos jugadores pueden jugar esta misión",
|
||||
q_must_stay_area = "Debes permanecer dentro de esta área, o la misión fallara",
|
||||
q_time_wait = "Debes esperar antes de repetir esta misión",
|
||||
q_dotime_reset = "Restablecer el tiempo de realización de la misión",
|
||||
q_dotime_add = "Añadir tiempo para hacer la misión",
|
||||
q_noreplay = "No puedes re jugar esta misión",
|
||||
q_dis_replay = "Des habilitar repetición de la misión",
|
||||
q_needquest = "Debes completar otra misión primero",
|
||||
q_needquest_menu = "Requiere misión completada",
|
||||
q_enterror = "Entidades de misión no spawnean, chequear configuración de misión",
|
||||
q_get = "Puedes obtener una misión de estos NPCS",
|
||||
q_noquests = "Todavía no hay forma de jugar las misiones :(",
|
||||
q_ent_draw = "Distancia del dibujo de la entidad",
|
||||
q_loop_stop_key = "Tecla para detener misión en bucle",
|
||||
q_hold_key_stop = "Para detener la misión, mantenga [%s]", -- Para detener la mision mantenga apretado [P]
|
||||
q_enter_veh = "Entrar a tu vehículo",
|
||||
q_npc_link = "Linquear misión a un NPC",
|
||||
q_icon68 = "Ingresar url a un icono .PNG de 68x68 px",
|
||||
q_ent_pos_show = "Mostrar locación de entidades al jugador",
|
||||
q_area_size = "Tamaño de área",
|
||||
q_area_pos = "Posición de área",
|
||||
q_s_area_size = "Buscar tamaño de área",
|
||||
q_s_area_pos = "Buscar posición de área",
|
||||
q_npc_answer_ok = "Respuesta positiva del jugador",
|
||||
q_npc_answer_no = "Respuesta negativa del jugador",
|
||||
q_npc_answer_noq = "Respuesta del jugador si no hay misiones",
|
||||
q_npc_quest_no = "Discurso del NPC si no hay misiones",
|
||||
q_money_give = "Dinero para dar",
|
||||
|
||||
-- Simple NPCs
|
||||
|
||||
npc_editor = "Editor de NPC",
|
||||
npc_new = "Nuevo NPC",
|
||||
npc_select = "Seleccionar un NPC",
|
||||
npc_e_speech = " Ingresar el discurso del NPC",
|
||||
npc_submit = "Confirmar creación del NPC",
|
||||
npc_update = "Actualizar NPC",
|
||||
npc_remove = "Eliminar NPC",
|
||||
npc_q_enable = "Habilitar misiones de NPCs",
|
||||
npc_did_open = "ID de dialogo para abrir",
|
||||
npc_q_target = "NPC is an objective target",
|
||||
npc_hostile = "NPC Hostil",
|
||||
|
||||
}
|
||||
|
||||
-- Otras frases
|
||||
local es = "es"
|
||||
|
||||
MSD.Language[es]["Move to point"] = "Mover al punto"
|
||||
MSD.Language[es]["Leave area"] = "Dejar área"
|
||||
MSD.Language[es]["Kill NPC"] = "Matar NPC"
|
||||
MSD.Language[es]["Collect quest ents"] = "Recoger misiones"
|
||||
MSD.Language[es]["Talk to NPC"] = "Hablar al NPC"
|
||||
|
||||
MSD.Language[es]["No hay misiones disponibles"] = "No hay misiones disponibles"
|
||||
|
||||
MSD.Language[es]["Give weapon"] = "Dar arma"
|
||||
MSD.Language[es]["Give ammo"] = "Dar munición"
|
||||
MSD.Language[es]["Strip Weapon"] = "Extraer arma"
|
||||
MSD.Language[es]["Spawn quest entity"] = "Spawnear entidad de misión"
|
||||
MSD.Language[es]["Spawn entity"] = "Spawnear entidad"
|
||||
MSD.Language[es]["Spawn npc"] = "Spawnear npc"
|
||||
MSD.Language[es]["Manage do time"] = "Administrar el tiempo"
|
||||
MSD.Language[es]["Spawn vehicle"] = "Spawnear vehículo"
|
||||
MSD.Language[es]["Remove vehicle"] = "Elminar vehículo"
|
||||
MSD.Language[es]["Remove all entites"] = "Remover todas las entidades"
|
||||
MSD.Language[es]["Set HP"] = "Configurar HP"
|
||||
MSD.Language[es]["Set Armor"] = "Configurar armadura"
|
||||
|
||||
MSD.Language[es]["DarkRP Money"] = " Dinero DarkRP"
|
||||
|
||||
MSD.Language[es]["Quest NPCs are disabled"] = "Los NPCs de las misiones están deshabilitados"
|
||||
MSD.Language[es]["You can enable them in settings"] = "Puedes habilitarlos en las configuraciones"
|
||||
MSD.Language[es]["Wait time"] = "Tiempo de espera"
|
||||
353
addons/msd_ui/lua/msd/language/fr.lua
Normal file
353
addons/msd_ui/lua/msd/language/fr.lua
Normal file
@@ -0,0 +1,353 @@
|
||||
MSD.Language["fr"] = {
|
||||
|
||||
-- UI
|
||||
|
||||
lang_name = "French",
|
||||
|
||||
ok = "OK",
|
||||
map = "Map",
|
||||
off = "Off",
|
||||
on = "On",
|
||||
time_add = "Il est temps d'ajouter",
|
||||
type = "Taper",
|
||||
delay = "Retard",
|
||||
cancel = "Annuler",
|
||||
enable = "Activé",
|
||||
model = "Model",
|
||||
name = "Nom",
|
||||
settings = "Paramètre",
|
||||
editor = "Éditeur",
|
||||
red = "Rouge",
|
||||
green = "Vert",
|
||||
blue = "Bleu",
|
||||
admin_menu = "Menu d'administration",
|
||||
ui_settings = "Paramètres de l'interface",
|
||||
active = "Actif",
|
||||
inactive = "Inactif",
|
||||
disabled = "Désactivée",
|
||||
warning = "Avertissement!",
|
||||
remove = "Supprimer",
|
||||
theme = "Thème",
|
||||
dark_theme = "Thème sombre",
|
||||
payment = "Paiement",
|
||||
load_autosave = "Charger la dernière sauvegarde automatique?",
|
||||
load_save = "Chargement de la sauvegarde",
|
||||
create_new = "Créer un nouveau",
|
||||
enable_option = "Activer l'option",
|
||||
main_opt = "Options principales",
|
||||
copy_data = "Copier des données",
|
||||
save_chng = "Sauvegarder les modifications",
|
||||
enter_name = "Entrez le nom",
|
||||
enter_id = "Entrez l'ID",
|
||||
confirm_action = "Veuillez confirmer vos actions",
|
||||
check_fpr_errors = "Rechercher les erreurs",
|
||||
enter_description = "Entrez la description",
|
||||
cooldown_ok = "Temps de recharge en cas de succès",
|
||||
cooldown_fail = "Temps de recharge en cas d'échec",
|
||||
s_team_whitelist = "Configuration de la TEAM Whitelist",
|
||||
whitelist_blacklist = "La liste blanche est une liste noire",
|
||||
custom_val = "Définir une valeur personnalisée",
|
||||
set_hp_full = "Définir les HP complets",
|
||||
dist_to_close = "Distance au plus proche",
|
||||
|
||||
e_text = "Entrez du texte",
|
||||
e_number = "Entrez un nombre",
|
||||
e_class = "Entrer une classe",
|
||||
e_value = "Entrez une valeur",
|
||||
e_blank_dis = "Laisser vide pour désactiver",
|
||||
e_blank_default = "Laissez le noir pour utiliser la valeur par défaut",
|
||||
e_url = "Entrer une URL",
|
||||
e_model = "Entrez le chemin du modèle",
|
||||
e_material = "Entrez le chemin du matériau",
|
||||
e_wep_class = "Entrez la classe d'une arme",
|
||||
e_ent_class = "Entrez la classe de l'entité",
|
||||
e_veh_class = "Entrez la classe du véhicule",
|
||||
e_npc_class = "Entrez la classe du NPC",
|
||||
|
||||
select_ammo = "Munitions sélectionnées",
|
||||
amount_ammo = "Montant des munitions",
|
||||
disable_phys = "Désactiver la physique",
|
||||
none = "Rien",
|
||||
custom_icon = "Définir une icône personnalisée",
|
||||
weapon_name = "Nom de l'arme",
|
||||
moveup = "déplacer vers le haut",
|
||||
movedown = "déplacer vers le bas",
|
||||
movepoint = "Déplacer le point",
|
||||
swap = "Échanger",
|
||||
swapmod = "Swap mod activé. Cliquez pour désactiver",
|
||||
copy_from_ent = "Copier de l'entité recherchée",
|
||||
set_pos_self = "Réglez votre position",
|
||||
set_pos_aim = "Définir le point de recherche",
|
||||
spawn_point = "Point d'apparition",
|
||||
spawn_ang = "Angle d'apparition",
|
||||
mark_area = "Marquer la zone",
|
||||
time_wait = "Il est temps d'attendre",
|
||||
map_marker = "Sélectionnez un marqueur de map",
|
||||
in_sec = "en secondes",
|
||||
def_units = "Défaut %s unités", -- "350 unités par défaut" laisser %s tel quel
|
||||
def_seconds = "Défaut %s secondes", -- "Par défaut, 10 secondes" laisser %s comme si
|
||||
ent_show_pointer = "Montrer poiter au-dessus de l'entité",
|
||||
ent_arcade_style = "Apparence d'entité de style arcade",
|
||||
ent_stnd_style = "Apparence d'entité standard",
|
||||
custom_color = "Activer la couleur personnalisée",
|
||||
mat_default = "Laisser vide pour le matériau par défaut",
|
||||
|
||||
set_ui = "Paramètres de l'interface utilisateur",
|
||||
set_hud = "Paramètres du HUD",
|
||||
set_hud_pos = "Position du HUD de quête",
|
||||
set_hud_themes = "Thèmes HUD",
|
||||
set_server = "Paramètres du serveur",
|
||||
set_ui_blur = "Arrière-plan flou",
|
||||
set_ui_mono = "Fond monochrome",
|
||||
set_ui_vignette = "Effet de vignette pour l'arrière-plan",
|
||||
set_ui_brightness = "Luminosité d'arrière-plan",
|
||||
set_ui_color = "Sélectionnez la couleur principale",
|
||||
set_ui_align_left = "Alignement horizontal vers la gauche",
|
||||
set_ui_align_right = "Alignement horizontal vers la droite",
|
||||
set_ui_align_top = "Alignement vertical vers le haut",
|
||||
set_ui_align_bottom = "Alignement vertical vers le bas",
|
||||
set_ui_offset_h = "Décalage horizontal",
|
||||
set_ui_offset_v = "Décalage vertical",
|
||||
|
||||
upl_changes = "Télécharger les modifications sur le serveur",
|
||||
res_changes = "Restaurer les modifications",
|
||||
|
||||
-- Joueur
|
||||
|
||||
dead = "Restaurer les modifications",
|
||||
time_ex = "Le temps est écoulé",
|
||||
vehicle_bum = "Votre véhicule est détruit",
|
||||
left_area = "Vous avez quitté la zone",
|
||||
m_blew = "Vous avez fait sauter la mission",
|
||||
m_failed = "Mission échouée",
|
||||
m_success = "Succès de la mission",
|
||||
m_loop = "Mise à jour de la mission",
|
||||
|
||||
-- Erreurs
|
||||
|
||||
inv_quest = "Quête invalide",
|
||||
team_bl = "Votre équipe est sur liste noire",
|
||||
no_players = "Le serveur a besoin de plus de joueurs pour être en ligne avant de pouvoir le faire",
|
||||
no_players_team = "Le serveur a besoin de plus de joueurs pour que des TEAM spécifiques soient en ligne avant que vous puissiez le faire",
|
||||
need_admin = "Seuls les administrateurs peuvent effectuer cette action",
|
||||
|
||||
-- Quête
|
||||
|
||||
active_quest = "Vous avez une quête active",
|
||||
inactive_quest = "Vous ne pouvez pas jouer à cette quête",
|
||||
quest_editor = "Éditeur de quête",
|
||||
quest_list = "Liste des quêtes",
|
||||
quests = "Quêtes",
|
||||
leave_pnt = "Quitter le point",
|
||||
|
||||
q_editobj = "Modifier les objectifs",
|
||||
q_incvobj = "Objectif invalide",
|
||||
q_setobj = "Paramètres d'objectifs",
|
||||
q_newobj = "Ajouter un nouvel objectif",
|
||||
q_editrwd = "Modifier les récompenses",
|
||||
q_rwdeditor = "Éditeur de récompenses",
|
||||
q_rwdlist = "Liste de récompenses",
|
||||
q_rwdsets = "Paramètres de récompense",
|
||||
q_findmap = "Trouver une quête sur d'autres cartes",
|
||||
q_obj_des = "Description de l'objectif",
|
||||
q_dist_point = "Distance au point",
|
||||
q_dist_from_point = "Distance du point",
|
||||
q_ignore_veh = "Ignorer le véhicule de quête",
|
||||
q_timer_show = "Montrez le chronomètre au joueur",
|
||||
q_area_stay = "Le joueur doit rester dans la zone",
|
||||
q_start = "Démarrer la quête",
|
||||
q_new = "Nouvelle quête",
|
||||
q_submit = "Soumettre la quête",
|
||||
q_addnew = "Ajouter une nouvelle quête",
|
||||
q_remove = "Supprimer la quête",
|
||||
q_id_unique = "L'ID doit être unique pour chaque quête",
|
||||
q_complete_msg = "Message complet de la quête",
|
||||
q_dotime = "Message complet de la quête",
|
||||
q_dotime_ok = "Réussir la quête à la fin du temps",
|
||||
q_dotime_fail = "Échec de la quête à la fin du temps",
|
||||
q_death_fail = "Échec de la quête à la mort du joueur",
|
||||
q_loop = "Tâches de quête en boucle",
|
||||
q_loop_reward = "Récompensez le joueur sur chaque boucle",
|
||||
q_enable = "Activer la quête",
|
||||
q_events = "Événements",
|
||||
q_eventadd = "Ajouter un évènement",
|
||||
q_eventedit = "Modification d'événement",
|
||||
q_eventremove = "Supprimer l'événement",
|
||||
q_in_progress = "Quête en cours",
|
||||
q_time_left = "Temps restant",
|
||||
q_ply_limit = "Limite de joueurs pour la quête",
|
||||
q_ply_team_limit = "Limites de l'équipe de configuration",
|
||||
q_ply_team_need = "Joueurs d'équipe nécessaires",
|
||||
q_ply_need = "Quantité de joueur nécessaire pour commencer",
|
||||
q_play_limit = "Il y a une limite au nombre de joueurs pouvant jouer à cette quête",
|
||||
q_must_stay_area = "Vous devez rester dans cette zone, sinon la quête échouera",
|
||||
q_time_wait = "Vous devez attendre avant de rejouer cette quête",
|
||||
q_dotime_reset = "Réinitialiser le temps de la quête",
|
||||
q_dotime_add = "Ajouter une quête à faire",
|
||||
q_noreplay = "Vous ne pouvez pas rejouer cette quête",
|
||||
q_dis_replay = "Désactiver la relecture de quête",
|
||||
q_needquest = "Vous devez d'abord terminer une autre quête",
|
||||
q_needquest_menu = "Requiert une quête terminée",
|
||||
q_enterror = "Les entités de quête ne sont pas apparues, vérifiez la configuration de la quête",
|
||||
q_get = "Vous pouvez obtenir une quête de ces PNJ",
|
||||
q_noquests = "Il n'y a pas encore moyen de jouer des quêtes :(",
|
||||
q_ent_draw = "Distance de tirage de l'entité de quête",
|
||||
q_loop_stop_key = "Clé d'arrêt de quête en boucle",
|
||||
q_hold_key_stop = "Pour arrêter la suspension de quête [%s] ", -- Pour arrêter la suspension de quête [P]
|
||||
q_enter_veh = "Entrez votre véhicule",
|
||||
q_npc_link = "Lier la quête à un PNJ",
|
||||
q_icon68 = "Entrez l'URL de l'icône .PNG 68 x 68 px",
|
||||
q_ent_pos_show = "Afficher l'emplacement des entités au joueur",
|
||||
q_area_size = "Taille de la zone",
|
||||
q_area_pos = "Position de la zone",
|
||||
q_s_area_size = "Taille de la zone de recherche",
|
||||
q_s_area_pos = "Position de la zone de recherche",
|
||||
q_npc_answer_ok = "Réponse positive du joueur",
|
||||
q_npc_answer_no = "Réponse négative du joueur",
|
||||
q_npc_answer_noq = "Réponse du joueur si aucune quête",
|
||||
q_npc_quest_no = "Discours des PNJ si aucune quête",
|
||||
q_money_give = "De l'argent à donner",
|
||||
|
||||
-- Simple NPCs
|
||||
|
||||
npc_editor = "Éditeur de PNJ",
|
||||
npc_new = "Nouveau PNJ",
|
||||
npc_select = "Sélectionnez un PNJ",
|
||||
npc_e_speech = "Entrez le discours du PNJ",
|
||||
npc_submit = "Confirmer la création du PNJ",
|
||||
npc_update = "Mettre à jour le PNJ",
|
||||
npc_remove = "Supprimer un PNJ",
|
||||
npc_q_enable = "Activer les PNJ de quête",
|
||||
npc_did_open = "ID de boîte de dialogue à ouvrir",
|
||||
npc_q_target = "NPC est une cible objective",
|
||||
npc_hostile = "PNJ hostile",
|
||||
|
||||
-- Update 1.1.0
|
||||
|
||||
cam_start = "Paramètres de départ de la caméra",
|
||||
cam_end = "Paramètres de fin de la caméra",
|
||||
cam_pos = "Position de la caméra",
|
||||
cam_ang = "Angle de caméra",
|
||||
cam_fov = "FOV de caméra",
|
||||
cam_effect = "Effet d'obturateur de caméra",
|
||||
q_open_target = "Autoriser les joueurs à tuer les autres NPC",
|
||||
q_npc_mind = "Distance min. au NPC",
|
||||
not_spawned = "non apparu",
|
||||
dis_text = "Texte affiché",
|
||||
cam_speed = "Vitesse de mouvement de la caméra (nombre bas - mouvement lent)",
|
||||
fov_speed = "Vitesse du FOV de la caméra (nombre bas - mouvement lent)",
|
||||
category_des = "Catégorie de quêtes, utilisé pour trier les quêtes",
|
||||
sortquests_cat = "Trier les quêtes par catégorie",
|
||||
search_q = "Rechercher des quêtes",
|
||||
quest_tools = "Outils de quête",
|
||||
set_anim = "Mettre une animation",
|
||||
s_quest_blacklist = "Configurer une liste noire de quête", -- In France, we can say blacklist too
|
||||
s_quest_blacklist_desc = "Sélectionnez les quêtes qui vont se bloquer si elles sont jouées",
|
||||
hold_use = "Maintener la touche [%s]",
|
||||
duplicate = "Duplicé",
|
||||
unsorted = "Non-trié",
|
||||
search = "Recherche",
|
||||
duration = "Durée",
|
||||
category = "Catégorie",
|
||||
blacklist = "Liste noire",
|
||||
|
||||
|
||||
-- Update 1.2.0
|
||||
|
||||
restore_wep = "Restorer les armes à la fin de la quête",
|
||||
e_cmd = "Entrer une commande console",
|
||||
e_args = "Entrer des commandes d'arguments",
|
||||
hint_cmd = "Autoremplissage de raccourcis : \n$uid - IDJoueur, \n$sid - SteamID, \n$s64 - SteamID 64, \n$n - No du joueur",
|
||||
youaretracked = "Votre position est compromise par d'autres joueurs !",
|
||||
border_rounded = "Design de bordure ronde",
|
||||
border_square = "Design de bordure carrée",
|
||||
access_settings = "Accès au menu",
|
||||
compact_obj = "Compacter la liste des objectifs pour les quêtes",
|
||||
e_usergroup = "Entrer un groupe d'utilisateurs",
|
||||
ug_isanadmin = "Ce groupe d'utilisateur à déjà des pleins accès",
|
||||
find_player_id32 = "Trouver un joueur par le SteamID 32",
|
||||
user_data = "Éditeur de données",
|
||||
access_editors = "Accès à configurer l'éditeur de quêtes",
|
||||
access_admins = "Mettre des accès complets",
|
||||
add_usergroup = "Ajouter un utilisateur au groupe",
|
||||
edit_objmod = "Éditer les objectifs du mode",
|
||||
editmod = "Éditer des modes",
|
||||
move = "Déplacer",
|
||||
q_errorloop = "Quête dans une loupe infinie",
|
||||
q_cooldow_perply = "Compteur de temps public",
|
||||
q_cooldow_publick = "Compteur de temps par joueur",
|
||||
q_stop_anytime = "Autoriser manuellement l'abandon de quêtes",
|
||||
quest_abandon = "Vous avez abandonné la quête",
|
||||
q_dotime_set = "Configurer la fin de quête à la fin d'un temps",
|
||||
|
||||
|
||||
-- Ranks
|
||||
|
||||
enter_path_or_url = "Entrer l'emplacement ou l'URL",
|
||||
rank_edit = "Configuration des grades",
|
||||
rank_list = "Liste de grades",
|
||||
group_list = "Liste des groupes",
|
||||
group_addnew = "Ajouter un nouveau groupe",
|
||||
blank = "Blanc",
|
||||
mrs_show_all = "Montrer les grades à tous les joueurs",
|
||||
mrs_show_team = "Montrer les grades uniquement au groupe",
|
||||
mrs_use_sn = "Afficher des noms de grade courts",
|
||||
use_url = "Utiliser une URL",
|
||||
enter_srt_name = "Entrer un nom court",
|
||||
srt_name = "Nom court",
|
||||
mrs_prom_demote = "Les prochaines 2 options affectent uniquement les grades les plus bas. Les joueurs ne pourront pas promotionner les autres joueurs les hauts grades ou le même grade.",
|
||||
mrs_whilelist = "Si vous sélectionnez un grade requis pour un job, le joueur pourra jouer avec le job que si il a le grade défini ou plus.",
|
||||
can_promote = "Peut promotionner le grade d'un joueur",
|
||||
can_demote = "Peut rétrograder le grade d'un joueur",
|
||||
edit_player_model = "Éditer le playermodel personnalisé",
|
||||
enable_player_model = "Activer le playermodel personnalisé",
|
||||
disable_player_model = "Désactiver le playermodel personnalisé",
|
||||
edit_custom_stats = "Éditer les stats personnalisés du joueur",
|
||||
autoprom = "Auto-promotionner au prochain grade",
|
||||
in_min = "en minutes",
|
||||
mrs_promoted = "Vous avez été promotionné",
|
||||
mrs_demoted = "Vous avez été rétrogradé",
|
||||
mrs_job_smallrank = "Vous devez être %s ou plus pour jouer en tant que %s",
|
||||
show_group = "Montrer uniquement le nom du grade",
|
||||
hide_rank = "Montrer uniquement l'icone du grade",
|
||||
mrs_hud_follow = "Rotatationner l'UI autour du joueur dépendant de la vue de l'angle",
|
||||
set_overhead = "UI de l'information du joueur",
|
||||
offline_users = "Utilisateurs hors-ligne",
|
||||
mrs_noranks = "Votre métier actuel n'a pas de grades",
|
||||
mrs_nopower = "Votre grade actuel n'a pas plus de permissions",
|
||||
promotion = "Promotion",
|
||||
on_duty = "En service",
|
||||
other_players = "Autres joueurs",
|
||||
mrs_change_jobname = "Changer le job au nom du grade",
|
||||
mrs_set_prefix = "Ajouter le nom du grade au préfix du nom du métier",
|
||||
}
|
||||
|
||||
-- Other phrases
|
||||
local lng = "fr"
|
||||
|
||||
MSD.Language[lng]["Move to point"] = "Déplacer vers le point"
|
||||
MSD.Language[lng]["Leave area"] = "Quitter la zone"
|
||||
MSD.Language[lng]["Kill NPC"] = "Tuer un NPC"
|
||||
MSD.Language[lng]["Collect quest ents"] = "Collecter les ents de quête"
|
||||
MSD.Language[lng]["Talk to NPC"] = "Parler à NPC"
|
||||
MSD.Language[lng]["Wait time"] = "Temps d'attente"
|
||||
|
||||
MSD.Language[lng]["There is no quests avalible"] = "Il n'y a pas de quêtes disponibles"
|
||||
|
||||
MSD.Language[lng]["Give weapon"] = "Donner une arme"
|
||||
MSD.Language[lng]["Give ammo"] = "Donner des munitions"
|
||||
MSD.Language[lng]["Strip Weapon"] = "Arme de bande"
|
||||
MSD.Language[lng]["Spawn quest entity"] = "Entité de quête d'apparition"
|
||||
MSD.Language[lng]["Spawn entity"] = "Entité d'apparition"
|
||||
MSD.Language[lng]["Spawn npc"] = "Apparition du npc"
|
||||
MSD.Language[lng]["Manage do time"] = "Gérer le temps de travail"
|
||||
MSD.Language[lng]["Spawn vehicle"] = "Apparition du véhicule"
|
||||
MSD.Language[lng]["Remove vehicle"] = "Retirer le véhicule"
|
||||
MSD.Language[lng]["Remove all entites"] = "Supprimer toutes les entités"
|
||||
MSD.Language[lng]["Set HP"] = "Définir HP"
|
||||
MSD.Language[lng]["Set Armor"] = "Définir l'armure"
|
||||
|
||||
MSD.Language[lng]["DarkRP Money"] = "Argent DarkRP"
|
||||
|
||||
MSD.Language[lng]["Quest NPCs are disabled"] = "Les PNJ de quête sont désactivés"
|
||||
MSD.Language[lng]["You can enable them in settings"] = "Vous pouvez les activer dans les paramètres"
|
||||
349
addons/msd_ui/lua/msd/language/nl.lua
Normal file
349
addons/msd_ui/lua/msd/language/nl.lua
Normal file
@@ -0,0 +1,349 @@
|
||||
MSD.Language["nl"] = {
|
||||
|
||||
lang_name = "Netherlands",
|
||||
|
||||
ok = "OKE",
|
||||
map = "Kaart",
|
||||
off = "Uit",
|
||||
on = "Op",
|
||||
time_add = "Tijd om toe te voegen",
|
||||
type = "Type",
|
||||
delay = "Vertraging",
|
||||
cancel = "Annuleren",
|
||||
enable = "Inschakelen",
|
||||
model = "Model",
|
||||
name = "Naam",
|
||||
settings = "Instellingen",
|
||||
editor = "Editor",
|
||||
red = "Rood",
|
||||
green = "Groente",
|
||||
blue = "Blauw",
|
||||
admin_menu = "Administratie menu",
|
||||
ui_settings = "UI instellingen",
|
||||
active = "Actief",
|
||||
inactive = "Inactief",
|
||||
disabled = "Gehandicapt",
|
||||
warning = "Waarschuwing!",
|
||||
remove = "Verwijderen",
|
||||
theme = "Thema",
|
||||
dark_theme = "Donker thema",
|
||||
payment = "Betaling",
|
||||
load_autosave = "Laad laatste autosave?",
|
||||
load_save = "Laad gegevens",
|
||||
create_new = "Maak nieuw",
|
||||
enable_option = "Optie inschakelen",
|
||||
main_opt = "Belangrijkste opties",
|
||||
copy_data = "Gegevens kopiëren",
|
||||
save_chng = "Wijzigingen opslaan",
|
||||
enter_name = "Voer de naam in",
|
||||
enter_id = "Voer de ID in",
|
||||
confirm_action = "Bevestig uw acties a.u.b.",
|
||||
check_fpr_errors = "Controleer op fouten",
|
||||
enter_description = "Voer beschrijving in",
|
||||
cooldown_ok = "Cooldown bij succes",
|
||||
cooldown_fail = "Afkoelen bij mislukt",
|
||||
s_team_whitelist = "Witte lijst voor team instellen",
|
||||
whitelist_blacklist = "De witte lijst is een zwarte lijst",
|
||||
custom_val = "Aangepaste waarde instellen",
|
||||
set_hp_full = "Zet volledige HP",
|
||||
dist_to_close = "Afstand tot dichtstbijzijnde",
|
||||
|
||||
e_text = "Tekst invoeren",
|
||||
e_number = "Voer nummer in",
|
||||
e_class = "Ga naar de klas",
|
||||
e_value = "Voer waarde in",
|
||||
e_blank_dis = "Laat leeg om uit te schakelen",
|
||||
e_blank_default = "Laat leeg om standaard te gebruiken",
|
||||
e_url = "Binnenkomen URL",
|
||||
e_model = "Voer modelpad in", -- voorbeeld: model/alyx.mdl
|
||||
e_material = "Voer materiaalpad in",
|
||||
e_wep_class = "Voer wapenklasse in",
|
||||
e_ent_class = "Entiteitsklasse invoeren",
|
||||
e_veh_class = "Voer voertuigklasse in",
|
||||
e_npc_class = "Voer NPC-klasse in",
|
||||
|
||||
select_ammo = "geselecteerde munitie",
|
||||
amount_ammo = "Munitie hoeveelheid",
|
||||
disable_phys = "Schakel natuurkunde uit",
|
||||
none = "Geen",
|
||||
custom_icon = "Aangepast pictogram instellen",
|
||||
weapon_name = "wapen naam",
|
||||
moveup = "Omhoog gaan",
|
||||
movedown = "Naar beneden verplaatsen",
|
||||
movepoint = "Punt verplaatsen",
|
||||
swap = "Ruil",
|
||||
swapmod = "Swap-mod ingeschakeld. Klik om uit te schakelen",
|
||||
copy_from_ent = "Kopiëren van kijkende entiteit",
|
||||
set_pos_self = "Instellen op uw positie",
|
||||
set_pos_aim = "Ingesteld op kijkpunt",
|
||||
spawn_point = "spawn punt",
|
||||
spawn_ang = "Spawn hoek",
|
||||
mark_area = "Markeer gebied",
|
||||
time_wait = "Tijd om te wachten",
|
||||
map_marker = "Selecteer kaartmarkering",
|
||||
in_sec = "in seconden",
|
||||
def_units = "Standaard %s eenheden", -- "Standaard 350 units" het verlof %s zoals het is
|
||||
def_seconds = "Standaard %s seconden", -- "Standaard 10 seconds" het verlof %s zoals het is
|
||||
ent_show_pointer = "Toon aanwijzer boven de entiteit",
|
||||
ent_arcade_style = "Uiterlijk van entiteit in arcadestijl",
|
||||
ent_stnd_style = "Standaard uiterlijk van entiteit",
|
||||
custom_color = "Aangepaste kleur inschakelen",
|
||||
mat_default = "Leeg laten voor standaard materiaal",
|
||||
|
||||
set_ui = "UI instellingen",
|
||||
set_hud = "HUD instellingen",
|
||||
set_hud_pos = "Quest HUD positie",
|
||||
set_hud_themes = "HUD Thema's",
|
||||
set_server = "Server instellingen",
|
||||
set_ui_blur = "Blur achtergrond",
|
||||
set_ui_mono = "Monochrome achtergrond",
|
||||
set_ui_vignette = "Vigneteffect voor achtergrond",
|
||||
set_ui_brightness = "Achtergrondhelderheid",
|
||||
set_ui_color = "Selecteer de hoofdkleur",
|
||||
set_ui_align_left = "Horizontale uitlijning naar links",
|
||||
set_ui_align_right = "Horizontale uitlijning naar rechts",
|
||||
set_ui_align_top = "Verticale uitlijning naar boven",
|
||||
set_ui_align_bottom = "Verticale uitlijning naar beneden",
|
||||
set_ui_offset_h = "Horizontale verschuiving",
|
||||
set_ui_offset_v = "Verticale verschuiving",
|
||||
|
||||
upl_changes = "Wijzigingen uploaden naar server",
|
||||
res_changes = "Wijzigingen herstellen",
|
||||
|
||||
-- Player
|
||||
|
||||
dead = "Je bent dood",
|
||||
time_ex = "Tijd verlopen",
|
||||
vehicle_bum = "Uw voertuig is vernietigd",
|
||||
left_area = "Je hebt het gebied verlaten",
|
||||
m_blew = "You blew up the mission",
|
||||
m_failed = "Missie gefaald",
|
||||
m_success = "Missie geslaagd",
|
||||
m_loop = "Missie update",
|
||||
|
||||
-- Errors
|
||||
|
||||
inv_quest = "Ongeldige zoektocht",
|
||||
team_bl = "Uw team staat op de zwarte lijst",
|
||||
no_players = "Server heeft meer spelers nodig om online te zijn voordat je dit kunt doen",
|
||||
no_players_team = "Server heeft meer spelers nodig voor specifieke team(s) om online te zijn voordat je dit kunt doen",
|
||||
need_admin = "Alleen beheerders kunnen deze actie uitvoeren",
|
||||
|
||||
-- Quests
|
||||
|
||||
active_quest = "Je hebt een actieve zoektocht",
|
||||
inactive_quest = "Je kunt deze zoektocht niet spelen",
|
||||
quest_editor = "Speurtocht Editor",
|
||||
quest_list = "Speurtocht List",
|
||||
quests = "Speurtochts",
|
||||
leave_pnt = "Het verlof point",
|
||||
|
||||
q_editobj = "Doelstellingen bewerken",
|
||||
q_incvobj = "Ongeldige doelstelling",
|
||||
q_setobj = "Ongeldige instellingen",
|
||||
q_newobj = "Nieuwe doelstelling toevoegen",
|
||||
q_editrwd = "Bewerk beloningen",
|
||||
q_rwdeditor = "Belonings editor",
|
||||
q_rwdlist = "Reward list",
|
||||
q_rwdsets = "Belonings lijst",
|
||||
q_findmap = "Zoek een zoektocht van andere kaarten",
|
||||
q_obj_des = "Objectieve beschrijving",
|
||||
q_dist_point = "Afstand tot punt",
|
||||
q_dist_from_point = "Afstand vanaf punt",
|
||||
q_ignore_veh = "Negeer zoektocht voertuig",
|
||||
q_timer_show = "Toon de timer aan speler",
|
||||
q_area_stay = "Speler moet in het gebied blijven",
|
||||
q_start = "Zoektocht starten",
|
||||
q_new = "Nieuwe zoektocht",
|
||||
q_submit = "Zoekopdracht indienen",
|
||||
q_addnew = "Nieuwe zoektocht toevoegen",
|
||||
q_remove = "Zoektocht verwijderen",
|
||||
q_id_unique = "ID moet uniek zijn voor elke zoektocht",
|
||||
q_complete_msg = "Quest voltooid bericht",
|
||||
q_dotime = "Quest doe tijd",
|
||||
q_dotime_ok = "Slaag de zoektocht op tijd einde",
|
||||
q_dotime_fail = "Mislukte zoektocht op tijd einde",
|
||||
q_death_fail = "Mislukte zoektocht bij dood van speler",
|
||||
q_loop = "Loop-queeste genomen",
|
||||
q_loop_reward = "Beloon speler bij elke lus",
|
||||
q_enable = "Zoektocht inschakelen",
|
||||
q_events = "Evenementen",
|
||||
q_eventadd = "Toevoegen Evenementen",
|
||||
q_eventedit = "Evenementen edit",
|
||||
q_eventremove = "Evenement verwijderen",
|
||||
q_in_progress = "Quest in uitvoering",
|
||||
q_time_left = "Tijd over",
|
||||
q_ply_limit = "Spelerslimiet voor de zoektocht",
|
||||
q_ply_team_limit = "Teamlimieten instellen",
|
||||
q_ply_team_need = "benodigde teamspelers",
|
||||
q_ply_need = "Spelersbedrag nodig om te starten",
|
||||
q_play_limit = "Er is een limiet aan hoeveel spelers deze zoektocht kunnen spelen",
|
||||
q_must_stay_area = "Je moet binnen dit gebied blijven, anders mislukt de zoektocht",
|
||||
q_time_wait = "Je moet wachten voordat je deze quest opnieuw kunt spelen",
|
||||
q_dotime_reset = "Reset quest do time",
|
||||
q_dotime_add = "Quest do time toevoegen",
|
||||
q_noreplay = "Je kunt deze zoektocht niet opnieuw spelen",
|
||||
q_dis_replay = "Disable quest replay",
|
||||
q_needquest = "You need to finish another quest first",
|
||||
q_needquest_menu = "Voltooide zoektocht vereisen",
|
||||
q_enterror = "Quest-entiteiten zijn niet voortgekomen, controleer de setup van de missie",
|
||||
q_get = "Je kunt een quest krijgen van deze NPC's",
|
||||
q_noquests = "Er is nog geen manier om speurtochten te spelen :(",
|
||||
q_ent_draw = "Trekafstand van de queeste-entiteit",
|
||||
q_loop_stop_key = "Stop-toets voor doorlopende zoektocht",
|
||||
q_hold_key_stop = "Om quest hold te stoppen [%s]", -- To stop quest hold [P]
|
||||
q_enter_veh = "Voer uw voertuig in",
|
||||
q_npc_link = "Zoektocht koppelen aan een NPC",
|
||||
q_icon68 = "Voer url in naar .PNG pictogram 68x68 px",
|
||||
q_ent_pos_show = "Locatie van entiteiten aan speler tonen",
|
||||
q_area_size = "Oppervlakte",
|
||||
q_area_pos = "Gebiedspositie",
|
||||
q_s_area_size = "Grootte van het zoekgebied",
|
||||
q_s_area_pos = "Zoekgebied positie",
|
||||
q_npc_answer_ok = "Positief antwoord van de speler",
|
||||
q_npc_answer_no = "Negatief antwoord van de speler",
|
||||
q_npc_answer_noq = "Het antwoord van de speler als er geen speurtochten zijn",
|
||||
q_npc_quest_no = "NPC spraak als er geen speurtochten zijn",
|
||||
q_money_give = "Geld om te geven",
|
||||
|
||||
-- Simple NPCs
|
||||
|
||||
npc_editor = "NPC-editor",
|
||||
npc_new = "Nieuwe NPC",
|
||||
npc_select = "Selecteer een NPC",
|
||||
npc_e_speech = "Voer NPC-spraak in",
|
||||
npc_submit = "Aanmaak van NPC bevestigen",
|
||||
npc_update = "NPC bijwerken",
|
||||
npc_remove = "NPC verwijderen",
|
||||
npc_q_enable = "Zoek-NPC's inschakelen",
|
||||
npc_did_open = "Dialoogvenster-ID om te openen",
|
||||
npc_q_target = "NPC is een objectief doelwit",
|
||||
npc_hostile = "Vijandige NPC",
|
||||
|
||||
|
||||
-- Update 1.1.0
|
||||
|
||||
cam_start = "Startparameters camera",
|
||||
cam_end = "Camera einde parameters",
|
||||
cam_pos = "Camera positie",
|
||||
cam_ang = "Camera hoek",
|
||||
cam_fov = "Camerabeeldhoek",
|
||||
cam_effect = "Camerasluitereffect",
|
||||
q_open_target = "Sta andere spelers toe om NPC's te doden",
|
||||
q_npc_mind = "Min. afstand tot NPC's",
|
||||
not_spawned = "niet voortgebracht",
|
||||
dis_text = "Weergegeven tekst",
|
||||
cam_speed = "Bewegingssnelheid camera (langzamer getal - langzamere beweging)",
|
||||
fov_speed = "FOV-veranderingssnelheid (lager getal - langzamere beweging)",
|
||||
category_des = "Missiecategorie, gebruikt om missies te sorteren",
|
||||
sortquests_cat = "Sorteer missies op categorie",
|
||||
search_q = "Zoekopdrachten",
|
||||
quest_tools = "Quest-tools",
|
||||
set_anim = "Animatieset",
|
||||
s_quest_blacklist = "Zwarte lijst voor missies instellen",
|
||||
s_quest_blacklist_desc = "Selecteer missies die deze missie blokkeren als je ze hebt gespeeld",
|
||||
hold_use = "Houden [%s] key",
|
||||
duplicate = "Duplicaat",
|
||||
unsorted = "ongesorteerd",
|
||||
search = "Zoekopdracht",
|
||||
duration = "Looptijd",
|
||||
category = "Categorie",
|
||||
blacklist = "Zwarte lijst",
|
||||
|
||||
|
||||
-- Update 1.2.0
|
||||
|
||||
restore_wep = "Wapens herstellen aan het einde van de zoektocht",
|
||||
e_cmd = "Voer consoleopdracht in",
|
||||
e_args = "Voer opdrachtargumenten in",
|
||||
hint_cmd = "Sneltoetsen aanvullen: \n$uid - UserID, \n$sid - SteamID, \n$s64 - SteamID 64, \n$n - Plaag naam",
|
||||
youaretracked = "Your position is now compromised to other players!",
|
||||
border_rounded = "Rounded border design",
|
||||
border_square = "Vierkant randontwerp",
|
||||
access_settings = "Toegang tot menu",
|
||||
compact_obj = "Compacte doelstellingenlijst voor speurtochten",
|
||||
e_usergroup = "Gebruikersgroep invoeren",
|
||||
ug_isanadmin = "Deze gebruikersgroep heeft al volledige toegang",
|
||||
find_player_id32 = "Vind spelergegevens op SteamID 32",
|
||||
user_data = "Editor voor gebruikersgegevens",
|
||||
access_editors = "Toegang voor quest-editors instellen",
|
||||
access_admins = "Volledige toegang instellen",
|
||||
add_usergroup = "Gebruikersgroep toevoegen",
|
||||
edit_objmod = "Objectvolgorde bewerken",
|
||||
editmod = "Mode bewerken",
|
||||
move = "Beweging",
|
||||
q_errorloop = "Quest ingevoerd in een eindeloze lus",
|
||||
q_cooldow_perply = "Openbare afkoeltimer",
|
||||
q_cooldow_publick = "Afkoeltimer per speler",
|
||||
q_stop_anytime = "Toestaan om de zoektocht handmatig te verlaten",
|
||||
quest_abandon = "Je hebt de zoektocht opgegeven",
|
||||
q_dotime_set = "Tijd voor quest instellen",
|
||||
|
||||
|
||||
-- Ranks
|
||||
|
||||
enter_path_or_url = "Voer pad of url in",
|
||||
rank_edit = "Rangen instellen",
|
||||
rank_list = "Ranglijst",
|
||||
group_list = "Groepslijst",
|
||||
group_addnew = "Nieuwe groep toevoegen",
|
||||
blank = "Blanco",
|
||||
mrs_show_all = "Toon rangen aan alle spelers",
|
||||
mrs_show_team = "Toon rangen alleen aan de groep",
|
||||
mrs_use_sn = "Korte rangnamen weergeven",
|
||||
use_url = "Gebruik URL",
|
||||
enter_srt_name = "Voer korte naam in",
|
||||
srt_name = "Korte naam",
|
||||
mrs_prom_demote = "De volgende 2 opties zijn alleen van invloed op lagere rangen. Spelers met deze rang kunnen andere spelers niet promoveren naar hogere rangen of dezelfde rang.",
|
||||
mrs_whilelist = "Als je een rangvereiste voor een baan selecteert, kan de speler deze baan alleen spelen als zijn rang overeenkomt met de gekozen of hoger.",
|
||||
can_promote = "Kan de spelersrang bevorderen",
|
||||
can_demote = "Kan spelerrang degraderen",
|
||||
edit_player_model = "Aangepast spelersmodel bewerken",
|
||||
enable_player_model = "Aangepast spelermodel inschakelen",
|
||||
disable_player_model = "Aangepast spelermodel uitschakelen",
|
||||
edit_custom_stats = "Aangepaste spelerstatistieken bewerken",
|
||||
autoprom = "Automatisch promoveren naar de volgende rang",
|
||||
in_min = "in minuten",
|
||||
mrs_promoted = "Je bent gepromoveerd",
|
||||
mrs_demoted = "Je bent gedegradeerd",
|
||||
mrs_job_smallrank = "Je moet %s of hoger zijn om als %s. te spelen", -- You must be Sergeant II or higher to play as Watch Commander
|
||||
show_group = "Naam ranggroep weergeven",
|
||||
hide_rank = "Toon alleen rang icoon",
|
||||
mrs_hud_follow = "Draai de gebruikersinterface rond de speler, afhankelijk van de kijkhoek",
|
||||
set_overhead = "Spelers info UI",
|
||||
offline_users = "Offline gebruikers",
|
||||
mrs_noranks = "Je huidige baan heeft geen rangen",
|
||||
mrs_nopower = "Je huidige rang heeft geen extra rechten",
|
||||
promotion = "Promotie",
|
||||
on_duty = "In functie",
|
||||
other_players = "andere spelers",
|
||||
mrs_change_jobname = "Wijzig de taaknaam in de rangnaam",
|
||||
mrs_set_prefix = "Voeg de rangnaam toe als voorvoegsel aan de taaknaam",
|
||||
copy_all_data = "Kopieer alle gegevens",
|
||||
copy_only_stats = "Kopieer alleen statistieken en spelersmodel",
|
||||
}
|
||||
|
||||
-- Other phrases
|
||||
local lng = "nl"
|
||||
|
||||
MSD.Language[lng]["Move to point"] = "Verplaatsen naar punt"
|
||||
MSD.Language[lng]["Leave area"] = "Verlaat gebied"
|
||||
MSD.Language[lng]["Kill NPC"] = "Dood NPC"
|
||||
MSD.Language[lng]["Collect quest ents"] = "Verzamel zoektochten"
|
||||
MSD.Language[lng]["Talk to NPC"] = "Praat met NPC"
|
||||
MSD.Language[lng]["There is no quests available"] = "Er zijn geen speurtochten beschikbaar"
|
||||
MSD.Language[lng]["Give weapon"] = "Geef wapen"
|
||||
MSD.Language[lng]["Give ammo"] = "Geef munitie"
|
||||
MSD.Language[lng]["Strip Weapon"] = "Stripwapen"
|
||||
MSD.Language[lng]["Spawn quest entity"] = "Spawn Quest-entiteit"
|
||||
MSD.Language[lng]["Spawn entity"] = "Spawn entiteit"
|
||||
MSD.Language[lng]["Spawn npc"] = "spawn npc"
|
||||
MSD.Language[lng]["Manage do time"] = "Beheer doe tijd"
|
||||
MSD.Language[lng]["Spawn vehicle"] = "Spawn voertuig"
|
||||
MSD.Language[lng]["Remove vehicle"] = "Voertuig verwijderen"
|
||||
MSD.Language[lng]["Remove all entites"] = "Alle entiteiten verwijderen"
|
||||
MSD.Language[lng]["Set HP"] = "Stel HP"
|
||||
MSD.Language[lng]["Set Armor"] = "Pantser instellen"
|
||||
MSD.Language[lng]["DarkRP Money"] = "DarkRP Geld"
|
||||
MSD.Language[lng]["Quest NPCs are disabled"] = "Quest-NPC's zijn uitgeschakeld"
|
||||
MSD.Language[lng]["You can enable them in settings"] = "Je kunt ze inschakelen in instellingen"
|
||||
366
addons/msd_ui/lua/msd/language/ru.lua
Normal file
366
addons/msd_ui/lua/msd/language/ru.lua
Normal file
@@ -0,0 +1,366 @@
|
||||
MSD.Language["ru"] = {
|
||||
|
||||
-- UI
|
||||
|
||||
lang_name = "Русский",
|
||||
|
||||
ok = "ОК",
|
||||
map = "Карта",
|
||||
off = "Выкл",
|
||||
on = "Вкл",
|
||||
time_add = "Добавить время",
|
||||
type = "Тип",
|
||||
delay = "Задержка",
|
||||
cancel = "Отменить",
|
||||
enable = "Активировать",
|
||||
model = "Модель",
|
||||
name = "Название",
|
||||
settings = "Настройки",
|
||||
editor = "Редактор",
|
||||
red = "Красный",
|
||||
green = "Зеленый",
|
||||
blue = "Синий",
|
||||
admin_menu = "Админ меню",
|
||||
ui_settings = "Настройки интерфейса",
|
||||
active = "Активно",
|
||||
inactive = "Неактивно",
|
||||
disabled = "Отключено",
|
||||
warning = "Внимание!",
|
||||
remove = "Удалить",
|
||||
theme = "Тема",
|
||||
dark_theme = "Темная тема",
|
||||
payment = "Оплата",
|
||||
load_autosave = "Загрузить последнее автосохранение?",
|
||||
load_save = "Загрузить сохранение",
|
||||
create_new = "Создать новый",
|
||||
enable_option = "Включить опцию",
|
||||
main_opt = "Главные опции",
|
||||
copy_data = "Копировать данные",
|
||||
save_chng = "Сохранить изменения",
|
||||
enter_name = "Ввести название",
|
||||
enter_id = "Ввести ID",
|
||||
confirm_action = "Подтвердите пожалуйста действия",
|
||||
check_fpr_errors = "Проверить на ошибки",
|
||||
enter_description = "Ввести описание",
|
||||
cooldown_ok = "Задержка при успехе",
|
||||
cooldown_fail = "Задержка при провале",
|
||||
s_team_whitelist = "Настроить командный вайтлист",
|
||||
whitelist_blacklist = "Вайтлист=блэклист",
|
||||
custom_val = "Установить собственное значение",
|
||||
set_hp_full = "сделать полное ХП",
|
||||
dist_to_close = "Дистанция к ближайшему",
|
||||
|
||||
e_text = "Введите текст",
|
||||
e_number = "Введите номер",
|
||||
e_class = "Введите класс",
|
||||
e_value = "Введите значение",
|
||||
e_blank_dis = "Оставьте пустым чтобы отключить",
|
||||
e_blank_default = "Оставьте пустым чтобы использовать по-умолчанию",
|
||||
e_url = "Введите URL",
|
||||
e_model = "Введите путь модели",
|
||||
e_material = "Введите путь материала",
|
||||
e_wep_class = "Введите класс оружия",
|
||||
e_ent_class = "Введите класс энтити",
|
||||
e_veh_class = "Введите класс транспорта",
|
||||
e_npc_class = "Введите класс НПС",
|
||||
|
||||
select_ammo = "Выбранные патроны",
|
||||
amount_ammo = "Количество патронов",
|
||||
disable_phys = "Отключить физику",
|
||||
none = "Нет",
|
||||
custom_icon = "Выбрать кастомную иконку",
|
||||
weapon_name = "Название оружия",
|
||||
moveup = "Передвинуть вверх",
|
||||
movedown = "Передвинуть вниз",
|
||||
movepoint = "Передвинуть точку",
|
||||
swap = "Поменять",
|
||||
swapmod = "Мод замены включен. Нажмите чтобы отключить",
|
||||
copy_from_ent = "Коп. с предмета",
|
||||
set_pos_self = "Выставить свою поз.",
|
||||
set_pos_aim = "Выставить по взгляду",
|
||||
spawn_point = "Точка спавна",
|
||||
spawn_ang = "Угол спавна",
|
||||
mark_area = "Обозначить территорию",
|
||||
time_wait = "Время ожидания",
|
||||
map_marker = "Выберите маркер карты",
|
||||
in_sec = "В секундах",
|
||||
def_units = "единицы по-умолчанию", -- "По-умолчанию 350 единиц" оставьте %s без изменений
|
||||
def_seconds = "Секунды по-умолчанию", -- "По-умолчанию 10 секунд" оставьте %s без изменений
|
||||
ent_show_pointer = "Показать маркер над энтити",
|
||||
ent_arcade_style = "Аркадный стиль появления энтити",
|
||||
ent_stnd_style = "Стандартное появление энтити",
|
||||
custom_color = "Включить кастомный цвет",
|
||||
mat_default = "Оставьте пустым для материала по-умолчанию",
|
||||
|
||||
set_ui = "UI настройки",
|
||||
set_hud = "HUD настройки",
|
||||
set_hud_pos = "Позиция интерфейса квеста",
|
||||
set_hud_themes = "Темы интерфейса",
|
||||
set_server = "Настройки сервера",
|
||||
set_ui_blur = "Размытие заднего фона",
|
||||
set_ui_mono = "Монохром заднего фона",
|
||||
set_ui_vignette = "Эффект виньетки заднего фона",
|
||||
set_ui_brightness = "Яркость заднего фона",
|
||||
set_ui_color = "Выберите главный цвет",
|
||||
set_ui_align_left = "Горизонтальное выравнивание влево",
|
||||
set_ui_align_right = "Горизонтальное выравнивание вправо",
|
||||
set_ui_align_top = "Вертикальное выравнивание вверх",
|
||||
set_ui_align_bottom = "Вертикальное выравнивание вниз",
|
||||
set_ui_offset_h = "Горизонтальное смещение",
|
||||
set_ui_offset_v = "Вертикальное смещение",
|
||||
|
||||
upl_changes = "Загрузить изменения на сервер",
|
||||
res_changes = "Восстановить изменения",
|
||||
|
||||
-- Player
|
||||
|
||||
dead = "Вы мертвы",
|
||||
time_ex = "Время вышло",
|
||||
vehicle_bum = "Ваш транспорт уничтожен",
|
||||
left_area = "Вы покинули территорию",
|
||||
m_blew = "Ваша миссия раскрыта",
|
||||
m_failed = "Миссия провалена",
|
||||
m_success = "Миссия выполнена",
|
||||
m_loop = "Обновление миссии",
|
||||
|
||||
-- Errors
|
||||
|
||||
inv_quest = "Неправильный квест",
|
||||
team_bl = "Ваша команда в блэклисте",
|
||||
no_players = "Нужно больше игроков онлайн для данного действия",
|
||||
no_players_team = "Нужно больше игроков онлайн в определенных командах для данного действия",
|
||||
need_admin = "Только администратор может это сделать",
|
||||
|
||||
-- Quests
|
||||
|
||||
active_quest = "У Вас есть активный квест",
|
||||
inactive_quest = "Вы не можете взять этот квест",
|
||||
quest_editor = "Редактор квеста",
|
||||
quest_list = "Список квестов",
|
||||
quests = "Квесты",
|
||||
leave_pnt = "Покинуть точку",
|
||||
|
||||
q_editobj = "Редактировать задачи",
|
||||
q_incvobj = "Неправильная задача",
|
||||
q_setobj = "Настройки задачи",
|
||||
q_newobj = "Добавить задачу",
|
||||
q_editrwd = "Редактировать награду",
|
||||
q_rwdeditor = "Редактор награды",
|
||||
q_rwdlist = "Список наград",
|
||||
q_rwdsets = "Настройка наград",
|
||||
q_findmap = "Найти квесты с других карт",
|
||||
q_obj_des = "Описание задачи",
|
||||
q_dist_point = "Расстояние до точки",
|
||||
q_dist_from_point = "Расстояние от точки",
|
||||
q_ignore_veh = "Игнорировать квестовый транспорт",
|
||||
q_timer_show = "Показывать таймер игроку",
|
||||
q_area_stay = "Игрок должен находиться в зоне",
|
||||
q_start = "Начать квест",
|
||||
q_new = "Новый квест",
|
||||
q_submit = "Опубликовать квест",
|
||||
q_addnew = "Добавить новый квест",
|
||||
q_remove = "Удалить квест",
|
||||
q_id_unique = "ID должен быть уникален для каждого квеста",
|
||||
q_complete_msg = "Сообщение при выполнение квеста",
|
||||
q_dotime = "Время квеста",
|
||||
q_dotime_ok = "Засчитать выполнение квеста по истечению таймера",
|
||||
q_dotime_fail = "Засчитать провал квеста по истечению таймера",
|
||||
q_death_fail = "Засчитать провал квеста при смерти игрока",
|
||||
q_loop = "Зациклить задачи квеста",
|
||||
q_loop_reward = "Награждать игрока при выполнении цикла",
|
||||
q_enable = "Включить квест",
|
||||
q_events = "Эвенты",
|
||||
q_eventadd = "Добавить эвент",
|
||||
q_eventedit = "редактировать эвент",
|
||||
q_eventremove = "убрать эвент",
|
||||
q_in_progress = "Квест в работе",
|
||||
q_time_left = "Оставшееся время",
|
||||
q_ply_limit = "Лимит игроков для квеста",
|
||||
q_ply_team_limit = "Установить лимит команд",
|
||||
q_ply_team_need = "Требование к игрокам в команде",
|
||||
q_ply_need = "Требование к кол-ву игроков для старта",
|
||||
q_play_limit = "Установлен лимит на кол-во игроков для квеста",
|
||||
q_must_stay_area = "Вы должны находится в этой зоне или квест будет провален",
|
||||
q_time_wait = "Вы должны подождать прежде чем начинать квест снова",
|
||||
q_dotime_reset = "Сбросить время выполнения квеста",
|
||||
q_dotime_add = "Добавить время выполнения квеста",
|
||||
q_noreplay = "Вы не можете повторить этот квест",
|
||||
q_dis_replay = "Выключить повтор квеста",
|
||||
q_needquest = "Сначала Вы должны закончить другой квест",
|
||||
q_needquest_menu = "Необходим выполненный квест",
|
||||
q_enterror = "Энтити квеста не заспавнились, проверьте настройки квеста",
|
||||
q_get = "Вы можете взять квест у этих НПС",
|
||||
q_noquests = "Пока что нет способа начать квесты :(",
|
||||
q_ent_draw = "Дистанция прорисовки квестового энтити",
|
||||
q_loop_stop_key = "Кнопка остановки повторяемого квеста",
|
||||
q_hold_key_stop = "Чтобы остановить квест удерживайте [%s]", -- Чтобы остановить квест удерживайте [P]
|
||||
q_enter_veh = "Садитесь в свое транспортное средство",
|
||||
q_npc_link = "Привязать квест к НПС",
|
||||
q_icon68 = "Введите url для .PNG иконки 68x68 пикс.",
|
||||
q_ent_pos_show = "Показывать локацию энтити игроку",
|
||||
q_area_size = "Размер зоны",
|
||||
q_area_pos = "Позиция зоны",
|
||||
q_s_area_size = "Поиск размера зоны",
|
||||
q_s_area_pos = "Поиск позиции зоны",
|
||||
q_npc_answer_ok = "Положительный ответ игрока",
|
||||
q_npc_answer_no = "Отрицательный ответ игрока",
|
||||
q_npc_answer_noq = "Ответ игрока при отсутствии квестов",
|
||||
q_npc_quest_no = "Реплика НПСа при отсутствии квестов",
|
||||
q_money_give = "Деньги для выдачи",
|
||||
|
||||
-- Simple NPCs
|
||||
|
||||
npc_editor = "Редактор НПС",
|
||||
npc_new = "Новый НПС",
|
||||
npc_select = "Выберите НПС",
|
||||
npc_e_speech = "Введите реплику НПС",
|
||||
npc_submit = "Подтвердите создание НПС",
|
||||
npc_update = "Обновить НПС",
|
||||
npc_remove = "Убрать НПС",
|
||||
npc_q_enable = "Включить квестовых НПС",
|
||||
npc_did_open = "ID диалога для открытия",
|
||||
npc_q_target = "Цель задачи - НПС",
|
||||
npc_hostile = "Врадждебный НПС",
|
||||
|
||||
-- Update 1.1.0
|
||||
|
||||
duration = "Продолжительность",
|
||||
dis_text = "Отображаемый текст",
|
||||
cam_speed = "Скорость движения камеры (меньше число - медленнее движение)",
|
||||
fov_speed = "Скорость изменения поля зрения (меньше число - медленнее движение)",
|
||||
cam_start = "Параметры запуска камеры",
|
||||
cam_end = "Параметры конца камеры",
|
||||
cam_pos = "Позиция камеры",
|
||||
cam_ang = "Угол камеры",
|
||||
cam_fov = "Поля зрения камеры",
|
||||
cam_effect = "Эффект затвора камеры",
|
||||
not_spawned = "не создан",
|
||||
q_open_target = "Разрешить другим игрокам убивать NPC",
|
||||
q_npc_mind = "Мин. расстояние до NPC",
|
||||
duplicate = "Дублировать",
|
||||
hold_use = "Удерживайте кнопку [%s]",
|
||||
category = "Категория",
|
||||
category_des = "Категория квестов, используемая для сортировки квестов",
|
||||
sortquests_cat = "Сортировать квесты по категориям",
|
||||
unsorted = "Без Категория",
|
||||
search = "Поиск",
|
||||
search_q = "Искать квесты",
|
||||
quest_tools = "Инструменты",
|
||||
set_anim = "Установить анимацию",
|
||||
s_quest_blacklist = "Установить черный список квестов",
|
||||
blacklist = "Черный список",
|
||||
s_quest_blacklist_desc = "Выберите квесты, которые заблокируют этот квест, если вы их сыграли",
|
||||
|
||||
-- Update 1.2.0
|
||||
|
||||
restore_wep = "Восстановить оружие по окончании квеста",
|
||||
e_cmd = "Введите консольную команду",
|
||||
e_args = "Введите аргументы команды",
|
||||
hint_cmd = "Параметры для автозаполнение: \n$uid - UserID, \n$sid - SteamID, \n$s64 - SteamID 64, \n$n - Имя игрока",
|
||||
youaretracked = "Ваше местоположение теперь видно другим игрокам!",
|
||||
border_rounded = "Дизайн с закругленными краями",
|
||||
border_square = "Дизайн с квадратными краями",
|
||||
access_settings = "Доступ к меню",
|
||||
compact_obj = "Компактный список задач для квестов",
|
||||
e_usergroup = "Введите группу пользователей",
|
||||
ug_isanadmin = "Эта группа пользователей уже имеет полный доступ",
|
||||
find_player_id32 = "Найти данные игрока по SteamID 32",
|
||||
user_data = "Редактор данных игрока",
|
||||
access_editors = "Установить доступ для редакторов квестов",
|
||||
access_admins = "Установить полный доступ",
|
||||
add_usergroup = "Добавить группу пользователей",
|
||||
edit_objmod = "Изменить порядок задач",
|
||||
editmod = "Режим редактирования",
|
||||
move = "Передвинуть",
|
||||
q_errorloop = "Квест вошел в бесконечный цикл",
|
||||
q_cooldow_perply = "Публичный таймер",
|
||||
q_cooldow_publick = "Индивидуальный таймер",
|
||||
q_stop_anytime = "Разрешить отказаться от квеста вручную",
|
||||
quest_abandon = "Вы отказались от квеста",
|
||||
q_dotime_set = "Установить время выполнения квеста",
|
||||
|
||||
|
||||
-- Ranks
|
||||
|
||||
enter_path_or_url = "Введите путь или веб адрес",
|
||||
rank_edit = "Настройка рангов",
|
||||
rank_list = "Список рангов",
|
||||
group_list = "Список групп",
|
||||
group_addnew = "Добавить новую группу",
|
||||
blank = "Пустой",
|
||||
mrs_show_all = "Показывать ранги всем игрокам",
|
||||
mrs_show_team = "Показывать ранги только группе",
|
||||
mrs_use_sn = "Отображать короткие названия рангов",
|
||||
use_url = "Использовать веб адрес",
|
||||
enter_srt_name = "Введите короткое имя",
|
||||
srt_name = "Короткое имя",
|
||||
mrs_prom_demote = "Следующие 2 параметра влияют только на более низкие ранги. Игроки с этим рангом не смогут повышать других игроков до более высоких рангов или того же ранга.",
|
||||
mrs_whilelist = "Если вы выберете требование ранга для профессии, игрок сможет играть за эту профессию, только если его ранг соответсвует выбранному или выше.",
|
||||
can_promote = "Может повышать ранг игрока",
|
||||
can_demote = "Может понижать ранг игрока",
|
||||
edit_player_model = "Настроить модель игрока",
|
||||
enable_player_model = "Включить уникальную модель игрока",
|
||||
disable_player_model = "Выключить уникальную модель игрока",
|
||||
edit_custom_stats = "Настроить параметры игрока",
|
||||
autoprom = "Автоматическое повышение до следующего ранга",
|
||||
in_min = "в минутах",
|
||||
mrs_promoted = "Вы получили повышение",
|
||||
mrs_demoted = "Вы были понижены",
|
||||
mrs_job_smallrank = "Вы должны быть %s или выше что бы играть за %s",
|
||||
show_group = "Отображение названия группы рангов",
|
||||
hide_rank = "Отображать только значок ранга",
|
||||
mrs_hud_follow = "Интерфейс игрока следует за камерой",
|
||||
set_overhead = "Интерфейс информации об игроке",
|
||||
offline_users = "Офлайн-пользователи",
|
||||
mrs_noranks = "Ваша текущая работа не имеет званий",
|
||||
mrs_nopower = "У вашего текущего ранга нет дополнительных разрешений",
|
||||
promotion = "Повышение",
|
||||
on_duty = "На службе",
|
||||
other_players = "Другие игроки",
|
||||
mrs_change_jobname = "Поменять название профессии на название ранга",
|
||||
mrs_set_prefix = "Добавьте ранг в качестве префикса к названию профессии",
|
||||
mrs_change_plyname = "Поменять имя игрока на название ранга",
|
||||
mrs_set_prefix_ply = "Добавьте ранг в качестве префикса к имени игрока",
|
||||
|
||||
promote_limit = "Ограничение повышения",
|
||||
demote_limit = "Ограничение понижения",
|
||||
salary_value = "Заработная плата",
|
||||
salary_set = "Установить данное значение в качестве зарплаты",
|
||||
salary_add = "Добавить указанное значение к зарплате",
|
||||
salary_multiply = "Умножить зарплату на заданное значение",
|
||||
force_team = "Принудительно cменить команду на",
|
||||
mrs_hud_3d2d = "Использовать 3D2D интерфейс",
|
||||
mrs_chat_command = "Чат-команда для открытия меню рангов",
|
||||
mrs_promote_command = "Чат-команда для повышения игрока",
|
||||
mrs_demote_command = "Чат-команда для понижения игрока",
|
||||
}
|
||||
|
||||
-- Other phrases
|
||||
local lng = "ru"
|
||||
|
||||
MSD.Language[lng]["Move to point"] = "Выдвигайтесь к точке"
|
||||
MSD.Language[lng]["Leave area"] = "Покиньте территорию"
|
||||
MSD.Language[lng]["Kill NPC"] = "Убейте НПС"
|
||||
MSD.Language[lng]["Collect quest ents"] = "Соберите квестовые энтити"
|
||||
MSD.Language[lng]["Talk to NPC"] = "Поговорите с НПС"
|
||||
MSD.Language[lng]["Wait time"] = "Ожидать время"
|
||||
|
||||
MSD.Language[lng]["There is no quests avalible"] = "На данный момент квесты отсутствуют"
|
||||
|
||||
MSD.Language[lng]["Give weapon"] = "Дать оружие"
|
||||
MSD.Language[lng]["Give ammo"] = "Дать патроны"
|
||||
MSD.Language[lng]["Strip Weapon"] = "Забрать оружие"
|
||||
MSD.Language[lng]["Spawn quest entity"] = "Заспавнить квестовый энтити"
|
||||
MSD.Language[lng]["Spawn entity"] = "Заспавнить энтити"
|
||||
MSD.Language[lng]["Spawn npc"] = "Заспавнить НПС"
|
||||
MSD.Language[lng]["Manage do time"] = "Управление временем для квеста"
|
||||
MSD.Language[lng]["Spawn vehicle"] = "Заспавнить транспорт"
|
||||
MSD.Language[lng]["Remove vehicle"] = "Убрать транспорт"
|
||||
MSD.Language[lng]["Remove all entites"] = "Убрать все энтити"
|
||||
MSD.Language[lng]["Set HP"] = "Установить ХП"
|
||||
MSD.Language[lng]["Set Armor"] = "Установить броню"
|
||||
|
||||
MSD.Language[lng]["DarkRP money"] = "DarkRP Валюта"
|
||||
|
||||
MSD.Language[lng]["Quest NPCs are disabled"] = "Квестовые НПС выключены"
|
||||
MSD.Language[lng]["You can enable them in settings"] = "Вы можете включить их в настройках"
|
||||
351
addons/msd_ui/lua/msd/language/tr.lua
Normal file
351
addons/msd_ui/lua/msd/language/tr.lua
Normal file
@@ -0,0 +1,351 @@
|
||||
MSD.Language["tr"] = {
|
||||
|
||||
lang_name = "Türkçe",
|
||||
|
||||
ok = "Tamam",
|
||||
map = "Harita",
|
||||
off = "Kapalı",
|
||||
on = "Açık",
|
||||
time_add = "Eklenecek zaman",
|
||||
type = "Tür",
|
||||
delay = "Gecikme",
|
||||
cancel = "İptal",
|
||||
enable = "Aktif Et",
|
||||
model = "Model",
|
||||
name = "İsim",
|
||||
settings = "Ayarlar",
|
||||
editor = "Düzenleyici",
|
||||
red = "Kırmızı",
|
||||
green = "Yeşil",
|
||||
blue = "Mavi",
|
||||
admin_menu = "Yetkili Menüsü",
|
||||
ui_settings = "Arayüz Ayarları",
|
||||
active = "Aktif",
|
||||
inactive = "Deaktif",
|
||||
disabled = "Devre Dışı",
|
||||
warning = "Uyarı!",
|
||||
remove = "Kaldır",
|
||||
theme = "Tema",
|
||||
dark_theme = "Karanlık Tema",
|
||||
payment = "Ödeme",
|
||||
load_autosave = "Son kaydı yükleyecek misin?",
|
||||
load_save = "Kaydı yükle",
|
||||
create_new = "Yeni oluştur",
|
||||
enable_option = "Ayarı aktif et",
|
||||
main_opt = "Ana ayarlar",
|
||||
copy_data = "Veriyi kopyala",
|
||||
save_chng = "Değişiklikleri kaydet",
|
||||
enter_name = "İsimi giriniz",
|
||||
enter_id = "ID giriniz",
|
||||
confirm_action = "Eylemlerinizi lütfen onaylayınız",
|
||||
check_fpr_errors = "Hataları kontrol et",
|
||||
enter_description = "Açıklama gir",
|
||||
cooldown_ok = "Başarı sonucu bekleme süresi",
|
||||
cooldown_fail = "Hata sonucu bekleme süresi",
|
||||
s_team_whitelist = "Takım beyaz listesini ayarla",
|
||||
whitelist_blacklist = "Beyaz liste kara liste",
|
||||
custom_val = "Özel değer ayarla",
|
||||
set_hp_full = "Sağlık değerini fulle",
|
||||
dist_to_close = "En yakınına mesafe",
|
||||
|
||||
e_text = "Yazı giriniz",
|
||||
e_number = "Sayı giriniz",
|
||||
e_class = "Sınıf giriniz",
|
||||
e_value = "Değer giriniz",
|
||||
e_blank_dis = "Devre dışı bırakmak için boş bırakın",
|
||||
e_blank_default = "Varsayılan ayarlar için boş bırakın",
|
||||
e_url = "Bağlantı giriniz",
|
||||
e_model = "Model uzantısını giriniz",
|
||||
e_material = "Materyal uzantısını giriniz",
|
||||
e_wep_class = "Silah sınıfını giriniz",
|
||||
e_ent_class = "Varlık sınıfını giriniz",
|
||||
e_veh_class = "Araç sınıfını giriniz",
|
||||
e_npc_class = "NPC sınıfını giriniz",
|
||||
|
||||
select_ammo = "Seçili mermi",
|
||||
amount_ammo = "Mermi asyısı",
|
||||
disable_phys = "Fiziği devre dışı bırak",
|
||||
none = "Hiç",
|
||||
custom_icon = "Özel ikon ayarla",
|
||||
weapon_name = "Silah isim",
|
||||
moveup = "Yukarı git",
|
||||
movedown = "Aşağıya git",
|
||||
movepoint = "Noktayı hareket ettir",
|
||||
swap = "Değiş",
|
||||
swapmod = "Değişim modu aktif. Tıklayarak devre dışı bırak",
|
||||
copy_from_ent = "Baktığın varlıktan kopyala",
|
||||
set_pos_self = "Pozisyonunu ayarla",
|
||||
set_pos_aim = "Baktığın noktaya ayarla",
|
||||
spawn_point = "Nokta oluştur",
|
||||
spawn_ang = "Açı oluştur",
|
||||
mark_area = "Alanı işaretle",
|
||||
time_wait = "Bekleme süresi",
|
||||
map_marker = "Harita işaretçisini ayarla",
|
||||
in_sec = "saniye olarak",
|
||||
def_units = "Varsayılan %s ünit", -- "Default 350 units" leave %s as is
|
||||
def_seconds = "Varasyılan %s saniye", -- "Default 10 seconds" leave %s as is
|
||||
ent_show_pointer = "İaşretçiyi varlığın üstünde göstr",
|
||||
ent_arcade_style = "Arcade-tarzında entitiy görünüşü",
|
||||
ent_stnd_style = "Standart varlık görünüşü",
|
||||
custom_color = "Özel rengi aktif et",
|
||||
mat_default = "Varsayılan materyal için boş bırak",
|
||||
|
||||
set_ui = "Kullanıcı Arayüzü ayarları",
|
||||
set_hud = "HUD ayarları",
|
||||
set_hud_pos = "Görev HUD'u ayarları",
|
||||
set_hud_themes = "HUD Temaları",
|
||||
set_server = "Sunucu ayarları",
|
||||
set_ui_blur = "Arkaplanı bulanıklaştır",
|
||||
set_ui_mono = "Monokrom arkaplan",
|
||||
set_ui_vignette = "Arka plan için vignette efekti",
|
||||
set_ui_brightness = "Arkaplan parlaklığı",
|
||||
set_ui_color = "Ana rengi seç",
|
||||
set_ui_align_left = "Sola yatay hizalama",
|
||||
set_ui_align_right = "Sağa yatay hizalama",
|
||||
set_ui_align_top = "Yukarıya dikey hizalama",
|
||||
set_ui_align_bottom = "Aşağıya dikey hizalama",
|
||||
set_ui_offset_h = "Yatay Ofset",
|
||||
set_ui_offset_v = "Dikey Ofset",
|
||||
|
||||
upl_changes = "Değişiklikleri sunucuya yükle",
|
||||
res_changes = "Değişimleri eski haline getir",
|
||||
|
||||
-- Player
|
||||
|
||||
dead = "Öldün",
|
||||
time_ex = "Zaman doldu",
|
||||
vehicle_bum = "Aracın yok oldu",
|
||||
left_area = "Bölgeyi terk ettin",
|
||||
m_blew = "Görevi batırdın",
|
||||
m_failed = "Görev başarısız",
|
||||
m_success = "Görev başarılı",
|
||||
m_loop = "Görev güncellemesi",
|
||||
|
||||
-- Errors
|
||||
|
||||
inv_quest = "Geçersiz görev",
|
||||
team_bl = "Takımın karalistede",
|
||||
no_players = "Bunu yapman için sunucuda daha fazla oyuncu olması gerekmekte",
|
||||
no_players_team = "Bunu yapman için belirli takımlarda daha fazla oyuncu olması gerekmekte",
|
||||
need_admin = "Sadece adminler bu eylemi gerçekleştirebilir",
|
||||
|
||||
-- Quests
|
||||
|
||||
active_quest = "Aktif bir görevin var",
|
||||
inactive_quest = "Bu görevi oynayamazsın",
|
||||
quest_editor = "Görev Düzenleyicisi",
|
||||
quest_list = "Görev Listesi",
|
||||
quests = "Görevler",
|
||||
leave_pnt = "Noktadan ayrıl",
|
||||
|
||||
q_editobj = "hedefleri düzenle",
|
||||
q_incvobj = "Geçersiz hedef",
|
||||
q_setobj = "Hedef ayarları",
|
||||
q_newobj = "Yeni bir hedef oluştur",
|
||||
q_editrwd = "Ödülleri düzenle",
|
||||
q_rwdeditor = "Ödül Düzenleyicisir",
|
||||
q_rwdlist = "Ödül Listesi",
|
||||
q_rwdsets = "Ödül Ayarları",
|
||||
q_findmap = "Diğer haritalardan görev bul",
|
||||
q_obj_des = "Hedef açıklaması",
|
||||
q_dist_point = "Noktaya olan uzaklık",
|
||||
q_dist_from_point = "Noktadan olan uzaklık",
|
||||
q_ignore_veh = "Görev aracını görmezden gel",
|
||||
q_timer_show = "Oyuncuya zamanlayıcıyı göster",
|
||||
q_area_stay = "Oyuncu bölgede kalmalı",
|
||||
q_start = "Görevi başlat",
|
||||
q_new = "Yeni görev",
|
||||
q_submit = "Görevi sun",
|
||||
q_addnew = "Yeni görev ekle",
|
||||
q_remove = "Görevi kaldır",
|
||||
q_id_unique = "Her bir görevin ID'si kendine özel olmalı",
|
||||
q_complete_msg = "Görevi bitirme mesajı",
|
||||
q_dotime = "Görev süresi",
|
||||
q_dotime_ok = "Süre bitince görev başarıyla tamamlansın",
|
||||
q_dotime_fail = "Süre bitince görev başarısız olsun",
|
||||
q_death_fail = "Oyuncu öldüğünde görevi iptal et",
|
||||
q_loop = "Görevleri tekrara al",
|
||||
q_loop_reward = "Her bir tekrarda oyuncuyu ödüllendir",
|
||||
q_enable = "Görevi aktif et",
|
||||
q_events = "Etkinlikler",
|
||||
q_eventadd = "Etkinlik Ekle",
|
||||
q_eventedit = "etkinlik düzenle",
|
||||
q_eventremove = "Etkinlik kaldır",
|
||||
q_in_progress = "Görev işlem sürecinde",
|
||||
q_time_left = "Kalan süre",
|
||||
q_ply_limit = "Görev için azami oyuncu sayısı",
|
||||
q_ply_team_limit = "Takım limitlerini ayarla",
|
||||
q_ply_team_need = "Gerekli takım oyuncuları",
|
||||
q_ply_need = "Başlamak için gereken oyuncu sayısı",
|
||||
q_play_limit = "Görevi kaç oyuncunun oynayabileceğinin limiti",
|
||||
q_must_stay_area = "Bu bölgenin içinde kalman gerekiyor yoksa görev başarısız olur",
|
||||
q_time_wait = "Bu görevi tekrarlaman için beklemen lazım",
|
||||
q_dotime_reset = "Görevin süresini sıfırla",
|
||||
q_dotime_add = "Göreve yapma süresi ekle",
|
||||
q_noreplay = "Bu görevi tekrar yapamazsın",
|
||||
q_dis_replay = "Görev tekrarını iptal et",
|
||||
q_needquest = "İlk başka bir görevi yapman gerekmekte",
|
||||
q_needquest_menu = "Bitirilmiş görev gerekmektedir",
|
||||
q_enterror = "Görev varlıkları oluşmamakta, görev kurulumunu kontrol et",
|
||||
q_get = "Bu NPC'lerden görev alabilirsin",
|
||||
q_noquests = "Görev yapabileceğin herhangi bir yol bulunmamakta :(",
|
||||
q_ent_draw = "Görev varlığı çizim mesafesi",
|
||||
q_loop_stop_key = "Görev tekrarlama durdurma tuşu",
|
||||
q_hold_key_stop = "görevi durdurmak için [%s] tuşuna basılı tutun", -- To stop quest hold [P]
|
||||
q_enter_veh = "Aracına bin",
|
||||
q_npc_link = "Görevi bir NPC'ye bağla",
|
||||
q_icon68 = ".PNG ve 68x68 pixel olucak şekilde bir bağlantı giriniz",
|
||||
q_ent_pos_show = "Varlık lokasyonlarını oyunculara göster",
|
||||
q_area_size = "Bölge boyutu",
|
||||
q_area_pos = "Bölge pozisyonu",
|
||||
q_s_area_size = "Bölge boyutunu ara",
|
||||
q_s_area_pos = "Bölge pozisyonunu ara",
|
||||
q_npc_answer_ok = "Oyuncunun pozitif cevabı",
|
||||
q_npc_answer_no = "Oyuncunun negatif cevabı",
|
||||
q_npc_answer_noq = "Görev yoksa oyuncunun cevabı",
|
||||
q_npc_quest_no = "Görev yoksa NPC'nin konuşması",
|
||||
q_money_give = "Verilecek para",
|
||||
|
||||
-- Simple NPCs
|
||||
|
||||
npc_editor = "NPC Düzenleyicisi",
|
||||
npc_new = "Yeni NPC",
|
||||
npc_select = "Bir NPC seçin",
|
||||
npc_e_speech = "NPC konuşması giriniz",
|
||||
npc_submit = "NPC oluşumunu onayla",
|
||||
npc_update = "NPC'yi güncelle",
|
||||
npc_remove = "NPC'yi kaldır",
|
||||
npc_q_enable = "Görev NPC'lerini aktif et",
|
||||
npc_did_open = "Dialog ID'si açılırken gereksin",
|
||||
npc_q_target = "NPC objektif bir hedef",
|
||||
npc_hostile = "Düşman NPC",
|
||||
|
||||
|
||||
-- Update 1.1.0
|
||||
|
||||
cam_start = "Kamera başlama parametreleri",
|
||||
cam_end = "Kamera parametrelerini bitir",
|
||||
cam_pos = "Kamera pozisyonu",
|
||||
cam_ang = "Kamera açısı",
|
||||
cam_fov = "Kamera FOV'u",
|
||||
cam_effect = "Kamera kapanma efekti",
|
||||
q_open_target = "Diğer oyuncuların NPCleri öldürmelerine izin ver",
|
||||
q_npc_mind = "NPClere olan Min. uzaklık",
|
||||
not_spawned = "spawnlanmamış",
|
||||
dis_text = "Sergilenen Yazı",
|
||||
cam_speed = "Kamera hızı (düşük sayı - düşük hız)",
|
||||
fov_speed = "FOV değişme hızı (düşük sayı - düşük hız)",
|
||||
category_des = "Görev kategorisi, görevleri sınıflamak için kullanılır",
|
||||
sortquests_cat = "Görevleri kategoriye göre düzenle",
|
||||
search_q = "Görev ara",
|
||||
quest_tools = "Görev araçları",
|
||||
set_anim = "Animasyon ayarla",
|
||||
s_quest_blacklist = "Görev karalistesi oluştur",
|
||||
s_quest_blacklist_desc = "Bitirildiğinde bu görevi engelleyecek görevleri seçin",
|
||||
hold_use = "Basılı Tut [%s]",
|
||||
duplicate = "Çiftle",
|
||||
unsorted = "Sınıflandırılmamış",
|
||||
search = "Ara",
|
||||
duration = "Süre",
|
||||
category = "Kategori",
|
||||
blacklist = "Karaliste",
|
||||
|
||||
|
||||
-- Update 1.2.0
|
||||
|
||||
restore_wep = "Görev sonunda silahları geri yükle",
|
||||
e_cmd = "Konsol komutunu girin",
|
||||
e_args = "Komut bağımsız değişkenlerini girin",
|
||||
hint_cmd = "Otomatik doldurma kısayolları: \n$uid - Kullanıcı Kimliği, \n$sid - SteamID, \n$s64 - SteamID 64, \n$n - Oyuncu adı",
|
||||
youaretracked = "Konumunuzu artık diğer oyuncular da görebiliyor!",
|
||||
border_rounded = "Yuvarlak kenarlık tasarımı",
|
||||
border_square = "Kare kenarlık tasarımı",
|
||||
access_settings = "Menü erişimi",
|
||||
compact_obj = "Görevler için kompakt hedef listesi",
|
||||
e_usergroup = "Kullanıcı grubu girin",
|
||||
ug_isanadmin = "Bu kullanıcı grubu zaten tam erişime sahip",
|
||||
find_player_id32 = "SteamID 32 ile oyuncu verilerini bulun",
|
||||
user_data = "Kullanıcı verileri düzenleyicisi",
|
||||
access_editors = "Görev düzenleyicilerinin erişimini ayarla",
|
||||
access_admins = "Tam erişimi ayarla",
|
||||
add_usergroup = "Kullanıcı grubu ekle",
|
||||
edit_objmod = "Objektif sırasını düzenle",
|
||||
editmod = "Düzenleme modu",
|
||||
move = "Taşı",
|
||||
q_errorloop = "Görev sonsuz bir döngüye girdi",
|
||||
q_cooldow_perply = "Genel bekleme süresi sayacı",
|
||||
q_cooldow_publick = "Oyuncu Başına bekleme süresi sayacı",
|
||||
q_stop_anytime = "Görevi manuel olarak bırakmaya izin ver",
|
||||
quest_abandon = "Görevi terk ettin",
|
||||
q_dotime_set = "Görev yapma zamanını ayarla",
|
||||
|
||||
-- Ranks
|
||||
|
||||
enter_path_or_url = "Klasör yolu ya da url girin",
|
||||
rank_edit = "Rütbe Ayarla",
|
||||
rank_list = "Rütbe Listesi",
|
||||
group_list = "Grup Listesi",
|
||||
group_addnew = "Yeni grup ekle",
|
||||
blank = "Boş",
|
||||
mrs_show_all = "Tüm oyunculara rütbeleri göster",
|
||||
mrs_show_team = "Sadece gruplara rütbeleri göster",
|
||||
mrs_use_sn = "Rütbe kısaltmalarını göster",
|
||||
use_url = "URL kullan",
|
||||
enter_srt_name = "Kısaltma gir",
|
||||
srt_name = "Kısaltma",
|
||||
mrs_prom_demote = "Sıradaki 2 ayar sadece düşük rütbeleri etkileyecek. Bu rütbeye sahip oyuncular, diğer oyuncuları daha yüksek rütbelere veya aynı rütbeye terfi ettiremezler.",
|
||||
mrs_whilelist = "Bir iş için rütbe gereksinimini seçerseniz, oyuncu bu işi ancak rütbesi seçilen veya daha yüksek olanla eşleşirse oynayabilir.",
|
||||
can_promote = "Oyuncuları terfi ettirebilir",
|
||||
can_demote = "Oyuncuların rütbesini düşürebilir",
|
||||
edit_player_model = "Özel oyuncu modelini düzenle",
|
||||
enable_player_model = "Özel oyuncu modelini aktifleştir",
|
||||
disable_player_model = "Özel oyuncu modelini deaktif et",
|
||||
edit_custom_stats = "Özel oyuncu istatistiklerini düzenle",
|
||||
autoprom = "Sonraki rütbeye otomatik yükselt",
|
||||
in_min = "dakika içinde",
|
||||
mrs_promoted = "Terfi aldın",
|
||||
mrs_demoted = "Rütben düşürüldü",
|
||||
mrs_job_smallrank = "%s ya da daha üst bir rütbeye değilsen %s olarak oynayamazsın", -- You must be Sergeant II or higher to play as Watch Commander
|
||||
show_group = "Rütbe grup ismini göster",
|
||||
hide_rank = "Sadece rütbe ikonunu göster",
|
||||
mrs_hud_follow = "Arayüzü oyuncunun bakış açısına göre döndür",
|
||||
set_overhead = "Oyuncu bilgisi arayüzü",
|
||||
offline_users = "Çevrimdışı oyuncular",
|
||||
mrs_noranks = "Şu anki mesleğinin rütbesi yok",
|
||||
mrs_nopower = "Şu anki rütbenin ekstra izini yok",
|
||||
promotion = "Terfi",
|
||||
on_duty = "Görevde",
|
||||
other_players = "Diğer oyuncular",
|
||||
mrs_change_jobname = "Meslek ismini rütbe ismi olarak değiştir",
|
||||
mrs_set_prefix = "Rütbe ismini mesleğin başına ekle",
|
||||
copy_all_data = "Bütün verileri kopyala",
|
||||
copy_only_stats = "Sadece istatistikleri ve oyuncu modelini kopyala",
|
||||
mrs_change_plyname = "Oyuncunun ismini rütbe ismi yap",
|
||||
mrs_set_prefix_ply = "Rütbe ismini önek gibi oyuncunun isminin önüne koy",
|
||||
|
||||
}
|
||||
|
||||
-- Other phrases
|
||||
local lng = "tr"
|
||||
|
||||
MSD.Language[lng]["Move to point"] = "Noktaya git"
|
||||
MSD.Language[lng]["Leave area"] = "Bölgeden ayrıl"
|
||||
MSD.Language[lng]["Kill NPC"] = "NPC'yi öldür"
|
||||
MSD.Language[lng]["Collect quest ents"] = "Görev varlıklarını topla"
|
||||
MSD.Language[lng]["Talk to NPC"] = "NPC ile konuş"
|
||||
MSD.Language[lng]["There is no quests available"] = "Mevcut görev bulunmamakta"
|
||||
MSD.Language[lng]["Give weapon"] = "Silah ver"
|
||||
MSD.Language[lng]["Give ammo"] = "Mermi ver"
|
||||
MSD.Language[lng]["Strip Weapon"] = "Silaha el koy"
|
||||
MSD.Language[lng]["Spawn quest entity"] = "Görev varlığı oluştur"
|
||||
MSD.Language[lng]["Spawn entity"] = "Varlık oluştur"
|
||||
MSD.Language[lng]["Spawn npc"] = "NPC oluştur"
|
||||
MSD.Language[lng]["Manage do time"] = "Yapım süresini yönet"
|
||||
MSD.Language[lng]["Spawn vehicle"] = "Araç oluştur"
|
||||
MSD.Language[lng]["Remove vehicle"] = "Aracı kaldır"
|
||||
MSD.Language[lng]["Remove all entites"] = "Tüm varlıkları kaldır"
|
||||
MSD.Language[lng]["Set HP"] = "Can Ayarla"
|
||||
MSD.Language[lng]["Set Armor"] = "Zırh Ayarla"
|
||||
MSD.Language[lng]["DarkRP Money"] = "DarkRP Parası"
|
||||
MSD.Language[lng]["Quest NPCs are disabled"] = "Görev NPC'leri devre dışı"
|
||||
MSD.Language[lng]["You can enable them in settings"] = "Ayarlardan aktif edebilirsin"
|
||||
150
addons/msd_ui/lua/msd/sh_config.lua
Normal file
150
addons/msd_ui/lua/msd/sh_config.lua
Normal file
@@ -0,0 +1,150 @@
|
||||
-- ┏━┓┏━┳━━━┳━━━┓───────────────────────
|
||||
-- ┃┃┗┛┃┃┏━┓┣┓┏┓┃───────────────────────
|
||||
-- ┃┏┓┏┓┃┗━━┓┃┃┃┃──By MacTavish <3──────
|
||||
-- ┃┃┃┃┃┣━━┓┃┃┃┃┃───────────────────────
|
||||
-- ┃┃┃┃┃┃┗━┛┣┛┗┛┃───────────────────────
|
||||
-- ┗┛┗┛┗┻━━━┻━━━┛───────────────────────
|
||||
-- MIT License
|
||||
-- Copyright (c) 2021 Ayden Mactavish
|
||||
-- Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
-- of this software and associated documentation files (the "Software"), to deal
|
||||
-- in the Software without restriction, including without limitation the rights
|
||||
-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
-- copies of the Software, and to permit persons to whom the Software is
|
||||
-- furnished to do so, subject to the following conditions:
|
||||
-- The above copyright notice and this permission notice shall be included in all
|
||||
-- copies or substantial portions of the Software.
|
||||
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
-- SOFTWARE.
|
||||
MSD.Config.Language = "en"
|
||||
MSD.Config.Rounded = 8
|
||||
MSD.Config.Blur = false
|
||||
MSD.Config.Vignette = false
|
||||
MSD.Config.BgrColor = Color(45, 45, 45)
|
||||
|
||||
MSD.Config.MainColor = {
|
||||
["p"] = Color(0, 155, 255),
|
||||
["r"] = Color(255, 0, 0),
|
||||
["rd"] = Color(220, 0, 0),
|
||||
}
|
||||
|
||||
MSD.Config.HUD = {
|
||||
ShowIcon = false,
|
||||
Icon = "https://i.imgur.com/ND3b6Do.png",
|
||||
Text = "MacNCo",
|
||||
X = 0.5,
|
||||
Y = 0.5,
|
||||
AlignX = 0,
|
||||
IconRight = false,
|
||||
IconSize = 48,
|
||||
FontSize = 28,
|
||||
ShowGroup = true,
|
||||
TeamColor = false,
|
||||
Follow = true,
|
||||
Dist = 200,
|
||||
}
|
||||
|
||||
function MSD.AddModule(name, menu, icon)
|
||||
local mod = {
|
||||
name = name,
|
||||
icon = icon,
|
||||
menu = menu
|
||||
}
|
||||
|
||||
local id = MSD.ModuleIds[name]
|
||||
|
||||
if id then
|
||||
MSD.Modules[id] = mod
|
||||
else
|
||||
id = table.insert(MSD.Modules, mod)
|
||||
MSD.ModuleIds[name] = id
|
||||
end
|
||||
|
||||
return id
|
||||
end
|
||||
|
||||
--──────────────────────────────────--
|
||||
------------- CFG Saving -------------
|
||||
--──────────────────────────────────--
|
||||
net.Receive("MSD.GetConfigData", function(l, ply)
|
||||
if CLIENT then
|
||||
MSD.Config = net.ReadTable()
|
||||
else
|
||||
net.Start("MSD.GetConfigData")
|
||||
net.WriteTable(MSD.Config)
|
||||
net.Send(ply)
|
||||
end
|
||||
end)
|
||||
|
||||
MSD.SaveConfig = function()
|
||||
if CLIENT then
|
||||
local json_data = util.TableToJSON(MSD.Config, false)
|
||||
local cd = util.Compress(json_data)
|
||||
local bn = string.len(cd)
|
||||
net.Start("MSD.SaveConfig")
|
||||
net.WriteInt(bn, 32)
|
||||
net.WriteData(cd, bn)
|
||||
net.SendToServer()
|
||||
else
|
||||
net.Start("MSD.GetConfigData")
|
||||
net.WriteTable(MSD.Config)
|
||||
net.Broadcast()
|
||||
file.Write("msd_data/config.txt", util.TableToJSON(MSD.Config, true))
|
||||
end
|
||||
end
|
||||
|
||||
function MSD.LoadConfig()
|
||||
if CLIENT then
|
||||
net.Start("MSD.GetConfigData")
|
||||
net.SendToServer()
|
||||
else
|
||||
net.Receive("MSD.SaveConfig", function(l, ply)
|
||||
if MSD.cfgLastChange and MSD.cfgLastChange > CurTime() then return end
|
||||
MSD.cfgLastChange = CurTime() + 1
|
||||
if not ply:IsSuperAdmin() then return end
|
||||
local bytes_number = net.ReadInt(32)
|
||||
local compressed_data = net.ReadData(bytes_number)
|
||||
local json_data = util.Decompress(compressed_data)
|
||||
local config = util.JSONToTable(json_data)
|
||||
MSD.Config = config
|
||||
MSD.SaveConfig()
|
||||
end)
|
||||
|
||||
if not file.Exists("msd_data/config.txt", "DATA") then
|
||||
file.Write("msd_data/config.txt", util.TableToJSON(MSD.Config, true))
|
||||
else
|
||||
local config = util.JSONToTable(file.Read("msd_data/config.txt", "DATA"))
|
||||
|
||||
for k, v in pairs(config) do
|
||||
if MSD.Config[k] ~= nil then
|
||||
MSD.Config[k] = v
|
||||
end
|
||||
end
|
||||
|
||||
if #player.GetAll() > 0 then
|
||||
net.Start("MSD.GetConfigData")
|
||||
net.WriteTable(MSD.Config)
|
||||
net.Broadcast()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if SERVER then
|
||||
hook.Add("PostGamemodeLoaded", "MQMSDS.Load.SV", function()
|
||||
MSD.LoadConfig()
|
||||
end)
|
||||
else
|
||||
hook.Add("InitPostEntity", "MSD.Load.CL", function()
|
||||
MSD.LoadConfig()
|
||||
end)
|
||||
end
|
||||
|
||||
if GAMEMODE then
|
||||
MSD.LoadConfig()
|
||||
end
|
||||
30
addons/msd_ui/lua/msd/sh_language.lua
Normal file
30
addons/msd_ui/lua/msd/sh_language.lua
Normal file
@@ -0,0 +1,30 @@
|
||||
-- ┏━┓┏━┳━━━┳━━━┓───────────────────────
|
||||
-- ┃┃┗┛┃┃┏━┓┣┓┏┓┃───────────────────────
|
||||
-- ┃┏┓┏┓┃┗━━┓┃┃┃┃──By MacTavish <3──────
|
||||
-- ┃┃┃┃┃┣━━┓┃┃┃┃┃───────────────────────
|
||||
-- ┃┃┃┃┃┃┗━┛┣┛┗┛┃───────────────────────
|
||||
-- ┗┛┗┛┗┻━━━┻━━━┛───────────────────────
|
||||
local files = file.Find("msd/language/*", "LUA")
|
||||
|
||||
for k, v in ipairs(files) do
|
||||
if (SERVER) then
|
||||
include("msd/language/" .. v)
|
||||
AddCSLuaFile("msd/language/" .. v)
|
||||
MsgC(Color(174, 0, 255), "[MSD] " .. v .. " language found\n")
|
||||
else
|
||||
include("msd/language/" .. v)
|
||||
end
|
||||
end
|
||||
|
||||
function MSD.GetPhrase(name, ...)
|
||||
local lang = MSD.Language[MSD.Config.Language] or MSD.Language["en"]
|
||||
local prase = lang[name]
|
||||
|
||||
if not prase then
|
||||
prase = MSD.Language["en"][name]
|
||||
end
|
||||
|
||||
if not prase then return name end
|
||||
|
||||
return string.format(prase, ...)
|
||||
end
|
||||
423
addons/msd_ui/lua/msd/ui/assets.lua
Normal file
423
addons/msd_ui/lua/msd/ui/assets.lua
Normal file
@@ -0,0 +1,423 @@
|
||||
MSD.Icons48 = {
|
||||
cross = Material("msd/icons/cross.png", "smooth"),
|
||||
cog = Material("msd/icons/cog.png", "smooth"),
|
||||
eye = Material("msd/icons/eye.png", "smooth"),
|
||||
box = Material("mqs/map_markers/b5.png", "smooth"),
|
||||
box_open = Material("mqs/icons/box_open.png", "smooth"),
|
||||
layers = Material("msd/icons/layers.png", "smooth"),
|
||||
layers_plus = Material("msd/icons/layers-plus.png", "smooth"),
|
||||
layers_remove = Material("msd/icons/layers-remove.png", "smooth"),
|
||||
briefcase = Material("msd/icons/briefcase.png", "smooth"),
|
||||
account = Material("msd/icons/account.png", "smooth"),
|
||||
account_plus = Material("msd/icons/account-plus.png", "smooth"),
|
||||
account_edit = Material("msd/icons/account-edit.png", "smooth"),
|
||||
account_multiple = Material("msd/icons/account-multiple.png", "smooth"),
|
||||
account_convert = Material("msd/icons/account-convert.png", "smooth"),
|
||||
arrow_up = Material("msd/icons/arrow_up.png", "smooth"),
|
||||
arrow_down = Material("msd/icons/arrow_down.png", "smooth"),
|
||||
folder_open = Material("msd/icons/folder-open.png", "smooth"),
|
||||
file_document = Material("msd/icons/file-document.png", "smooth"),
|
||||
menu = Material("msd/icons/menu.png", "smooth"),
|
||||
dot = Material("msd/icons/dot.png", "smooth"),
|
||||
pencil = Material("msd/icons/pencil.png", "smooth"),
|
||||
play = Material("msd/icons/play.png", "smooth"),
|
||||
plus = Material("msd/icons/plus.png", "smooth"),
|
||||
back = Material("msd/icons/back.png", "smooth"),
|
||||
calendar_check = Material("msd/icons/calendar-check.png", "smooth"),
|
||||
playlist_edit = Material("msd/icons/playlist-edit.png", "smooth"),
|
||||
seal = Material("msd/icons/seal.png", "smooth"),
|
||||
save = Material("msd/icons/content-save.png", "smooth"),
|
||||
copy = Material("msd/icons/content-copy.png", "smooth"),
|
||||
submit = Material("msd/icons/check-decagram.png", "smooth"),
|
||||
alert = Material("msd/icons/alert-circle.png", "smooth"),
|
||||
arrow_down_color = Material("msd/icons/arrow_down_color.png", "smooth"),
|
||||
face_agent = Material("msd/icons/face-agent.png", "smooth"),
|
||||
swap = Material("msd/icons/swap.png", "smooth"),
|
||||
search = Material("mqs/map_markers/c4.png", "smooth"),
|
||||
tools = Material("mqs/map_markers/t1.png", "smooth"),
|
||||
human_female = Material("msd/icons/human-female.png", "smooth"),
|
||||
human_male = Material("msd/icons/human-male.png", "smooth"),
|
||||
human_female_dance = Material("msd/icons/human-female-dance.png", "smooth"),
|
||||
hand_peace_variant = Material("msd/icons/hand-peace-variant.png", "smooth"),
|
||||
key = Material("msd/icons/key-variant.png", "smooth"),
|
||||
key_arrow_right = Material("msd/icons/key-arrow-right.png", "smooth"),
|
||||
key_link = Material("msd/icons/key-link.png", "smooth"),
|
||||
key_plus = Material("msd/icons/key-plus.png", "smooth"),
|
||||
key_remove = Material("msd/icons/key-remove.png", "smooth"),
|
||||
key_star = Material("msd/icons/key-star.png", "smooth"),
|
||||
door = Material("msd/icons/door.png", "smooth"),
|
||||
car = Material("mqs/map_markers/v1.png", "smooth"),
|
||||
cancel = Material("msd/icons/cancel.png", "smooth"),
|
||||
reload = Material("msd/icons/reload.png", "smooth"),
|
||||
reload_alert = Material("msd/icons/reload-alert.png", "smooth"),
|
||||
heart = Material("msd/icons/cards-heart.png", "smooth"),
|
||||
heart_outline = Material("msd/icons/cards-heart-outline.png", "smooth"),
|
||||
heart_broken = Material("msd/icons/heart-broken.png", "smooth"),
|
||||
heart_flash = Material("msd/icons/heart-flash.png", "smooth"),
|
||||
skip_to = Material("msd/icons/debug-step-over.png", "smooth"),
|
||||
food = Material("msd/icons/food.png", "smooth"),
|
||||
food_off = Material("msd/icons/food-off-outline.png", "smooth"),
|
||||
food_outline = Material("msd/icons/food-outline.png", "smooth"),
|
||||
cash = Material("msd/icons/cash.png", "smooth"),
|
||||
magazine = Material("msd/icons/magazine-pistol.png", "smooth"),
|
||||
ammo = Material("mqs/icons/ammo.png", "smooth"),
|
||||
armor = Material("mqs/map_markers/a1.png", "smooth"),
|
||||
armor_outline = Material("mqs/map_markers/a2.png", "smooth"),
|
||||
armor_broken = Material("mqs/map_markers/a4.png", "smooth"),
|
||||
armor_flash = Material("mqs/map_markers/a5.png", "smooth")
|
||||
}
|
||||
|
||||
MSD.Materials = {
|
||||
vignette = Material("msd/vignette.png", "smooth"),
|
||||
gradient = Material("gui/gradient", "smooth"),
|
||||
gradient_right = Material("msd/gradient_right.png", "smooth"),
|
||||
}
|
||||
|
||||
MSD.PinPoints = {
|
||||
[0] = Material("mqs/icons/pin.png", "smooth"),
|
||||
}
|
||||
|
||||
local files = file.Find("materials/mqs/map_markers/*", "GAME")
|
||||
|
||||
for k, v in pairs(files) do
|
||||
MSD.PinPoints[k] = Material("mqs/map_markers/" .. v, "smooth")
|
||||
end
|
||||
|
||||
MSD.ColorPresets = {Color(255, 20, 20), Color(255, 115, 0), Color(210, 255, 0), Color(0, 170, 25), Color(0, 155, 255), Color(0, 100, 200), Color(135, 0, 255), Color(255, 0, 100),}
|
||||
|
||||
MSD.Theme = {
|
||||
["d_na"] = Color(25, 25, 26),
|
||||
["d"] = Color(0, 5, 10, 165),
|
||||
["m"] = Color(0, 5, 10, 120),
|
||||
["l"] = Color(0, 5, 10, 85),
|
||||
}
|
||||
|
||||
MSD.Text = {
|
||||
["a"] = Color(150, 150, 150, 200),
|
||||
["n"] = Color(150, 150, 150),
|
||||
["d"] = Color(220, 220, 220),
|
||||
["s"] = Color(235, 235, 235),
|
||||
["m"] = Color(245, 245, 245),
|
||||
["l"] = Color(255, 255, 255),
|
||||
}
|
||||
|
||||
local NewFont = surface.CreateFont
|
||||
|
||||
for i = 0, 40 do
|
||||
NewFont("MSDFont." .. 12 + i, {
|
||||
font = "AdihausDIN",
|
||||
extended = true,
|
||||
size = 12 + i,
|
||||
weight = 500
|
||||
})
|
||||
end
|
||||
|
||||
for i = 0, 20 do
|
||||
NewFont("MSDFontB." .. 16 + i, {
|
||||
font = "AdihausDIN",
|
||||
extended = true,
|
||||
size = 16 + i,
|
||||
weight = 800
|
||||
})
|
||||
end
|
||||
|
||||
NewFont("MSDFont.Big", {
|
||||
font = "AdihausDIN",
|
||||
extended = true,
|
||||
size = 45,
|
||||
weight = 500
|
||||
})
|
||||
|
||||
NewFont("MSDFont.Biger", {
|
||||
font = "AdihausDIN",
|
||||
extended = true,
|
||||
size = 55,
|
||||
weight = 500
|
||||
})
|
||||
|
||||
function MSD.DrawBG(panel, w, h)
|
||||
if MSD.Config.Blur then
|
||||
MSD.Blur(panel, 1, 3, 255, 250 - MSD.Config.BgrColor.r, w, h)
|
||||
else
|
||||
draw.RoundedBox(MSD.Config.Rounded, 0, 0, w, h, MSD.Config.BgrColor)
|
||||
end
|
||||
end
|
||||
|
||||
function MSD.DrawTexturedOutlined(x, y, w, h, mat, color, outlinewidth, ocolor)
|
||||
if isstring(mat) then
|
||||
mat = Material(mat)
|
||||
end
|
||||
|
||||
surface.SetMaterial(mat)
|
||||
surface.SetDrawColor(ocolor)
|
||||
local steps = ( outlinewidth * 2 ) / 3
|
||||
if ( steps < 1 ) then steps = 1 end
|
||||
|
||||
for _x = -outlinewidth, outlinewidth, steps do
|
||||
for _y = -outlinewidth, outlinewidth, steps do
|
||||
surface.DrawTexturedRect(x + _x, y + _y, w, h)
|
||||
end
|
||||
end
|
||||
|
||||
surface.SetDrawColor(color)
|
||||
surface.DrawTexturedRect(x, y, w, h)
|
||||
end
|
||||
|
||||
local cached_mat = {}
|
||||
|
||||
function MSD.DrawTexturedRect(x, y, w, h, mat, color)
|
||||
if isstring(mat) then
|
||||
local crc = util.CRC(mat)
|
||||
if not cached_mat[crc] then
|
||||
cached_mat[crc] = Material(mat, "smooth")
|
||||
end
|
||||
mat = cached_mat[crc]
|
||||
end
|
||||
|
||||
surface.SetDrawColor(color)
|
||||
surface.SetMaterial(mat)
|
||||
surface.DrawTexturedRect(x, y, w, h)
|
||||
end
|
||||
|
||||
function MSD.DrawTexturedRectRotated(rot, x, y, w, h, mat, color)
|
||||
if isstring(mat) then
|
||||
local crc = util.CRC(mat)
|
||||
if not cached_mat[crc] then
|
||||
cached_mat[crc] = Material(mat, "smooth")
|
||||
end
|
||||
mat = cached_mat[crc]
|
||||
end
|
||||
|
||||
surface.SetDrawColor(color)
|
||||
surface.SetMaterial(mat)
|
||||
surface.DrawTexturedRectRotated(x, y, w, h, rot)
|
||||
end
|
||||
|
||||
function MSD.ColorAlpha(cl, al)
|
||||
local new_cl = table.Copy(cl)
|
||||
new_cl.a = al
|
||||
return new_cl
|
||||
end
|
||||
|
||||
local blur = Material("pp/blurscreen")
|
||||
|
||||
function MSD.Blur(panel, inn, density, alpha, back_alpha, w, h)
|
||||
local x, y = panel:LocalToScreen(0, 0)
|
||||
surface.SetDrawColor(255, 255, 255, alpha)
|
||||
surface.SetMaterial(blur)
|
||||
|
||||
for i = 1, 3 do
|
||||
blur:SetFloat("$blur", (i / inn) * density)
|
||||
blur:Recompute()
|
||||
render.UpdateScreenEffectTexture()
|
||||
|
||||
if w and h then
|
||||
render.SetScissorRect(-x, -y, x + w, y + h, true)
|
||||
surface.DrawTexturedRect(-x, -y, ScrW(), ScrH())
|
||||
render.SetScissorRect(0, 0, 0, 0, false)
|
||||
else
|
||||
surface.DrawTexturedRect(-x, -y, ScrW(), ScrH())
|
||||
end
|
||||
end
|
||||
|
||||
if back_alpha and back_alpha > 0 then
|
||||
draw.RoundedBox(MSD.Config.Rounded, 0, 0, w, h, MSD.ColorAlpha(color_black, back_alpha))
|
||||
end
|
||||
end
|
||||
|
||||
-- subUTF8 functions
|
||||
local function SubStringGetByteCount(str, index)
|
||||
local curByte = string.byte(str, index)
|
||||
local byteCount = 1
|
||||
|
||||
if curByte == nil then
|
||||
byteCount = 0
|
||||
elseif curByte > 0 and curByte <= 127 then
|
||||
byteCount = 1
|
||||
elseif curByte >= 192 and curByte <= 223 then
|
||||
byteCount = 2
|
||||
elseif curByte >= 224 and curByte <= 239 then
|
||||
byteCount = 3
|
||||
elseif curByte >= 240 and curByte <= 247 then
|
||||
byteCount = 4
|
||||
end
|
||||
|
||||
return byteCount
|
||||
end
|
||||
|
||||
local function SubStringGetTotalIndex(str)
|
||||
local curIndex = 0
|
||||
local i = 1
|
||||
local lastCount = 1
|
||||
repeat
|
||||
lastCount = SubStringGetByteCount(str, i)
|
||||
i = i + lastCount
|
||||
curIndex = curIndex + 1
|
||||
until (lastCount == 0)
|
||||
|
||||
return curIndex - 1
|
||||
end
|
||||
|
||||
local function SubStringGetTrueIndex(str, index)
|
||||
local curIndex = 0
|
||||
local i = 1
|
||||
local lastCount = 1
|
||||
repeat
|
||||
lastCount = SubStringGetByteCount(str, i)
|
||||
i = i + lastCount
|
||||
curIndex = curIndex + 1
|
||||
until (curIndex >= index)
|
||||
|
||||
return i - lastCount
|
||||
end
|
||||
|
||||
function string.subUTF8(str, startIndex, endIndex)
|
||||
if startIndex < 0 then
|
||||
startIndex = SubStringGetTotalIndex(str) + startIndex + 1
|
||||
end
|
||||
|
||||
if endIndex ~= nil and endIndex < 0 then
|
||||
endIndex = SubStringGetTotalIndex(str) + endIndex + 1
|
||||
end
|
||||
|
||||
if endIndex == nil then
|
||||
return string.sub(str, SubStringGetTrueIndex(str, startIndex))
|
||||
else
|
||||
return string.sub(str, SubStringGetTrueIndex(str, startIndex), SubStringGetTrueIndex(str, endIndex + 1) - 1)
|
||||
end
|
||||
end
|
||||
|
||||
-- Same used in DarkRP, used it here so we can use it with any gamemodes
|
||||
local function CharWrap(t, w)
|
||||
local a = 0
|
||||
|
||||
t = t:gsub(".", function(c)
|
||||
a = a + surface.GetTextSize(c)
|
||||
|
||||
if a >= w then
|
||||
a = 0
|
||||
|
||||
return "\n" .. c
|
||||
end
|
||||
|
||||
return c
|
||||
end)
|
||||
|
||||
return t, a
|
||||
end
|
||||
|
||||
function MSD.TextWrap(text, font, w)
|
||||
local total = 0
|
||||
surface.SetFont(font)
|
||||
local spaceSize = surface.GetTextSize(' ')
|
||||
|
||||
text = text:gsub("(%s?[%S]+)", function(word)
|
||||
local char = string.subUTF8(word, 1, 1)
|
||||
|
||||
if char == "\n" or char == "\t" then
|
||||
total = 0
|
||||
end
|
||||
|
||||
local wordlen = surface.GetTextSize(word)
|
||||
total = total + wordlen
|
||||
|
||||
if wordlen >= w then
|
||||
local splitWord, splitPoint = CharWrap(word, w - (total - wordlen))
|
||||
total = splitPoint
|
||||
|
||||
return splitWord
|
||||
elseif total < w then
|
||||
return word
|
||||
end
|
||||
|
||||
if char == ' ' then
|
||||
total = wordlen - spaceSize
|
||||
|
||||
return '\n' .. string.subUTF8(word, 2)
|
||||
end
|
||||
|
||||
total = wordlen
|
||||
|
||||
return '\n' .. word
|
||||
end)
|
||||
|
||||
local w_end, h_end = surface.GetTextSize(text)
|
||||
|
||||
return text, w_end, h_end
|
||||
end
|
||||
|
||||
-- Image Lib
|
||||
MSD.ImgLib = {}
|
||||
MSD.ImgLib.Images = {}
|
||||
MSD.ImgLib.PreCacheStarted = {}
|
||||
MSD.ImgLib.Avatars = {}
|
||||
MSD.ImgLib.NoMaterial = Material("msd/icons/file-hidden.png", "smooth noclamp")
|
||||
|
||||
function MSD.ImgLib.GetMaterial(url, jpg)
|
||||
if url == "" then
|
||||
return MSD.ImgLib.NoMaterial
|
||||
end
|
||||
|
||||
local crc = util.CRC(url) .. ".png"
|
||||
|
||||
if jpg then
|
||||
crc = util.CRC(url) .. ".jpg"
|
||||
end
|
||||
|
||||
if MSD.ImgLib.Images[crc] then return MSD.ImgLib.Images[crc] end
|
||||
|
||||
if (file.Exists("msd_imgs/" .. crc, "DATA")) then
|
||||
MSD.ImgLib.Images[crc] = Material("data/msd_imgs/" .. crc, "smooth noclamp")
|
||||
|
||||
return MSD.ImgLib.Images[crc]
|
||||
else
|
||||
return MSD.ImgLib.PreCacheMaterial(url, crc, jpg)
|
||||
end
|
||||
end
|
||||
|
||||
function MSD.ImgLib.PreCacheMaterial(url, crc, jpg)
|
||||
if not crc then
|
||||
crc = util.CRC(url) .. ".png"
|
||||
end
|
||||
|
||||
if not file.Exists("msd_imgs", "DATA") then
|
||||
file.CreateDir("msd_imgs")
|
||||
end
|
||||
|
||||
if not MSD.ImgLib.PreCacheStarted[crc] then
|
||||
MSD.ImgLib.PreCacheStarted[crc] = true
|
||||
|
||||
http.Fetch(url, function(body, size, headers, code)
|
||||
if not jpg and (body:find("^.PNG")) then
|
||||
file.Write("msd_imgs/" .. crc, body)
|
||||
MSD.ImgLib.Images[crc] = Material("data/msd_imgs/" .. crc, "smooth noclamp")
|
||||
|
||||
return MSD.ImgLib.Images[crc]
|
||||
elseif jpg then
|
||||
file.Write("msd_imgs/" .. crc, body)
|
||||
MSD.ImgLib.Images[crc] = Material("data/msd_imgs/" .. crc, "smooth noclamp")
|
||||
else
|
||||
print("Image is not a PNG, url - " .. url)
|
||||
end
|
||||
end, function()
|
||||
print("Failed to get image, url - " .. url)
|
||||
end)
|
||||
end
|
||||
|
||||
return MSD.ImgLib.NoMaterial
|
||||
end
|
||||
|
||||
function MSD.ImgLib.GetAvatar(crc)
|
||||
crc = tostring(crc)
|
||||
if not MSD.ImgLib.Avatars[crc] then
|
||||
MSD.ImgLib.Avatars[crc] = ""
|
||||
|
||||
http.Fetch("https://macnco.one/steamid/avatar.php?input=" .. crc, function(body, size, headers, code)
|
||||
MSD.ImgLib.Avatars[crc] = body
|
||||
end, function()
|
||||
print("Failed to get link, url - " .. url)
|
||||
end)
|
||||
end
|
||||
|
||||
return MSD.ImgLib.Avatars[crc] or ""
|
||||
end
|
||||
1989
addons/msd_ui/lua/msd/ui/elements.lua
Normal file
1989
addons/msd_ui/lua/msd/ui/elements.lua
Normal file
File diff suppressed because it is too large
Load Diff
338
addons/msd_ui/lua/msd/ui/msdcontext.lua
Normal file
338
addons/msd_ui/lua/msd/ui/msdcontext.lua
Normal file
@@ -0,0 +1,338 @@
|
||||
local ScrW, ScrH = ScrW, ScrH
|
||||
local Ln = MSD.GetPhrase
|
||||
local logo = Material("msd/macnco.png", "smooth")
|
||||
CreateClientConVar("mmd_lastscr", 0, true, false)
|
||||
|
||||
function MSD.AdminAccess(ply)
|
||||
if MQS then
|
||||
return MQS.IsEditor(ply)
|
||||
end
|
||||
if MRS then
|
||||
return MRS.IsAdministrator(ply)
|
||||
end
|
||||
return ply:IsSuperAdmin()
|
||||
end
|
||||
|
||||
function MSD.OpenMenuManager(parrent, mod_open)
|
||||
if not MSD.AdminAccess(LocalPlayer()) then return end
|
||||
|
||||
if IsValid(MSD.SetupMenu) then
|
||||
if not MSD.SetupMenu:IsVisible() then
|
||||
MSD.SetupMenu:AlphaTo(255, 0.4)
|
||||
MSD.SetupMenu:Show()
|
||||
MSD.SetupMenu:Center()
|
||||
return
|
||||
end
|
||||
if parrent then
|
||||
MSD.SetupMenu:Center()
|
||||
return
|
||||
else
|
||||
MSD.SetupMenu:Close()
|
||||
end
|
||||
end
|
||||
|
||||
local pnl_w, pnl_h = ScrW(), ScrH()
|
||||
pnl_w, pnl_h = pnl_w - pnl_w / 4, pnl_h - pnl_h / 6
|
||||
local panel, setbut
|
||||
|
||||
if parrent then
|
||||
panel = parrent:Add("MSDSimpleFrame")
|
||||
else
|
||||
panel = vgui.Create("MSDSimpleFrame")
|
||||
panel:MakePopup()
|
||||
end
|
||||
|
||||
panel:SetSize(pnl_w, pnl_h)
|
||||
panel:Center()
|
||||
panel:SetAlpha(0)
|
||||
panel:AlphaTo(255, 0.3)
|
||||
|
||||
panel.Paint = function(self, w, h)
|
||||
MSD.DrawBG(self, w, h)
|
||||
|
||||
draw.RoundedBox(MSD.Config.Rounded, 0, 0, w, 50, MSD.Theme["d"])
|
||||
draw.RoundedBox(MSD.Config.Rounded, 0, 52, w, h - 52, MSD.Theme["l"])
|
||||
end
|
||||
|
||||
panel.clsBut = MSD.IconButton(panel, MSD.Icons48.cross, panel:GetWide() - 34, 10, 25, nil, MSD.Config.MainColor.p, function()
|
||||
if panel.OnPress then
|
||||
panel.OnPress()
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
panel:AlphaTo(0, 0.4, 0, function()
|
||||
panel:Close()
|
||||
end)
|
||||
end)
|
||||
|
||||
function panel:OnClose()
|
||||
if panel.ModuleSwitch then panel.ModuleSwitch() panel.ModuleSwitch = nil end
|
||||
MSD.SetupMenu = nil
|
||||
end
|
||||
|
||||
if not parrent then
|
||||
panel.clsHide = MSD.IconButton(panel, MSD.Icons48.dot, panel:GetWide() - 64, 10, 25, nil, MSD.Config.MainColor.p, function()
|
||||
if panel.OnPress then
|
||||
panel.OnPress()
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
panel:AlphaTo(0, .4, 0, function()
|
||||
MSD.SetupMenu:Hide()
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
panel.Menu = vgui.Create("MSDPanelList", panel)
|
||||
panel.Menu:SetSize(panel:GetWide() / 2, 50)
|
||||
panel.Menu:SetPos(0, 0)
|
||||
--panel.Menu:EnableVerticalScrollbar()
|
||||
panel.Menu:EnableHorizontal(true)
|
||||
panel.Menu:SetSpacing(2)
|
||||
panel.Menu.IgnoreVbar = true
|
||||
panel.Menu.Paint = function() end
|
||||
panel.Menu.Deselect = function(but)
|
||||
if not but then return end
|
||||
but.hovered = true
|
||||
|
||||
for k, v in pairs(panel.Menu:GetItems()) do
|
||||
if v and v:IsValid() and v ~= but then
|
||||
v.hovered = false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function panel.ReOpenCanvas()
|
||||
if IsValid(panel.Canvas) then panel.Canvas:Remove() end
|
||||
panel.Canvas = vgui.Create("DPanel", panel)
|
||||
panel.Canvas:SetSize(panel:GetWide(), panel:GetTall() - 52)
|
||||
panel.Canvas:SetPos(0, 52)
|
||||
panel.Canvas.Paint = function() end
|
||||
end
|
||||
|
||||
local cnv = GetConVar("mmd_lastscr")
|
||||
|
||||
function panel.OpenSettings()
|
||||
cnv:SetInt(-1)
|
||||
panel.ReOpenCanvas()
|
||||
panel.Menu.Deselect(setbut)
|
||||
MSD.OpenSettingsMenu(panel.Canvas, panel)
|
||||
end
|
||||
|
||||
for id, mod in ipairs(MSD.Modules) do
|
||||
local button = MSD.MenuButtonTop(panel.Menu, mod.icon, nil, nil, "auto", 50, mod.name, function(self)
|
||||
if panel.ModuleSwitch then panel.ModuleSwitch() panel.ModuleSwitch = nil end
|
||||
cnv:SetInt(id)
|
||||
panel.ReOpenCanvas()
|
||||
panel.Menu.Deselect(self)
|
||||
mod.menu(panel.Canvas, panel)
|
||||
end)
|
||||
|
||||
if (mod_open and id == mod_open) or (cnv:GetInt() == 0 and id == 1) or cnv:GetInt() == id then
|
||||
panel.ReOpenCanvas()
|
||||
panel.Menu.Deselect(button)
|
||||
mod.menu(panel.Canvas, panel)
|
||||
end
|
||||
end
|
||||
|
||||
setbut = MSD.MenuButtonTop(panel.Menu, MSD.Icons48.cog, nil, nil, "auto", 50, "", function(self)
|
||||
panel.OpenSettings()
|
||||
end)
|
||||
|
||||
if cnv:GetInt() == -1 and not mod_open then
|
||||
panel.OpenSettings()
|
||||
end
|
||||
|
||||
MSD.SetupMenu = panel
|
||||
|
||||
return panel
|
||||
end
|
||||
|
||||
function MSD.OpenSettingsMenu(panel)
|
||||
|
||||
oldcfg = MSD.Config
|
||||
|
||||
panel.Canvas = vgui.Create("MSDPanelList", panel)
|
||||
panel.Canvas:SetSize(panel:GetWide() / 2 - 5, panel:GetTall())
|
||||
panel.Canvas:SetPos(panel:GetWide() / 2 + 5, 0)
|
||||
panel.Canvas:EnableVerticalScrollbar()
|
||||
panel.Canvas:EnableHorizontal(true)
|
||||
panel.Canvas:SetSpacing(2)
|
||||
panel.Canvas.IgnoreVbar = true
|
||||
panel.Canvas.Paint = function() end
|
||||
|
||||
panel.Settings = vgui.Create("MSDPanelList", panel)
|
||||
panel.Settings:SetSize(panel:GetWide() / 2, panel:GetTall() - 80)
|
||||
panel.Settings:SetPos(0, 0)
|
||||
panel.Settings:EnableVerticalScrollbar()
|
||||
panel.Settings:EnableHorizontal(true)
|
||||
panel.Settings:SetSpacing(2)
|
||||
panel.Settings.IgnoreVbar = true
|
||||
panel.Settings.Paint = function() end
|
||||
|
||||
panel.Settings.Update = function()
|
||||
panel.Settings:Clear()
|
||||
|
||||
MSD.Header(panel.Settings, Ln("set_ui"))
|
||||
local combo = MSD.ComboBox(panel.Settings, "static", nil, 1, 50, "Language:", Ln("none"))
|
||||
|
||||
combo.OnSelect = function(self, index, text, data)
|
||||
MSD.Config.Language = data
|
||||
panel.Settings.Update()
|
||||
end
|
||||
|
||||
for k, v in pairs(MSD.Language) do
|
||||
combo:AddChoice(v.lang_name, k)
|
||||
end
|
||||
|
||||
combo:SetValue(Ln("lang_name"))
|
||||
local sld1
|
||||
|
||||
local function sliderCL(cl)
|
||||
local c = math.Clamp(math.Round(cl * 255), 30, 250)
|
||||
MSD.Config.BgrColor = Color(c, c, c)
|
||||
end
|
||||
|
||||
MSD.DTextSlider(panel.Settings, "static", nil, 1, 50, Ln("set_ui_blur"), Ln("set_ui_mono"), MSD.Config.Blur, function(self, value)
|
||||
MSD.Config.Blur = value
|
||||
if value then
|
||||
sld1.value = 1
|
||||
sliderCL(sld1.value)
|
||||
else
|
||||
sld1.value = 0.18
|
||||
sliderCL(sld1.value)
|
||||
end
|
||||
end)
|
||||
|
||||
sld1 = MSD.VolumeSlider(panel.Settings, "static", nil, 1, 50, Ln("set_ui_brightness"), MSD.Config.BgrColor.r / 255, function(self, var)
|
||||
sliderCL(var)
|
||||
end)
|
||||
|
||||
MSD.ColorSelector(panel.Settings, "static", nil, 1, 50, Ln("set_ui_color"), MSD.Config.MainColor.p, function(self, color)
|
||||
MSD.Config.MainColor.p = color
|
||||
end)
|
||||
|
||||
MSD.DTextSlider(panel.Settings, "static", nil, 1, 50, Ln("border_rounded"), Ln("border_square"), MSD.Config.Rounded == 8, function(self, value)
|
||||
if value then
|
||||
MSD.Config.Rounded = 8
|
||||
else
|
||||
MSD.Config.Rounded = 0
|
||||
end
|
||||
end)
|
||||
|
||||
if not MSD.HUD then return end
|
||||
|
||||
MSD.Header(panel.Settings, Ln("set_hud"))
|
||||
|
||||
MSD.BoolSlider(panel.Settings, "static", nil, 1, 50, Ln("custom_icon"), MSD.Config.HUD.ShowIcon, function(self, value)
|
||||
MSD.Config.HUD.ShowIcon = value
|
||||
end)
|
||||
|
||||
MSD.TextEntry(panel.Settings, "static", nil, 1, 50, Ln("q_icon68"), Ln("e_url") .. ":", MSD.Config.HUD.Icon, function(self, value)
|
||||
MSD.Config.HUD.Icon = value
|
||||
end)
|
||||
|
||||
MSD.TextEntry(panel.Settings, "static", nil, 1, 50, Ln("e_text"), Ln("e_text") .. ":", MSD.Config.HUD.Text, function(self, value)
|
||||
MSD.Config.HUD.Text = value
|
||||
end)
|
||||
|
||||
local acombo = MSD.ComboBox(panel.Settings, "static", nil, 1, 50, "", "")
|
||||
|
||||
local algm = {
|
||||
Ln("set_ui_align_left"),
|
||||
Ln("set_ui_align_center"),
|
||||
Ln("set_ui_align_right")
|
||||
}
|
||||
for i,t in pairs(algm) do
|
||||
acombo:AddChoice(t, i - 1)
|
||||
acombo:SetValue(t)
|
||||
end
|
||||
|
||||
acombo.OnSelect = function(self, index, text, data)
|
||||
MSD.Config.HUD.AlignX = data
|
||||
end
|
||||
|
||||
local sld0, txt1, sld2, txt2
|
||||
sld0 = MSD.VolumeSlider(panel.Settings, "static", nil, 1.2, 50, Ln("set_ui_offset_h"), MSD.Config.HUD.X, function(self, var)
|
||||
var = math.Round(var, 3)
|
||||
MSD.Config.HUD.X = var
|
||||
txt1:SetText(var * 100)
|
||||
end)
|
||||
|
||||
txt1 = MSD.TextEntry(panel.Settings, "static", nil, 6, 50, "", "", MSD.Config.HUD.X * 100, function(self, value)
|
||||
value = math.Clamp((tonumber(value) or 0) / 100,0,1)
|
||||
sld0.value = value
|
||||
MSD.Config.HUD.X = value
|
||||
end, true, nil, nil, true)
|
||||
|
||||
sld2 = MSD.VolumeSlider(panel.Settings, "static", nil, 1.2, 50, Ln("set_ui_offset_v"), MSD.Config.HUD.Y, function(self, var)
|
||||
var = math.Round(var, 3)
|
||||
MSD.Config.HUD.Y = var
|
||||
txt2:SetText(var * 100)
|
||||
end)
|
||||
|
||||
txt2 = MSD.TextEntry(panel.Settings, "static", nil, 6, 50, "", "", MSD.Config.HUD.Y * 100, function(self, value)
|
||||
value = math.Clamp((tonumber(value) or 0) / 100,0,1)
|
||||
sld2.value = value
|
||||
MSD.Config.HUD.Y = value
|
||||
end, true, nil, nil, true)
|
||||
|
||||
MSD.BoolSlider(panel.Settings, "static", nil, 1, 50, Ln("show_team"), MSD.Config.HUD.ShowGroup, function(self, value)
|
||||
MSD.Config.HUD.ShowGroup = value
|
||||
end)
|
||||
|
||||
MSD.BoolSlider(panel.Settings, "static", nil, 1, 50, Ln("mrs_hud_follow"), MSD.Config.HUD.Follow, function(self, value)
|
||||
MSD.Config.HUD.Follow = value
|
||||
end)
|
||||
|
||||
MSD.BoolSlider(panel.Settings, "static", nil, 1, 50, Ln("use_team_colors"), MSD.Config.HUD.TeamColor, function(self, value)
|
||||
MSD.Config.TeamColor = value
|
||||
end)
|
||||
|
||||
MSD.BoolSlider(panel.Settings, "static", nil, 1, 50, Ln("icon_right"), MSD.Config.HUD.IconRight, function(self, value)
|
||||
MSD.Config.HUD.IconRight = value
|
||||
end)
|
||||
|
||||
MSD.VolumeSlider(panel.Settings, "static", nil, 1, 50, Ln("icon_size"), (MSD.Config.HUD.IconSize - 24) / 40, function(self, var)
|
||||
var = math.Round(var, 3)
|
||||
MSD.Config.HUD.IconSize = math.Clamp(24 + math.Round(var * 40), 24, 64)
|
||||
end)
|
||||
|
||||
MSD.VolumeSlider(panel.Settings, "static", nil, 1, 50, Ln("font_size"), (MSD.Config.HUD.FontSize - 16) / 30, function(self, var)
|
||||
var = math.Round(var, 3)
|
||||
MSD.Config.HUD.FontSize = math.Clamp(16 + math.Round(var * 30), 16, 46)
|
||||
end)
|
||||
end
|
||||
|
||||
panel.Settings.Update()
|
||||
|
||||
if LocalPlayer():IsSuperAdmin() then
|
||||
MSD.BigButton(panel, 0, panel:GetTall() - 80, panel:GetWide() / 4, 80, Ln("upl_changes"), MSD.Icons48.save, function()
|
||||
MSD.SaveConfig()
|
||||
panel.Settings.Update()
|
||||
end)
|
||||
|
||||
MSD.BigButton(panel, panel:GetWide() / 4, panel:GetTall() - 80, panel:GetWide() / 4, 80, Ln("res_changes"), MSD.Icons48.cross, function()
|
||||
MSD.Config = oldcfg
|
||||
panel.Settings.Update()
|
||||
end)
|
||||
end
|
||||
|
||||
local pnl = vgui.Create("DPanel")
|
||||
|
||||
pnl.StaticScale = {
|
||||
w = 1,
|
||||
h = 1,
|
||||
minw = 150,
|
||||
minh = 150
|
||||
}
|
||||
|
||||
pnl.Paint = function(self, w, h)
|
||||
MSD.DrawTexturedRect(w / 2 - 128, h / 2 - 128, 256, 236, logo, MSD.Text["l"])
|
||||
draw.DrawText("MSD UI version - " .. MSD.Version, "MSDFont.25", w / 2, h / 2 + 130, MSD.Text["l"], TEXT_ALIGN_CENTER)
|
||||
end
|
||||
|
||||
panel.Canvas:AddItem(pnl)
|
||||
end
|
||||
187
addons/msd_ui/lua/msd/ui/msdframe.lua
Normal file
187
addons/msd_ui/lua/msd/ui/msdframe.lua
Normal file
@@ -0,0 +1,187 @@
|
||||
local PANEL = {}
|
||||
AccessorFunc(PANEL, "m_bIsMenuComponent", "IsMenu", FORCE_BOOL)
|
||||
AccessorFunc(PANEL, "m_bDraggable", "Draggable", FORCE_BOOL)
|
||||
AccessorFunc(PANEL, "m_bSizable", "Sizable", FORCE_BOOL)
|
||||
AccessorFunc(PANEL, "m_bScreenLock", "ScreenLock", FORCE_BOOL)
|
||||
AccessorFunc(PANEL, "m_bDeleteOnClose", "DeleteOnClose", FORCE_BOOL)
|
||||
AccessorFunc(PANEL, "m_bPaintShadow", "PaintShadow", FORCE_BOOL)
|
||||
AccessorFunc(PANEL, "m_iMinWidth", "MinWidth", FORCE_NUMBER)
|
||||
AccessorFunc(PANEL, "m_iMinHeight", "MinHeight", FORCE_NUMBER)
|
||||
|
||||
function PANEL:Init()
|
||||
self:SetFocusTopLevel(true)
|
||||
self:SetPaintShadow(true)
|
||||
self:SetDraggable(true)
|
||||
self:SetSizable(false)
|
||||
self:SetScreenLock(false)
|
||||
self:SetDeleteOnClose(true)
|
||||
self:SetMinWidth(50)
|
||||
self:SetMinHeight(50)
|
||||
self:SetPaintBackgroundEnabled(false)
|
||||
self:SetPaintBorderEnabled(false)
|
||||
self.m_fCreateTime = SysTime()
|
||||
|
||||
self.WorkSpace = {
|
||||
x = 0,
|
||||
y = 52,
|
||||
w = 0,
|
||||
h = 0
|
||||
}
|
||||
|
||||
self.WorkComponents = {}
|
||||
end
|
||||
|
||||
function PANEL:Close()
|
||||
self:SetVisible(false)
|
||||
|
||||
if (self:GetDeleteOnClose()) then
|
||||
self:Remove()
|
||||
end
|
||||
|
||||
self:OnClose()
|
||||
end
|
||||
|
||||
function PANEL:OnClose()
|
||||
end
|
||||
|
||||
function PANEL:Center()
|
||||
self:InvalidateLayout(true)
|
||||
self:CenterVertical()
|
||||
self:CenterHorizontal()
|
||||
end
|
||||
|
||||
function PANEL:IsActive()
|
||||
if (self:HasFocus()) then return true end
|
||||
if (vgui.FocusedHasParent(self)) then return true end
|
||||
|
||||
return false
|
||||
end
|
||||
|
||||
function PANEL:Think()
|
||||
local mousex = math.Clamp(gui.MouseX(), 1, ScrW() - 1)
|
||||
local mousey = math.Clamp(gui.MouseY(), 1, ScrH() - 1)
|
||||
|
||||
if (self.Dragging) then
|
||||
local x = mousex - self.Dragging[1]
|
||||
local y = mousey - self.Dragging[2]
|
||||
|
||||
-- Lock to screen bounds if screenlock is enabled
|
||||
if (self:GetScreenLock()) then
|
||||
x = math.Clamp(x, 0, ScrW() - self:GetWide())
|
||||
y = math.Clamp(y, 0, ScrH() - self:GetTall())
|
||||
end
|
||||
|
||||
self:SetPos(x, y)
|
||||
end
|
||||
|
||||
if (self.Sizing) then
|
||||
local x = mousex - self.Sizing[1]
|
||||
local y = mousey - self.Sizing[2]
|
||||
local px, py = self:GetPos()
|
||||
|
||||
if (x < self.m_iMinWidth) then
|
||||
x = self.m_iMinWidth
|
||||
elseif (x > ScrW() - px and self:GetScreenLock()) then
|
||||
x = ScrW() - px
|
||||
end
|
||||
|
||||
if (y < self.m_iMinHeight) then
|
||||
y = self.m_iMinHeight
|
||||
elseif (y > ScrH() - py and self:GetScreenLock()) then
|
||||
y = ScrH() - py
|
||||
end
|
||||
|
||||
self:SetSize(x, y)
|
||||
self:SetCursor("sizenwse")
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
local screenX, screenY = self:LocalToScreen(0, 0)
|
||||
|
||||
if (self.Hovered and self.m_bSizable and mousex > (screenX + self:GetWide() - 20) and mousey > (screenY + self:GetTall() - 20)) then
|
||||
self:SetCursor("sizenwse")
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
if (self.Hovered and self:GetDraggable() and mousey < (screenY + 24)) then
|
||||
self:SetCursor("sizeall")
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
self:SetCursor("arrow")
|
||||
|
||||
-- Don't allow the frame to go higher than 0
|
||||
if (self.y < 0) then
|
||||
self:SetPos(self.x, 0)
|
||||
end
|
||||
end
|
||||
|
||||
function PANEL:AddToWorkSpace(panel)
|
||||
panel:SetParent(self)
|
||||
panel:SetSize(self.WorkSpace.w, self.WorkSpace.h)
|
||||
panel:SetPos(self.WorkSpace.x, self.WorkSpace.y)
|
||||
local id = table.insert(self.WorkComponents, panel)
|
||||
|
||||
panel.OnRemove = function()
|
||||
self.WorkComponents[id] = nil
|
||||
end
|
||||
end
|
||||
|
||||
function PANEL:Paint(w, h)
|
||||
return true
|
||||
end
|
||||
|
||||
function PANEL:OnMousePressed()
|
||||
local screenX, screenY = self:LocalToScreen(0, 0)
|
||||
|
||||
if (self.m_bSizable and gui.MouseX() > (screenX + self:GetWide() - 20) and gui.MouseY() > (screenY + self:GetTall() - 20)) then
|
||||
self.Sizing = {gui.MouseX() - self:GetWide(), gui.MouseY() - self:GetTall()}
|
||||
|
||||
self:MouseCapture(true)
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
if (self:GetDraggable() and gui.MouseY() < (screenY + 24)) then
|
||||
self.Dragging = {gui.MouseX() - self.x, gui.MouseY() - self.y}
|
||||
|
||||
self:MouseCapture(true)
|
||||
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
function PANEL:OnMouseReleased()
|
||||
self.Dragging = nil
|
||||
self.Sizing = nil
|
||||
self:MouseCapture(false)
|
||||
end
|
||||
|
||||
function PANEL:PerformLayout()
|
||||
local Wide = self:GetWide()
|
||||
local Tall = self:GetTall()
|
||||
|
||||
self.WorkSpace = {
|
||||
x = 0,
|
||||
y = 52,
|
||||
w = Wide,
|
||||
h = Tall - 52
|
||||
}
|
||||
|
||||
if self.WorkComponents and #self.WorkComponents > 0 then
|
||||
for i = 1, #self.WorkComponents do
|
||||
local panel = self.WorkComponents[i]
|
||||
|
||||
if panel and IsValid(panel) then
|
||||
panel:SetSize(self.WorkSpace.w, self.WorkSpace.h)
|
||||
panel:SetPos(self.WorkSpace.x, self.WorkSpace.y)
|
||||
panel:InvalidateLayout()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
derma.DefineControl("MSDSimpleFrame", "A simple window for msd", PANEL, "EditablePanel")
|
||||
234
addons/msd_ui/lua/msd/ui/msdmdlmenu.lua
Normal file
234
addons/msd_ui/lua/msd/ui/msdmdlmenu.lua
Normal file
@@ -0,0 +1,234 @@
|
||||
local PANEL = {}
|
||||
|
||||
AccessorFunc( PANEL, "m_fAnimSpeed", "AnimSpeed" )
|
||||
AccessorFunc( PANEL, "Entity", "Entity" )
|
||||
AccessorFunc( PANEL, "vCamPos", "CamPos" )
|
||||
AccessorFunc( PANEL, "fFOV", "FOV" )
|
||||
AccessorFunc( PANEL, "vLookatPos", "LookAt" )
|
||||
AccessorFunc( PANEL, "aLookAngle", "LookAng" )
|
||||
AccessorFunc( PANEL, "colAmbientLight", "AmbientLight" )
|
||||
AccessorFunc( PANEL, "colColor", "Color" )
|
||||
AccessorFunc( PANEL, "bAnimated", "Animated" )
|
||||
|
||||
function PANEL:Init()
|
||||
|
||||
self.Entity = nil
|
||||
self.SubEntitys = {}
|
||||
self.LastPaint = 0
|
||||
self.DirectionalLight = {}
|
||||
self.FarZ = 4096
|
||||
self.Angles = Angle(0, 0, 0)
|
||||
|
||||
self:SetCamPos( Vector(0, 0, 0) )
|
||||
self:SetLookAt( Vector(-100, 0, -22) )
|
||||
self:SetFOV( 50 )
|
||||
|
||||
self:SetText( "" )
|
||||
self:SetAnimSpeed( 0.5 )
|
||||
self:SetAnimated( true )
|
||||
|
||||
self:SetAmbientLight( Color( 50, 50, 50 ) )
|
||||
|
||||
self:SetDirectionalLight( BOX_TOP, Color( 255, 255, 255 ) )
|
||||
self:SetDirectionalLight( BOX_FRONT, Color( 255, 255, 255 ) )
|
||||
|
||||
self:SetDirectionalLight(BOX_RIGHT, Color(255, 160, 80, 255))
|
||||
self:SetDirectionalLight(BOX_LEFT, Color(80, 160, 255, 255))
|
||||
|
||||
self:SetColor( Color( 255, 255, 255, 255 ) )
|
||||
|
||||
end
|
||||
|
||||
function PANEL:SetDirectionalLight( iDirection, color )
|
||||
self.DirectionalLight[ iDirection ] = color
|
||||
end
|
||||
|
||||
function PANEL:SetModel( strModelName )
|
||||
if ( IsValid( self.Entity ) ) then
|
||||
self.Entity:Remove()
|
||||
self.Entity = nil
|
||||
end
|
||||
|
||||
if ( !ClientsideModel ) then return end
|
||||
|
||||
self.Entity = ClientsideModel( strModelName, RENDERGROUP_OTHER )
|
||||
if ( !IsValid( self.Entity ) ) then return end
|
||||
|
||||
self.Entity:SetNoDraw( true )
|
||||
self.Entity:SetIK( false )
|
||||
|
||||
local iSeq = self.Entity:LookupSequence( "walk_all" )
|
||||
if ( iSeq <= 0 ) then iSeq = self.Entity:LookupSequence( "WalkUnarmed_all" ) end
|
||||
if ( iSeq <= 0 ) then iSeq = self.Entity:LookupSequence( "walk_all_moderate" ) end
|
||||
|
||||
if ( iSeq > 0 ) then self.Entity:ResetSequence( iSeq ) end
|
||||
|
||||
end
|
||||
|
||||
function PANEL:GetModel()
|
||||
|
||||
if ( !IsValid( self.Entity ) ) then return end
|
||||
|
||||
return self.Entity:GetModel()
|
||||
|
||||
end
|
||||
|
||||
function PANEL:DrawModel()
|
||||
|
||||
local curparent = self
|
||||
local leftx, topy = self:LocalToScreen( 0, 0 )
|
||||
local rightx, bottomy = self:LocalToScreen( self:GetWide(), self:GetTall() )
|
||||
while ( curparent:GetParent() != nil ) do
|
||||
curparent = curparent:GetParent()
|
||||
|
||||
local x1, y1 = curparent:LocalToScreen( 0, 0 )
|
||||
local x2, y2 = curparent:LocalToScreen( curparent:GetWide(), curparent:GetTall() )
|
||||
|
||||
leftx = math.max( leftx, x1 )
|
||||
topy = math.max( topy, y1 )
|
||||
rightx = math.min( rightx, x2 )
|
||||
bottomy = math.min( bottomy, y2 )
|
||||
previous = curparent
|
||||
end
|
||||
|
||||
render.SetScissorRect( leftx, topy, rightx, bottomy, true )
|
||||
|
||||
local ret = self:PreDrawModel( self.Entity )
|
||||
if ( ret != false ) then
|
||||
self.Entity:DrawModel()
|
||||
|
||||
for k,v in pairs(self.SubEntitys) do
|
||||
if IsValid(v) then
|
||||
v:DrawModel()
|
||||
if v.bone and isnumber(v.bone) then
|
||||
local pos, ang = MCS.GetBoneOrientation(self.Entity, v.bone, v.pos, v.ang)
|
||||
ang:RotateAroundAxis(ang:Up(), v.ang.y)
|
||||
ang:RotateAroundAxis(ang:Right(), v.ang.p)
|
||||
ang:RotateAroundAxis(ang:Forward(), v.ang.r)
|
||||
v:SetPos(pos + ang:Forward() * v.pos.x + ang:Right() * v.pos.y + ang:Up() * v.pos.z)
|
||||
v:SetAngles(ang)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
self:PostDrawModel( self.Entity )
|
||||
end
|
||||
|
||||
render.SetScissorRect( 0, 0, 0, 0, false )
|
||||
|
||||
end
|
||||
|
||||
function PANEL:PreDrawModel( ent )
|
||||
return true
|
||||
end
|
||||
|
||||
function PANEL:PostDrawModel( ent )
|
||||
|
||||
end
|
||||
|
||||
function PANEL:DragMousePress()
|
||||
self.PressX, self.PressY = gui.MousePos()
|
||||
self.Pressed = true
|
||||
end
|
||||
|
||||
function PANEL:DoDoubleClick()
|
||||
if self:GetFOV() < 10 then
|
||||
self:SetFOV(50)
|
||||
else
|
||||
self:SetFOV(self:GetFOV() - 5)
|
||||
end
|
||||
end
|
||||
|
||||
function PANEL:DragMouseRelease()
|
||||
self.Pressed = false
|
||||
end
|
||||
|
||||
function PANEL:Paint( w, h )
|
||||
|
||||
if ( !IsValid( self.Entity ) ) then return end
|
||||
|
||||
local x, y = self:LocalToScreen( 0, 0 )
|
||||
|
||||
self:LayoutEntity( self.Entity )
|
||||
|
||||
local ang = self.aLookAngle
|
||||
if ( !ang ) then
|
||||
ang = ( self.vLookatPos - self.vCamPos ):Angle()
|
||||
end
|
||||
|
||||
cam.Start3D( self.vCamPos, ang, self.fFOV, x, y, w, h, 5, self.FarZ )
|
||||
|
||||
render.SuppressEngineLighting( true )
|
||||
render.SetLightingOrigin( self.Entity:GetPos() )
|
||||
render.ResetModelLighting( self.colAmbientLight.r / 255, self.colAmbientLight.g / 255, self.colAmbientLight.b / 255 )
|
||||
render.SetColorModulation( self.colColor.r / 255, self.colColor.g / 255, self.colColor.b / 255 )
|
||||
render.SetBlend( ( self:GetAlpha() / 255 ) * ( self.colColor.a / 255 ) ) -- * surface.GetAlphaMultiplier()
|
||||
|
||||
for i = 0, 6 do
|
||||
local col = self.DirectionalLight[ i ]
|
||||
if ( col ) then
|
||||
render.SetModelLighting( i, col.r / 255, col.g / 255, col.b / 255 )
|
||||
end
|
||||
end
|
||||
|
||||
self:DrawModel()
|
||||
|
||||
render.SuppressEngineLighting( false )
|
||||
cam.End3D()
|
||||
|
||||
self.LastPaint = RealTime()
|
||||
|
||||
end
|
||||
|
||||
function PANEL:RunAnimation()
|
||||
self.Entity:FrameAdvance( ( RealTime() - self.LastPaint ) * self.m_fAnimSpeed )
|
||||
end
|
||||
|
||||
function PANEL:StartScene( name )
|
||||
|
||||
if ( IsValid( self.Scene ) ) then
|
||||
self.Scene:Remove()
|
||||
end
|
||||
|
||||
self.Scene = ClientsideScene( name, self.Entity )
|
||||
end
|
||||
|
||||
function PANEL:LayoutEntity(ent)
|
||||
if (self.bAnimated) then
|
||||
self:RunAnimation()
|
||||
end
|
||||
|
||||
if (self.Pressed) then
|
||||
local mx = gui.MousePos()
|
||||
self.Angles = self.Angles - Angle(0, (self.PressX or mx) - mx, 0)
|
||||
self.PressX, self.PressY = gui.MousePos()
|
||||
end
|
||||
|
||||
ent:SetAngles(self.Angles)
|
||||
end
|
||||
|
||||
function PANEL:OnRemove()
|
||||
if ( IsValid( self.Entity ) ) then
|
||||
self.Entity:Remove()
|
||||
end
|
||||
|
||||
for k,v in pairs(self.SubEntitys) do
|
||||
if IsValid(v) then
|
||||
v:Remove()
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function PANEL:GenerateExample( ClassName, PropertySheet, Width, Height )
|
||||
|
||||
local ctrl = vgui.Create( ClassName )
|
||||
ctrl:SetSize( 300, 300 )
|
||||
ctrl:SetModel( "models/props_junk/PlasticCrate01a.mdl" )
|
||||
ctrl:GetEntity():SetSkin( 2 )
|
||||
|
||||
PropertySheet:AddSheet( ClassName, ctrl, nil, true, true )
|
||||
|
||||
end
|
||||
|
||||
derma.DefineControl( "MSDModelPanel", "A panel containing a model but more epic", PANEL, "DButton" )
|
||||
186
addons/msd_ui/lua/msd/ui/msdmenu.lua
Normal file
186
addons/msd_ui/lua/msd/ui/msdmenu.lua
Normal file
@@ -0,0 +1,186 @@
|
||||
if SERVER then return end
|
||||
local tblOpenMenus = {}
|
||||
|
||||
function RegisterDermaMenuForClose(dmenu)
|
||||
table.insert(tblOpenMenus, dmenu)
|
||||
end
|
||||
|
||||
function MSD.MenuOpen(parentmenu, parent, bg)
|
||||
if (not parentmenu) then
|
||||
CloseDermaMenus()
|
||||
end
|
||||
|
||||
local dmenu = vgui.Create("MSD.DMenu", parent)
|
||||
dmenu.ShadowStatic = 0
|
||||
dmenu.ShadowInt = 1
|
||||
|
||||
dmenu.Paint = function(self, w, h)
|
||||
if bg then
|
||||
draw.RoundedBox(MSD.Config.Rounded, 0, 0, w, h, MSD.Theme["d_na"])
|
||||
else
|
||||
MSD.Blur(self, 1, 2, 255, 55, w, h)
|
||||
draw.RoundedBox(MSD.Config.Rounded, 0, 0, w, h, MSD.Theme["d"])
|
||||
end
|
||||
end
|
||||
|
||||
return dmenu
|
||||
end
|
||||
|
||||
function CloseDermaMenus()
|
||||
for k, dmenu in pairs(tblOpenMenus) do
|
||||
if (IsValid(dmenu)) then
|
||||
dmenu:SetVisible(false)
|
||||
|
||||
if (dmenu:GetDeleteSelf()) then
|
||||
dmenu:Remove()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
tblOpenMenus = {}
|
||||
hook.Run("CloseDermaMenus")
|
||||
end
|
||||
|
||||
local function DermaDetectMenuFocus(panel, mousecode)
|
||||
if (IsValid(panel)) then
|
||||
if (panel.m_bIsMenuComponent) then return end
|
||||
|
||||
return DermaDetectMenuFocus(panel:GetParent(), mousecode)
|
||||
end
|
||||
|
||||
CloseDermaMenus()
|
||||
end
|
||||
|
||||
hook.Add("VGUIMousePressed", "MatDMenuDetectMenuFocus", DermaDetectMenuFocus)
|
||||
local PANEL = {}
|
||||
AccessorFunc(PANEL, "m_bBorder", "DrawBorder")
|
||||
AccessorFunc(PANEL, "m_bDeleteSelf", "DeleteSelf")
|
||||
AccessorFunc(PANEL, "m_iMinimumWidth", "MinimumWidth")
|
||||
AccessorFunc(PANEL, "m_bDrawColumn", "DrawColumn")
|
||||
AccessorFunc(PANEL, "m_iMaxHeight", "MaxHeight")
|
||||
AccessorFunc(PANEL, "m_pOpenSubMenu", "OpenSubMenu")
|
||||
|
||||
function PANEL:Init()
|
||||
self:SetIsMenu(true)
|
||||
self:SetDrawBorder(true)
|
||||
self:SetPaintBackground(true)
|
||||
self:SetMinimumWidth(100)
|
||||
self:SetDrawOnTop(true)
|
||||
self:SetMaxHeight(ScrH() * 0.9)
|
||||
self:SetDeleteSelf(true)
|
||||
self:SetPadding(0)
|
||||
RegisterDermaMenuForClose(self)
|
||||
end
|
||||
|
||||
function PANEL:AddOption(strText, funcFunction, icon, check)
|
||||
if check and not check() then return end
|
||||
|
||||
local pnl = vgui.Create("MSD.DMenuOption", self)
|
||||
pnl:SetMenu(self)
|
||||
pnl:SetText(strText)
|
||||
if icon then
|
||||
pnl.icon = icon
|
||||
pnl:SetTextInset(38, 0)
|
||||
end
|
||||
|
||||
if (funcFunction) then
|
||||
pnl.DoClick = funcFunction
|
||||
end
|
||||
|
||||
self:AddPanel(pnl)
|
||||
|
||||
return pnl
|
||||
end
|
||||
|
||||
function PANEL:AddSubMenu(strText, funcFunction)
|
||||
local pnl = vgui.Create("MSD.DMenuOption", self)
|
||||
local SubMenu = pnl:AddSubMenu(strText, funcFunction)
|
||||
pnl:SetText(strText)
|
||||
|
||||
if (funcFunction) then
|
||||
pnl.DoClick = funcFunction
|
||||
end
|
||||
|
||||
self:AddPanel(pnl)
|
||||
|
||||
return SubMenu, pnl
|
||||
end
|
||||
|
||||
derma.DefineControl("MSD.DMenu", "A Menu 2", PANEL, "DMenu")
|
||||
|
||||
PANEL = {}
|
||||
AccessorFunc(PANEL, "m_pMenu", "Menu")
|
||||
AccessorFunc(PANEL, "m_bChecked", "Checked")
|
||||
AccessorFunc(PANEL, "m_bCheckable", "IsCheckable")
|
||||
|
||||
function PANEL:Init()
|
||||
self:SetContentAlignment(4)
|
||||
self:SetTextInset(10, 0)
|
||||
self:SetFont("MSDFont.16")
|
||||
self:SetTextColor(MSD.Text["s"])
|
||||
self:SetChecked(false)
|
||||
self.ChangeCC = true
|
||||
self.ColorText = MSD.Text["s"]
|
||||
end
|
||||
|
||||
function PANEL:OnCursorEntered()
|
||||
self.ColorText = MSD.Config.MainColor["p"]
|
||||
self.ChangeCC = true
|
||||
|
||||
if (IsValid(self.ParentMenu)) then
|
||||
self.ParentMenu:OpenSubMenu(self, self.SubMenu)
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
self:GetParent():OpenSubMenu(self, self.SubMenu)
|
||||
end
|
||||
|
||||
function PANEL:OnCursorExited()
|
||||
self.ColorText = MSD.Text["l"]
|
||||
self.ChangeCC = true
|
||||
end
|
||||
|
||||
function PANEL:AddSubMenu()
|
||||
local SubMenu = MSD.MenuOpen(true, self)
|
||||
SubMenu:SetVisible(false)
|
||||
SubMenu:SetParent(self)
|
||||
self:SetSubMenu(SubMenu)
|
||||
|
||||
return SubMenu
|
||||
end
|
||||
|
||||
function PANEL:Paint(w, h)
|
||||
if self.ChangeCC then
|
||||
self:SetTextColor(self.ColorText)
|
||||
self.ChangeCC = nil
|
||||
end
|
||||
|
||||
if self.icon then
|
||||
local ih = h - 6
|
||||
MSD.DrawTexturedRect(5, 3, ih, ih, self.icon, self.ColorText)
|
||||
end
|
||||
end
|
||||
|
||||
function PANEL:PerformLayout( w, h )
|
||||
|
||||
self:SizeToContents()
|
||||
self:SetWide( self:GetWide() + 30 )
|
||||
|
||||
w = math.max( self:GetParent():GetWide(), self:GetWide() )
|
||||
|
||||
self:SetSize( w, self.icon and 30 or 22 )
|
||||
|
||||
if ( IsValid( self.SubMenuArrow ) ) then
|
||||
|
||||
self.SubMenuArrow:SetSize( 15, 15 )
|
||||
self.SubMenuArrow:CenterVertical()
|
||||
self.SubMenuArrow:AlignRight( 4 )
|
||||
|
||||
end
|
||||
|
||||
DButton.PerformLayout( self, w, h )
|
||||
|
||||
end
|
||||
|
||||
derma.DefineControl("MSD.DMenuOption", "Menu Option Line 2", PANEL, "DMenuOption")
|
||||
413
addons/msd_ui/lua/msd/ui/msdpanellist.lua
Normal file
413
addons/msd_ui/lua/msd/ui/msdpanellist.lua
Normal file
@@ -0,0 +1,413 @@
|
||||
local PANEL = {}
|
||||
AccessorFunc(PANEL, "m_bSizeToContents", "AutoSize")
|
||||
AccessorFunc(PANEL, "m_bStretchHorizontally", "StretchHorizontally")
|
||||
AccessorFunc(PANEL, "m_bNoSizing", "NoSizing")
|
||||
AccessorFunc(PANEL, "m_bSortable", "Sortable")
|
||||
AccessorFunc(PANEL, "m_fAnimTime", "AnimTime")
|
||||
AccessorFunc(PANEL, "m_fAnimEase", "AnimEase")
|
||||
AccessorFunc(PANEL, "m_strDraggableName", "DraggableName")
|
||||
AccessorFunc(PANEL, "Spacing", "Spacing")
|
||||
AccessorFunc(PANEL, "Padding", "Padding")
|
||||
|
||||
function PANEL:Init()
|
||||
self:SetDraggableName("GlobalDPanel")
|
||||
self.pnlCanvas = vgui.Create("DPanel", self)
|
||||
self.pnlCanvas:SetPaintBackground(false)
|
||||
|
||||
self.pnlCanvas.OnMousePressed = function(s, code)
|
||||
s:GetParent():OnMousePressed(code)
|
||||
end
|
||||
|
||||
self.pnlCanvas.OnChildRemoved = function()
|
||||
self:OnChildRemoved()
|
||||
end
|
||||
|
||||
self.pnlCanvas:SetMouseInputEnabled(true)
|
||||
|
||||
self.pnlCanvas.InvalidateLayout = function()
|
||||
self:InvalidateLayout()
|
||||
end
|
||||
|
||||
self.pnlCanvas.MasterPanel = self
|
||||
self.Items = {}
|
||||
self.YOffset = 0
|
||||
self.m_fAnimTime = 0
|
||||
self.m_fAnimEase = -1
|
||||
self.m_iBuilds = 0
|
||||
self.IgnoreVbar = true
|
||||
self:SetSpacing(0)
|
||||
self:SetPadding(0)
|
||||
self:EnableHorizontal(false)
|
||||
self:SetAutoSize(false)
|
||||
self:SetPaintBackground(true)
|
||||
self:SetNoSizing(false)
|
||||
self:SetMouseInputEnabled(true)
|
||||
|
||||
self:SetPaintBackgroundEnabled(false)
|
||||
self:SetPaintBorderEnabled(false)
|
||||
end
|
||||
|
||||
function PANEL:OnModified()
|
||||
-- Override me
|
||||
end
|
||||
|
||||
function PANEL:SizeToContents()
|
||||
self:SetSize(self.pnlCanvas:GetSize())
|
||||
end
|
||||
|
||||
function PANEL:GetItems()
|
||||
return self.Items
|
||||
end
|
||||
|
||||
function PANEL:EnableHorizontal(bHoriz)
|
||||
self.Horizontal = bHoriz
|
||||
end
|
||||
|
||||
local sdw = Color(0, 0, 0, 70)
|
||||
|
||||
function PANEL:EnableVerticalScrollbar()
|
||||
if (self.VBar) then return end
|
||||
self.VBar = vgui.Create("DVScrollBar", self)
|
||||
|
||||
self.VBar.Paint = function(s, w, h)
|
||||
draw.RoundedBox(4, 3, 13, 8, h - 24, sdw)
|
||||
end
|
||||
|
||||
self.VBar.btnUp.Paint = function(s, w, h) end
|
||||
self.VBar.btnDown.Paint = function(s, w, h) end
|
||||
|
||||
self.VBar.btnGrip.Paint = function(s, w, h)
|
||||
draw.RoundedBox(4, 5, 0, 4, h + 22, sdw)
|
||||
end
|
||||
end
|
||||
|
||||
function PANEL:GetCanvas()
|
||||
return self.pnlCanvas
|
||||
end
|
||||
|
||||
function PANEL:Clear(nDelete)
|
||||
for k, panel in pairs(self.Items) do
|
||||
if (not IsValid(panel)) then continue end
|
||||
panel:Remove()
|
||||
|
||||
if (nDelete) then
|
||||
panel:SetVisible(false)
|
||||
end
|
||||
end
|
||||
|
||||
self.Items = {}
|
||||
end
|
||||
|
||||
function PANEL:ClearEX(ex_panel)
|
||||
if (not IsValid(ex_panel)) then return end
|
||||
|
||||
for k, panel in pairs(self.Items) do
|
||||
if (not IsValid(panel)) then continue end
|
||||
|
||||
if (panel ~= ex_panel) then
|
||||
panel:Remove()
|
||||
end
|
||||
end
|
||||
|
||||
self.Items = {}
|
||||
table.insert(self.Items, ex_panel)
|
||||
end
|
||||
|
||||
function PANEL:AddItem(item, strLineState)
|
||||
if (not IsValid(item)) then return end
|
||||
item:SetVisible(true)
|
||||
item:SetParent(self:GetCanvas())
|
||||
item.m_strLineState = strLineState or item.m_strLineState
|
||||
table.insert(self.Items, item)
|
||||
item:SetSelectable(self.m_bSelectionCanvas)
|
||||
self:InvalidateLayout()
|
||||
end
|
||||
|
||||
function PANEL:InsertBefore(before, insert, strLineState)
|
||||
table.RemoveByValue(self.Items, insert)
|
||||
self:AddItem(insert, strLineState)
|
||||
local key = table.KeyFromValue(self.Items, before)
|
||||
|
||||
if (key) then
|
||||
table.RemoveByValue(self.Items, insert)
|
||||
table.insert(self.Items, key, insert)
|
||||
end
|
||||
end
|
||||
|
||||
function PANEL:InsertAfter(before, insert, strLineState)
|
||||
table.RemoveByValue(self.Items, insert)
|
||||
self:AddItem(insert, strLineState)
|
||||
local key = table.KeyFromValue(self.Items, before)
|
||||
|
||||
if (key) then
|
||||
table.RemoveByValue(self.Items, insert)
|
||||
table.insert(self.Items, key + 1, insert)
|
||||
end
|
||||
end
|
||||
|
||||
function PANEL:InsertAtTop(insert, strLineState)
|
||||
table.RemoveByValue(self.Items, insert)
|
||||
self:AddItem(insert, strLineState)
|
||||
local key = 1
|
||||
|
||||
if (key) then
|
||||
table.RemoveByValue(self.Items, insert)
|
||||
table.insert(self.Items, key, insert)
|
||||
end
|
||||
end
|
||||
|
||||
function PANEL.DropAction(Slot, RcvSlot)
|
||||
local PanelToMove = Slot.Panel
|
||||
|
||||
if (dragndrop.m_MenuData == "copy") then
|
||||
if (PanelToMove.Copy) then
|
||||
PanelToMove = Slot.Panel:Copy()
|
||||
PanelToMove.m_strLineState = Slot.Panel.m_strLineState
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
PanelToMove:SetPos(RcvSlot.Data.pnlCanvas:ScreenToLocal(gui.MouseX() - dragndrop.m_MouseLocalX, gui.MouseY() - dragndrop.m_MouseLocalY))
|
||||
|
||||
if (dragndrop.DropPos == 4 or dragndrop.DropPos == 8) then
|
||||
RcvSlot.Data:InsertBefore(RcvSlot.Panel, PanelToMove)
|
||||
else
|
||||
RcvSlot.Data:InsertAfter(RcvSlot.Panel, PanelToMove)
|
||||
end
|
||||
end
|
||||
|
||||
function PANEL:RemoveItem(item, bDontDelete)
|
||||
for k, panel in pairs(self.Items) do
|
||||
if (panel == item) then
|
||||
self.Items[k] = nil
|
||||
|
||||
if (not bDontDelete) then
|
||||
panel:Remove()
|
||||
end
|
||||
|
||||
self:InvalidateLayout()
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function PANEL:CleanList()
|
||||
for k, panel in pairs(self.Items) do
|
||||
if (not IsValid(panel) or panel:GetParent() ~= self.pnlCanvas) then
|
||||
self.Items[k] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function PANEL:HorizontalRebuild(Offset)
|
||||
local x, y = self.Padding, self.Padding
|
||||
local l_highest = 0
|
||||
|
||||
for k, panel in pairs(self.Items) do
|
||||
if (panel:IsVisible()) then
|
||||
if panel.StaticScale then
|
||||
local w, h
|
||||
|
||||
if isstring(panel.StaticScale.w) then
|
||||
w = tonumber(panel.StaticScale.w)
|
||||
w = (self.pnlCanvas:GetWide() - (self.pnlCanvas:GetWide() / w)) - (self.Spacing + self.Padding)
|
||||
elseif panel.StaticScale.w == 1 then
|
||||
w = self.pnlCanvas:GetWide() / panel.StaticScale.w - (self.Spacing + self.Padding)
|
||||
else
|
||||
w = self.pnlCanvas:GetWide() / panel.StaticScale.w - (self.Spacing + self.Padding) / 1.5
|
||||
end
|
||||
|
||||
if panel.StaticScale.fixed_h then
|
||||
h = panel.StaticScale.fixed_h
|
||||
elseif panel.StaticScale.h_w then
|
||||
h = w
|
||||
elseif panel.StaticScale.h then
|
||||
if isstring(panel.StaticScale.h) then
|
||||
h = tonumber(panel.StaticScale.h)
|
||||
h = (self:GetTall() - (self:GetTall() / h)) - (self.Spacing + self.Spacing / h + self.Padding)
|
||||
elseif panel.StaticScale.h == 1 then
|
||||
h = self:GetTall() / panel.StaticScale.h - (self.Spacing + self.Padding)
|
||||
else
|
||||
h = self:GetTall() / panel.StaticScale.h - (self.Spacing + self.Padding)
|
||||
end
|
||||
end
|
||||
|
||||
if panel.StaticScale.minw > w then
|
||||
w = panel.StaticScale.minw
|
||||
end
|
||||
|
||||
if panel.StaticScale.h and panel.StaticScale.minh > h then
|
||||
h = panel.StaticScale.minh
|
||||
end
|
||||
|
||||
panel:SetSize(w, h)
|
||||
end
|
||||
|
||||
local OwnLine = (panel.m_strLineState and panel.m_strLineState == "ownline")
|
||||
local w = panel:GetWide()
|
||||
local h = panel:GetTall()
|
||||
local vbar = 0
|
||||
|
||||
if (self.VBar and self.VBar.Enabled and not self.IgnoreVbar) then
|
||||
vbar = 13
|
||||
end
|
||||
|
||||
if (x > self.Padding and (x + w > (self:GetWide() - vbar) or OwnLine)) then
|
||||
x = self.Padding
|
||||
y = y + l_highest + self.Spacing
|
||||
l_highest = h
|
||||
end
|
||||
|
||||
if h > l_highest then
|
||||
l_highest = h
|
||||
end
|
||||
|
||||
if (self.m_fAnimTime > 0 and self.m_iBuilds > 1) then
|
||||
panel:MoveTo(x, y, self.m_fAnimTime, 0, self.m_fAnimEase)
|
||||
else
|
||||
panel:SetPos(x, y)
|
||||
end
|
||||
|
||||
x = x + w + self.Spacing
|
||||
Offset = y + l_highest + self.Spacing
|
||||
|
||||
if (OwnLine) then
|
||||
x = self.Padding
|
||||
y = y + h + self.Spacing
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return Offset
|
||||
end
|
||||
|
||||
function PANEL:NormalRebuild(Offset)
|
||||
for k, panel in pairs(self.Items) do
|
||||
if (panel:IsVisible()) then
|
||||
if (self.m_bNoSizing) then
|
||||
panel:SizeToContents()
|
||||
|
||||
if (self.m_fAnimTime > 0 and self.m_iBuilds > 1) then
|
||||
panel:MoveTo((self:GetCanvas():GetWide() - panel:GetWide()) * 0.5, self.Padding + Offset, self.m_fAnimTime, 0, self.m_fAnimEase)
|
||||
else
|
||||
panel:SetPos((self:GetCanvas():GetWide() - panel:GetWide()) * 0.5, self.Padding + Offset)
|
||||
end
|
||||
else
|
||||
panel:SetWide(self:GetCanvas():GetWide() - self.Padding * 2)
|
||||
|
||||
if (self.m_fAnimTime > 0 and self.m_iBuilds > 1) then
|
||||
panel:MoveTo(self.Padding, self.Padding + Offset, self.m_fAnimTime, self.m_fAnimEase)
|
||||
else
|
||||
panel:SetPos(self.Padding, self.Padding + Offset)
|
||||
end
|
||||
end
|
||||
|
||||
panel:InvalidateLayout(true)
|
||||
Offset = Offset + panel:GetTall() + self.Spacing
|
||||
end
|
||||
end
|
||||
|
||||
Offset = Offset + self.Padding
|
||||
|
||||
return Offset
|
||||
end
|
||||
|
||||
function PANEL:Rebuild()
|
||||
local Offset = 0
|
||||
self.m_iBuilds = self.m_iBuilds + 1
|
||||
self:CleanList()
|
||||
|
||||
if (self.Horizontal) then
|
||||
Offset = self:HorizontalRebuild(Offset)
|
||||
else
|
||||
Offset = self:NormalRebuild(Offset)
|
||||
end
|
||||
|
||||
self:GetCanvas():SetTall(Offset + self.Padding - self.Spacing)
|
||||
|
||||
if (self.m_bNoSizing and self:GetCanvas():GetTall() < self:GetTall()) then
|
||||
self:GetCanvas():SetPos(0, (self:GetTall() - self:GetCanvas():GetTall()) * 0.5)
|
||||
end
|
||||
end
|
||||
|
||||
function PANEL:OnMouseWheeled(dlta)
|
||||
if (self.VBar) then return self.VBar:OnMouseWheeled(dlta) end
|
||||
end
|
||||
|
||||
function PANEL:Paint(w, h)
|
||||
derma.SkinHook("Paint", "PanelList", self, w, h)
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
function PANEL:OnVScroll(iOffset)
|
||||
self.pnlCanvas:SetPos(0, iOffset)
|
||||
end
|
||||
|
||||
function PANEL:PerformLayout()
|
||||
local Wide = self:GetWide()
|
||||
local Tall = self.pnlCanvas:GetTall()
|
||||
local YPos = 0
|
||||
|
||||
if (not self.Rebuild) then
|
||||
debug.Trace()
|
||||
end
|
||||
|
||||
self:Rebuild()
|
||||
|
||||
if (self.VBar) then
|
||||
self.VBar:SetPos(self:GetWide() - 13, 0)
|
||||
self.VBar:SetSize(13, self:GetTall())
|
||||
self.VBar:SetUp(self:GetTall(), self.pnlCanvas:GetTall())
|
||||
YPos = self.VBar:GetOffset()
|
||||
|
||||
if not self.IgnoreVbar then
|
||||
Wide = Wide - 13
|
||||
end
|
||||
end
|
||||
|
||||
self.pnlCanvas:SetPos(0, YPos)
|
||||
self.pnlCanvas:SetWide(Wide)
|
||||
|
||||
if (self:GetAutoSize()) then
|
||||
self:SetTall(self.pnlCanvas:GetTall())
|
||||
self.pnlCanvas:SetPos(0, 0)
|
||||
end
|
||||
|
||||
if (self.VBar and not self:GetAutoSize() and Tall ~= self.pnlCanvas:GetTall()) then
|
||||
self.VBar:SetScroll(self.VBar:GetScroll())
|
||||
end
|
||||
end
|
||||
|
||||
function PANEL:OnChildRemoved()
|
||||
self:CleanList()
|
||||
self:InvalidateLayout()
|
||||
end
|
||||
|
||||
function PANEL:ScrollToChild(panel)
|
||||
local _, y = self.pnlCanvas:GetChildPosition(panel)
|
||||
local _, h = panel:GetSize()
|
||||
y = y + h * 0.5
|
||||
y = y - self:GetTall() * 0.5
|
||||
self.VBar:AnimateTo(y, 0.5, 0, 0.5)
|
||||
end
|
||||
|
||||
function PANEL:SortByMember(key, desc)
|
||||
desc = desc or true
|
||||
|
||||
table.sort(self.Items, function(a, b)
|
||||
if (desc) then
|
||||
local ta = a
|
||||
local tb = b
|
||||
a = tb
|
||||
b = ta
|
||||
end
|
||||
|
||||
if (a[key] == nil) then return false end
|
||||
if (b[key] == nil) then return true end
|
||||
|
||||
return a[key] > b[key]
|
||||
end)
|
||||
end
|
||||
|
||||
derma.DefineControl("MSDPanelList", "Fancy DpanelList", PANEL, "DPanel")
|
||||
Reference in New Issue
Block a user