diff --git a/cstrike/addons/sourcemod/translations/no/zombiereloaded.phrases.txt b/cstrike/addons/sourcemod/translations/no/zombiereloaded.phrases.txt index 4f59fed..208c4a9 100644 --- a/cstrike/addons/sourcemod/translations/no/zombiereloaded.phrases.txt +++ b/cstrike/addons/sourcemod/translations/no/zombiereloaded.phrases.txt @@ -338,6 +338,11 @@ "no" "Hoppelengde" } + "Classes Selection Not Allowed" + { + "no" "Endring av klasse er ikke tillatt." + } + // =========================== // Overlays (core) // =========================== @@ -372,49 +377,44 @@ "Infect menu clients title" { - "en" "Zombie Management\nToggle Infection:\n[] = Infected" + "no" "Spillerbehandling\nVeksle mellom zombie og menneske:\n[] = Infisert" } // Commands "Infect command infect syntax" { - "en" "Infect a client. Usage: zr_infect [respawn - 1/0]" + "no" "Infiserer en spiller. Syntaks: zr_infect [teleporter - 1/0]" } "Infect command human syntax" { - "en" "Turn a client into a human. Usage: zr_human [respawn - 1/0] [protect - 1/0]" + "no" "Gjør en spiller om til et menneske. Syntaks: zr_human [teleporter - 1/0] [beskyttelse - 1/0]" } "Infect command infect successful" { - "#format" "{1:s}" - "en" "Player @green{1} @defaulthas been successfully infected." + "no" "@green{1}@default ble vellykket infisert." } "Infect command infect mother successful" { - "#format" "{1:s}" - "en" "Player @green{1} @defaulthas been successfully infected as the mother zombie." + "no" "@green{1}@default ble vellykket infisert som moderzombie." } "Infect command infect unsuccessful" { - "#format" "{1:s}" - "en" "Player @green{1} @defaultis already a zombie." + "no" "@green{1}@default er allerede en zombie." } "Infect command human successful" { - "#format" "{1:s}" - "en" "Player @green{1} @defaulthas been successfully brought back as a human." + "no" "@green{1}@default ble vellykket gjort om til et menneske." } "Infect command human unsuccessful" { - "#format" "{1:s}" - "en" "Player @green{1} @defaultis already a human." + "no" "@green{1}@default er allerede et menneske." } // =========================== @@ -423,7 +423,7 @@ "Damage suicide intercept" { - "en" "Suicide attempt intercepted." + "no" "Selvmordsforsøk hindret." } // =========================== @@ -434,50 +434,42 @@ "Menu main title" { - "#format" "{1:s},{2:s}" - "en" "ZR Commands:\nPrefix command with \"{1}\" or \"{2}\" (quiet) when typing in chat." + "no" "ZR-kommandoer:\nStart kommandoen med \"{1}\" or \"{2}\" (skjules) i samtaleområdet." } "Menu main zadmin" { - "#format" "{1:s}" - "en" "ZAdmin - Open admin menu. (Command: {1})" + "no" "ZAdmin - Åpne administrasjonsmeny. (Kommando: {1})" } "Menu main zclass" { - "#format" "{1:s}" - "en" "ZClass - Configure class settings. (Command: {1})" + "no" "ZClass - Endre klasseinstillinger. (Kommando: {1})" } "Menu main zcookies" { - "#format" "{1:s}" - "en" "ZCookies - Toggle personal ZR settings here. (Command: {1})" + "no" "ZCookies - Endre egendefinerte instillinger. (Kommando: {1})" } "Menu main zspawn" { - "#format" "{1:s}" - "en" "ZSpawn - Join late? Spawn with this. (Command: {1})" + "no" "ZSpawn - Bli med i spillet øyeblikkelig. (Kommando: {1})" } "Menu main ztele" { - "#format" "{1:s}" - "en" "ZTele - Stuck? Teleport back to spawn. (Command: {1})" + "no" "ZTele - Teleporter til startområde. (Kommando: {1})" } "Menu main zhp" { - "#format" "{1:s}" - "en" "ZHP - Shows real HP as zombie. (Command: {1})" + "no" "ZHP - Vis nåværende helsenivå. (Kommando: {1})" } "Menu main zmarket" { - "#format" "{1:s}" - "en" "ZMarket - Customize loadouts here. (Command: {1})" + "no" "ZMarket - Endre egendefinerte våpeninstillinger. (Kommando: {1})" } // =========================== @@ -488,280 +480,252 @@ "Zombie cant use weapon" { - "en" "Zombies can't use weapons!" - "ru" "Зомби не могут использовать оружие!" + "no" "Zombier kan ikke bruke våpen." } // Restrict "Restrict weapon" { - "#format" "{1:s}" - "en" "Weapon @green\"{1}\" @defaulthas been restricted." + "no" "Våpenet @green\"{1}\"@default ble sperret." } "Unrestrict weapon" { - "#format" "{1:s}" - "en" "Weapon @green\"{1}\" @defaulthas been unrestricted." + "no" "Våpenet @green\"{1}\"@default er ikke lenger sperret." } "Restrict weapon stopped" { - "#format" "{1:s}" - "en" "Weapon @green\"{1}\" @defaultis already restricted." + "no" "Våpenet @green\"{1}\"@default er allerede sperret." } "Unrestrict weapon stopped" { - "#format" "{1:s}" - "en" "Weapon @green\"{1}\" @default has no restrictions set." + "no" "Våpenet @green\"{1}\"@default er ikke sperret." } "Restrict weapon type" { - "#format" "{1:s}" - "en" "Weapons of type @green\"{1}\" @defaulthave been restricted." + "no" "Våpentypen @green\"{1}\"@default er sperret." } "Unrestrict weapon type" { - "#format" "{1:s}" - "en" "Weapons of type @green\"{1}\" @defaulthave been unrestricted." + "no" "Våpentypen @green\"{1}\"@default er ikke lenger sperret." } "Restrict weapon type stopped" { - "#format" "{1:s}" - "en" "Weapons of type @green\"{1}\" @defaultare all already restricted." + "no" "Våpentypen @green\"{1}\"@default er allerede sperret." } "Unrestrict weapon type stopped" { - "#format" "{1:s}" - "en" "Weapons of type @green\"{1}\" @defaulthave no restrictions set." + "no" "Våpentypen @green\"{1}\"@default er ikke sperret." } "Restrict weapon untoggleable" { - "#format" "{1:s}" - "en" "Weapon @green\"{1}\" @defaultmay not have its restrictions toggled." + "no" "Våpenet @green\"{1}\"@default kan ikke sperres." } "Weapon invalid" { - "#format" "{1:s}" - "en" "Weapon @green\"{1}\" @defaultis an invalid weapon (type) name." + "no" "Våpenet eller våpentypen @green\"{1}\"@default er ugyldig." } "Weapon is restricted" { - "#format" "{1:s}" - "en" "Weapon @green{1} @defaultis restricted." - "ru" "Оружие @green{1} @default запрещено." + "no" "Våpenet @green{1}@default er sperret." } // ZMarket "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" { - "#format" "{1:s}" - "en" "You have purchased weapon @green{1}. @defaultSelect item again to buy ammo if you are low." + "no" "Du har kjøpt våpenet @green{1}@default. Velg gjenstanden igjen for å kjøpe mer ammunisjon." } "Weapons zmarket purchase max" { - "#format" "{1:s},{2:d}" - "en" "Weapon @green{1} @defaulthas a purchase limit of @green{2}@default. Wait until you respawn to try again." + "no" "Våpenet @green{1}@default har en kjøpegrense på @green{2}@default enheter. Vent til neste runde eller gjenoppliving." } "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" { - "en" "Auto-rebuy has been disabled." + "no" "Autokjøp er deaktivert." } "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" { - "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 "Weapons command restrict syntax" { - "en" "Restricts a weapon or a weapon type. Usage: zr_restrict [weapon2|weapontype2] ..." + "no" "Sperrer et våpen eller en våpentype. Syntaks: zr_restrict [våpen|våpentype] ..." } "Weapons command unrestrict syntax" { - "en" "Unrestricts a weapon or a weapon type. Usage: zr_unrestrict [weapon2|weapontype2] ..." + "no" "Fjerner sperre av et våpen eller en våpentype. Syntaks: zr_unrestrict [våpen|våpentype] ..." } // Menu (Restrict) "Weapons menu restrict main title" { - "en" "Weapons Management" + "no" "Våpenbehandling" } "Weapons menu restrict main restrict" { - "en" "Weapon Restrictions" + "no" "Våpensperringer" } "Weapons menu restrict main market" { - "en" "ZMarket" + "no" "ZMarket" } "Weapons menu restrict types title" { - "en" "Weapon Restrictions\nSelect Weapon Type:" + "no" "Våpensperringer\nVelg våpentype:" } "Weapons menu restrict types weapon type title" { - "#format" "{1:s}" - "en" "Weapon Restrictions\nWeapon Type: {1}\n[] = Restricted" + "no" "Våpensperringer\nVåpentype: {1}\n[] = Sperret" } "Weapons menu restrict types restrict all" { - "#format" "{1:s}" - "en" "Restrict weapon type {1}" + "no" "Sperr våpentypen \"{1}\"" } "Weapons menu restrict types unrestrict all" { - "#format" "{1:s}" - "en" "Unrestrict weapon type {1}" + "no" "Fjern sperre for våpentypen \"{1}\"" } "Weapons menu restrict zmarket title" { - "en" "ZMarket\nSelect Setting:" + "no" "ZMarket\nVelg instilling:" } "Weapons menu restrict zmarket buyzone" { - "#format" "{1:s}" - "en" "Buyzone Only - {1}" + "no" "Kun i kjøpesoner - {1}" } // Menu (ZMarket) "Weapons menu zmarket main title" { - "en" "ZMarket\nSelect an Option:" + "no" "ZMarket" } "Weapons menu zmarket main get loadout" { - "en" "Get Current Loadout" + "no" "Kjøp gjeldende våpenvalg" } "Weapons menu zmarket main view loadout" { - "en" "View My Loadout" + "no" "Vis våpenvalg" } "Weapons menu zmarket main rebuy" { - "en" "Rebuy My Loadout" + "no" "Kjøp gjeldende våpenvalg" } "Weapons menu zmarket main auto-rebuy" { - "#format" "{1:s}" - "en" "Auto-Rebuy: {1}" + "no" "Autokjøp: {1}" } "Weapons menu zmarket main weapons list" { - "en" "View Weapons List" + "no" "Vis våpenliste" } "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" { - "#format" "{1:s}" - "en" "Primary: {1}" + "no" "Primærvåpen: {1}" } "Weapons menu zmarket loadout secondary" { - "#format" "{1:s}" - "en" "Secondary: {1}" + "no" "sekundærvåpen: {1}" } "Weapons menu zmarket loadout melee" { - "#format" "{1:s}" - "en" "Melee: {1}" + "no" "Nærkamp: {1}" } "Weapons menu zmarket loadout projectile" { - "#format" "{1:s}" - "en" "Projectile: {1}" + "no" "Prosjektiler: {1}" } "Weapons menu zmarket loadout explosive" { - "#format" "{1:s}" - "en" "Explosive: {1}" + "no" "Granater: {1}" } "Weapons menu zmarket loadout nvgs" { - "#format" "{1:s}" - "en" "NVGs: {1}" + "no" "Nattsyn: {1}" } "Weapons menu zmarket loadout empty" { - "en" "(None)" + "no" "(Ingen)" } "Weapons menu zmarket types title" { - "en" "ZMarket\nSelect Weapon Type:" + "no" "ZMarket\nVelg våpentype:" } "Weapons menu zmarket types weapon type title" { - "#format" "{1:s}" - "en" "ZMarket\nWeapon Type: {1}\n[] = Restricted" + "no" "ZMarket\nVåpentype: {1}\n[] = Sperret" } "Weapons menu zmarket types weapon info" { - "#format" "{1:s},{2:d},{3:d}" - "en" "{1} (${2})\nPurchases Left: {3}" + "no" "{1} (${2})\nAntall kjøp igjen: {3}" } "Weapons menu zmarket types weapon ammo" { - "en" "Ammo" + "no" "Ammunisjon" } // =========================== @@ -772,62 +736,59 @@ "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" { - "en" "Enable All Hitgroups" + "no" "Aktiver alle treffgrupper" } "Hitgroups menu hitgroups headshots only" { - "en" "Headshots Only" + "no" "Kun hodeskudd" } // Commands "Hitgroups command syntax" { - "en" "Toggles or sets if a zombie's hitgroup can be damaged. Usage: zr_hitgroup [1/0]" + "no" "Veksle, aktiver eller deaktiver en treffgruppe til zombiene. Usage: zr_hitgroup [aktiv - 1/0]" } "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" { - "en" "Hitgroup Names:" + "no" "Treffgruppenavn:" } "Hitgroups command successful on" { - "#format" "{1:s}" - "en" "Damage for hitgroup \"{1}\" has been toggled on." + "no" "Skade for treffgruppen \"{1}\" er aktivert." } "Hitgroups command successful off" { - "#format" "{1:s}" - "en" "Damage for hitgroup \"{1}\" has been toggled off." + "no" "Skade for treffgruppen \"{1}\" er deaktivert." } "Hitgroups command invalid hitgroup" { - "#format" "{1:s}" - "en" "\"{1}\" is not a valid hitgroup alias. Type zr_hitgroup to view all aliases." + "no" "\"{1}\" er ikke en gyldig treffgruppe. Bruk zr_hitgroup for å se alle treffgruppenavnene." } "Hitgroups command enable all successful" { - "en" "All zombie hitgroups have been enabled for damage." + "no" "Alle treffgruppene er aktivert." } "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" { - "en" "ZAdmin\nSelect Category:" + "no" "ZAdmin\nVelg kategori:" } "ZAdmin main class multipliers" { - "en" "Class Multipliers" + "no" "Klassemultiplikatorer" } "ZAdmin main weapons" { - "en" "Weapon Management" + "no" "Våpenbehandling" } "ZAdmin main hitgroups" { - "en" "Hitgroup Management" + "no" "Treffgruppebehandling" } "ZAdmin main zombie" { - "en" "Zombie Management" + "no" "Spillerbehandling" } "ZAdmin main force zspawn" { - "en" "Force ZSpawn" + "no" "Tving gjenoppliving" } "ZAdmin main force ztele" { - "en" "Force ZTele" + "no" "Tving teleport" } // =========================== @@ -874,39 +835,37 @@ // =========================== // Commands + + // Not translating antistick phrases because hull width settings had no effect. To be removed. "AntiStick command set width syntax" { - "en" "Sets the width of a model's hull. (See zr_antistick_list_models) Usage: zr_antistick_set_width " + "no" "Sets the width of a model's hull. (See zr_antistick_list_models) Usage: zr_antistick_set_width " } "AntiStick command list models list" { - "en" "Player name: Model: Hull width:\n-------------------------------------------------------------------------------------------------------------" + "no" "Player name: Model: Hull width:\n-------------------------------------------------------------------------------------------------------------" } "AntiStick command list models name" { - "#format" "{1:-35s},{2:-51s},{3:-.2f}" - "en" "{1} {2} {3}" + "no" "{1} {2} {3}" } "AntiStick command set width successful" { - "#format" "{1:s},{2:f}" - "en" "Model hull width for model \"{1}\" has been changed to \"{2}.\"" + "no" "Model hull width for model \"{1}\" has been changed to \"{2}.\"" } "AntiStick command set width invalid model" { - "#format" "{1:s}" - "en" "Invalid model/player specified: \"{1}\"" + "no" "Invalid model/player specified: \"{1}\"" } "AntiStick command set width invalid width" { - "#format" "{1:f}" - "en" "Invalid model hull width specified: \"{1}\"" + "no" "Invalid model hull width specified: \"{1}\"" } // =========================== @@ -917,23 +876,19 @@ "Spawn protection begin" { - "#format" "{1:d}" - "en" "Zombies are present, you have {1} seconds to find a safe place before you lose immunity." - "ru" "Зомби на свободе, у вас {1} секунд, чтобы найти безопасное место, пока не потеряли иммунитет." + "no" "Zombier tilstede, du er beskyttet og har {1} sekunder på å finne et trygt sted." } "Spawn protection end" { - "en" "You are now susceptible to zombie infection." - "ru" "Теперь вы восприимчивы к зомби инфекции." + "no" "Du er nå utsatt for å bli smittet av en zombie." } // HUD "Spawn Protect" { - "#format" "{1:d}" - "en" "Zombie protection ends in: {1} seconds." + "no" "Zombiebeskyttelsen stopper om {1} sekunder." } // =========================== @@ -942,30 +897,27 @@ "ZCookies Menu main title" { - "en" "ZCookies\nSelect a Cookie:" + "no" "ZCookies\nVelg informasjonskapsel:" } "ZCookies menu main auto-rebuy" { - "#format" "{1:s}" - "en" "ZMarket Auto-Rebuy: {1}" + "no" "Autokjøp (ZMarket): {1}" } "ZCookies menu main zhp" { - "#format" "{1:s}" - "en" "ZHP Display: {1}" + "no" "ZHP-skjerm: {1}" } "ZCookies menu main overlay" { - "#format" "{1:s}" - "en" "Human/Zombie Class Overlay: {1}" + "no" "Vis klasseoverlegg: {1}" } "ZCookies zmarket loadout" { - "en" "ZMarket Loadout" + "no" "Våpenvalg (ZMarket)" } // =========================== @@ -976,40 +928,36 @@ "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" { - "#format" "{1:d}" - "en" "The timelimit ({1} seconds), to use ZSpawn, has already expired." + "no" "Tidsfristen ({1} sekunder) for å bruke ZSpawn har gått ut." } // Menu "ZSpawn clients title" { - "en" "Force ZSpawn (zr_zspawn_force)\nSelect a Player:" + "no" "Tving gjenoppliving (zr_zspawn_force)\nVelg en spiller:" } // Commands "ZSpawn command force syntax" { - "en" "Force ZSpawn on a client. Usage: zr_zspawn_force ['0' = Spawn as human | '1' = Spawn as zombie]" - + "no" "Tving gjenoppliving på en spiller. Syntaks: zr_zspawn_force ['0' = Menneske | '1' = Zombie]" } "ZSpawn command force successful" { - "#format" "{1:s}" - "en" "Player {1} was successfully spawned." + "no" "{1} ble vellykket gjenopplivet." } "ZSpawn command force unsuccessful" { - "#format" "{1:s}" - "en" "Player {1} couldn't be spawned." + "no" "{1} kunne ikke bli gjenopplivet." } // =========================== @@ -1020,70 +968,63 @@ "ZTele restricted human" { - "en" "ZTele is restricted for humans at this time." + "no" "Mennesker kan ikke teleporteres for øyeblikket." } "ZTele max" { - "#format" "{1:d}" - "en" "You have reached your max of {1} teleport(s) per round." + "no" "Du har brukt opp alle teleportene ({1}) for denne runden." } "ZTele in progress" { - "en" "You are currently pending teleportation." + "no" "Du venter på allerede på en teleport." } "ZTele autocancel text" { - "#format" "{1:d}" - "en" "Teleport has been cancelled. (Restrictive boundary is {1} ft.)" + "no" "Teleport avbrutt. Du har forflyttet deg lengre enn tillatt da du ventet på en teleport. Maks lengde er {1} fot." } // Center Text "ZTele countdown" { - "#format" "{1:d}" - "en" "Teleporting back to spawn in: {1} seconds." + "no" "Teleporterer til startområdet om {1} sekunder." } "ZTele autocancel centertext" { - "en" "Teleport has been cancelled." + "no" "Teleport avbrutt." } "ZTele countdown end" { - "#format" "{1:d},{2:d}" - "en" "Teleported back to spawn. (Count: {1}/{2})" + "no" "Teleportert til startområdet. (Antall: {1}/{2})" } // Menu "ZTele clients title" { - "en" "Force ZTele (zr_ztele_force)\nSelect a Player:" + "no" "Tving teleport (zr_ztele_force)\nVelg en spiller:" } // Commands "ZTele command force syntax" { - "en" "Force ZTele on a client. Usage: zr_ztele_force " - + "no" "Tving teleport på en spiller. Syntaks: zr_ztele_force " } "ZTele command force successful" { - "#format" "{1:s}" - "en" "Player {1} was successfully teleported." + "no" "{1} ble vellykket teleportert." } "ZTele command force unsuccessful" { - "#format" "{1:s}" - "en" "Player {1} couldn't be teleported." + "no" "{1} kunne ikke bli teleportert." } // =========================== @@ -1094,22 +1035,19 @@ "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" { - "en" "HP display disabled." - "ru" "Отображение здоровья включено." + "no" "HP-skjerm deaktivert." } // HUD "Display HP" { - "#format" "{1:d}" - "en" "HP: {1}" - "ru" "Здоровье: {1}" + "no" "HP: {1}" } // =========================== @@ -1118,18 +1056,16 @@ "Vol Anticamp Message" { - "en" "This area is restricted, please move along." + "no" "Dette området er sperret, vennligst gå videre." } "Vol Slay" { - "#format" "{1:s},{2:d}" - "en" "Slayed player \"{1}\" for camping in a restricted area (ID: {2})." + "no" "Drepte \"{1}\" for opphold i sperret område (ID: {2})." } "Vol Ignite" { - "#format" "{1:s},{2:d}" - "en" "Ignited player \"{1}\" for camping in a restricted area (ID: {2})." + "no" "Satt fyr på \"{1}\" for opphold i sperret område (ID: {2})." } } diff --git a/cstrike/addons/sourcemod/translations/zombiereloaded.phrases.txt b/cstrike/addons/sourcemod/translations/zombiereloaded.phrases.txt index 6b34eca..f0ed4dc 100644 --- a/cstrike/addons/sourcemod/translations/zombiereloaded.phrases.txt +++ b/cstrike/addons/sourcemod/translations/zombiereloaded.phrases.txt @@ -65,7 +65,7 @@ "Must be zombie" { - "en" "This feature requires that you are a zombie. + "en" "This feature requires that you are a zombie." } "Must be human" @@ -356,6 +356,11 @@ "en" "Jump Distance" } + "Classes Selection Not Allowed" + { + "en" "Changing classes is not allowed." + } + // =========================== // Overlays (core) // =========================== diff --git a/cstrike/cfg/sourcemod/zombiereloaded/zombiereloaded.cfg b/cstrike/cfg/sourcemod/zombiereloaded/zombiereloaded.cfg index 3380d30..09accb7 100644 --- a/cstrike/cfg/sourcemod/zombiereloaded/zombiereloaded.cfg +++ b/cstrike/cfg/sourcemod/zombiereloaded/zombiereloaded.cfg @@ -91,7 +91,7 @@ zr_log "1" // Default: "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" zr_log_module_filter "0" @@ -163,6 +163,18 @@ zr_classes_default_zombie "random" // Default: "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 // Automatically close class selection menu. diff --git a/src/zr/cvars.inc b/src/zr/cvars.inc index 3cfde01..5b624dd 100644 --- a/src/zr/cvars.inc +++ b/src/zr/cvars.inc @@ -62,6 +62,9 @@ enum CvarsList Handle:CVAR_CLASSES_OVERLAY_TOGGLE, Handle:CVAR_CLASSES_OVERLAY_TOGGLECMDS, 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_RESTRICT, 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_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_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."); @@ -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_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_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 g_hCvarsList[CVAR_CLASSES_MENU_AUTOCLOSE] = CreateConVar("zr_classes_menu_autoclose", "0", "Automatically close class selection menu after selecting a class."); diff --git a/src/zr/log.inc b/src/zr/log.inc index 0682a3c..99e9e5c 100644 --- a/src/zr/log.inc +++ b/src/zr/log.inc @@ -624,7 +624,7 @@ public Action:Command_LogRemoveModule(client, argc) if (argc < 1) { // Display syntax info. - StrCat(buffer, sizeof(buffer), "Add one or more modules to the module filter. Usage: zr_log_add_module [module] ...\n"); + StrCat(buffer, sizeof(buffer), "Remove one or more modules to the module filter. Usage: zr_log_remove_module [module] ...\n"); StrCat(buffer, sizeof(buffer), "See zr_log_list to list available module names (short names)."); ReplyToCommand(client, buffer); } diff --git a/src/zr/menu.inc b/src/zr/menu.inc index 4585af7..93ddff6 100644 --- a/src/zr/menu.inc +++ b/src/zr/menu.inc @@ -117,7 +117,10 @@ ZMenuMain(client) new bool:admin = ZRIsClientAdmin(client); 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, "zspawn", zspawn); AddMenuItem(menu_main, "ztele", ztele); diff --git a/src/zr/playerclasses/classcommands.inc b/src/zr/playerclasses/classcommands.inc index ae6b859..22286fe 100644 --- a/src/zr/playerclasses/classcommands.inc +++ b/src/zr/playerclasses/classcommands.inc @@ -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 (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; } diff --git a/src/zr/playerclasses/classmenus.inc b/src/zr/playerclasses/classmenus.inc index 33deaca..e3f6bc2 100644 --- a/src/zr/playerclasses/classmenus.inc +++ b/src/zr/playerclasses/classmenus.inc @@ -65,18 +65,19 @@ ClassMenuMain(client) // Get number of enabled classes per team. new zombiecount = 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. new nextzombie = ClassSelectedNext[client][ZR_CLASS_TEAM_ZOMBIES]; new nexthuman = ClassSelectedNext[client][ZR_CLASS_TEAM_HUMANS]; new nextadmin = ClassSelectedNext[client][ZR_CLASS_TEAM_ADMINS]; - // Set draw style on class options depending on number of enabled classes. - // Disable class selection if there's only one class. - new zombie_itemdraw = (zombiecount > 1) ? ITEMDRAW_DEFAULT : ITEMDRAW_DISABLED; - new human_itemdraw = (humancount > 1) ? ITEMDRAW_DEFAULT : ITEMDRAW_DISABLED; - new admin_itemdraw = (admincount > 1) ? ITEMDRAW_DEFAULT : ITEMDRAW_DISABLED; + // Set draw style on class options depending on number of enabled classes + // and selection permissions. Disable class selection if there's only one + // class. + new zombie_itemdraw = (zombiecount > 1 && ClassAllowSelection(client, ZR_CLASS_TEAM_ZOMBIES)) ? 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. if (ClassPlayerInAdminMode[client]) diff --git a/src/zr/playerclasses/filtertools.inc b/src/zr/playerclasses/filtertools.inc index e74c0b6..4c53ae6 100644 --- a/src/zr/playerclasses/filtertools.inc +++ b/src/zr/playerclasses/filtertools.inc @@ -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 * specified array. diff --git a/src/zr/translation.inc b/src/zr/translation.inc index 63658d8..812fdae 100644 --- a/src/zr/translation.inc +++ b/src/zr/translation.inc @@ -333,16 +333,13 @@ stock TranslationReplyToCommand(client, any:...) { // Format string to create plugin style. (color) TranslationPluginFormatString(translation, sizeof(translation)); - - // Print translated phrase to client's chat/console. - PrintToChat(client, translation); } else { // Format string to create plugin style. (no color) TranslationPluginFormatString(translation, sizeof(translation), false); - - // Print to server. - PrintToServer(translation); } + + // Print translated phrase to server or client's chat/console. + ReplyToCommand(client, translation); }