New feature for blocking class selection. Changes in translations. See details.

Finished norwegian translation.
Fixed missing quote in english translation file.
Added cvars for blocking players from changing classes.
Minior typo fixes in log module.
Changed TranslationReplyToCommand to use the ReplyToCommand function.
This commit is contained in:
richard 2009-08-09 22:44:28 +02:00
parent 50a7e5ab99
commit 06771e6d15
10 changed files with 234 additions and 209 deletions

View File

@ -338,6 +338,11 @@
"no" "Hoppelengde" "no" "Hoppelengde"
} }
"Classes Selection Not Allowed"
{
"no" "Endring av klasse er ikke tillatt."
}
// =========================== // ===========================
// Overlays (core) // Overlays (core)
// =========================== // ===========================
@ -372,49 +377,44 @@
"Infect menu clients title" "Infect menu clients title"
{ {
"en" "Zombie Management\nToggle Infection:\n[] = Infected" "no" "Spillerbehandling\nVeksle mellom zombie og menneske:\n[] = Infisert"
} }
// Commands // Commands
"Infect command infect syntax" "Infect command infect syntax"
{ {
"en" "Infect a client. Usage: zr_infect <filter> [respawn - 1/0]" "no" "Infiserer en spiller. Syntaks: zr_infect <mål> [teleporter - 1/0]"
} }
"Infect command human syntax" "Infect command human syntax"
{ {
"en" "Turn a client into a human. Usage: zr_human <filter> [respawn - 1/0] [protect - 1/0]" "no" "Gjør en spiller om til et menneske. Syntaks: zr_human <mål> [teleporter - 1/0] [beskyttelse - 1/0]"
} }
"Infect command infect successful" "Infect command infect successful"
{ {
"#format" "{1:s}" "no" "@green{1}@default ble vellykket infisert."
"en" "Player @green{1} @defaulthas been successfully infected."
} }
"Infect command infect mother successful" "Infect command infect mother successful"
{ {
"#format" "{1:s}" "no" "@green{1}@default ble vellykket infisert som moderzombie."
"en" "Player @green{1} @defaulthas been successfully infected as the mother zombie."
} }
"Infect command infect unsuccessful" "Infect command infect unsuccessful"
{ {
"#format" "{1:s}" "no" "@green{1}@default er allerede en zombie."
"en" "Player @green{1} @defaultis already a zombie."
} }
"Infect command human successful" "Infect command human successful"
{ {
"#format" "{1:s}" "no" "@green{1}@default ble vellykket gjort om til et menneske."
"en" "Player @green{1} @defaulthas been successfully brought back as a human."
} }
"Infect command human unsuccessful" "Infect command human unsuccessful"
{ {
"#format" "{1:s}" "no" "@green{1}@default er allerede et menneske."
"en" "Player @green{1} @defaultis already a human."
} }
// =========================== // ===========================
@ -423,7 +423,7 @@
"Damage suicide intercept" "Damage suicide intercept"
{ {
"en" "Suicide attempt intercepted." "no" "Selvmordsforsøk hindret."
} }
// =========================== // ===========================
@ -434,50 +434,42 @@
"Menu main title" "Menu main title"
{ {
"#format" "{1:s},{2:s}" "no" "ZR-kommandoer:\nStart kommandoen med \"{1}\" or \"{2}\" (skjules) i samtaleområdet."
"en" "ZR Commands:\nPrefix command with \"{1}\" or \"{2}\" (quiet) when typing in chat."
} }
"Menu main zadmin" "Menu main zadmin"
{ {
"#format" "{1:s}" "no" "ZAdmin - Åpne administrasjonsmeny. (Kommando: {1})"
"en" "ZAdmin - Open admin menu. (Command: {1})"
} }
"Menu main zclass" "Menu main zclass"
{ {
"#format" "{1:s}" "no" "ZClass - Endre klasseinstillinger. (Kommando: {1})"
"en" "ZClass - Configure class settings. (Command: {1})"
} }
"Menu main zcookies" "Menu main zcookies"
{ {
"#format" "{1:s}" "no" "ZCookies - Endre egendefinerte instillinger. (Kommando: {1})"
"en" "ZCookies - Toggle personal ZR settings here. (Command: {1})"
} }
"Menu main zspawn" "Menu main zspawn"
{ {
"#format" "{1:s}" "no" "ZSpawn - Bli med i spillet øyeblikkelig. (Kommando: {1})"
"en" "ZSpawn - Join late? Spawn with this. (Command: {1})"
} }
"Menu main ztele" "Menu main ztele"
{ {
"#format" "{1:s}" "no" "ZTele - Teleporter til startområde. (Kommando: {1})"
"en" "ZTele - Stuck? Teleport back to spawn. (Command: {1})"
} }
"Menu main zhp" "Menu main zhp"
{ {
"#format" "{1:s}" "no" "ZHP - Vis nåværende helsenivå. (Kommando: {1})"
"en" "ZHP - Shows real HP as zombie. (Command: {1})"
} }
"Menu main zmarket" "Menu main zmarket"
{ {
"#format" "{1:s}" "no" "ZMarket - Endre egendefinerte våpeninstillinger. (Kommando: {1})"
"en" "ZMarket - Customize loadouts here. (Command: {1})"
} }
// =========================== // ===========================
@ -488,280 +480,252 @@
"Zombie cant use weapon" "Zombie cant use weapon"
{ {
"en" "Zombies can't use weapons!" "no" "Zombier kan ikke bruke våpen."
"ru" "Зомби не могут использовать оружие!"
} }
// Restrict // Restrict
"Restrict weapon" "Restrict weapon"
{ {
"#format" "{1:s}" "no" "Våpenet @green\"{1}\"@default ble sperret."
"en" "Weapon @green\"{1}\" @defaulthas been restricted."
} }
"Unrestrict weapon" "Unrestrict weapon"
{ {
"#format" "{1:s}" "no" "Våpenet @green\"{1}\"@default er ikke lenger sperret."
"en" "Weapon @green\"{1}\" @defaulthas been unrestricted."
} }
"Restrict weapon stopped" "Restrict weapon stopped"
{ {
"#format" "{1:s}" "no" "Våpenet @green\"{1}\"@default er allerede sperret."
"en" "Weapon @green\"{1}\" @defaultis already restricted."
} }
"Unrestrict weapon stopped" "Unrestrict weapon stopped"
{ {
"#format" "{1:s}" "no" "Våpenet @green\"{1}\"@default er ikke sperret."
"en" "Weapon @green\"{1}\" @default has no restrictions set."
} }
"Restrict weapon type" "Restrict weapon type"
{ {
"#format" "{1:s}" "no" "Våpentypen @green\"{1}\"@default er sperret."
"en" "Weapons of type @green\"{1}\" @defaulthave been restricted."
} }
"Unrestrict weapon type" "Unrestrict weapon type"
{ {
"#format" "{1:s}" "no" "Våpentypen @green\"{1}\"@default er ikke lenger sperret."
"en" "Weapons of type @green\"{1}\" @defaulthave been unrestricted."
} }
"Restrict weapon type stopped" "Restrict weapon type stopped"
{ {
"#format" "{1:s}" "no" "Våpentypen @green\"{1}\"@default er allerede sperret."
"en" "Weapons of type @green\"{1}\" @defaultare all already restricted."
} }
"Unrestrict weapon type stopped" "Unrestrict weapon type stopped"
{ {
"#format" "{1:s}" "no" "Våpentypen @green\"{1}\"@default er ikke sperret."
"en" "Weapons of type @green\"{1}\" @defaulthave no restrictions set."
} }
"Restrict weapon untoggleable" "Restrict weapon untoggleable"
{ {
"#format" "{1:s}" "no" "Våpenet @green\"{1}\"@default kan ikke sperres."
"en" "Weapon @green\"{1}\" @defaultmay not have its restrictions toggled."
} }
"Weapon invalid" "Weapon invalid"
{ {
"#format" "{1:s}" "no" "Våpenet eller våpentypen @green\"{1}\"@default er ugyldig."
"en" "Weapon @green\"{1}\" @defaultis an invalid weapon (type) name."
} }
"Weapon is restricted" "Weapon is restricted"
{ {
"#format" "{1:s}" "no" "Våpenet @green{1}@default er sperret."
"en" "Weapon @green{1} @defaultis restricted."
"ru" "Оружие @green{1} @default запрещено."
} }
// ZMarket // ZMarket
"Weapons zmarket buyzone" "Weapons zmarket buyzone"
{ {
"en" "You must be in a buyzone to use ZMarket." "no" "Du må være i en kjøpesone for å kunne bruke ZMarket."
} }
"Weapons zmarket purchase" "Weapons zmarket purchase"
{ {
"#format" "{1:s}" "no" "Du har kjøpt våpenet @green{1}@default. Velg gjenstanden igjen for å kjøpe mer ammunisjon."
"en" "You have purchased weapon @green{1}. @defaultSelect item again to buy ammo if you are low."
} }
"Weapons zmarket purchase max" "Weapons zmarket purchase max"
{ {
"#format" "{1:s},{2:d}" "no" "Våpenet @green{1}@default har en kjøpegrense på @green{2}@default enheter. Vent til neste runde eller gjenoppliving."
"en" "Weapon @green{1} @defaulthas a purchase limit of @green{2}@default. Wait until you respawn to try again."
} }
"Weapons zmarket auto-rebuy toggle on" "Weapons zmarket auto-rebuy toggle on"
{ {
"en" "Auto-rebuy has been enabled, your loadout will be automatically purchased for you each time you spawn." "no" "Autokjøp er aktivert, dine valg vil automatisk bli kjøpt hver runde eller hver gjenoppliving."
} }
"Weapons zmarket auto-rebuy toggle off" "Weapons zmarket auto-rebuy toggle off"
{ {
"en" "Auto-rebuy has been disabled." "no" "Autokjøp er deaktivert."
} }
"Weapons zmarket updated loadout" "Weapons zmarket updated loadout"
{ {
"en" "You are not able to purchase a weapon at this time, but your loadout has been updated with this weapon." "no" "Du kan ikke kjøpe våpen for øyeblikket, men våpenvalget er blitt lagret."
} }
"Weapons zmarket get current loadout" "Weapons zmarket get current loadout"
{ {
"en" "Updated current loadout, use rebuy option to purchase these weapons again." "no" "Våpenvalg oppdatert. Bruk gjenkjøpvalget for å kjøpe disse våpnene igjen."
} }
// Commands // Commands
"Weapons command restrict syntax" "Weapons command restrict syntax"
{ {
"en" "Restricts a weapon or a weapon type. Usage: zr_restrict <weapon|weapon type> [weapon2|weapontype2] ..." "no" "Sperrer et våpen eller en våpentype. Syntaks: zr_restrict <våpen|våpentype> [våpen|våpentype] ..."
} }
"Weapons command unrestrict syntax" "Weapons command unrestrict syntax"
{ {
"en" "Unrestricts a weapon or a weapon type. Usage: zr_unrestrict <weapon|weapon type> [weapon2|weapontype2] ..." "no" "Fjerner sperre av et våpen eller en våpentype. Syntaks: zr_unrestrict <våpen|våpentype> [våpen|våpentype] ..."
} }
// Menu (Restrict) // Menu (Restrict)
"Weapons menu restrict main title" "Weapons menu restrict main title"
{ {
"en" "Weapons Management" "no" "Våpenbehandling"
} }
"Weapons menu restrict main restrict" "Weapons menu restrict main restrict"
{ {
"en" "Weapon Restrictions" "no" "Våpensperringer"
} }
"Weapons menu restrict main market" "Weapons menu restrict main market"
{ {
"en" "ZMarket" "no" "ZMarket"
} }
"Weapons menu restrict types title" "Weapons menu restrict types title"
{ {
"en" "Weapon Restrictions\nSelect Weapon Type:" "no" "Våpensperringer\nVelg våpentype:"
} }
"Weapons menu restrict types weapon type title" "Weapons menu restrict types weapon type title"
{ {
"#format" "{1:s}" "no" "Våpensperringer\nVåpentype: {1}\n[] = Sperret"
"en" "Weapon Restrictions\nWeapon Type: {1}\n[] = Restricted"
} }
"Weapons menu restrict types restrict all" "Weapons menu restrict types restrict all"
{ {
"#format" "{1:s}" "no" "Sperr våpentypen \"{1}\""
"en" "Restrict weapon type {1}"
} }
"Weapons menu restrict types unrestrict all" "Weapons menu restrict types unrestrict all"
{ {
"#format" "{1:s}" "no" "Fjern sperre for våpentypen \"{1}\""
"en" "Unrestrict weapon type {1}"
} }
"Weapons menu restrict zmarket title" "Weapons menu restrict zmarket title"
{ {
"en" "ZMarket\nSelect Setting:" "no" "ZMarket\nVelg instilling:"
} }
"Weapons menu restrict zmarket buyzone" "Weapons menu restrict zmarket buyzone"
{ {
"#format" "{1:s}" "no" "Kun i kjøpesoner - {1}"
"en" "Buyzone Only - {1}"
} }
// Menu (ZMarket) // Menu (ZMarket)
"Weapons menu zmarket main title" "Weapons menu zmarket main title"
{ {
"en" "ZMarket\nSelect an Option:" "no" "ZMarket"
} }
"Weapons menu zmarket main get loadout" "Weapons menu zmarket main get loadout"
{ {
"en" "Get Current Loadout" "no" "Kjøp gjeldende våpenvalg"
} }
"Weapons menu zmarket main view loadout" "Weapons menu zmarket main view loadout"
{ {
"en" "View My Loadout" "no" "Vis våpenvalg"
} }
"Weapons menu zmarket main rebuy" "Weapons menu zmarket main rebuy"
{ {
"en" "Rebuy My Loadout" "no" "Kjøp gjeldende våpenvalg"
} }
"Weapons menu zmarket main auto-rebuy" "Weapons menu zmarket main auto-rebuy"
{ {
"#format" "{1:s}" "no" "Autokjøp: {1}"
"en" "Auto-Rebuy: {1}"
} }
"Weapons menu zmarket main weapons list" "Weapons menu zmarket main weapons list"
{ {
"en" "View Weapons List" "no" "Vis våpenliste"
} }
"Weapons menu zmarket loadout title" "Weapons menu zmarket loadout title"
{ {
"en" "ZMarket\nMy Current Loadout:\nSelect weapon slot to clear.\nNote: Rebuy refers to these weapons." "no" "ZMarket\nGjeldende våpenvalg:\nFjern våpen ved å velge det."
} }
"Weapons menu zmarket loadout primary" "Weapons menu zmarket loadout primary"
{ {
"#format" "{1:s}" "no" "Primærvåpen: {1}"
"en" "Primary: {1}"
} }
"Weapons menu zmarket loadout secondary" "Weapons menu zmarket loadout secondary"
{ {
"#format" "{1:s}" "no" "sekundærvåpen: {1}"
"en" "Secondary: {1}"
} }
"Weapons menu zmarket loadout melee" "Weapons menu zmarket loadout melee"
{ {
"#format" "{1:s}" "no" "Nærkamp: {1}"
"en" "Melee: {1}"
} }
"Weapons menu zmarket loadout projectile" "Weapons menu zmarket loadout projectile"
{ {
"#format" "{1:s}" "no" "Prosjektiler: {1}"
"en" "Projectile: {1}"
} }
"Weapons menu zmarket loadout explosive" "Weapons menu zmarket loadout explosive"
{ {
"#format" "{1:s}" "no" "Granater: {1}"
"en" "Explosive: {1}"
} }
"Weapons menu zmarket loadout nvgs" "Weapons menu zmarket loadout nvgs"
{ {
"#format" "{1:s}" "no" "Nattsyn: {1}"
"en" "NVGs: {1}"
} }
"Weapons menu zmarket loadout empty" "Weapons menu zmarket loadout empty"
{ {
"en" "(None)" "no" "(Ingen)"
} }
"Weapons menu zmarket types title" "Weapons menu zmarket types title"
{ {
"en" "ZMarket\nSelect Weapon Type:" "no" "ZMarket\nVelg våpentype:"
} }
"Weapons menu zmarket types weapon type title" "Weapons menu zmarket types weapon type title"
{ {
"#format" "{1:s}" "no" "ZMarket\nVåpentype: {1}\n[] = Sperret"
"en" "ZMarket\nWeapon Type: {1}\n[] = Restricted"
} }
"Weapons menu zmarket types weapon info" "Weapons menu zmarket types weapon info"
{ {
"#format" "{1:s},{2:d},{3:d}" "no" "{1} (${2})\nAntall kjøp igjen: {3}"
"en" "{1} (${2})\nPurchases Left: {3}"
} }
"Weapons menu zmarket types weapon ammo" "Weapons menu zmarket types weapon ammo"
{ {
"en" "Ammo" "no" "Ammunisjon"
} }
// =========================== // ===========================
@ -772,62 +736,59 @@
"Hitgroups menu hitgroups title" "Hitgroups menu hitgroups title"
{ {
"en" "Hitgroup Management\nCommands: zr_hitgroup(_enable_all/_headshots_only)\nSelect a Hitgroup to Toggle:" "no" "Treffgruppebehandling\nKommandoer: zr_hitgroup(_enable_all/_headshots_only)\nVelg en treffgruppe for å aktivere/deaktivere:"
} }
"Hitgroups menu hitgroups enable all" "Hitgroups menu hitgroups enable all"
{ {
"en" "Enable All Hitgroups" "no" "Aktiver alle treffgrupper"
} }
"Hitgroups menu hitgroups headshots only" "Hitgroups menu hitgroups headshots only"
{ {
"en" "Headshots Only" "no" "Kun hodeskudd"
} }
// Commands // Commands
"Hitgroups command syntax" "Hitgroups command syntax"
{ {
"en" "Toggles or sets if a zombie's hitgroup can be damaged. Usage: zr_hitgroup <hitgroup alias> [1/0]" "no" "Veksle, aktiver eller deaktiver en treffgruppe til zombiene. Usage: zr_hitgroup <treffgruppe> [aktiv - 1/0]"
} }
"Hitgroups command related commands" "Hitgroups command related commands"
{ {
"en" "Related command(s): zr_hitgroup_enable_all, zr_hitgroup_headshots_only" "no" "Relaterte kommandoer: zr_hitgroup_enable_all, zr_hitgroup_headshots_only"
} }
"Hitgroups command syntax names" "Hitgroups command syntax names"
{ {
"en" "Hitgroup Names:" "no" "Treffgruppenavn:"
} }
"Hitgroups command successful on" "Hitgroups command successful on"
{ {
"#format" "{1:s}" "no" "Skade for treffgruppen \"{1}\" er aktivert."
"en" "Damage for hitgroup \"{1}\" has been toggled on."
} }
"Hitgroups command successful off" "Hitgroups command successful off"
{ {
"#format" "{1:s}" "no" "Skade for treffgruppen \"{1}\" er deaktivert."
"en" "Damage for hitgroup \"{1}\" has been toggled off."
} }
"Hitgroups command invalid hitgroup" "Hitgroups command invalid hitgroup"
{ {
"#format" "{1:s}" "no" "\"{1}\" er ikke en gyldig treffgruppe. Bruk zr_hitgroup for å se alle treffgruppenavnene."
"en" "\"{1}\" is not a valid hitgroup alias. Type zr_hitgroup to view all aliases."
} }
"Hitgroups command enable all successful" "Hitgroups command enable all successful"
{ {
"en" "All zombie hitgroups have been enabled for damage." "no" "Alle treffgruppene er aktivert."
} }
"Hitgroups command headshots only successful" "Hitgroups command headshots only successful"
{ {
"en" "Zombies may now only be damaged by headshots." "no" "Zombiene kan nå kun bli skadet av hodeskudd."
} }
// =========================== // ===========================
@ -836,37 +797,37 @@
"ZAdmin main title" "ZAdmin main title"
{ {
"en" "ZAdmin\nSelect Category:" "no" "ZAdmin\nVelg kategori:"
} }
"ZAdmin main class multipliers" "ZAdmin main class multipliers"
{ {
"en" "Class Multipliers" "no" "Klassemultiplikatorer"
} }
"ZAdmin main weapons" "ZAdmin main weapons"
{ {
"en" "Weapon Management" "no" "Våpenbehandling"
} }
"ZAdmin main hitgroups" "ZAdmin main hitgroups"
{ {
"en" "Hitgroup Management" "no" "Treffgruppebehandling"
} }
"ZAdmin main zombie" "ZAdmin main zombie"
{ {
"en" "Zombie Management" "no" "Spillerbehandling"
} }
"ZAdmin main force zspawn" "ZAdmin main force zspawn"
{ {
"en" "Force ZSpawn" "no" "Tving gjenoppliving"
} }
"ZAdmin main force ztele" "ZAdmin main force ztele"
{ {
"en" "Force ZTele" "no" "Tving teleport"
} }
// =========================== // ===========================
@ -875,38 +836,36 @@
// Commands // Commands
// Not translating antistick phrases because hull width settings had no effect. To be removed.
"AntiStick command set width syntax" "AntiStick command set width syntax"
{ {
"en" "Sets the width of a model's hull. (See zr_antistick_list_models) Usage: zr_antistick_set_width <model/player> <width>" "no" "Sets the width of a model's hull. (See zr_antistick_list_models) Usage: zr_antistick_set_width <model/player> <width>"
} }
"AntiStick command list models list" "AntiStick command list models list"
{ {
"en" "Player name: Model: Hull width:\n-------------------------------------------------------------------------------------------------------------" "no" "Player name: Model: Hull width:\n-------------------------------------------------------------------------------------------------------------"
} }
"AntiStick command list models name" "AntiStick command list models name"
{ {
"#format" "{1:-35s},{2:-51s},{3:-.2f}" "no" "{1} {2} {3}"
"en" "{1} {2} {3}"
} }
"AntiStick command set width successful" "AntiStick command set width successful"
{ {
"#format" "{1:s},{2:f}" "no" "Model hull width for model \"{1}\" has been changed to \"{2}.\""
"en" "Model hull width for model \"{1}\" has been changed to \"{2}.\""
} }
"AntiStick command set width invalid model" "AntiStick command set width invalid model"
{ {
"#format" "{1:s}" "no" "Invalid model/player specified: \"{1}\""
"en" "Invalid model/player specified: \"{1}\""
} }
"AntiStick command set width invalid width" "AntiStick command set width invalid width"
{ {
"#format" "{1:f}" "no" "Invalid model hull width specified: \"{1}\""
"en" "Invalid model hull width specified: \"{1}\""
} }
// =========================== // ===========================
@ -917,23 +876,19 @@
"Spawn protection begin" "Spawn protection begin"
{ {
"#format" "{1:d}" "no" "Zombier tilstede, du er beskyttet og har {1} sekunder på å finne et trygt sted."
"en" "Zombies are present, you have {1} seconds to find a safe place before you lose immunity."
"ru" "Зомби на свободе, у вас {1} секунд, чтобы найти безопасное место, пока не потеряли иммунитет."
} }
"Spawn protection end" "Spawn protection end"
{ {
"en" "You are now susceptible to zombie infection." "no" "Du er nå utsatt for å bli smittet av en zombie."
"ru" "Теперь вы восприимчивы к зомби инфекции."
} }
// HUD // HUD
"Spawn Protect" "Spawn Protect"
{ {
"#format" "{1:d}" "no" "Zombiebeskyttelsen stopper om {1} sekunder."
"en" "Zombie protection ends in: {1} seconds."
} }
// =========================== // ===========================
@ -942,30 +897,27 @@
"ZCookies Menu main title" "ZCookies Menu main title"
{ {
"en" "ZCookies\nSelect a Cookie:" "no" "ZCookies\nVelg informasjonskapsel:"
} }
"ZCookies menu main auto-rebuy" "ZCookies menu main auto-rebuy"
{ {
"#format" "{1:s}" "no" "Autokjøp (ZMarket): {1}"
"en" "ZMarket Auto-Rebuy: {1}"
} }
"ZCookies menu main zhp" "ZCookies menu main zhp"
{ {
"#format" "{1:s}" "no" "ZHP-skjerm: {1}"
"en" "ZHP Display: {1}"
} }
"ZCookies menu main overlay" "ZCookies menu main overlay"
{ {
"#format" "{1:s}" "no" "Vis klasseoverlegg: {1}"
"en" "Human/Zombie Class Overlay: {1}"
} }
"ZCookies zmarket loadout" "ZCookies zmarket loadout"
{ {
"en" "ZMarket Loadout" "no" "Våpenvalg (ZMarket)"
} }
// =========================== // ===========================
@ -976,40 +928,36 @@
"ZSpawn double spawn" "ZSpawn double spawn"
{ {
"en" "ZSpawn can only be used if you joined late during a round in progress." "no" "ZSpawn kan kun bli brukt hvis du koblet til servern midt i en runde."
} }
"ZSpawn timelimit" "ZSpawn timelimit"
{ {
"#format" "{1:d}" "no" "Tidsfristen ({1} sekunder) for å bruke ZSpawn har gått ut."
"en" "The timelimit ({1} seconds), to use ZSpawn, has already expired."
} }
// Menu // Menu
"ZSpawn clients title" "ZSpawn clients title"
{ {
"en" "Force ZSpawn (zr_zspawn_force)\nSelect a Player:" "no" "Tving gjenoppliving (zr_zspawn_force)\nVelg en spiller:"
} }
// Commands // Commands
"ZSpawn command force syntax" "ZSpawn command force syntax"
{ {
"en" "Force ZSpawn on a client. Usage: zr_zspawn_force <client> ['0' = Spawn as human | '1' = Spawn as zombie]" "no" "Tving gjenoppliving på en spiller. Syntaks: zr_zspawn_force <spiller> ['0' = Menneske | '1' = Zombie]"
} }
"ZSpawn command force successful" "ZSpawn command force successful"
{ {
"#format" "{1:s}" "no" "{1} ble vellykket gjenopplivet."
"en" "Player {1} was successfully spawned."
} }
"ZSpawn command force unsuccessful" "ZSpawn command force unsuccessful"
{ {
"#format" "{1:s}" "no" "{1} kunne ikke bli gjenopplivet."
"en" "Player {1} couldn't be spawned."
} }
// =========================== // ===========================
@ -1020,70 +968,63 @@
"ZTele restricted human" "ZTele restricted human"
{ {
"en" "ZTele is restricted for humans at this time." "no" "Mennesker kan ikke teleporteres for øyeblikket."
} }
"ZTele max" "ZTele max"
{ {
"#format" "{1:d}" "no" "Du har brukt opp alle teleportene ({1}) for denne runden."
"en" "You have reached your max of {1} teleport(s) per round."
} }
"ZTele in progress" "ZTele in progress"
{ {
"en" "You are currently pending teleportation." "no" "Du venter på allerede på en teleport."
} }
"ZTele autocancel text" "ZTele autocancel text"
{ {
"#format" "{1:d}" "no" "Teleport avbrutt. Du har forflyttet deg lengre enn tillatt da du ventet på en teleport. Maks lengde er {1} fot."
"en" "Teleport has been cancelled. (Restrictive boundary is {1} ft.)"
} }
// Center Text // Center Text
"ZTele countdown" "ZTele countdown"
{ {
"#format" "{1:d}" "no" "Teleporterer til startområdet om {1} sekunder."
"en" "Teleporting back to spawn in: {1} seconds."
} }
"ZTele autocancel centertext" "ZTele autocancel centertext"
{ {
"en" "Teleport has been cancelled." "no" "Teleport avbrutt."
} }
"ZTele countdown end" "ZTele countdown end"
{ {
"#format" "{1:d},{2:d}" "no" "Teleportert til startområdet. (Antall: {1}/{2})"
"en" "Teleported back to spawn. (Count: {1}/{2})"
} }
// Menu // Menu
"ZTele clients title" "ZTele clients title"
{ {
"en" "Force ZTele (zr_ztele_force)\nSelect a Player:" "no" "Tving teleport (zr_ztele_force)\nVelg en spiller:"
} }
// Commands // Commands
"ZTele command force syntax" "ZTele command force syntax"
{ {
"en" "Force ZTele on a client. Usage: zr_ztele_force <client>" "no" "Tving teleport på en spiller. Syntaks: zr_ztele_force <spiller>"
} }
"ZTele command force successful" "ZTele command force successful"
{ {
"#format" "{1:s}" "no" "{1} ble vellykket teleportert."
"en" "Player {1} was successfully teleported."
} }
"ZTele command force unsuccessful" "ZTele command force unsuccessful"
{ {
"#format" "{1:s}" "no" "{1} kunne ikke bli teleportert."
"en" "Player {1} couldn't be teleported."
} }
// =========================== // ===========================
@ -1094,22 +1035,19 @@
"ZHP enable" "ZHP enable"
{ {
"en" "HP display enabled, your real HP will be displayed after infection." "no" "HP-skjerm aktivert. Du vil se din ekte helseverdi som zombie."
} }
"ZHP disable" "ZHP disable"
{ {
"en" "HP display disabled." "no" "HP-skjerm deaktivert."
"ru" "Отображение здоровья включено."
} }
// HUD // HUD
"Display HP" "Display HP"
{ {
"#format" "{1:d}" "no" "HP: {1}"
"en" "HP: {1}"
"ru" "Здоровье: {1}"
} }
// =========================== // ===========================
@ -1118,18 +1056,16 @@
"Vol Anticamp Message" "Vol Anticamp Message"
{ {
"en" "This area is restricted, please move along." "no" "Dette området er sperret, vennligst gå videre."
} }
"Vol Slay" "Vol Slay"
{ {
"#format" "{1:s},{2:d}" "no" "Drepte \"{1}\" for opphold i sperret område (ID: {2})."
"en" "Slayed player \"{1}\" for camping in a restricted area (ID: {2})."
} }
"Vol Ignite" "Vol Ignite"
{ {
"#format" "{1:s},{2:d}" "no" "Satt fyr på \"{1}\" for opphold i sperret område (ID: {2})."
"en" "Ignited player \"{1}\" for camping in a restricted area (ID: {2})."
} }
} }

View File

@ -65,7 +65,7 @@
"Must be zombie" "Must be zombie"
{ {
"en" "This feature requires that you are a zombie. "en" "This feature requires that you are a zombie."
} }
"Must be human" "Must be human"
@ -356,6 +356,11 @@
"en" "Jump Distance" "en" "Jump Distance"
} }
"Classes Selection Not Allowed"
{
"en" "Changing classes is not allowed."
}
// =========================== // ===========================
// Overlays (core) // Overlays (core)
// =========================== // ===========================

View File

@ -91,7 +91,7 @@ zr_log "1"
// Default: "3" // Default: "3"
zr_log_flags "3" zr_log_flags "3"
// Enable module filtering. Only log events from listed modules will be logged. // Enable module filtering. Only events from listed modules will be logged.
// Default: "0" // Default: "0"
zr_log_module_filter "0" zr_log_module_filter "0"
@ -163,6 +163,18 @@ zr_classes_default_zombie "random"
// Default: "motherzombies" // Default: "motherzombies"
zr_classes_default_mother_zombie "motherzombies" zr_classes_default_mother_zombie "motherzombies"
// Allow players to select zombie classes.
// Default: "1"
zr_classes_zombie_select "1"
// Allow players to select human classes.
// Default: "1"
zr_classes_human_select "1"
// Allow admins to select admin mode classes. (Not to be confused by admin-only classes!)
// Default: "1"
zr_classes_admin_select "1"
// Menu // Menu
// Automatically close class selection menu. // Automatically close class selection menu.

View File

@ -62,6 +62,9 @@ enum CvarsList
Handle:CVAR_CLASSES_OVERLAY_TOGGLE, Handle:CVAR_CLASSES_OVERLAY_TOGGLE,
Handle:CVAR_CLASSES_OVERLAY_TOGGLECMDS, Handle:CVAR_CLASSES_OVERLAY_TOGGLECMDS,
Handle:CVAR_CLASSES_OVERLAY_DEFAULT, Handle:CVAR_CLASSES_OVERLAY_DEFAULT,
Handle:CVAR_CLASSES_ZOMBIE_SELECT,
Handle:CVAR_CLASSES_HUMAN_SELECT,
Handle:CVAR_CLASSES_ADMIN_SELECT,
Handle:CVAR_WEAPONS, Handle:CVAR_WEAPONS,
Handle:CVAR_WEAPONS_RESTRICT, Handle:CVAR_WEAPONS_RESTRICT,
Handle:CVAR_WEAPONS_ZMARKET, Handle:CVAR_WEAPONS_ZMARKET,
@ -214,7 +217,7 @@ CvarsCreate()
// =========================== // ===========================
g_hCvarsList[CVAR_LOG] = CreateConVar("zr_log", "1", "Enable logging of events in the plugin. Fatal errors are logged independent on this setting."); g_hCvarsList[CVAR_LOG] = CreateConVar("zr_log", "1", "Enable logging of events in the plugin. Fatal errors are logged independent on this setting.");
g_hCvarsList[CVAR_LOG_FLAGS] = CreateConVar("zr_log_flags", "3", "A bit field that specify what event types to log. See logging section (3.3) in manual for details."); g_hCvarsList[CVAR_LOG_FLAGS] = CreateConVar("zr_log_flags", "3", "A bit field that specify what event types to log. See logging section (3.3) in manual for details.");
g_hCvarsList[CVAR_LOG_MODULE_FILTER] = CreateConVar("zr_log_module_filter", "0", "Enable module filtering. Only log events from listed modules will be logged."); g_hCvarsList[CVAR_LOG_MODULE_FILTER] = CreateConVar("zr_log_module_filter", "0", "Enable module filtering. Only events from listed modules will be logged.");
g_hCvarsList[CVAR_LOG_IGNORE_CONSOLE] = CreateConVar("zr_log_ignore_console", "1", "Don't log events triggered by console commands that are executed by the console itself, like commands in configs. Enable this command to avoid spamming logs with events like weapon restrictions."); g_hCvarsList[CVAR_LOG_IGNORE_CONSOLE] = CreateConVar("zr_log_ignore_console", "1", "Don't log events triggered by console commands that are executed by the console itself, like commands in configs. Enable this command to avoid spamming logs with events like weapon restrictions.");
g_hCvarsList[CVAR_LOG_ERROR_OVERRIDE] = CreateConVar("zr_log_error_override", "1", "Always log error messages. Overrides module filter and logging flags."); g_hCvarsList[CVAR_LOG_ERROR_OVERRIDE] = CreateConVar("zr_log_error_override", "1", "Always log error messages. Overrides module filter and logging flags.");
g_hCvarsList[CVAR_LOG_PRINT_ADMINS] = CreateConVar("zr_log_print_admins", "0", "Print log events to admin chat in addition to the log file."); g_hCvarsList[CVAR_LOG_PRINT_ADMINS] = CreateConVar("zr_log_print_admins", "0", "Print log events to admin chat in addition to the log file.");
@ -242,6 +245,9 @@ CvarsCreate()
g_hCvarsList[CVAR_CLASSES_DEFAULT_M_ZOMB] = CreateConVar("zr_classes_default_mother_zombie", "motherzombies","Zombie class assigned to mother zombies. [\"motherzombies\" = Random mother zombie class | \"random\" = Random regular zombie class | \"disabled\" = Don't change class on mother zombies]"); g_hCvarsList[CVAR_CLASSES_DEFAULT_M_ZOMB] = CreateConVar("zr_classes_default_mother_zombie", "motherzombies","Zombie class assigned to mother zombies. [\"motherzombies\" = Random mother zombie class | \"random\" = Random regular zombie class | \"disabled\" = Don't change class on mother zombies]");
g_hCvarsList[CVAR_CLASSES_DEFAULT_HUMAN] = CreateConVar("zr_classes_default_human", "random", "Human class assigned to players on connect. [\"random\" = Random human class | \"\" = Class config default]"); g_hCvarsList[CVAR_CLASSES_DEFAULT_HUMAN] = CreateConVar("zr_classes_default_human", "random", "Human class assigned to players on connect. [\"random\" = Random human class | \"\" = Class config default]");
g_hCvarsList[CVAR_CLASSES_DEFAULT_ADMIN] = CreateConVar("zr_classes_default_admin", "random", "Admin class assigned to admins on connect. [\"random\" = Random admin class | \"\" = Class config default]"); g_hCvarsList[CVAR_CLASSES_DEFAULT_ADMIN] = CreateConVar("zr_classes_default_admin", "random", "Admin class assigned to admins on connect. [\"random\" = Random admin class | \"\" = Class config default]");
g_hCvarsList[CVAR_CLASSES_ZOMBIE_SELECT] = CreateConVar("zr_classes_zombie_select", "1", "Allow players to select zombie classes.");
g_hCvarsList[CVAR_CLASSES_HUMAN_SELECT] = CreateConVar("zr_classes_human_select", "1", "Allow players to select human classes.");
g_hCvarsList[CVAR_CLASSES_ADMIN_SELECT] = CreateConVar("zr_classes_admin_select", "1", "Allow admins to select admin mode classes. (Not to be confused by admin-only classes!)");
// Menu // Menu
g_hCvarsList[CVAR_CLASSES_MENU_AUTOCLOSE] = CreateConVar("zr_classes_menu_autoclose", "0", "Automatically close class selection menu after selecting a class."); g_hCvarsList[CVAR_CLASSES_MENU_AUTOCLOSE] = CreateConVar("zr_classes_menu_autoclose", "0", "Automatically close class selection menu after selecting a class.");

View File

@ -624,7 +624,7 @@ public Action:Command_LogRemoveModule(client, argc)
if (argc < 1) if (argc < 1)
{ {
// Display syntax info. // Display syntax info.
StrCat(buffer, sizeof(buffer), "Add one or more modules to the module filter. Usage: zr_log_add_module <module> [module] ...\n"); StrCat(buffer, sizeof(buffer), "Remove one or more modules to the module filter. Usage: zr_log_remove_module <module> [module] ...\n");
StrCat(buffer, sizeof(buffer), "See zr_log_list to list available module names (short names)."); StrCat(buffer, sizeof(buffer), "See zr_log_list to list available module names (short names).");
ReplyToCommand(client, buffer); ReplyToCommand(client, buffer);
} }

View File

@ -117,7 +117,10 @@ ZMenuMain(client)
new bool:admin = ZRIsClientAdmin(client); new bool:admin = ZRIsClientAdmin(client);
AddMenuItem(menu_main, "zadmin", zadmin, MenuGetItemDraw(admin)); AddMenuItem(menu_main, "zadmin", zadmin, MenuGetItemDraw(admin));
AddMenuItem(menu_main, "zclass", zclass); // Decide whether the client can use zclass.
new zclassdraw = ClassAllowSelection(client) ? ITEMDRAW_DEFAULT : ITEMDRAW_DISABLED;
AddMenuItem(menu_main, "zclass", zclass, zclassdraw);
AddMenuItem(menu_main, "zcookies", zcookies); AddMenuItem(menu_main, "zcookies", zcookies);
AddMenuItem(menu_main, "zspawn", zspawn); AddMenuItem(menu_main, "zspawn", zspawn);
AddMenuItem(menu_main, "ztele", ztele); AddMenuItem(menu_main, "ztele", ztele);

View File

@ -59,7 +59,14 @@ public Action:ZClassCommand(client, argc)
// If client is console, then stop and tell them this feature is for players only. // If client is console, then stop and tell them this feature is for players only.
if (ZRIsConsole(client)) if (ZRIsConsole(client))
{ {
TranslationPrintToServer("Must be player"); TranslationReplyToCommand(client, "Must be player");
return Plugin_Handled;
}
// Check if class selection is allowed.
if (!ClassAllowSelection(client))
{
TranslationReplyToCommand(client, "Classes Selection Not Allowed");
return Plugin_Handled; return Plugin_Handled;
} }

View File

@ -65,18 +65,19 @@ ClassMenuMain(client)
// Get number of enabled classes per team. // Get number of enabled classes per team.
new zombiecount = ClassCountTeam(ZR_CLASS_TEAM_ZOMBIES); new zombiecount = ClassCountTeam(ZR_CLASS_TEAM_ZOMBIES);
new humancount = ClassCountTeam(ZR_CLASS_TEAM_ZOMBIES); new humancount = ClassCountTeam(ZR_CLASS_TEAM_ZOMBIES);
new admincount = ClassCountTeam(ZR_CLASS_TEAM_ZOMBIES); new admincount = ClassCountTeam(ZR_CLASS_TEAM_ADMINS);
// Get previously selected class indexes, if set. // Get previously selected class indexes, if set.
new nextzombie = ClassSelectedNext[client][ZR_CLASS_TEAM_ZOMBIES]; new nextzombie = ClassSelectedNext[client][ZR_CLASS_TEAM_ZOMBIES];
new nexthuman = ClassSelectedNext[client][ZR_CLASS_TEAM_HUMANS]; new nexthuman = ClassSelectedNext[client][ZR_CLASS_TEAM_HUMANS];
new nextadmin = ClassSelectedNext[client][ZR_CLASS_TEAM_ADMINS]; new nextadmin = ClassSelectedNext[client][ZR_CLASS_TEAM_ADMINS];
// Set draw style on class options depending on number of enabled classes. // Set draw style on class options depending on number of enabled classes
// Disable class selection if there's only one class. // and selection permissions. Disable class selection if there's only one
new zombie_itemdraw = (zombiecount > 1) ? ITEMDRAW_DEFAULT : ITEMDRAW_DISABLED; // class.
new human_itemdraw = (humancount > 1) ? ITEMDRAW_DEFAULT : ITEMDRAW_DISABLED; new zombie_itemdraw = (zombiecount > 1 && ClassAllowSelection(client, ZR_CLASS_TEAM_ZOMBIES)) ? ITEMDRAW_DEFAULT : ITEMDRAW_DISABLED;
new admin_itemdraw = (admincount > 1) ? ITEMDRAW_DEFAULT : ITEMDRAW_DISABLED; new human_itemdraw = (humancount > 1 && ClassAllowSelection(client, ZR_CLASS_TEAM_HUMANS)) ? ITEMDRAW_DEFAULT : ITEMDRAW_DISABLED;
new admin_itemdraw = (admincount > 1 && ClassAllowSelection(client, ZR_CLASS_TEAM_ADMINS)) ? ITEMDRAW_DEFAULT : ITEMDRAW_DISABLED;
// Check if the player is in admin mode. // Check if the player is in admin mode.
if (ClassPlayerInAdminMode[client]) if (ClassPlayerInAdminMode[client])

View File

@ -515,6 +515,64 @@ stock bool:ClassFlagFilterMatch(index, require, deny, cachetype)
} }
} }
/**
* Decides whether a class selection menu should be enabled. The decision is
* based on zr_class_allow_* console variables.
*
* @param team Optional. Team ID to match. Default is all.
* @return True if allowed, false otherwise.
*/
bool:ClassAllowSelection(client, team = -1)
{
// Get selection settings.
new bool:zombie = GetConVarBool(g_hCvarsList[CVAR_CLASSES_ZOMBIE_SELECT]);
new bool:human = GetConVarBool(g_hCvarsList[CVAR_CLASSES_HUMAN_SELECT]);
new bool:admin = GetConVarBool(g_hCvarsList[CVAR_CLASSES_ADMIN_SELECT]);
// Since admin mode classes are optional they must be counted to verify
// that they exist.
new bool:adminexist;
// Check if player is admin.
new bool:isadmin = ZRIsClientAdmin(client);
// Only count admin mode classes if client is admin for better performance.
if (isadmin)
{
adminexist = ClassCountTeam(ZR_CLASS_TEAM_ADMINS) > 0;
}
// Check if a team id is specified.
if (team >= 0)
{
// Check team and return the corresponding selection setting.
switch (team)
{
case ZR_CLASS_TEAM_ZOMBIES:
{
return zombie;
}
case ZR_CLASS_TEAM_HUMANS:
{
return human;
}
case ZR_CLASS_TEAM_ADMINS:
{
// Player must be admin to select admin mode classes.
return admin && isadmin && adminexist;
}
}
// Team ID didn't match.
return false;
}
else
{
// Check zombie and human.
return zombie || human;
}
}
/** /**
* Gets all class indexes or from a specified team, and adds them to the * Gets all class indexes or from a specified team, and adds them to the
* specified array. * specified array.

View File

@ -333,16 +333,13 @@ stock TranslationReplyToCommand(client, any:...)
{ {
// Format string to create plugin style. (color) // Format string to create plugin style. (color)
TranslationPluginFormatString(translation, sizeof(translation)); TranslationPluginFormatString(translation, sizeof(translation));
// Print translated phrase to client's chat/console.
PrintToChat(client, translation);
} }
else else
{ {
// Format string to create plugin style. (no color) // Format string to create plugin style. (no color)
TranslationPluginFormatString(translation, sizeof(translation), false); TranslationPluginFormatString(translation, sizeof(translation), false);
// Print to server.
PrintToServer(translation);
} }
// Print translated phrase to server or client's chat/console.
ReplyToCommand(client, translation);
} }