This commit is contained in:
xen
2020-03-25 20:09:12 +02:00
committed by xen
commit 527e7ec05e
420 changed files with 68682 additions and 0 deletions
@@ -0,0 +1,484 @@
"mapchooser_extended"
{
"_groups"
{
"1" // final fantasy
{
"_max" "2"
"ze_ffvii_cosmo_canyon_v1beta1" {}
"ze_ffvii_cosmo_canyon_v1_1" {}
"ze_ffvii_cosmo_canyon_v2_1" {}
"ze_ffvii_cosmo_canyon_v4fix" {}
"ze_ffvii_cosmo_canyon_v5test2" {}
"ze_ffvii_cosmo_canyon_v5fix" {}
"ze_FFVII_Mako_Reactor_b2" {}
"ze_FFVII_Mako_Reactor_v1_4_1" {}
"ze_FFVII_Mako_Reactor_v3_1" {}
"ze_FFVII_Mako_Reactor_v5_3" {}
"ZE_FFVII_Mako_Reactor_V6_B08" {}
"ze_FFXII_Feywood_b3_1" {}
"ze_FFXII_Paramina_Rift_v1_4" {}
"ze_ffxii_ridorana_cataract_b6" {}
"ze_ffxii_ridorana_cataract_t4" {}
"ze_ffxii_westersand_v2_11a" {}
"ze_ffxii_westersand_v2d" {}
"ze_FFXII_Westersand_v5_2" {}
"ze_FFXII_Westersand_v7" {}
"ze_FFXII_Westersand_v7_2" {}
"ze_FFXII_Westersand_v8zeta1" {}
"ze_ffxiv_wanderers_palace_css" {}
"ze_FFXIV_Wanderers_Palace_v5s" {}
"ze_ffxiv_wanderers_palace_v4_5s" {}
"ze_FFXIV_Wanderers_Palace_v5_2f" {}
"ze_FFVII_Temple_Ancient_v3_3" {}
}
"2" // rooftop
{
"_max" "2"
"ze_gargantua_v2_0" {}
"ze_rooftop_runaway1_v4" {}
"ze_rooftop_runaway_xmas_v1" {}
"ze_rooftop_runaway2_v5" {}
"ze_rooftop_reborn_v3_2" {}
}
"3" // random
{
"_max" "1"
"ze_random_v9" {}
"ze_random_v10_fix" {}
"ze_random_escape_b7_3" {}
}
"4" // shroom
{
"_max" "2"
"ze_shroomforest2_v1" {}
"ze_shroomforest_v4_5" {}
"ze_shroomforest3_b6_2" {}
}
"5" // pirates
{
"_max" "1"
"ze_pirates_port_royal_v5_4s2" {}
"ze_pirates_port_royal_v3_6" {}
}
"6" // jurassic
{
"_max" "2"
"ze_jurassic_park_story_v1" {}
"ze_jurassicpark_c1v4" {}
"ze_jurassicpark_v2_10_ob" {}
}
}
"ze_deadcore_s6"
{
"MinPlayers" "40"
}
"ze_abandoned_project_v1_2"
{
"MinPlayers" "20"
}
"ze_amkoescape_v1337"
{
"MinPlayers" "20"
}
"ze_Ancient_wrath_v1_fix2"
{
"MinPlayers" "20"
}
"ze_antartika_b2"
{
"MinPlayers" "40"
}
"ze_ashen_keep_v0_3"
{
"MinPlayers" "40"
}
"ze_avalanche_reboot_beta3"
{
"MinPlayers" "40"
}
"ze_bathroom_v2_5s"
{
"MinPlayers" "20"
}
"ze_bioshock_v6_3"
{
"MinPlayers" "40"
}
"ze_boredom_v543656"
{
"MinPlayers" "40"
}
"ze_castlevania_v1_3"
{
"MinPlayers" "40"
}
"ze_chicken_ranch_v2_1s"
{
"MinPlayers" "20"
}
"ze_christmas_infection_v2_3"
{
"MinPlayers" "40"
}
"ze_chroma_v0_4"
{
"MinPlayers" "40"
}
"ze_dark_souls_ptd_v0_4"
{
"MinPlayers" "40"
}
"ze_destruction_of_exorath_re3"
{
"MinPlayers" "20"
}
"ze_doom3_v1"
{
"MinPlayers" "40"
}
"ze_fapescape_rote_v1_3f"
{
"MinPlayers" "40"
}
"ze_fapescape_v1_2"
{
"MinPlayers" "20"
}
"ze_ffvii_cosmo_canyon_v5fix"
{
"MinPlayers" "40"
"Cooldown" "45"
}
"ze_FFVII_Temple_Ancient_v3_3"
{
"MinPlayers" "40"
}
"ze_FFXII_Feywood_b3_1"
{
"MinPlayers" "40"
"Cooldown" "45"
}
"ze_FFVII_Mako_Reactor_v5_3"
{
"MinTime" "2200"
"MaxTime" "1600"
"Cooldown" "45"
"MinPlayers" "20"
}
"ZE_FFVII_Mako_Reactor_V6_B08"
{
"Cooldown" "45"
"MinPlayers" "40"
}
"ze_FFXII_Paramina_Rift_v1_4"
{
"MinPlayers" "40"
"Cooldown" "45"
}
"ze_ffxii_ridorana_cataract_t4"
{
"MinPlayers" "40"
}
"ze_ffxii_westersand_v2d"
{
"MinPlayers" "40"
}
"ze_ffxii_westersand_v5_2"
{
"MinPlayers" "40"
"Cooldown" "45"
}
"ze_ffxii_westersand_v7_2"
{
"MinPlayers" "40"
"Cooldown" "45"
}
"ze_FFXII_Westersand_v8zeta1"
{
"MinPlayers" "40"
"Cooldown" "45"
}
"ze_ffxiv_wanderers_palace_v4_5s"
{
"MinPlayers" "40"
}
"ze_FFXIV_Wanderers_Palace_v5_2f"
{
"MinPlayers" "40"
"Cooldown" "45"
}
"ze_frostdrake_tower_v1s"
{
"MinPlayers" "40"
}
"ze_frozentemple_b8_2"
{
"MinPlayers" "20"
}
"ze_gris_fyk"
{
"MinPlayers" "40"
}
"ze_halloween_house_b4s"
{
"MinPlayers" "40"
}
"ze_hellz_rescuebase_v5_b1"
{
"MinPlayers" "20"
}
"ze_hsc_a4_5"
{
"MinPlayers" "40"
}
"ze_industrial_dejavu_v3_3_1"
{
"MinPlayers" "40"
}
"ze_Infected_Sewers_v6_5"
{
"MinPlayers" "40"
}
"ze_interception_b4"
{
"MinPlayers" "20"
}
"ze_johnny_nukem_b8_1"
{
"MinPlayers" "40"
}
"ze_journey_v1_2"
{
"MinPlayers" "40"
}
"ze_last_man_standing_v4_2"
{
"MinPlayers" "40"
}
"ze_legoland_crackheads_v2"
{
"MinPlayers" "20"
}
"ze_l0v0l_v1_4"
{
"MinPlayers" "20"
}
"ze_lila_panic_escape_v3_1"
{
"MinPlayers" "20"
}
"ze_lolxd_final_s"
{
"MinPlayers" "20"
}
"ze_LOTR_Isengard_v2_3"
{
"MinPlayers" "20"
}
"ze_lotr_minas_tirith_v2_2fix"
{
"MinTime" "1800"
"MaxTime" "2200"
"MinPlayers" "40"
"Cooldown" "45"
}
"ze_lotr_minas_tirith_v3_3"
{
"MinTime" "1800"
"MaxTime" "2200"
"MinPlayers" "40"
"Cooldown" "45"
}
"ze_megaman_a6"
{
"MinPlayers" "40"
}
"ze_minecraft_adventure_v1_2c"
{
"MinPlayers" "20"
}
"ze_mountain_escape_v5_zy"
{
"MinPlayers" "20"
"Cooldown" "45"
}
"ze_otakuroom_v5_6fs"
{
"MinPlayers" "20"
}
"ze_paper_escaper_v7_1"
{
"MinPlayers" "20"
}
"ze_Paranoid_Rezurrection_v11_9"
{
"MinPlayers" "20"
"Cooldown" "45"
}
"ze_parkers_pit_b8"
{
"MinPlayers" "20"
}
"ze_Parking_v3_1"
{
"MinPlayers" "20"
}
"ze_Pidaras_v1_4fix3"
{
"MinPlayers" "20"
}
"ze_Pirates_Port_Royal_v3_6"
{
"MinPlayers" "20"
}
"ze_pirates_port_royal_v5_4s2"
{
"MinPlayers" "20"
"Cooldown" "45"
}
"ze_pizzatime_v4s"
{
"MinPlayers" "40"
}
"ze_pkmn_adventure_v8_6s_fix2"
{
"MinPlayers" "40"
}
"ze_PoncherMonkey_Shooter_v3_5"
{
"MinPlayers" "40"
}
"ze_portal_story_v3_2"
{
"MinPlayers" "20"
}
"ze_predator_ultimate_v3"
{
"MinPlayers" "20"
}
"ze_project_alcaria_v1_5s"
{
"MinPlayers" "20"
}
"ze_prototype_v2"
{
"MinPlayers" "20"
}
"ze_ravenholm_v035fix"
{
"MinPlayers" "20"
}
"ze_rizomata_s1_3"
{
"MinPlayers" "40"
}
"ze_rtcw_ominous_rumors_v1"
{
"MinPlayers" "20"
}
"ze_sandstorm_f1"
{
"MinPlayers" "20"
}
"ze_Serpentis_Temple_v1_1"
{
"MinPlayers" "40"
"Cooldown" "45"
}
"ze_shroomforest_v4_5"
{
"MinPlayers" "20"
"Cooldown" "45"
}
"ze_shroomforest2_v1"
{
"MinPlayers" "20"
"Cooldown" "45"
}
"ze_shroomforest3_b6_2"
{
"MinPlayers" "40"
"Cooldown" "45"
}
"ze_siberia_1990_v1_2c"
{
"MinPlayers" "20"
}
"ze_slender_escape_b4"
{
"MinPlayers" "20"
}
"ze_stalker_ultimate_v2_3"
{
"MinPlayers" "20"
}
"ze_stalker_ultimate_v3"
{
"MinPlayers" "20"
}
"ze_stalker_monolit_a5"
{
"MinPlayers" "50"
}
"ze_starwars_v2fix"
{
"MinPlayers" "20"
}
"ze_strange_escape_b3"
{
"MinPlayers" "20"
}
"ze_sunkentemple_v3_1s"
{
"MinPlayers" "20"
}
"ze_sunlight_v2_0"
{
"MinPlayers" "20"
}
"ze_super_mario_64_v2_b5"
{
"MinPlayers" "40"
}
"ze_survivors_b5"
{
"MinPlayers" "40"
}
"ze_taboo_carnation_v2"
{
"MinPlayers" "40"
}
"ze_temple_raider_b4"
{
"MinPlayers" "40"
}
"ze_Temple_v2_1"
{
"MinPlayers" "40"
}
"ze_tesv_skyrim_v4fix"
{
"MinPlayers" "40"
"Cooldown" "45"
}
"ze_toaster_v1_2"
{
"MinPlayers" "20"
}
"ze_tyranny_v5_2"
{
"MinPlayers" "40"
}
"ze_undertale_g_v1_2s2"
{
"MinPlayers" "20"
}
"ze_ut2004_convoy_v2_2_1"
{
"MinPlayers" "40"
}
"ze_v0u0v_a4"
{
"MinPlayers" "40"
}
@@ -0,0 +1,3 @@
"mapchooser_extended"
{
}
@@ -0,0 +1,21 @@
ar_baggage
ar_monastery
ar_shoots
cs_assault
cs_italy
cs_militia
cs_office
de_aztec
de_bank
de_dust
de_dust2
de_inferno
de_lake
de_mirage
de_nuke
de_safehouse
de_shorttrain
de_stmarc
de_sugarcane
de_train
de_vertigo
@@ -0,0 +1,28 @@
as_oilrig
cs_747
cs_assault
cs_backalley
cs_compound
cs_estate
cs_havana
cs_italy
cs_militia
cs_office
cs_siege
de_airstrip
de_aztec
de_cbble
de_chateau
de_dust2
de_dust
de_inferno
de_nuke
de_piranesi
de_port
de_prodigy
de_storm
de_survivor
de_tides
de_torn
de_train
de_vertigo
@@ -0,0 +1,9 @@
dod_anzio
dod_argentan
dod_avalanche
dod_colmar
dod_donner
dod_flash
dod_jagd
dod_kalt
dod_palermo
@@ -0,0 +1,7 @@
dm_lockdown
dm_overwatch
dm_runoff
dm_steamlab
dm_underpass
dm_resistance
dm_powerhouse
@@ -0,0 +1,65 @@
tc_hydro
cp_well
cp_granary
cp_dustbowl
cp_gravelpit
ctf_2fort
ctf_well
cp_badlands
pl_goldrush
cp_fastlane
ctf_turbine
pl_badwater
cp_steel
arena_badlands
arena_granary
arena_lumberyard
arena_ravine
arena_well
cp_egypt_final
cp_junction_final
arena_watchtower
plr_pipeline
arena_sawmill
arena_nucleus
pl_hoodoo_final
koth_sawmill
koth_nucleus
koth_viaduct
ctf_sawmill
arena_offblast_final
cp_yukon_final
koth_harvest_final
koth_harvest_event
ctf_doublecross
cp_gorge
cp_freight_final1
pl_upward
plr_hightower
pl_thundermountain
cp_coldfront
cp_mountainlab
cp_manor_event
cp_degrootkeep
cp_5gorge
pl_frontier_final
plr_nightfall_final
koth_lakeside_final
koth_badlands
pl_barnblitz
cp_gullywash_final1
koth_viaduct_event
cp_foundry
sd_doomsday
koth_king
mvm_mannworks
mvm_coaltown
mvm_decoy
koth_lakeside_event
mvm_bigrock
cp_process_final
cp_standin_final
plr_hightower_event
cp_snakewater_final1
mvm_mannhattan
mvm_rottenburg
@@ -0,0 +1,158 @@
/**
* vim: set ts=4 :
* =============================================================================
* MapChooser Extended
* Creates a map vote at appropriate times, setting sm_nextmap to the winning
* vote
*
* MapChooser Extended (C)2011-2013 Powerlord (Ross Bemrose)
* SourceMod (C)2004-2007 AlliedModders LLC. All rights reserved.
* =============================================================================
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, version 3.0, as published by the
* Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*
* As a special exception, AlliedModders LLC gives you permission to link the
* code of this program (as well as its derivative works) to "Half-Life 2," the
* "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
* by the Valve Corporation. You must obey the GNU General Public License in
* all respects for all other code used. Additionally, AlliedModders LLC grants
* this exception to all derivative works. AlliedModders LLC defines further
* exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
* or <http://www.sourcemod.net/license.php>.
*
* Version: $Id$
*/
#if defined _mapchooser_extended_included_
#endinput
#endif
#define _mapchooser_extended_included_
#include <mapchooser>
// MCE 1.9 series
enum CanNominateResult
{
CanNominate_No_VoteFull, /** No, nominations list is full */
CanNominate_No_VoteInProgress, /** No, map vote is in progress */
CanNominate_No_VoteComplete, /** No, map vote is completed */
CanNominate_Yes, /** Yes, you can nominate */
};
/**
* Called whenever warning timer starts
*
*/
forward void OnMapVoteWarningStart();
/**
* Called whenever runoff warning timer starts
*/
forward void OnMapVoteRunnoffWarningStart();
/**
* Called whenever the timer ticks
*/
forward void OnMapVoteWarningTick(int time);
/**
* Called whenever vote starts
*
* @deprecated Will be removed in MapChooser 1.8. Use OnMapVoteStarted instead.
*/
forward void OnMapVoteStart();
/**
* Called whenever vote ends
*/
forward void OnMapVoteEnd(const char[] map);
/**
* Is a map on the current game's official list?
* This should be treated as informative only.
*
* @param map Name of map to check
* @return true if it's on the list of official maps for this game
*/
native bool IsMapOfficial(const char[] map);
/**
* Is nominate allowed?
*
* @return A CanNominateResult corresponding to whether a vote is allowed or not
*/
native CanNominateResult CanNominate();
/**
* Add map to nomination exclude list.
* Known as cooldown.
*
* @param map Name of map
* @param cooldown Cooldown, interpretation depends on mode.
* @param mode 0: Normal, use cooldown value from config/default.
* 1: Set or replace cooldown with cooldown value.
* 2: Set or replace cooldown with cooldown value if greater than current cooldown.
* @return true on success
*/
native bool ExcludeMap(const char[] map, int cooldown = 0, int mode = 0);
// Cooldown in seconds
native bool ExcludeMapTime(const char[] map, int cooldown = 0, int mode = 0);
native int GetMapCooldown(const char[] map);
native int GetMapCooldownTime(const char[] map); // in unix time
native int GetMapMinTime(const char[] map);
native int GetMapMaxTime(const char[] map);
native int GetMapMinPlayers(const char[] map);
native int GetMapMaxPlayers(const char[] map);
// 0 = Okay
// >0 = Minutes till Okay
native int GetMapTimeRestriction(const char[] map);
// <0 = Less than MinPlayers
// 0 = Okay
// >0 = More than MaxPlayers
native int GetMapPlayerRestriction(const char[] map);
// <=0 = No group
// >0 = Groups found
native int GetMapGroups(const char[] map, int[] groups, int size);
// <0 = No restriction
// >=0 = Group _max -> Group full
native int GetMapGroupRestriction(const char[] map, int client = 0);
native bool GetMapVIPRestriction(const char[] map, int client = 0);
/**
* Amount of Extends left on the current map
*
* @return amounts of extends left
*/
native int GetExtendsLeft();
native bool AreRestrictionsActive();
public SharedPlugin __pl_mapchooser_extended =
{
name = "mapchooser",
file = "mapchooser_extended.smx",
#if defined REQUIRE_PLUGIN
required = 1,
#else
required = 0,
#endif
};
@@ -0,0 +1,21 @@
#if defined _nominations_extended_included_
#endinput
#endif
#define _nominations_extended_included_
native int GetNominationPool(ArrayList &pool);
native int PushMapIntoNominationPool(char[] map);
native int PushMapsIntoNominationPool(ArrayList maps);
native int RemoveMapFromNominationPool(char[] map);
native int RemoveMapsFromNominationPool(ArrayList maps);
public SharedPlugin __pl_nominations_extended =
{
name = "nominations",
file = "nominations_extended.smx",
#if defined REQUIRE_PLUGIN
required = 1,
#else
required = 0,
#endif
};
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,370 @@
/**
* vim: set ts=4 :
* =============================================================================
* Rock The Vote Extended
* Creates a map vote when the required number of players have requested one.
*
* Rock The Vote Extended (C)2012-2013 Powerlord (Ross Bemrose)
* SourceMod (C)2004-2007 AlliedModders LLC. All rights reserved.
* =============================================================================
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, version 3.0, as published by the
* Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*
* As a special exception, AlliedModders LLC gives you permission to link the
* code of this program (as well as its derivative works) to "Half-Life 2," the
* "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
* by the Valve Corporation. You must obey the GNU General Public License in
* all respects for all other code used. Additionally, AlliedModders LLC grants
* this exception to all derivative works. AlliedModders LLC defines further
* exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
* or <http://www.sourcemod.net/license.php>.
*
* Version: $Id$
*/
#pragma semicolon 1
#pragma newdecls required
#include <sourcemod>
#include <sdktools_functions>
#include <mapchooser>
#include <nextmap>
#include <AFKManager>
#define MCE_VERSION "1.3.0"
public Plugin myinfo =
{
name = "Rock The Vote Extended",
author = "Powerlord and AlliedModders LLC",
description = "Provides RTV Map Voting",
version = MCE_VERSION,
url = "https://forums.alliedmods.net/showthread.php?t=156974"
};
ConVar g_Cvar_Needed;
ConVar g_Cvar_MinPlayers;
ConVar g_Cvar_InitialDelay;
ConVar g_Cvar_Interval;
ConVar g_Cvar_ChangeTime;
ConVar g_Cvar_RTVPostVoteAction;
ConVar g_Cvar_RTVAutoDisable;
ConVar g_Cvar_AFKTime;
bool g_CanRTV = false; // True if RTV loaded maps and is active.
bool g_RTVAllowed = false; // True if RTV is available to players. Used to delay rtv votes.
int g_Voters = 0; // Total voters connected. Doesn't include fake clients.
int g_Votes = 0; // Total number of "say rtv" votes
int g_VotesNeeded = 0; // Necessary votes before map vote begins. (voters * percent_needed)
bool g_Voted[MAXPLAYERS+1] = {false, ...};
bool g_InChange = false;
public void OnPluginStart()
{
LoadTranslations("common.phrases");
LoadTranslations("rockthevote.phrases");
LoadTranslations("basevotes.phrases");
g_Cvar_Needed = CreateConVar("sm_rtv_needed", "0.60", "Percentage of players needed to rockthevote (Def 60%)", 0, true, 0.05, true, 1.0);
g_Cvar_MinPlayers = CreateConVar("sm_rtv_minplayers", "0", "Number of players required before RTV will be enabled.", 0, true, 0.0, true, float(MAXPLAYERS));
g_Cvar_InitialDelay = CreateConVar("sm_rtv_initialdelay", "30.0", "Time (in seconds) before first RTV can be held", 0, true, 0.00);
g_Cvar_Interval = CreateConVar("sm_rtv_interval", "240.0", "Time (in seconds) after a failed RTV before another can be held", 0, true, 0.00);
g_Cvar_ChangeTime = CreateConVar("sm_rtv_changetime", "0", "When to change the map after a succesful RTV: 0 - Instant, 1 - RoundEnd, 2 - MapEnd", _, true, 0.0, true, 2.0);
g_Cvar_RTVPostVoteAction = CreateConVar("sm_rtv_postvoteaction", "0", "What to do with RTV's after a mapvote has completed. 0 - Allow, success = instant change, 1 - Deny", _, true, 0.0, true, 1.0);
g_Cvar_RTVAutoDisable = CreateConVar("sm_rtv_autodisable", "0", "Automatically disable RTV when map time is over.", _, true, 0.0, true, 1.0);
g_Cvar_AFKTime = CreateConVar("sm_rtv_afk_time", "180", "AFK Time in seconds after which a player is not counted in the rtv ratio");
RegConsoleCmd("sm_rtv", Command_RTV);
RegAdminCmd("sm_forcertv", Command_ForceRTV, ADMFLAG_CHANGEMAP, "Force an RTV vote");
RegAdminCmd("sm_disablertv", Command_DisableRTV, ADMFLAG_CHANGEMAP, "Disable the RTV command");
RegAdminCmd("sm_enablertv", Command_EnableRTV, ADMFLAG_CHANGEMAP, "Enable the RTV command");
HookEvent("player_team", OnPlayerChangedTeam, EventHookMode_PostNoCopy);
AutoExecConfig(true, "rtv");
}
public void OnMapStart()
{
g_Voters = 0;
g_Votes = 0;
g_VotesNeeded = 0;
g_InChange = false;
/* Handle late load */
for (int i=1; i<=MaxClients; i++)
{
if (IsClientInGame(i))
{
OnClientPutInServer(i);
}
}
}
public void OnMapEnd()
{
g_CanRTV = false;
g_RTVAllowed = false;
}
public void OnConfigsExecuted()
{
g_CanRTV = true;
g_RTVAllowed = false;
CreateTimer(g_Cvar_InitialDelay.FloatValue, Timer_DelayRTV, _, TIMER_FLAG_NO_MAPCHANGE);
}
public void OnClientPutInServer(int client)
{
UpdateRTV();
}
public void OnClientDisconnect(int client)
{
if (g_Voted[client])
{
g_Voted[client] = false;
g_Votes--;
}
UpdateRTV();
}
public void OnPlayerChangedTeam(Handle event, const char[] name, bool dontBroadcast)
{
UpdateRTV();
}
void UpdateRTV()
{
g_Voters = 0;
for (int i=1; i<=MaxClients; i++)
{
if (IsClientInGame(i) && !IsFakeClient(i))
{
if (GetClientIdleTime(i) <= g_Cvar_AFKTime.IntValue)
{
g_Voters++;
}
}
}
// g_Voters = GetTeamClientCount(2) + GetTeamClientCount(3);
g_VotesNeeded = RoundToFloor(float(g_Voters) * GetConVarFloat(g_Cvar_Needed));
if (!g_CanRTV)
{
return;
}
if (g_Votes &&
g_Voters &&
g_Votes >= g_VotesNeeded &&
RTVAllowed())
{
if (g_Cvar_RTVPostVoteAction.IntValue == 1 && HasEndOfMapVoteFinished())
{
return;
}
StartRTV();
}
}
public void OnClientSayCommand_Post(int client, const char[] command, const char[] sArgs)
{
if (!g_CanRTV || !client)
{
return;
}
if (strcmp(sArgs, "rtv", false) == 0 || strcmp(sArgs, "rockthevote", false) == 0)
{
ReplySource old = SetCmdReplySource(SM_REPLY_TO_CHAT);
AttemptRTV(client);
SetCmdReplySource(old);
}
}
public Action Command_RTV(int client, int args)
{
if (!g_CanRTV || !client)
{
return Plugin_Handled;
}
AttemptRTV(client);
return Plugin_Handled;
}
void AttemptRTV(int client)
{
if (!RTVAllowed() || (g_Cvar_RTVPostVoteAction.IntValue == 1 && HasEndOfMapVoteFinished()))
{
ReplyToCommand(client, "[RTVE] %t", "RTV Not Allowed");
return;
}
if (!CanMapChooserStartVote())
{
ReplyToCommand(client, "[RTVE] %t", "RTV Started");
return;
}
if (GetClientCount(true) < g_Cvar_MinPlayers.IntValue)
{
ReplyToCommand(client, "[RTVE] %t", "Minimal Players Not Met");
return;
}
if (g_Voted[client])
{
ReplyToCommand(client, "[RTVE] %t", "Already Voted", g_Votes, g_VotesNeeded);
return;
}
char name[MAX_NAME_LENGTH];
GetClientName(client, name, sizeof(name));
g_Votes++;
g_Voted[client] = true;
PrintToChatAll("[RTVE] %t", "RTV Requested", name, g_Votes, g_VotesNeeded);
if (g_Votes >= g_VotesNeeded)
{
StartRTV();
}
}
public Action Timer_DelayRTV(Handle timer)
{
g_RTVAllowed = true;
}
void StartRTV()
{
if (g_InChange)
{
return;
}
if (EndOfMapVoteEnabled() && HasEndOfMapVoteFinished())
{
/* Change right now then */
char map[PLATFORM_MAX_PATH];
if (GetNextMap(map, sizeof(map)))
{
GetMapDisplayName(map, map, sizeof(map));
PrintToChatAll("[RTVE] %t", "Changing Maps", map);
CreateTimer(5.0, Timer_ChangeMap, _, TIMER_FLAG_NO_MAPCHANGE);
g_InChange = true;
ResetRTV();
g_RTVAllowed = false;
}
return;
}
if (CanMapChooserStartVote())
{
MapChange when = view_as<MapChange>(g_Cvar_ChangeTime.IntValue);
InitiateMapChooserVote(when);
ResetRTV();
g_RTVAllowed = false;
CreateTimer(g_Cvar_Interval.FloatValue, Timer_DelayRTV, _, TIMER_FLAG_NO_MAPCHANGE);
}
}
void ResetRTV()
{
g_Votes = 0;
for (int i=1; i<=MAXPLAYERS; i++)
{
g_Voted[i] = false;
}
}
public Action Timer_ChangeMap(Handle hTimer)
{
g_InChange = false;
LogMessage("RTV changing map manually");
char map[PLATFORM_MAX_PATH];
if (GetNextMap(map, sizeof(map)))
{
ForceChangeLevel(map, "RTV after mapvote");
}
return Plugin_Stop;
}
public Action Command_ForceRTV(int client, int args)
{
if(!g_CanRTV)
return Plugin_Handled;
ShowActivity2(client, "[RTVE] ", "%t", "Initiated Vote Map");
StartRTV();
return Plugin_Handled;
}
public Action Command_DisableRTV(int client, int args)
{
if(!g_RTVAllowed)
return Plugin_Handled;
ShowActivity2(client, "[RTVE] ", "disabled RockTheVote.");
g_RTVAllowed = false;
return Plugin_Handled;
}
public Action Command_EnableRTV(int client, int args)
{
if(g_RTVAllowed)
return Plugin_Handled;
ShowActivity2(client, "[RTVE] ", "enabled RockTheVote");
g_RTVAllowed = true;
return Plugin_Handled;
}
bool RTVAllowed()
{
if(!g_RTVAllowed)
return false;
int time;
if(g_Cvar_RTVAutoDisable.BoolValue && GetMapTimeLeft(time) && time == 0)
return false;
return true;
}
@@ -0,0 +1,2 @@
Missing "Runoff Vote Nextmap", "Number Of Votes", "Custom", "Revote Is Needed", "Revote Warning", "Vote Warning",
"Line One", "Line Two", "Cannot Start Vote", and "Tie Vote"
@@ -0,0 +1,43 @@
"Phrases"
{
"Vote Nextmap"
{
"chi" "下一幅地图投票了!"
}
"Nextmap Voting Started"
{
"chi" "下一幅地图投选已开始."
}
"Nextmap Voting Finished"
{
"chi" " 地图投票已结束. 下一幅地图将为 {1}. ( 得票{2}%% , {3}票)"
}
"Current Map Extended"
{
"chi" "当前地图已被延长."
}
"Extend Map"
{
"chi" "延长当前地图"
}
"Dont Change"
{
"chi" "请勿更换"
}
"Current Map Stays"
{
"chi" "当前地图已被延长! 投票显示! (得票 {1}%% 共 {2} 票)"
}
"Changed Next Map"
{
"chi" "更换下一幅地图为 \"{1}\"."
}
}
@@ -0,0 +1,2 @@
Missing "Runoff Vote Nextmap", "Number Of Votes", "Custom", "Revote Is Needed", "Revote Warning", "Vote Warning",
"Line One", "Line Two", "Cannot Start Vote", and "Tie Vote"
@@ -0,0 +1,43 @@
"Phrases"
{
"Vote Nextmap"
{
"cze" "Hlasujte o příští mapě!"
}
"Nextmap Voting Started"
{
"cze" "Hlasování o příští mapě začalo."
}
"Nextmap Voting Finished"
{
"cze" "Hlasování o mapě skončilo. Příští mapou bude {1}. (Obdržela {2}%% z {3} hlasů)"
}
"Current Map Extended"
{
"cze" "Současná mapa byla prodloužena. (Obdržela {1}%% z {2} hlasů)"
}
"Extend Map"
{
"cze" "Prodloužit současnou mapu"
}
"Dont Change"
{
"cze" "Neměnit"
}
"Current Map Stays"
{
"cze" "Současná mapa pokračuje! Hlasování rozhodlo! (Obdržela {1}%% z {2} hlasů)"
}
"Changed Next Map"
{
"cze" "Změnil příští mapu na \"{1}\"."
}
}
@@ -0,0 +1,2 @@
Missing "Runoff Vote Nextmap", "Number Of Votes", "Custom", "Revote Is Needed", "Revote Warning", "Vote Warning",
"Line One", "Line Two", "Cannot Start Vote", and "Tie Vote"
@@ -0,0 +1,43 @@
"Phrases"
{
"Vote Nextmap"
{
"da" "Stem om næste bane!"
}
"Nextmap Voting Started"
{
"da" "Afstemning for næste bane er begyndt."
}
"Nextmap Voting Finished"
{
"da" "Bane afstemning er fuldført. Den næste bane vil være {1}. (Modtog {2}%% af {3} stemmer) "
}
"Current Map Extended"
{
"da" "Den nuværende bane er blevet forlænget. (Modtog {1}%% af {2} stemmer) "
}
"Extend Map"
{
"da" "Forlæng bane"
}
"Dont Change"
{
"da" "Skift ikke!"
}
"Current Map Stays"
{
"da" "Den aktuelle bane fortsætter! Afstemningen har talt! (Modtog {1}%% af {2} stemmer)"
}
"Changed Next Map"
{
"da" "Skiftede næste bane til \"{1}'."
}
}
@@ -0,0 +1,98 @@
"Phrases"
{
"Vote Nextmap"
{
"de" "Stimme für die nächste Karte!"
}
"Nextmap Voting Started"
{
"de" "Abstimmung für die nächste Karte wurde gestartet."
}
"Nextmap Voting Finished"
{
"de" "Karten-Abstimmung wurde abgeschlossen. Nächste Karte wird {1} sein. ({2}%% von {3} Stimmen erhalten) "
}
"Current Map Extended"
{
"de" "Die aktuelle Karte wurde verlängert. ({1}%% von {2} Stimmen erhalten) "
}
"Extend Map"
{
"de" "Verlängere aktuelle Karte"
}
"Dont Change"
{
"de" "Nicht wechseln"
}
"Current Map Stays"
{
"de" "Aktuelle Karte geht weiter! Die Abstimmung hat entschieden! ({1}%% von {2} Stimmen erhalten) "
}
"Changed Next Map"
{
"de" "Nächste Karte wurde auf \"{1}\" geändert. "
}
"Runoff Vote Nextmap"
{
"de" "Stichwahl für die nächste Karte!"
}
"Number Of Votes"
{
"de" "Anzahl der Stimmen"
}
"Custom"
{
"de" "{1} (nicht vorhanden)"
}
"Revote Is Needed"
{
"de" "Keine Karte hat mehr als {1}%% der Stimmen.\nEine neue Abstimmung ist erforderlich!"
}
"Revote Warning"
{
"de" "Stichwahl startet in: {1} Sekunden"
}
"Vote Warning"
{
"de" "Achtung! Die Abstimmung für die nächste Karte startet in: {1} Sekunden"
}
"Line One"
{
"de" "Überlegen Sie, welche Karte Sie spielen möchten ..."
}
"Line Two"
{
"de" "... und nicht unüberlegt wählen!"
}
"Cannot Start Vote"
{
"de" "Abstimmung ist bereits im Gange. Versuch Sie es erneut in {1} Sekunden"
}
"Tie Vote"
{
"de" "Die Top-{1} Karten haben gleich viele Stimmen!.\nEine neue Abstimmung ist erforderlich!"
}
"Custom Marked"
{
"de" "*{1}"
}
}
@@ -0,0 +1,92 @@
"Phrases"
{
"Vote Nextmap"
{
"es" "Vota para el siguiente mapa!"
}
"Nextmap Voting Started"
{
"es" "La votacion para el siguiente mapa ha comenzado."
}
"Nextmap Voting Finished"
{
"es" "Votacion de Mapa finalizado. El siguiente mapa sera {1}. (Recibidos {2}%% de {3} votos)"
}
"Current Map Extended"
{
"es" "El mapa actual ha sido extendido. (Recibidos {1}%% de {2} votos)"
}
"Extend Map"
{
"es" "Extender mapa actual"
}
"Dont Change"
{
"es" "No cambiar"
}
"Current Map Stays"
{
"es" "El mapa actual continua! La votacion ha hablado! (Recibidos {1}%% de {2} votos)"
}
"Changed Next Map"
{
"es" "El siguiente mapa ha cambiado a \"{1}\"."
}
"Runoff Vote Nextmap"
{
"es" "Hacer votacion para el siguiente mapa!"
}
"Number Of Votes"
{
"es" "Numero de Votaciones"
}
"Custom"
{
"es" "{1} (Custom)"
}
"Revote Is Needed"
{
"es" "No hay ningun mapa que haya recibido el {1}%% de votaciones.\nEntonces, que mapa ganara? Es necesario otra votacion!"
}
"Revote Warning"
{
"es" "La votacion empezara en: {1}s"
}
"Vote Warning"
{
"es" "Atencion! La votacion para el siguiente mapa se iniciara en: {1}s"
}
"Line One"
{
"es" "Considera que mapa quieres jugar..."
}
"Line Two"
{
"es" "...y no pulse los botones sin pensar ;-)"
}
"Cannot Start Vote"
{
"es" "Votacion ya iniciada. Intentando de nuevo en {1}s."
}
"Tie Vote"
{
"es" "El top {1} de mapas tienen el mismo numero de votaciones.\nSe necesita una nueva votacion!"
}
}
@@ -0,0 +1,87 @@
"Phrases"
{
"Vote Nextmap"
{
"fr" "Voter pour la prochaine map!"
}
"Nextmap Voting Started"
{
"fr" "Voter pour la prochaine map est lancer."
}
"Nextmap Voting Finished"
{
"fr" "Le VoteMap est terminer. La prochaine map sera {1}. (Reçu {2}%% sur {3} votes)"
}
"Current Map Extended"
{
"fr" "La map actuelle a été prolonger. (Reçu {1}%% sur {2} votes)"
}
"Extend Map"
{
"fr" "Prolonger la map"
}
"Dont Change"
{
"fr" "Ne pas changer"
}
"Current Map Stays"
{
"fr" "La map continue! Le vote a tranché! (Reçu {1}%% sur {2} votes)"
}
"Changed Next Map"
{
"fr" "La map suivante sera \"{1}\"."
}
"Runoff Vote Nextmap"
{
"fr" "Votez a nouveau pour la prochaine Map!"
}
"Number Of Votes"
{
"fr" "Nombres de votes"
}
"Custom"
{
"fr" "{1} (Custom)"
}
"Revote Is Needed"
{
"fr" "Aucune map n'a reçu plus de {1}%% du vote.\nAlors, quels maps va gagner? Un nouveau vote va être lancé!"
}
"Revote Warning"
{
"fr" "Un nouveau vote commence dans: {1}s"
}
"Vote Warning"
{
"fr" "Attention! Le vote pour la prochaine map commence dans: {1}s"
}
"Line One"
{
"fr" "Voter pour la map que vous voulez jouer..."
}
"Line Two"
{
"fr" "...et ne pas cliquez sur une touche comme un con ;-)"
}
"Cannot Start Vote"
{
"fr" "Vote déjà en cours. Reassayer dans {1}s."
}
}
@@ -0,0 +1,92 @@
"Phrases"
{
"Vote Nextmap"
{
"fr" "Votez pour la prochaine map!"
}
"Nextmap Voting Started"
{
"fr" "Le vote pour la prochaine map est lancé."
}
"Nextmap Voting Finished"
{
"fr" "Le VoteMap est terminé. La prochaine map sera {1}. (Reçu {2}%% sur {3} votes)"
}
"Current Map Extended"
{
"fr" "La map actuelle a été prolongée. (Reçu {1}%% sur {2} votes)"
}
"Extend Map"
{
"fr" "Prolonger la map"
}
"Dont Change"
{
"fr" "Ne pas changer"
}
"Current Map Stays"
{
"fr" "La map continue! Le vote a tranché! (Reçu {1}%% sur {2} votes)"
}
"Changed Next Map"
{
"fr" "La map suivante sera \"{1}\"."
}
"Runoff Vote Nextmap"
{
"fr" "Votez à nouveau pour la prochaine Map!"
}
"Number Of Votes"
{
"fr" "Nombres de votes"
}
"Custom"
{
"fr" "{1} (Custom)"
}
"Revote Is Needed"
{
"fr" "Aucune map n'a reçu plus de {1}%% du vote.\nAlors, quelle map va gagner? Un nouveau vote va être lancé!"
}
"Revote Warning"
{
"fr" "Un nouveau vote commence dans: {1}s"
}
"Vote Warning"
{
"fr" "Attention! Le vote pour la prochaine map commence dans: {1}s"
}
"Line One"
{
"fr" "Votez pour la map que vous voulez jouer..."
}
"Line Two"
{
"fr" "...et n'appuyez pas sur une touche comme un con ;-)"
}
"Cannot Start Vote"
{
"fr" "Vote déjà en cours. Reassayez dans {1}s."
}
"Tie Vote"
{
"fr" "{1} maps ont eu un même nombre de voix.\nUn nouveau vote est nécessaire!"
}
}
@@ -0,0 +1,2 @@
Missing "Runoff Vote Nextmap", "Number Of Votes", "Custom", "Revote Is Needed", "Revote Warning", "Vote Warning",
"Line One", "Line Two", "Cannot Start Vote", and "Tie Vote"
@@ -0,0 +1,43 @@
"Phrases"
{
"Vote Nextmap"
{
"hu" "Mi legyen a következő pálya?"
}
"Nextmap Voting Started"
{
"hu" "Palyavalaszto szavazas elindult!"
}
"Nextmap Voting Finished"
{
"hu" "A szavazás lezárult. A következő pálya a {1} lesz"
}
"Current Map Extended"
{
"hu" "Az aktualis palya meghosszabitva."
}
"Extend Map"
{
"hu" "Palya meghosszabitasa"
}
"Dont Change"
{
"hu" "Ne valtsunk!"
}
"Current Map Stays"
{
"hu" "Jelenlegi palya folytatodik."
}
"Changed Next Map"
{
"hu" "\"{1}\" lesz a kovetkezo palya"
}
}
@@ -0,0 +1,92 @@
"Phrases"
{
"Vote Nextmap"
{
"it" "Vota per la prossima mappa!"
}
"Nextmap Voting Started"
{
"it" "Le votazione per scegliere la prossima mappa sono iniziate."
}
"Nextmap Voting Finished"
{
"it" "Le votazioni sono terminate. La prossima mappa sarà {1}. (Con {2}%% su {3} votes)"
}
"Current Map Extended"
{
"it" "La mappa attuale è stata estesa. (Con {1}%% su {2} votes)"
}
"Extend Map"
{
"it" "Estendi la mappa corrente"
}
"Dont Change"
{
"it" "Non cambiare"
}
"Current Map Stays"
{
"it" "La mappa continua! Il voto ha parlato! (Con {1}%% su {2} votes)"
}
"Changed Next Map"
{
"it" "La mappa successiva sarà \"{1}\"."
}
"Runoff Vote Nextmap"
{
"it" "Vota nuovamente per scegliere la prossima mappa!"
}
"Number Of Votes"
{
"it" "Numero di voti"
}
"Custom"
{
"it" "{1} (Custom)"
}
"Revote Is Needed"
{
"it" "Nessuna mappa ha ricevuto più del {1}%% di voti.\nAllora, quale mappa vincerà? Si inizia un' altra votazione!"
}
"Revote Warning"
{
"it" "Una nuova votazione inizierà tra: {1}s"
}
"Vote Warning"
{
"it" "Attenzione! Le votazione per la prossima mappa cominceranno tra: {1}s"
}
"Line One"
{
"it" "Vota la mappa chevorresti giocare..."
}
"Line Two"
{
"it" "...e non cliccare i tasti sconsideratamente :D"
}
"Cannot Start Vote"
{
"it" "Il voto è in corso. Riprova tra {1}s."
}
"Tie Vote"
{
"it" "Le mappe hanno raggiunto il pareggio dei voti.\nBisogna nuovamente votare!"
}
}
@@ -0,0 +1,2 @@
Missing "Runoff Vote Nextmap", "Number Of Votes", "Custom", "Revote Is Needed", "Revote Warning", "Vote Warning",
"Line One", "Line Two", "Cannot Start Vote", and "Tie Vote"
@@ -0,0 +1,43 @@
"Phrases"
{
"Vote Nextmap"
{
"jp" "次のマップを投票してください!"
}
"Nextmap Voting Started"
{
"jp" "次のマップ投票をスタートしました。"
}
"Nextmap Voting Finished"
{
"jp" "マップ投票が完了しました。次はマップは{1}です。({3}中{2}%%)"
}
"Current Map Extended"
{
"jp" "現在のマップを延長します。({3}中{2}%%)"
}
"Extend Map"
{
"jp" "現在のマップを延長"
}
"Dont Change"
{
"jp" "変更しない"
}
"Current Map Stays"
{
"jp" "現在のマップを延長します。({3}中{2}%%)"
}
"Changed Next Map"
{
"jp" "次のマップを\"{1}\"に変更しました。"
}
}
@@ -0,0 +1,98 @@
"Phrases"
{
"Vote Nextmap"
{
"ko" "다음 맵을 결정하기 위한 투표!"
}
"Nextmap Voting Started"
{
"ko" "다음 맵을 결정하기 위한 투표가 시작되었습니다."
}
"Nextmap Voting Finished"
{
"ko" "맵 투표가 끝났습니다. 다음 맵은 {1} 이 될 것입니다. (전체 인원 {2}명 중 {1}%%의 표를 받았습니다.)"
}
"Current Map Extended"
{
"ko" "현재 맵을 더하기로 결정했습니다. (전체 인원 {2}명 중 {1}%%의 표를 받았습니다.)"
}
"Extend Map"
{
"ko" "지금 맵을 더 하자"
}
"Dont Change"
{
"ko" "바꾸지 말자"
}
"Current Map Stays"
{
"ko" "현재 맵을 계속 합니다!(전체 인원 {2} 명의 {1}%% 의 표를 받았습니다)"
}
"Changed Next Map"
{
"ko" "다음 맵을 \"{1}\" 로 바꾸었습니다."
}
"Runoff Vote Nextmap"
{
"ko" "다음 맵을 결정하기 위한 재투표!"
}
"Number Of Votes"
{
"ko" "투표수"
}
"Custom"
{
"ko" "{1} (커스텀 맵)"
}
"Revote Is Needed"
{
"ko" "{1}%% 이상 투표를 받은 맵이 없습니다.\n다음 맵을 결정하기 위해 재투표를 합니다!"
}
"Revote Warning"
{
"ko" "재투표까지: {1}초"
}
"Vote Warning"
{
"ko" "알립니다! 다음 맵을 결정하는 투표까지: {1}초"
}
"Line One"
{
"ko" "원하는 맵을 선택하세요..."
}
"Line Two"
{
"ko" "...그리고 아무거나 막 찍지 말고요 -_-"
}
"Cannot Start Vote"
{
"ko" "투표가 진행 중에 있습니다. {1}초 후 다시 시도합니다."
}
"Tie Vote"
{
"ko" "{1}개 맵이 같은 투표수를 얻었습니다.\n재투표를 합니다!"
}
"Custom Marked"
{
"ko" "*{1}"
}
}
@@ -0,0 +1,2 @@
Missing "Runoff Vote Nextmap", "Number Of Votes", "Custom", "Revote Is Needed", "Revote Warning", "Vote Warning",
"Line One", "Line Two", "Cannot Start Vote", and "Tie Vote"
@@ -0,0 +1,43 @@
"Phrases"
{
"Vote Nextmap"
{
"lv" "Balso par nākamo karti!"
}
"Nextmap Voting Started"
{
"lv" "Balsošana par nākamo karti ir sākusies."
}
"Nextmap Voting Finished"
{
"lv" "Balsošana par karti ir beigusies. Nākamā karte būs {1}. (Saņēma {2}%% no {3} balsīm) "
}
"Current Map Extended"
{
"lv" "Patreizējās kartes laiks ir pagarināts. (Saņēma {1}%% no {2} balsīm) "
}
"Extend Map"
{
"lv" "Pagarināt laiku patreizējā kartē"
}
"Dont Change"
{
"lv" "Nemainīt"
}
"Current Map Stays"
{
"lv" "Patreizējā karte turpinās! Aptauja ir beigusies! (Saņēma {1}%% no {2} balsīm)"
}
"Changed Next Map"
{
"lv" "Nomainīja nākamo karti uz \"{1}\"."
}
}
@@ -0,0 +1,189 @@
"Phrases"
{
"Vote Nextmap"
{
"en" "Vote for the next map!"
}
"Nextmap Voting Started"
{
"en" "Voting for next map has started."
}
"Nextmap Voting Finished"
{
"#format" "{1:s},{2:i},{3:i}"
"en" "Map voting has finished. The next map will be {1}. (Received {2}%% of {3} votes)"
}
"Current Map Extended"
{
"#format" "{1:i},{2:i}"
"en" "The current map has been extended. (Received {1}%% of {2} votes)"
}
"Extend Map"
{
"en" "Extend Current Map"
}
"Dont Change"
{
"en" "Don't Change"
}
"Current Map Stays"
{
"#format" "{1:i},{2:i}"
"en" "Current map continues! The Vote has spoken! (Received {1}%% of {2} votes)"
}
"Changed Next Map"
{
"#format" "{1:s}"
"en" "Changed nextmap to \"{1}\"."
}
"Runoff Vote Nextmap"
{
"en" "Runoff Vote for the next map!"
}
"Number Of Votes"
{
"en" "Number of votes"
}
"Custom"
{
"#format" "{1:s}"
"en" "{1} (Custom)"
}
"Revote Is Needed"
{
"#format" "{1:i}"
"en" "No map has received more than {1}%% of the vote.\nSo, which map will win? A revote is needed!"
}
"Revote Warning"
{
"#format" "{1:i}"
"en" "Runoff vote will start in: {1}s"
}
"Vote Warning"
{
"#format" "{1:i}"
"en" "Warning! Voting for the next map will begin in: {1}s"
}
"Line One"
{
"en" "Consider which map you want to play..."
}
"Line Two"
{
"en" "...and don't hit buttons thoughtlessly ;-)"
}
"Cannot Start Vote"
{
"#format" "{1:i}"
"en" "Vote already in progress. Retrying in {1}s."
}
"Tie Vote"
{
"#format" "{1:i}"
"en" "The top {1} maps had the same number of votes.\nA revote is needed!"
}
"Custom Marked"
{
"#format" "{1:s}"
"en" "*{1}"
}
"Map Cooldown Time Error"
{
"#format" "{1:d},{2:d}"
"en" "This map is on cooldown for the next {1} hours and {2} minutes."
}
"VIP Nomination"
{
"en" "VIP"
}
"Map Nominate VIP Error"
{
"en" "Only VIPs can nominate this map."
}
"Map Nominate Time Error"
{
"#format" "{1:d},{2:d}"
"en" "You can nominate this map in {1} hours and {2} minutes."
}
"Map Nominate MinPlayers Error"
{
"#format" "{1:d}"
"en" "Map requires {1} more players."
}
"Map Nominate MaxPlayers Error"
{
"#format" "{1:d}"
"en" "Map requires {1} less players."
}
"Map Nominate Group Error"
{
"#format" "{1:d}"
"en" "The maximum amount ({1}) of maps from this group has already been nominated."
}
"Map Time Restriction"
{
"#format" "{1:s},{2:d},{3:d}"
"en" "Time{1}{2}H{3}M"
}
"Map Player Restriction"
{
"#format" "{1:s},{2:d}"
"en" "Players{1}{2}"
}
"Map Group Restriction"
{
"#format" "{1:d}"
"en" "Group max: {1}"
}
"VIP Restriction"
{
"en" "VIP only"
}
"Nomination Removed Time Error"
{
"#format" "{1:s}"
"en" "Your nomination {1} has been removed because it doesn't meet the time requirements."
}
"Nomination Removed MinPlayers Error"
{
"#format" "{1:s}"
"en" "Your nomination {1} has been removed because it doesn't meet the minimum player requirements."
}
"Nomination Removed MaxPlayers Error"
{
"#format" "{1:s}"
"en" "Your nomination {1} has been removed because it exceeds the maximum player restriction."
}
}
@@ -0,0 +1,2 @@
Missing "Runoff Vote Nextmap", "Number Of Votes", "Custom", "Revote Is Needed", "Revote Warning", "Vote Warning",
"Line One", "Line Two", "Cannot Start Vote", and "Tie Vote"
@@ -0,0 +1,43 @@
"Phrases"
{
"Vote Nextmap"
{
"nl" "Stem voor de volgende map!"
}
"Nextmap Voting Started"
{
"nl" "Stemmen voor de volgende map is gestart."
}
"Nextmap Voting Finished"
{
"nl" "Map stemmen gestopt. De volgende map wordt {1}."
}
"Current Map Extended"
{
"nl" "De huidige map is verlengd."
}
"Extend Map"
{
"nl" "Verleng huidige map"
}
"Dont Change"
{
"nl" "Niet veranderen"
}
"Current Map Stays"
{
"nl" "Huidige map gaat verder! De Stem heeft gesproken! (Ontvangen {1}%% van de {2} stemmen)"
}
"Changed Next Map"
{
"nl" "Volgende map verandert naar \"{1}\"."
}
}
@@ -0,0 +1,2 @@
Missing "Runoff Vote Nextmap", "Number Of Votes", "Custom", "Revote Is Needed", "Revote Warning", "Vote Warning",
"Line One", "Line Two", "Cannot Start Vote", and "Tie Vote"
@@ -0,0 +1,43 @@
"Phrases"
{
"Vote Nextmap"
{
"no" "Stem for det neste kartet!"
}
"Nextmap Voting Started"
{
"no" "Avstemning for det neste kartet har startet."
}
"Nextmap Voting Finished"
{
"no" "Kart-avstemningen er avsluttet. Det neste kartet vil være {1}. (Mottok {2}%% av {3} stemmer)."
}
"Current Map Extended"
{
"no" "Gjeldende kart videreføres! (Mottok {1}%% av {2} stemmer)."
}
"Extend Map"
{
"no" "Forleng gjeldende kart."
}
"Dont Change"
{
"no" "Ikke bytt!"
}
"Current Map Stays"
{
"no" "Gjeldende kart videreføres! Avstemningen har talt! (Mottok {1}%% av {2} stemmer)."
}
"Changed Next Map"
{
"no" "Byttet neste kart til \"{1}\""
}
}
@@ -0,0 +1,92 @@
"Phrases"
{
"Vote Nextmap"
{
"pl" "Głosuj na następną mapę!"
}
"Nextmap Voting Started"
{
"pl" "Rozpoczęto głosowanie na następną mapę."
}
"Nextmap Voting Finished"
{
"pl" "Głosowanie na mapę zostało zakończone. Następną mapą będzie {1}. (Otrzymała {2} procent z {3} głosów) "
}
"Current Map Extended"
{
"pl" "Aktualna mapa została przedłużona. (Otrzymała {1} procent z {2} głosów)"
}
"Extend Map"
{
"pl" "Przedłuż bieżącą mapę"
}
"Dont Change"
{
"pl" "Nie Zmieniaj"
}
"Current Map Stays"
{
"pl" "Aktualna mapa będzie kontynuowana! (Otrzymano {1} procent z {2} głosów)"
}
"Changed Next Map"
{
"pl" "Zmieniono następną mapę na: \"{1}\"."
}
"Runoff Vote Nextmap"
{
"pl" "Wybierz ponownie!"
}
"Number Of Votes"
{
"pl" "Otrzymane głosy"
}
"Custom"
{
"pl" "{1} (Niestandardowa)"
}
"Revote Is Needed"
{
"pl" "Żadna mapa nie otrzymała przynajmniej {1}%% głosów.\nWięc która mapa jest zwycięzcą? Trzeba zagłosować ponownie!"
}
"Revote Warning"
{
"pl" "Ponowne głosowanie rozpocznie się za: {1}s\nTym razem się już zdecydujcie ;-)"
}
"Vote Warning"
{
"pl" "UWAGA!!! Głosowanie na następną mapę rozpocznie się za: {1}s"
}
"Line One"
{
"pl" "Zastanów się na której mapie chcesz grać..."
}
"Line Two"
{
"pl" "...wpisując !revote możesz zmienić swój głos."
}
"Cannot Start Vote"
{
"pl" "Głosowanie w toku. Ponawiam za {1}s."
}
"Tie Vote"
{
"pl" "{1} najlepsze mapy otrzymały tę samą ilość głosów.\nPotrzeba ponownego głosowania!"
}
}
@@ -0,0 +1,98 @@
"Phrases"
{
"Vote Nextmap"
{
"pt" "Vote para o próximo mapa!"
}
"Nextmap Voting Started"
{
"pt" "Votação para o próximo mapa começou."
}
"Nextmap Voting Finished"
{
"pt" "A votação para o próximo mapa terminou. O próximo mapa será {1}. (Recebidos {2}%% de {3} votos)"
}
"Current Map Extended"
{
"pt" "A mapa atual foi estendido. (Recebidos {1}%% de {2} votos)"
}
"Extend Map"
{
"pt" "Estender tempo do mapa atual"
}
"Dont Change"
{
"pt" "Não Mudar"
}
"Current Map Stays"
{
"pt" "O mapa atual continua! O Voto foi dado! (Recebidos {1}%% de {2} votos)"
}
"Changed Next Map"
{
"pt" "Mudado o próximo mapa para \"{1}\"."
}
"Runoff Vote Nextmap"
{
"pt" "Segundo turno de votos para o próximo mapa!"
}
"Number Of Votes"
{
"pt" "Número de votos"
}
"Custom"
{
"pt" "{1} (Custom)"
}
"Revote Is Needed"
{
"pt" "Nenhum mapa recebeu mais que {1}%% de votos.\nEntão, qual mapa ganhará? Precisa de uma nova votação!"
}
"Revote Warning"
{
"pt" "Segundo turno começa em: {1}s"
}
"Vote Warning"
{
"pt" "Atenção! Votação para o próximo mapa começará em: {1}s"
}
"Line One"
{
"pt" "Considere que mapa você quer jogar..."
}
"Line Two"
{
"pt" "...e não aperte os botões sem pensar ;-)"
}
"Cannot Start Vote"
{
"pt" "Votação em progresso. Tentando novamente em {1}s."
}
"Tie Vote"
{
"pt" "Os {1} mapas tiveram o mesmo número de votos.\nUma nova votação é necessária!"
}
"Custom Marked"
{
"pt" "*{1}"
}
}
@@ -0,0 +1 @@
Missing "Cannot Start Vote" and "Tie Vote"
@@ -0,0 +1,83 @@
"Phrases"
{
"Vote Nextmap"
{
"ru" "Голосование за следующую карту."
}
"Runoff Vote Nextmap"
{
"ru" "Повторное голосование за карту."
}
"Nextmap Voting Started"
{
"ru" "Голосование за следующую карту запущено."
}
"Nextmap Voting Finished"
{
"ru" "Голосование за карту завершено. Следующей картой будет: {1}. (Получено {2}%% из {3} голосов(а))"
}
"Current Map Extended"
{
"ru" "Текущая карта была продлена. (Получено {1}%% из {2} голосов(а))"
}
"Extend Map"
{
"ru" "Продлить текущую карту."
}
"Dont Change"
{
"ru" "Не менять карту."
}
"Current Map Stays"
{
"ru" "Текущая карта не сменится! (Получено {1}%% из {2} голосов(а))"
}
"Changed Next Map"
{
"ru" "Следующая карта изменена на \"{1}\"."
}
"Number Of Votes"
{
"ru" "Количество голосов"
}
"Custom"
{
"ru" "{1} (Случайная)"
}
"Revote Is Needed"
{
"ru" "Ни одна карта не получила более, чем {1}%% голосов(а).\nИтак, какая карта будет следующей? Приготовьтесь к повторному голосованию!"
}
"Revote Warning"
{
"ru" "Повторное голосование начнётся через: {1}s"
}
"Vote Warning"
{
"ru" "Внимание! Голосование за следующую карту начнётся через: {1}s"
}
"Line One"
{
"ru" "Выбери, какая карта будет следующей..."
}
"Line Two"
{
"ru" "...и не клацай кнопки,не подумав ;-)"
}
}
@@ -0,0 +1,2 @@
Missing "Runoff Vote Nextmap", "Number Of Votes", "Custom", "Revote Is Needed", "Revote Warning", "Vote Warning",
"Line One", "Line Two", "Cannot Start Vote", and "Tie Vote"
@@ -0,0 +1,43 @@
"Phrases"
{
"Vote Nextmap"
{
"sv" "Rösta för nästa bana!"
}
"Nextmap Voting Started"
{
"sv" "Röstning om nästa bana har börjat."
}
"Nextmap Voting Finished"
{
"sv" "Röstningen om banan har avslutats. Nästa bana kommer att bli {1}. (Fick {2}%% av {3} röster) "
}
"Current Map Extended"
{
"sv" "Den nuvarande banan har förlängts. (Fick {1}%% av {2} röster) "
}
"Extend Map"
{
"sv" "Förläng nuvarande bana"
}
"Dont Change"
{
"sv" "Byt inte"
}
"Current Map Stays"
{
"sv" "Nuvarande banan fortsätter! Röstningen har talat! (Fick {1}%% av {2} röster) "
}
"Changed Next Map"
{
"sv" "Bytta nästa bana till \"{1}\". "
}
}
@@ -0,0 +1,2 @@
Missing "Runoff Vote Nextmap", "Number Of Votes", "Custom", "Revote Is Needed", "Revote Warning", "Vote Warning",
"Line One", "Line Two", "Cannot Start Vote", and "Tie Vote"
@@ -0,0 +1,43 @@
"Phrases"
{
"Vote Nextmap"
{
"tr" "Sonraki harita için oy ver!"
}
"Nextmap Voting Started"
{
"tr" "Sonraki harita için oylama başladı."
}
"Nextmap Voting Finished"
{
"tr" "Harita oylaması sona erdi. Sıradaki harita {1} olacak. ({3} oyun %%{2}'i alındı) "
}
"Current Map Extended"
{
"tr" "Geçerli harita uzatıldı. ({2} oyun %%{1}'i alındı) "
}
"Extend Map"
{
"tr" "Geçerli Haritayı Uzat"
}
"Dont Change"
{
"tr" "Değiştirme"
}
"Current Map Stays"
{
"tr" "Geçerli harita devam ediyor! Oylama konuştu! ({2} oyun %%{1}'i alındı) "
}
"Changed Next Map"
{
"tr" "Sıradaki harita \"{1}\" olarak değiştirildi."
}
}