From 0a1a5b6712a76a2413b2d09bb159896b872ab26e Mon Sep 17 00:00:00 2001 From: ByDexter <46813962+ByDexterTR@users.noreply.github.com> Date: Tue, 27 Oct 2020 12:49:39 +0300 Subject: [PATCH] Warden - new syntax, convar, translations and forward --- Warden/plugins/warden.smx | Bin 7655 -> 7519 bytes .../{includes => include}/warden.inc | 0 Warden/scripting/warden.sp | 238 ++++++++++-------- Warden/translations/es/warden.phrases.txt | 56 +++++ Warden/translations/pt/warden.phrases.txt | 56 +++++ Warden/translations/sv/warden.phrases.txt | 56 +++++ Warden/translations/tr/warden.phrases.txt | 56 +++++ Warden/translations/warden.phrases.txt | 36 --- 8 files changed, 355 insertions(+), 143 deletions(-) rename Warden/scripting/{includes => include}/warden.inc (100%) create mode 100644 Warden/translations/es/warden.phrases.txt create mode 100644 Warden/translations/pt/warden.phrases.txt create mode 100644 Warden/translations/sv/warden.phrases.txt create mode 100644 Warden/translations/tr/warden.phrases.txt diff --git a/Warden/plugins/warden.smx b/Warden/plugins/warden.smx index 3ecffd1014348867099677c7d8c46dc64aa29d31..6989ce1dd4854f699783f54be3a8d81d454b1d0e 100644 GIT binary patch literal 7519 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 D%D9>* literal 7655 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 W*0!-4-RpxjK0#*g9}%X8zW5(Q$Vv_X diff --git a/Warden/scripting/includes/warden.inc b/Warden/scripting/include/warden.inc similarity index 100% rename from Warden/scripting/includes/warden.inc rename to Warden/scripting/include/warden.inc diff --git a/Warden/scripting/warden.sp b/Warden/scripting/warden.sp index 9dd9152..24890ef 100644 --- a/Warden/scripting/warden.sp +++ b/Warden/scripting/warden.sp @@ -1,22 +1,25 @@ #include #include -#define PLUGIN_VERSION "3.0.1" +#define PLUGIN_VERSION "3.0.2" -new Warden = -1; -new Handle:g_cVar_mnotes = INVALID_HANDLE; -new Handle:g_fward_onBecome = INVALID_HANDLE; -new Handle:g_fward_onRemove = INVALID_HANDLE; +#pragma semicolon 1 +#pragma newdecls required -public Plugin:myinfo = { - name = "Jailbreak Warden", - author = "ecca", - description = "Jailbreak Warden script", - version = PLUGIN_VERSION, +int Warden = -1; +ConVar g_cVar_mnotes = null, g_cvar_remove_death = null, g_cvar_remove_startround = null; +Handle g_fward_onBecome = null, g_fward_onRemoved = null, g_fward_onDeath = null, g_fward_onRemove = null; + +public Plugin myinfo = +{ + name = "Jailbreak Warden", + author = "ecca, ByDexter", + description = "Jailbreak Warden script", + version = PLUGIN_VERSION, url = "ffac.eu" }; -public OnPluginStart() +public void OnPluginStart() { // Initialize our phrases LoadTranslations("warden.phrases"); @@ -35,34 +38,38 @@ public OnPluginStart() RegAdminCmd("sm_rw", RemoveWarden, ADMFLAG_GENERIC); RegAdminCmd("sm_rc", RemoveWarden, ADMFLAG_GENERIC); - // Hooking the events - HookEvent("round_start", roundStart); // For the round start - HookEvent("player_death", playerDeath); // To check when our warden dies :) - // For our warden to look some extra cool AddCommandListener(HookPlayerChat, "say"); + // Hook + HookEvent("round_start", RoundStart); + HookEvent("player_death", OnClientDead); + // May not touch this line - CreateConVar("sm_warden_version", PLUGIN_VERSION, "The version of the SourceMod plugin JailBreak Warden, by ecca", FCVAR_REPLICATED|FCVAR_SPONLY|FCVAR_PLUGIN|FCVAR_NOTIFY|FCVAR_DONTRECORD); - g_cVar_mnotes = CreateConVar("sm_warden_better_notifications", "0", "0 - disabled, 1 - Will use hint and center text", FCVAR_PLUGIN, true, 0.0, true, 1.0); + CreateConVar("sm_warden_version", PLUGIN_VERSION, "The version of the SourceMod plugin JailBreak Warden, by ecca", FCVAR_REPLICATED | FCVAR_SPONLY | FCVAR_NOTIFY | FCVAR_DONTRECORD); + g_cVar_mnotes = CreateConVar("sm_better_warden_message", "0", "0 - Off, 1 - Center and Hint Text", FCVAR_NOTIFY, true, 0.0, true, 1.0); + g_cvar_remove_death = CreateConVar("sm_warden_death_remove", "1", "0 - Off, 1 - On", FCVAR_NOTIFY, true, 0.0, true, 1.0); + g_cvar_remove_startround = CreateConVar("sm_warden_roundstart_remove", "1", "0 - Off, 1 - On", FCVAR_NOTIFY, true, 0.0, true, 1.0); g_fward_onBecome = CreateGlobalForward("warden_OnWardenCreated", ET_Ignore, Param_Cell); - g_fward_onRemove = CreateGlobalForward("warden_OnWardenRemoved", ET_Ignore, Param_Cell); + g_fward_onRemoved = CreateGlobalForward("warden_OnWardenRemoved", ET_Ignore, Param_Cell); + g_fward_onRemove = CreateGlobalForward("warden_OnWardenRemove", ET_Ignore, Param_Cell); + g_fward_onDeath = CreateGlobalForward("wardeN_OnWardenDeath", ET_Ignore, Param_Cell); } -public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max) +public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max) { CreateNative("warden_exist", Native_ExistWarden); CreateNative("warden_iswarden", Native_IsWarden); CreateNative("warden_set", Native_SetWarden); CreateNative("warden_remove", Native_RemoveWarden); - + RegPluginLibrary("warden"); return APLRes_Success; } -public Action:BecomeWarden(client, args) +public Action BecomeWarden(int client, int args) { if (Warden == -1) // There is no warden , so lets proceed { @@ -71,201 +78,218 @@ public Action:BecomeWarden(client, args) if (IsPlayerAlive(client)) // A dead warden would be worthless >_< { SetTheWarden(client); + return Plugin_Handled; } else // Grr he is not alive -.- { - PrintToChat(client, "Warden ~ %t", "warden_playerdead"); + PrintToChat(client, "[SM] %t", "warden_playerdead"); + return Plugin_Handled; } } else // Would be wierd if an terrorist would run the prison wouldn't it :p { - PrintToChat(client, "Warden ~ %t", "warden_ctsonly"); + PrintToChat(client, "[SM] %t", "warden_ctsonly"); + return Plugin_Handled; } } else // The warden already exist so there is no point setting a new one { - PrintToChat(client, "Warden ~ %t", "warden_exist", Warden); + PrintToChat(client, "[SM] %t", "warden_exist", Warden); + return Plugin_Handled; } } -public Action:ExitWarden(client, args) +public Action ExitWarden(int client, int args) { - if(client == Warden) // The client is actually the current warden so lets proceed + if (client == Warden) // The client is actually the current warden so lets proceed { - PrintToChatAll("Warden ~ %t", "warden_retire", client); - if(GetConVarBool(g_cVar_mnotes)) + PrintToChatAll("[SM] %t", "warden_retire", client); + if (g_cVar_mnotes.BoolValue) { - PrintCenterTextAll("Warden ~ %t", "warden_retire", client); - PrintHintTextToAll("Warden ~ %t", "warden_retire", client); + PrintCenterTextAll("%t", "warden_retire", client); + PrintHintTextToAll("%t", "warden_retire", client); } Warden = -1; // Open for a new warden + Forward_OnWardenRemove(client); SetEntityRenderColor(client, 255, 255, 255, 255); // Lets remove the awesome color + return Plugin_Handled; } else // Fake dude! { - PrintToChat(client, "Warden ~ %t", "warden_notwarden"); - } -} - -public Action:roundStart(Handle:event, const String:name[], bool:dontBroadcast) -{ - Warden = -1; // Lets remove the current warden if he exist -} - -public Action:playerDeath(Handle:event, const String:name[], bool:dontBroadcast) -{ - new client = GetClientOfUserId(GetEventInt(event, "userid")); // Get the dead clients id - - if(client == Warden) // Aww damn , he is the warden - { - PrintToChatAll("Warden ~ %t", "warden_dead", client); - if(GetConVarBool(g_cVar_mnotes)) - { - PrintCenterTextAll("Warden ~ %t", "warden_dead", client); - PrintHintTextToAll("Warden ~ %t", "warden_dead", client); - } - SetEntityRenderColor(client, 255, 255, 255, 255); // Lets give him the standard color back - Warden = -1; // Lets open for a new warden + PrintToChat(client, "[SM] %t", "warden_notwarden"); + return Plugin_Handled; } } -public OnClientDisconnect(client) +public void OnClientDisconnect(int client) { - if(client == Warden) // The warden disconnected, action! + if (client == Warden) // The warden disconnected, action! { - PrintToChatAll("Warden ~ %t", "warden_disconnected"); - if(GetConVarBool(g_cVar_mnotes)) + PrintToChatAll("[SM] %t", "warden_disconnected"); + if (g_cVar_mnotes.BoolValue) { - PrintCenterTextAll("Warden ~ %t", "warden_disconnected", client); - PrintHintTextToAll("Warden ~ %t", "warden_disconnected", client); + PrintCenterTextAll("%t", "warden_disconnected", client); + PrintHintTextToAll("%t", "warden_disconnected", client); } Warden = -1; // Lets open for a new warden + Forward_OnWardenRemoved(client); } } -public Action:RemoveWarden(client, args) +public Action RemoveWarden(int client, int args) { - if(Warden != -1) // Is there an warden at the moment ? + if (Warden != -1) // Is there an warden at the moment ? { RemoveTheWarden(client); + return Plugin_Handled; } else { - PrintToChatAll("Warden ~ %t", "warden_noexist"); + PrintToChatAll("[SM] %t", "warden_noexist"); + return Plugin_Handled; } +} - return Plugin_Handled; // Prevent sourcemod from typing "unknown command" in console +public Action RoundStart(Event event, const char[] name, bool dontBroadcast) +{ + if (g_cvar_remove_startround.BoolValue && Warden != -1) + Warden = -1; } -public Action:HookPlayerChat(client, const String:command[], args) +public Action OnClientDead(Event event, const char[] name, bool dontBroadcast) { - if(Warden == client && client != 0) // Check so the player typing is warden and also checking so the client isn't console! + if (Warden != -1) { - new String:szText[256]; + int client = GetClientOfUserId(event.GetInt("userid")); + if (client == Warden) + { + Forward_OnWardenDeath(client); + if (g_cvar_remove_death.BoolValue) + { + Warden = -1; + PrintToChatAll("[SM] %t", "warden_dead"); + if (g_cVar_mnotes.BoolValue) + { + PrintCenterTextAll("%t", "warden_dead"); + PrintHintTextToAll("%t", "warden_dead"); + } + } + } + } +} + +public Action HookPlayerChat(int client, const char[] command, int argc) +{ + if (Warden == client && client != 0) // Check so the player typing is warden and also checking so the client isn't console! + { + char szText[256]; GetCmdArg(1, szText, sizeof(szText)); - - if(szText[0] == '/' || szText[0] == '@' || IsChatTrigger()) // Prevent unwanted text to be displayed. + if (IsPlayerAlive(client)) // Typing warden is alive and his team is Counter-Terrorist { + PrintToChatAll(" \x0B[Warden] \x10%N : \x04%s", client, szText); return Plugin_Handled; } - - if(IsClientInGame(client) && IsPlayerAlive(client) && GetClientTeam(client) == 3) // Typing warden is alive and his team is Counter-Terrorist + else { - PrintToChatAll("[Warden] %N : %s", client, szText); + PrintToChatAll(" \x02*DEAD* \x0B[Warden] \x10%N : \x04%s", client, szText); return Plugin_Handled; } } - return Plugin_Continue; } -public SetTheWarden(client) +void SetTheWarden(int client) { - PrintToChatAll("Warden ~ %t", "warden_new", client); + PrintToChatAll("[SM] %t", "warden_new", client); - if(GetConVarBool(g_cVar_mnotes)) + if (g_cVar_mnotes.BoolValue) { - PrintCenterTextAll("Warden ~ %t", "warden_new", client); - PrintHintTextToAll("Warden ~ %t", "warden_new", client); + PrintCenterTextAll("%t", "warden_new", client); + PrintHintTextToAll("%t", "warden_new", client); } Warden = client; - SetEntityRenderColor(client, 0, 0, 255, 255); + SetEntityRenderColor(client, 0, 175, 255, 255); SetClientListeningFlags(client, VOICE_NORMAL); - Forward_OnWardenCreation(client); } -public RemoveTheWarden(client) +void RemoveTheWarden(int client) { - PrintToChatAll("Warden ~ %t", "warden_removed", client, Warden); - if(GetConVarBool(g_cVar_mnotes)) + PrintToChatAll("[SM] %t", "warden_removed", client, Warden); + if (g_cVar_mnotes.BoolValue) { - PrintCenterTextAll("Warden ~ %t", "warden_removed", client); - PrintHintTextToAll("Warden ~ %t", "warden_removed", client); + PrintCenterTextAll("%t", "warden_removed", client); + PrintHintTextToAll("%t", "warden_removed", client); } SetEntityRenderColor(Warden, 255, 255, 255, 255); Warden = -1; - Forward_OnWardenRemoved(client); } -public Native_ExistWarden(Handle:plugin, numParams) +public int Native_ExistWarden(Handle plugin, int numParams) { - if(Warden != -1) + if (Warden != -1) return true; return false; } -public Native_IsWarden(Handle:plugin, numParams) +public int Native_IsWarden(Handle plugin, int numParams) { - new client = GetNativeCell(1); - - if(!IsClientInGame(client) && !IsClientConnected(client)) + int client = GetNativeCell(1); + if (!IsClientInGame(client) && !IsClientConnected(client)) ThrowNativeError(SP_ERROR_INDEX, "Client index %i is invalid", client); - if(client == Warden) + if (client == Warden) return true; return false; } -public Native_SetWarden(Handle:plugin, numParams) +public int Native_SetWarden(Handle plugin, int numParams) { - new client = GetNativeCell(1); - + int client = GetNativeCell(1); if (!IsClientInGame(client) && !IsClientConnected(client)) ThrowNativeError(SP_ERROR_INDEX, "Client index %i is invalid", client); - if(Warden == -1) - { + if (Warden == -1) SetTheWarden(client); - } } -public Native_RemoveWarden(Handle:plugin, numParams) +public int Native_RemoveWarden(Handle plugin, int numParams) { - new client = GetNativeCell(1); - + int client = GetNativeCell(1); if (!IsClientInGame(client) && !IsClientConnected(client)) ThrowNativeError(SP_ERROR_INDEX, "Client index %i is invalid", client); - if(client == Warden) - { + if (client == Warden) RemoveTheWarden(client); - } } -public Forward_OnWardenCreation(client) +public void Forward_OnWardenCreation(int client) { Call_StartForward(g_fward_onBecome); Call_PushCell(client); Call_Finish(); } -public Forward_OnWardenRemoved(client) +public void Forward_OnWardenDeath(int client) +{ + Call_StartForward(g_fward_onDeath); + Call_PushCell(client); + Call_Finish(); +} + +public void Forward_OnWardenRemoved(int client) +{ + Call_StartForward(g_fward_onRemoved); + Call_PushCell(client); + Call_Finish(); +} + +public void Forward_OnWardenRemove(int client) { Call_StartForward(g_fward_onRemove); Call_PushCell(client); Call_Finish(); -} \ No newline at end of file +} \ No newline at end of file diff --git a/Warden/translations/es/warden.phrases.txt b/Warden/translations/es/warden.phrases.txt new file mode 100644 index 0000000..b3e84f9 --- /dev/null +++ b/Warden/translations/es/warden.phrases.txt @@ -0,0 +1,56 @@ +"Phrases" +{ + "warden_new" + { + "#format" "{1:N}" + "es" "{1} Es ahora el Alcáide de esta Prisión." + } + + "warden_playerdead" + { + "es" "Sólo los jugadores vivos, pueden ser el Alcáide." + } + + "warden_ctsonly" + { + "es" "Sólo los Anti-Terroristas pueden ser el Alcáide." + } + + "warden_exist" + { + "#format" "{1:N}" + "es" "Alcáide Actual: {1}" + } + + "warden_retire" + { + "#format" "{1:N}" + "es" "{1} ha decidido jubilarse. Ahora toca elegir uno nuevo." + } + + "warden_notwarden" + { + "es" "No eres el Alcáide, y no puedes jubilarte." + } + + "warden_dead" + { + "es" "El Alcáide ha muerto! Ahora toca elegir uno juevo." + } + + "warden_disconnected" + { + "es" "El Alcáide ha desertado. Ahora toca elegir uno nuevo." + } + + "warden_removed" + { + "#format" "{1:N},{2:N}" + "es" "Administrador: {1} ha prejubilado al Alcáide: {2}" + } + + "warden_noexist" + { + "es" "Actualmente no existe ningún Alcáide en la prisión." + } +} \ No newline at end of file diff --git a/Warden/translations/pt/warden.phrases.txt b/Warden/translations/pt/warden.phrases.txt new file mode 100644 index 0000000..5e3b22f --- /dev/null +++ b/Warden/translations/pt/warden.phrases.txt @@ -0,0 +1,56 @@ +"Phrases" +{ + "warden_new" + { + "#format" "{1:N}" + "pt" "{1} Agora, o diretor da prisão.." + } + + "warden_playerdead" + { + "pt" "Apenas os jogadores podem viver o diretor.." + } + + "warden_ctsonly" + { + "pt" "Apenas o diretor pode ser AntiTerrorista." + } + + "warden_exist" + { + "#format" "{1:N}" + "pt" "Atual diretor: {1}" + } + + "warden_retire" + { + "#format" "{1:N}" + "pt" "{1} o atual diretor, decidiu se aposentar. Agora começa a escolher um novo.." + } + + "warden_notwarden" + { + "pt" "Você não é o diretor, e você não pode se aposentar.." + } + + "warden_dead" + { + "pt" "O diretor está morto, agora começa a escolher um novo." + } + + "warden_disconnected" + { + "pt" "O diretor deixou o jogo. Agora começa a escolher um novo." + } + + "warden_removed" + { + "#format" "{1:N},{2:N}" + "pt" "O Administrador do: {1} o diretor se aposentou cedo: {2}" + } + + "warden_noexist" + { + "pt" "Atualmente não há carcereiro na prisão." + } +} \ No newline at end of file diff --git a/Warden/translations/sv/warden.phrases.txt b/Warden/translations/sv/warden.phrases.txt new file mode 100644 index 0000000..f9b84f6 --- /dev/null +++ b/Warden/translations/sv/warden.phrases.txt @@ -0,0 +1,56 @@ +"Phrases" +{ + "warden_new" + { + "#format" "{1:N}" + "sv" "{1} har blivit fängelsedirektör över detta fängelse." + } + + "warden_playerdead" + { + "sv" "Endast levande spelare kan bli fängelsedirektör." + } + + "warden_ctsonly" + { + "sv" "Endast Anti-Terrorister kan bli fängelsedirektör." + } + + "warden_exist" + { + "#format" "{1:N}" + "sv" "nuvarande fängelsedirektör är: {1}" + } + + "warden_retire" + { + "#format" "{1:N}" + "sv" "{1} har bestämt sig för att avgå. Ni bör nu välja en ny." + } + + "warden_notwarden" + { + "sv" "du är inte fängelsedirektören och kan därför inte avgå." + } + + "warden_dead" + { + "sv" "fängelsedirektören är död. Ni bör nu välja en ny." + } + + "warden_disconnected" + { + "sv" "fängelsedirektören har lämnat. Ni bör nu välja en ny." + } + + "warden_removed" + { + "#format" "{1:N},{2:N}" + "sv" "Admin: {1} avskedade Fängelsedirektören: {2}" + } + + "warden_noexist" + { + "sv" "det fanns ingen fängelsedirektör att avskeda." + } +} \ No newline at end of file diff --git a/Warden/translations/tr/warden.phrases.txt b/Warden/translations/tr/warden.phrases.txt new file mode 100644 index 0000000..3c7365c --- /dev/null +++ b/Warden/translations/tr/warden.phrases.txt @@ -0,0 +1,56 @@ +"Phrases" +{ + "warden_new" + { + "#format" "{1:N}" + "tr" "{1} adlı oyuncu komutçu oldu." + } + + "warden_playerdead" + { + "tr" "sadece canlı oyuncular gardiyan olabilir." + } + + "warden_ctsonly" + { + "tr" "sadece Anti-Terörist takımı komutçu olabilir." + } + + "warden_exist" + { + "#format" "{1:N}" + "tr" "Zaten komutçu var: {1}" + } + + "warden_retire" + { + "#format" "{1:N}" + "tr" "{1} emekli olmaya karar verdi. Şimdi yeni bir tane seçebilirsiniz." + } + + "warden_notwarden" + { + "tr" "sen komutçu değilsin ve bu yüzden emekli olamazsın." + } + + "warden_dead" + { + "tr" "komutçu artık öldü. Şimdi yeni bir tane seçebilirsiniz." + } + + "warden_disconnected" + { + "tr" "komutçunun bağlantısı kesildi. Şimdi yeni bir tane seçebilirsiniz." + } + + "warden_removed" + { + "#format" "{1:N},{2:N}" + "tr" "{1} adlı yönetici {2} adlı komutçuyu kovdu!" + } + + "warden_noexist" + { + "tr" "ateş edecek gardiyan yoktu." + } +} \ No newline at end of file diff --git a/Warden/translations/warden.phrases.txt b/Warden/translations/warden.phrases.txt index 5142287..fb77d98 100644 --- a/Warden/translations/warden.phrases.txt +++ b/Warden/translations/warden.phrases.txt @@ -4,89 +4,53 @@ { "#format" "{1:N}" "en" "{1} has become the warden of this prison." - "es" "{1} Es ahora el Alcáide de esta Prisión." - "pt" "{1} Agora, o diretor da prisão.." - "sv" "{1} har blivit fängelsedirektör över detta fängelse." } "warden_playerdead" { - "#format" "" "en" "only alive players may become warden." - "es" "Sólo los jugadores vivos, pueden ser el Alcáide." - "pt" "Apenas os jogadores podem viver o diretor.." - "sv" "Endast levande spelare kan bli fängelsedirektör." } "warden_ctsonly" { - "#format" "" "en" "only Counter-Terrorists may become warden." - "es" "Sólo los Anti-Terroristas pueden ser el Alcáide." - "pt" "Apenas o diretor pode ser AntiTerrorista." - "sv" "Endast Anti-Terrorister kan bli fängelsedirektör." } "warden_exist" { "#format" "{1:N}" "en" "current warden is: {1}" - "es" "Alcáide Actual: {1}" - "pt" "Atual diretor: {1}" - "sv" "nuvarande fängelsedirektör är: {1}" } "warden_retire" { "#format" "{1:N}" "en" "{1} has decided to retire. You may now choose a new one." - "es" "{1} ha decidido jubilarse. Ahora toca elegir uno nuevo." - "pt" "{1} o atual diretor, decidiu se aposentar. Agora começa a escolher um novo.." - "sv" "{1} har bestämt sig för att avgå. Ni bör nu välja en ny." } "warden_notwarden" { - "#format" "" "en" "you are not the warden and therefore may not retire." - "es" "No eres el Alcáide, y no puedes jubilarte." - "pt" "Você não é o diretor, e você não pode se aposentar.." - "sv" "du är inte fängelsedirektören och kan därför inte avgå." } "warden_dead" { - "#format" "" "en" "the warden are now dead. You may now choose a new one." - "es" "El Alcáide ha muerto! Ahora toca elegir uno juevo." - "pt" "O diretor está morto, agora começa a escolher um novo." - "sv" "fängelsedirektören är död. Ni bör nu välja en ny." } "warden_disconnected" { - "#format" "" "en" "the warden has disconnected. You may now choose a new one." - "es" "El Alcáide ha desertado. Ahora toca elegir uno nuevo." - "pt" "O diretor deixou o jogo. Agora começa a escolher um novo." - "sv" "fängelsedirektören har lämnat. Ni bör nu välja en ny." } "warden_removed" { "#format" "{1:N},{2:N}" "en" "Admin: {1} fired Warden: {2}" - "es" "Administrador: {1} ha prejubilado al Alcáide: {2}" - "pt" "O Administrador do: {1} o diretor se aposentou cedo: {2}" - "sv" "Admin: {1} avskedade Fängelsedirektören: {2}" } "warden_noexist" { - "#format" "" "en" "there was no warden to fire." - "es" "Actualmente no existe ningún Alcáide en la prisión." - "pt" "Atualmente não há carcereiro na prisão." - "sv" "det fanns ingen fängelsedirektör att avskeda." } } \ No newline at end of file