- Pins menu added
This commit is contained in:
Dawid Bepierszcz
2024-10-19 02:05:15 +02:00
parent fa6dc952ff
commit ffd0623a52
18 changed files with 800 additions and 607 deletions

View File

@@ -1,12 +1,13 @@
using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Commands; using CounterStrikeSharp.API.Modules.Commands;
using CounterStrikeSharp.API.Modules.Menu; using CounterStrikeSharp.API.Modules.Menu;
using CounterStrikeSharp.API.Modules.Timers;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
namespace WeaponPaints namespace WeaponPaints;
public partial class WeaponPaints
{ {
public partial class WeaponPaints
{
private void OnCommandRefresh(CCSPlayerController? player, CommandInfo command) private void OnCommandRefresh(CCSPlayerController? player, CommandInfo command)
{ {
if (!Config.Additional.CommandWpEnabled || !Config.Additional.SkinEnabled || !_gBCommandsAllowed) return; if (!Config.Additional.CommandWpEnabled || !Config.Additional.SkinEnabled || !_gBCommandsAllowed) return;
@@ -88,6 +89,12 @@ namespace WeaponPaints
player!.Print(Localizer["wp_info_music"]); player!.Print(Localizer["wp_info_music"]);
} }
if (Config.Additional.PinsEnabled)
if (!string.IsNullOrEmpty(Localizer["wp_info_pin"]))
{
player!.Print(Localizer["wp_info_pin"]);
}
if (!Config.Additional.KnifeEnabled) return; if (!Config.Additional.KnifeEnabled) return;
if (!string.IsNullOrEmpty(Localizer["wp_info_knife"])) if (!string.IsNullOrEmpty(Localizer["wp_info_knife"]))
{ {
@@ -696,5 +703,126 @@ namespace WeaponPaints
}); });
}); });
} }
private void SetupPinsMenu()
{
var pinsSelectionMenu = MenuApi?.NewMenu(Localizer["wp_pins_menu_title"]);
if (pinsSelectionMenu == null) return;
pinsSelectionMenu.PostSelectAction = PostSelectAction.Close;
var handlePinsSelection = (CCSPlayerController? player, ChatMenuOption option) =>
{
if (!Utility.IsPlayerValid(player) || player is null) return;
var selectedPaintName = option.Text;
var selectedPin = PinsList.FirstOrDefault(g => g.ContainsKey("name") && g["name"]?.ToString() == selectedPaintName);
if (selectedPin != null)
{
if (!selectedPin.ContainsKey("id") ||
!selectedPin.ContainsKey("name") ||
!int.TryParse(selectedPin["id"]?.ToString(), out var paint)) return;
var image = selectedPin["image"]?.ToString() ?? "";
if (Config.Additional.ShowSkinImage)
{
_playerWeaponImage[player.Slot] = image;
AddTimer(2.0f, () => _playerWeaponImage.Remove(player.Slot), TimerFlags.STOP_ON_MAPCHANGE);
}
PlayerInfo playerInfo = new PlayerInfo
{
UserId = player.UserId,
Slot = player.Slot,
Index = (int)player.Index,
SteamId = player.SteamID.ToString(),
Name = player.PlayerName,
IpAddress = player.IpAddress?.Split(":")[0]
};
if (paint != 0)
{
GPlayersPin[player.Slot] = (ushort)paint;
}
else
{
GPlayersPin[player.Slot] = 0;
}
if (!string.IsNullOrEmpty(Localizer["wp_pins_menu_select"]))
{
player.Print(Localizer["wp_pins_menu_select", selectedPaintName]);
}
GivePlayerPin(player);
if (WeaponSync != null)
{
_ = Task.Run(async () =>
{
await WeaponSync.SyncPinToDatabase(playerInfo, (ushort)paint);
});
}
}
else
{
PlayerInfo playerInfo = new PlayerInfo
{
UserId = player.UserId,
Slot = player.Slot,
Index = (int)player.Index,
SteamId = player.SteamID.ToString(),
Name = player.PlayerName,
IpAddress = player.IpAddress?.Split(":")[0]
};
GPlayersPin[player.Slot] = 0;
if (!string.IsNullOrEmpty(Localizer["wp_pins_menu_select"]))
{
player.Print(Localizer["wp_pins_menu_select", Localizer["None"]]);
}
GivePlayerPin(player);
if (WeaponSync != null)
{
_ = Task.Run(async () =>
{
await WeaponSync.SyncPinToDatabase(playerInfo, 0);
});
}
}
};
pinsSelectionMenu.AddMenuOption(Localizer["None"], handlePinsSelection);
// Add weapon options to the weapon selection menu
foreach (var paintName in PinsList.Select(musicObject => musicObject["name"]?.ToString() ?? "").Where(paintName => paintName.Length > 0))
{
pinsSelectionMenu.AddMenuOption(paintName, handlePinsSelection);
}
// Command to open the weapon selection menu for players
_config.Additional.CommandPin.ForEach(c =>
{
AddCommand($"css_{c}", "Pin selection menu", (player, info) =>
{
if (!Utility.IsPlayerValid(player) || !_gBCommandsAllowed) return;
if (player == null || player.UserId == null) return;
if (!CommandsCooldown.TryGetValue(player.Slot, out var cooldownEndTime) ||
DateTime.UtcNow >= (CommandsCooldown.TryGetValue(player.Slot, out cooldownEndTime) ? cooldownEndTime : DateTime.UtcNow))
{
CommandsCooldown[player.Slot] = DateTime.UtcNow.AddSeconds(Config.CmdRefreshCooldownSeconds);
pinsSelectionMenu.Open(player);
return;
}
if (!string.IsNullOrEmpty(Localizer["wp_command_cooldown"]))
{
player.Print(Localizer["wp_command_cooldown"]);
}
});
});
} }
} }

View File

@@ -35,6 +35,9 @@ namespace WeaponPaints
[JsonPropertyName("CommandMusic")] [JsonPropertyName("CommandMusic")]
public List<string> CommandMusic { get; set; } = ["music"]; public List<string> CommandMusic { get; set; } = ["music"];
[JsonPropertyName("CommandPin")]
public List<string> CommandPin { get; set; } = ["pins"];
[JsonPropertyName("CommandGlove")] [JsonPropertyName("CommandGlove")]
public List<string> CommandGlove { get; set; } = ["gloves"]; public List<string> CommandGlove { get; set; } = ["gloves"];

View File

@@ -17,6 +17,8 @@ Unfinished, unoptimized and not fully functional ugly demo weapon paints plugin
- Added command **`!knife`** to show menu with knives - Added command **`!knife`** to show menu with knives
- Added command **`!gloves`** to show menu with gloves - Added command **`!gloves`** to show menu with gloves
- Added command **`!agents`** to show menu with agents - Added command **`!agents`** to show menu with agents
- Added command **`!pins`** to show menu with pins
- Added command **`!music`** to show menu with music
- Translations support, submit a PR if you want to share your translation - Translations support, submit a PR if you want to share your translation
## ⚙️ Requirements ## ⚙️ Requirements

View File

@@ -119,6 +119,20 @@ namespace WeaponPaints
} }
} }
internal static void LoadPinsFromFile(string filePath, ILogger logger)
{
var json = File.ReadAllText(filePath);
try
{
var deserializedPins = JsonConvert.DeserializeObject<List<JObject>>(json);
WeaponPaints.PinsList = deserializedPins ?? [];
}
catch (FileNotFoundException)
{
logger?.LogError("Not found \"pins.json\" file");
}
}
internal static void LoadGlovesFromFile(string filePath, ILogger logger) internal static void LoadGlovesFromFile(string filePath, ILogger logger)
{ {
try try

View File

@@ -1 +1 @@
2.7a 2.8a

View File

@@ -79,6 +79,7 @@ public partial class WeaponPaints
public static readonly ConcurrentDictionary<int, (string? CT, string? T)> GPlayersAgent = new(); public static readonly ConcurrentDictionary<int, (string? CT, string? T)> GPlayersAgent = new();
internal static readonly ConcurrentDictionary<int, ConcurrentDictionary<int, WeaponInfo>> GPlayerWeaponsInfo = new(); internal static readonly ConcurrentDictionary<int, ConcurrentDictionary<int, WeaponInfo>> GPlayerWeaponsInfo = new();
internal static List<JObject> SkinsList = []; internal static List<JObject> SkinsList = [];
internal static List<JObject> PinsList = [];
internal static List<JObject> GlovesList = []; internal static List<JObject> GlovesList = [];
internal static List<JObject> AgentsList = []; internal static List<JObject> AgentsList = [];
internal static List<JObject> MusicList = []; internal static List<JObject> MusicList = [];

View File

@@ -463,15 +463,11 @@ namespace WeaponPaints
private static void GivePlayerPin(CCSPlayerController player) private static void GivePlayerPin(CCSPlayerController player)
{ {
if (!GPlayersPin.TryGetValue(player.Slot, out var pin)) return; if (!GPlayersPin.TryGetValue(player.Slot, out var pin)) return;
if (player.InventoryServices == null) return; if (player.InventoryServices == null) return;
for (var index = 0; index < player.InventoryServices.Rank.Length; index++) player.InventoryServices.Rank[5] = pin > 0 ? (MedalRank_t)pin : MedalRank_t.MEDAL_RANK_NONE;
{
player.InventoryServices.Rank[index] = index == 5 ? (MedalRank_t)pin : MedalRank_t.MEDAL_RANK_NONE;
Utilities.SetStateChanged(player, "CCSPlayerController", "m_pInventoryServices"); Utilities.SetStateChanged(player, "CCSPlayerController", "m_pInventoryServices");
} }
}
private void GiveOnItemPickup(CCSPlayerController player) private void GiveOnItemPickup(CCSPlayerController player)
{ {

View File

@@ -16,7 +16,7 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig
public override string ModuleAuthor => "Nereziel & daffyy"; public override string ModuleAuthor => "Nereziel & daffyy";
public override string ModuleDescription => "Skin, gloves, agents and knife selector, standalone and web-based"; public override string ModuleDescription => "Skin, gloves, agents and knife selector, standalone and web-based";
public override string ModuleName => "WeaponPaints"; public override string ModuleName => "WeaponPaints";
public override string ModuleVersion => "2.7a"; public override string ModuleVersion => "2.8a";
public override void Load(bool hotReload) public override void Load(bool hotReload)
{ {
@@ -53,28 +53,15 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig
if (WeaponSync != null) await WeaponSync.GetPlayerData(playerInfo); if (WeaponSync != null) await WeaponSync.GetPlayerData(playerInfo);
}); });
} }
AddTimer(2.0f, () => OnAllPluginsLoaded(hotReload));
} }
Utility.LoadSkinsFromFile(ModuleDirectory + $"/data/skins_{_config.SkinsLanguage}.json", Logger); Utility.LoadSkinsFromFile(ModuleDirectory + $"/data/skins_{_config.SkinsLanguage}.json", Logger);
Utility.LoadGlovesFromFile(ModuleDirectory + $"/data/gloves_{_config.SkinsLanguage}.json", Logger); Utility.LoadGlovesFromFile(ModuleDirectory + $"/data/gloves_{_config.SkinsLanguage}.json", Logger);
Utility.LoadAgentsFromFile(ModuleDirectory + $"/data/agents_{_config.SkinsLanguage}.json", Logger); Utility.LoadAgentsFromFile(ModuleDirectory + $"/data/agents_{_config.SkinsLanguage}.json", Logger);
Utility.LoadMusicFromFile(ModuleDirectory + $"/data/music_{_config.SkinsLanguage}.json", Logger); Utility.LoadMusicFromFile(ModuleDirectory + $"/data/music_{_config.SkinsLanguage}.json", Logger);
Utility.LoadPinsFromFile(ModuleDirectory + $"/data/collectibles_{_config.SkinsLanguage}.json", Logger);
if (Config.Additional.KnifeEnabled)
SetupKnifeMenu();
if (Config.Additional.SkinEnabled)
SetupSkinsMenu();
if (Config.Additional.GloveEnabled)
SetupGlovesMenu();
if (Config.Additional.AgentEnabled)
SetupAgentsMenu();
if (Config.Additional.MusicEnabled)
SetupMusicMenu();
RegisterListeners(); RegisterListeners();
RegisterCommands();
} }
public void OnConfigParsed(WeaponPaintsConfig config) public void OnConfigParsed(WeaponPaintsConfig config)
@@ -122,6 +109,21 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig
try try
{ {
MenuApi = MenuCapability.Get(); MenuApi = MenuCapability.Get();
if (Config.Additional.KnifeEnabled)
SetupKnifeMenu();
if (Config.Additional.SkinEnabled)
SetupSkinsMenu();
if (Config.Additional.GloveEnabled)
SetupGlovesMenu();
if (Config.Additional.AgentEnabled)
SetupAgentsMenu();
if (Config.Additional.MusicEnabled)
SetupMusicMenu();
if (Config.Additional.PinsEnabled)
SetupPinsMenu();
RegisterCommands();
} }
catch (Exception) catch (Exception)
{ {

View File

@@ -131,6 +131,8 @@ namespace WeaponPaints
float weaponWear = row?.weapon_wear ?? 0f; float weaponWear = row?.weapon_wear ?? 0f;
int weaponSeed = row?.weapon_seed ?? 0; int weaponSeed = row?.weapon_seed ?? 0;
string weaponNameTag = row?.weapon_nametag ?? ""; string weaponNameTag = row?.weapon_nametag ?? "";
bool weaponStatTrak = row?.weapon_stattrak ?? false;
int weaponStatTrakCount = row?.weapon_stattrak_count ?? 0;
string[]? keyChainParts = row?.weapon_keychain?.ToString().Split(';'); string[]? keyChainParts = row?.weapon_keychain?.ToString().Split(';');
@@ -167,7 +169,9 @@ namespace WeaponPaints
Seed = weaponSeed, Seed = weaponSeed,
Wear = weaponWear, Wear = weaponWear,
Nametag = weaponNameTag, Nametag = weaponNameTag,
KeyChain = keyChainInfo KeyChain = keyChainInfo,
StatTrak = weaponStatTrak,
StatTrakCount = weaponStatTrakCount,
}; };
// Retrieve and parse sticker data (up to 5 slots) // Retrieve and parse sticker data (up to 5 slots)
@@ -373,6 +377,22 @@ namespace WeaponPaints
} }
} }
internal async Task SyncPinToDatabase(PlayerInfo player, ushort pin)
{
if (!_config.Additional.PinsEnabled || string.IsNullOrEmpty(player.SteamId)) return;
try
{
await using var connection = await _database.GetConnectionAsync();
const string query = "INSERT INTO `wp_player_pins` (`steamid`, `id`) VALUES(@steamid, @newPin) ON DUPLICATE KEY UPDATE `id` = @newPin";
await connection.ExecuteAsync(query, new { steamid = player.SteamId, newPin = pin });
}
catch (Exception e)
{
Utility.Log($"Error syncing pin to database: {e.Message}");
}
}
internal async Task SyncStatTrakToDatabase(PlayerInfo player, ConcurrentDictionary<int,WeaponInfo> weaponInfos) internal async Task SyncStatTrakToDatabase(PlayerInfo player, ConcurrentDictionary<int,WeaponInfo> weaponInfos)
{ {
if (WeaponPaints.WeaponSync == null || weaponInfos.IsEmpty) return; if (WeaponPaints.WeaponSync == null || weaponInfos.IsEmpty) return;

View File

@@ -6,6 +6,7 @@
"wp_info_glove": "Type {lime}!gloves{default} to open gloves menu", "wp_info_glove": "Type {lime}!gloves{default} to open gloves menu",
"wp_info_agent": "Type {lime}!agents{default} to open agents menu", "wp_info_agent": "Type {lime}!agents{default} to open agents menu",
"wp_info_music": "Type {lime}!music{default} to open music menu", "wp_info_music": "Type {lime}!music{default} to open music menu",
"wp_info_pin": "Type {lime}!pins{default} to open pins menu",
"wp_command_cooldown": "{lightred}You can't refresh weapon paints right now", "wp_command_cooldown": "{lightred}You can't refresh weapon paints right now",
"wp_command_refresh_done": "{lime}Refreshing weapon paints", "wp_command_refresh_done": "{lime}Refreshing weapon paints",
"wp_knife_menu_select": "You have chosen {lime}{0}{default} as your knife", "wp_knife_menu_select": "You have chosen {lime}{0}{default} as your knife",
@@ -17,6 +18,8 @@
"wp_agent_menu_title": "Agents Menu", "wp_agent_menu_title": "Agents Menu",
"wp_music_menu_title": "Music Menu", "wp_music_menu_title": "Music Menu",
"wp_music_menu_select": "You have chosen {lime}{0}{default} as your music kit", "wp_music_menu_select": "You have chosen {lime}{0}{default} as your music kit",
"wp_pins_menu_title": "Pins Menu",
"wp_pins_menu_select": "You have chosen {lime}{0}{default} as your pin",
"wp_skin_menu_weapon_title": "Weapon Menu", "wp_skin_menu_weapon_title": "Weapon Menu",
"wp_skin_menu_skin_title": "Select skin for {lime}{0}{default}", "wp_skin_menu_skin_title": "Select skin for {lime}{0}{default}",
"wp_skin_menu_select": "You have chosen {lime}{0}{default} as your skin", "wp_skin_menu_select": "You have chosen {lime}{0}{default} as your skin",

View File

@@ -6,6 +6,7 @@
"wp_info_glove": "Ievadiet {lime}!gloves{default}, lai atvērtu cimdi izvēlni", "wp_info_glove": "Ievadiet {lime}!gloves{default}, lai atvērtu cimdi izvēlni",
"wp_info_agent": "Ievadiet {lime}!agents{default}, lai atvērtu aģentu izvēlni", "wp_info_agent": "Ievadiet {lime}!agents{default}, lai atvērtu aģentu izvēlni",
"wp_info_music": "Ievadiet {lime}!music{default}, lai atvērtu mūzikas izvēlni", "wp_info_music": "Ievadiet {lime}!music{default}, lai atvērtu mūzikas izvēlni",
"wp_info_pin": "Ierakstiet {lime}!pins{default}, lai atvērtu piespraudes izvēlni",
"wp_command_cooldown": "{lightred}Šobrīd nevarat atsvaidzināt ieroča krāsas", "wp_command_cooldown": "{lightred}Šobrīd nevarat atsvaidzināt ieroča krāsas",
"wp_command_refresh_done": "{lime}Atsvaidzinot ieroča krāsas", "wp_command_refresh_done": "{lime}Atsvaidzinot ieroča krāsas",
"wp_knife_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu nazi", "wp_knife_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu nazi",
@@ -17,6 +18,8 @@
"wp_agent_menu_title": "Aģentu Izvēlne", "wp_agent_menu_title": "Aģentu Izvēlne",
"wp_music_menu_title": "Mūzikas Izvēlne", "wp_music_menu_title": "Mūzikas Izvēlne",
"wp_music_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu mūzikas komplektu", "wp_music_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu mūzikas komplektu",
"wp_pins_menu_title": "Piespraužu izvēlne",
"wp_pins_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu piespraudi",
"wp_skin_menu_weapon_title": "Ieroču Izvēlne", "wp_skin_menu_weapon_title": "Ieroču Izvēlne",
"wp_skin_menu_skin_title": "Izvēlieties ādu priekš {lime}{0}{default}", "wp_skin_menu_skin_title": "Izvēlieties ādu priekš {lime}{0}{default}",
"wp_skin_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu ādu", "wp_skin_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu ādu",

View File

@@ -6,6 +6,7 @@
"wp_info_glove": "Wpisz {lime}!gloves{default}, aby otworzyć menu rękawic", "wp_info_glove": "Wpisz {lime}!gloves{default}, aby otworzyć menu rękawic",
"wp_info_agent": "Wpisz {lime}!agents{default}, aby otworzyć menu agentów", "wp_info_agent": "Wpisz {lime}!agents{default}, aby otworzyć menu agentów",
"wp_info_music": "Wpisz {lime}!music{default}, aby otworzyć menu muzyczne", "wp_info_music": "Wpisz {lime}!music{default}, aby otworzyć menu muzyczne",
"wp_info_pin": "Wpisz {lime}!pins{default}, aby otworzyć menu pinów",
"wp_command_cooldown": "{lightred}Nie możesz teraz odświeżyć kolorów broni", "wp_command_cooldown": "{lightred}Nie możesz teraz odświeżyć kolorów broni",
"wp_command_refresh_done": "{lime}Odświeżanie kolorów broni", "wp_command_refresh_done": "{lime}Odświeżanie kolorów broni",
"wp_knife_menu_select": "Wybrałeś {lime}{0}{default} jako swój nóż", "wp_knife_menu_select": "Wybrałeś {lime}{0}{default} jako swój nóż",
@@ -17,6 +18,8 @@
"wp_agent_menu_title": "Menu Agentów", "wp_agent_menu_title": "Menu Agentów",
"wp_music_menu_title": "Menu Muzyczne", "wp_music_menu_title": "Menu Muzyczne",
"wp_music_menu_select": "Wybrałeś {lime}{0}{default} jako swój zestaw muzyczny", "wp_music_menu_select": "Wybrałeś {lime}{0}{default} jako swój zestaw muzyczny",
"wp_pins_menu_title": "Menu Pinów",
"wp_pins_menu_select": "Wybrałeś {lime}{0}{default} jako swój pin",
"wp_skin_menu_weapon_title": "Menu Broni", "wp_skin_menu_weapon_title": "Menu Broni",
"wp_skin_menu_skin_title": "Wybierz skórkę dla {lime}{0}{default}", "wp_skin_menu_skin_title": "Wybierz skórkę dla {lime}{0}{default}",
"wp_skin_menu_select": "Wybrałeś {lime}{0}{default} jako swoją skórkę", "wp_skin_menu_select": "Wybrałeś {lime}{0}{default} jako swoją skórkę",

View File

@@ -6,6 +6,7 @@
"wp_info_glove": "Digite {lime}!gloves{default} para abrir o menu de luvas", "wp_info_glove": "Digite {lime}!gloves{default} para abrir o menu de luvas",
"wp_info_agent": "Digite {lime}!agents{default} para abrir o menu de agentes", "wp_info_agent": "Digite {lime}!agents{default} para abrir o menu de agentes",
"wp_info_music": "Digite {lime}!music{default} para abrir o menu de música", "wp_info_music": "Digite {lime}!music{default} para abrir o menu de música",
"wp_info_pin": "Digite {lime}!pins{default} para abrir o menu de pins",
"wp_command_cooldown": "{lightred}Você não pode atualizar as skins de armas agora", "wp_command_cooldown": "{lightred}Você não pode atualizar as skins de armas agora",
"wp_command_refresh_done": "{lime}Atualizando as skins de armas", "wp_command_refresh_done": "{lime}Atualizando as skins de armas",
"wp_knife_menu_select": "Você escolheu {lime}{0}{default} como sua faca", "wp_knife_menu_select": "Você escolheu {lime}{0}{default} como sua faca",
@@ -17,6 +18,8 @@
"wp_agent_menu_title": "Menu de Agentes", "wp_agent_menu_title": "Menu de Agentes",
"wp_music_menu_title": "Menu de Música", "wp_music_menu_title": "Menu de Música",
"wp_music_menu_select": "Você escolheu {lime}{0}{default} como seu kit de música", "wp_music_menu_select": "Você escolheu {lime}{0}{default} como seu kit de música",
"wp_pins_menu_title": "Menu de Pins",
"wp_pins_menu_select": "Escolheu {lime}{0}{default} como o seu pin",
"wp_skin_menu_weapon_title": "Menu de Armas", "wp_skin_menu_weapon_title": "Menu de Armas",
"wp_skin_menu_skin_title": "Selecione a skin para {lime}{0}{default}", "wp_skin_menu_skin_title": "Selecione a skin para {lime}{0}{default}",
"wp_skin_menu_select": "Você escolheu {lime}{0}{default} como sua skin", "wp_skin_menu_select": "Você escolheu {lime}{0}{default} como sua skin",

View File

@@ -6,6 +6,7 @@
"wp_info_glove": "Digite {lime}!gloves{default} para abrir o menu de luvas", "wp_info_glove": "Digite {lime}!gloves{default} para abrir o menu de luvas",
"wp_info_agent": "Digite {lime}!agents{default} para abrir o menu de agentes", "wp_info_agent": "Digite {lime}!agents{default} para abrir o menu de agentes",
"wp_info_music": "Digite {lime}!music{default} para abrir o menu de música", "wp_info_music": "Digite {lime}!music{default} para abrir o menu de música",
"wp_info_pin": "Escreva {lime}!pins{default} para abrir o menu de pins",
"wp_command_cooldown": "{lightred}Não pode atualizar as skins de armas de momento", "wp_command_cooldown": "{lightred}Não pode atualizar as skins de armas de momento",
"wp_command_refresh_done": "{lime}Atualizando as skins de armas", "wp_command_refresh_done": "{lime}Atualizando as skins de armas",
"wp_knife_menu_select": "Escolheu {lime}{0}{default} como a sua faca", "wp_knife_menu_select": "Escolheu {lime}{0}{default} como a sua faca",
@@ -17,6 +18,8 @@
"wp_agent_menu_title": "Menu de Agentes", "wp_agent_menu_title": "Menu de Agentes",
"wp_music_menu_title": "Menu de Música", "wp_music_menu_title": "Menu de Música",
"wp_music_menu_select": "Escolheu {lime}{0}{default} como o seu kit de música", "wp_music_menu_select": "Escolheu {lime}{0}{default} como o seu kit de música",
"wp_pins_menu_title": "Menu de Pins",
"wp_pins_menu_select": "Escolheu {lime}{0}{default} como o seu pin",
"wp_skin_menu_weapon_title": "Menu de Armas", "wp_skin_menu_weapon_title": "Menu de Armas",
"wp_skin_menu_skin_title": "Selecione a skin para {lime}{0}{default}", "wp_skin_menu_skin_title": "Selecione a skin para {lime}{0}{default}",
"wp_skin_menu_select": "Escolheu {lime}{0}{default} como a sua skin", "wp_skin_menu_select": "Escolheu {lime}{0}{default} como a sua skin",

View File

@@ -6,6 +6,7 @@
"wp_info_glove": "Введите {lime}!gloves{default}, чтобы открыть меню перчаток", "wp_info_glove": "Введите {lime}!gloves{default}, чтобы открыть меню перчаток",
"wp_info_agent": "Введите {lime}!agents{default}, чтобы открыть меню агентов", "wp_info_agent": "Введите {lime}!agents{default}, чтобы открыть меню агентов",
"wp_info_music": "Введите {lime}!music{default}, чтобы открыть меню музыки", "wp_info_music": "Введите {lime}!music{default}, чтобы открыть меню музыки",
"wp_info_pin": "Введите {lime}!pins{default}, чтобы открыть меню пинов",
"wp_command_cooldown": "{lightred}Вы не можете обновить раскраску оружия сейчас", "wp_command_cooldown": "{lightred}Вы не можете обновить раскраску оружия сейчас",
"wp_command_refresh_done": "{lime}Обновление раскраски оружия", "wp_command_refresh_done": "{lime}Обновление раскраски оружия",
"wp_knife_menu_select": "Вы выбрали {lime}{0}{default} в качестве вашего ножа", "wp_knife_menu_select": "Вы выбрали {lime}{0}{default} в качестве вашего ножа",
@@ -17,6 +18,8 @@
"wp_agent_menu_title": "Меню Агентов", "wp_agent_menu_title": "Меню Агентов",
"wp_music_menu_title": "Меню Музыки", "wp_music_menu_title": "Меню Музыки",
"wp_music_menu_select": "Вы выбрали {lime}{0}{default} в качестве вашего музыкального набора", "wp_music_menu_select": "Вы выбрали {lime}{0}{default} в качестве вашего музыкального набора",
"wp_pins_menu_title": "Меню пинов",
"wp_pins_menu_select": "Вы выбрали {lime}{0}{default} в качестве своего пина",
"wp_skin_menu_weapon_title": "Меню Оружия", "wp_skin_menu_weapon_title": "Меню Оружия",
"wp_skin_menu_skin_title": "Выберите скин для {lime}{0}{default}", "wp_skin_menu_skin_title": "Выберите скин для {lime}{0}{default}",
"wp_skin_menu_select": "Вы выбрали {lime}{0}{default} в качестве вашего скина", "wp_skin_menu_select": "Вы выбрали {lime}{0}{default} в качестве вашего скина",

View File

@@ -6,6 +6,7 @@
"wp_info_glove": "Handskar menüsünü açmak için {lime}!gloves{default} yazın", "wp_info_glove": "Handskar menüsünü açmak için {lime}!gloves{default} yazın",
"wp_info_agent": "Ajan menüsünü açmak için {lime}!agents{default} yazın", "wp_info_agent": "Ajan menüsünü açmak için {lime}!agents{default} yazın",
"wp_info_music": "Müzik menüsünü açmak için {lime}!music{default} yazın", "wp_info_music": "Müzik menüsünü açmak için {lime}!music{default} yazın",
"wp_info_pin": "{lime}!pins{default} yazarak pinler menüsünü açın",
"wp_command_cooldown": "{lightred}Şu anda silah boyalarını yenileyemezsiniz", "wp_command_cooldown": "{lightred}Şu anda silah boyalarını yenileyemezsiniz",
"wp_command_refresh_done": "{lime}Silah boyaları yenileniyor", "wp_command_refresh_done": "{lime}Silah boyaları yenileniyor",
"wp_knife_menu_select": "{lime}{0}{default} olarak bıçağınızı seçtiniz", "wp_knife_menu_select": "{lime}{0}{default} olarak bıçağınızı seçtiniz",
@@ -17,6 +18,8 @@
"wp_agent_menu_title": "Ajanlar Menüsü", "wp_agent_menu_title": "Ajanlar Menüsü",
"wp_music_menu_title": "Müzik Menüsü", "wp_music_menu_title": "Müzik Menüsü",
"wp_music_menu_select": "{lime}{0}{default} olarak müzik setinizi seçtiniz", "wp_music_menu_select": "{lime}{0}{default} olarak müzik setinizi seçtiniz",
"wp_pins_menu_title": "Pinler Menüsü",
"wp_pins_menu_select": "{lime}{0}{default} pinini seçtiniz",
"wp_skin_menu_weapon_title": "Silah Menüsü", "wp_skin_menu_weapon_title": "Silah Menüsü",
"wp_skin_menu_skin_title": "{lime}{0}{default} için cilt seçin", "wp_skin_menu_skin_title": "{lime}{0}{default} için cilt seçin",
"wp_skin_menu_select": "{lime}{0}{default} olarak cildinizi seçtiniz", "wp_skin_menu_select": "{lime}{0}{default} olarak cildinizi seçtiniz",

View File

@@ -6,6 +6,7 @@
"wp_info_glove": "Введіть {lime}!gloves{default}, щоб відкрити меню рукавичок", "wp_info_glove": "Введіть {lime}!gloves{default}, щоб відкрити меню рукавичок",
"wp_info_agent": "Введіть {lime}!agents{default}, щоб відкрити меню агентів", "wp_info_agent": "Введіть {lime}!agents{default}, щоб відкрити меню агентів",
"wp_info_music": "Введіть {lime}!music{default}, щоб відкрити меню музики", "wp_info_music": "Введіть {lime}!music{default}, щоб відкрити меню музики",
"wp_info_pin": "Введіть {lime}!pins{default}, щоб відкрити меню пінів",
"wp_command_cooldown": "{lightred}Ви не можете оновити фарби зброї зараз", "wp_command_cooldown": "{lightred}Ви не можете оновити фарби зброї зараз",
"wp_command_refresh_done": "{lime}Оновлення фарби зброї", "wp_command_refresh_done": "{lime}Оновлення фарби зброї",
"wp_knife_menu_select": "Ви обрали {lime}{0}{default} як свій ніж", "wp_knife_menu_select": "Ви обрали {lime}{0}{default} як свій ніж",
@@ -17,6 +18,8 @@
"wp_agent_menu_title": "Меню Агентів", "wp_agent_menu_title": "Меню Агентів",
"wp_music_menu_title": "Меню Музики", "wp_music_menu_title": "Меню Музики",
"wp_music_menu_select": "Ви обрали {lime}{0}{default} як свій набір музики", "wp_music_menu_select": "Ви обрали {lime}{0}{default} як свій набір музики",
"wp_pins_menu_title": "Меню пінів",
"wp_pins_menu_select": "Ви вибрали {lime}{0}{default} як свій пін",
"wp_skin_menu_weapon_title": "Меню Зброї", "wp_skin_menu_weapon_title": "Меню Зброї",
"wp_skin_menu_skin_title": "Виберіть шкіру для {lime}{0}{default}", "wp_skin_menu_skin_title": "Виберіть шкіру для {lime}{0}{default}",
"wp_skin_menu_select": "Ви обрали {lime}{0}{default} як свою шкіру", "wp_skin_menu_select": "Ви обрали {lime}{0}{default} як свою шкіру",

View File

@@ -6,6 +6,7 @@
"wp_info_glove": "输入 {lime}!gloves{default} 打开手套菜单", "wp_info_glove": "输入 {lime}!gloves{default} 打开手套菜单",
"wp_info_agent": "输入 {lime}!agents{default} 打开代理菜单", "wp_info_agent": "输入 {lime}!agents{default} 打开代理菜单",
"wp_info_music": "输入 {lime}!music{default} 打开音乐菜单", "wp_info_music": "输入 {lime}!music{default} 打开音乐菜单",
"wp_info_pin": "输入 {lime}!pins{default} 来打开固定项菜单",
"wp_command_cooldown": "{lightred}您现在无法刷新武器涂装", "wp_command_cooldown": "{lightred}您现在无法刷新武器涂装",
"wp_command_refresh_done": "{lime}正在刷新武器涂装", "wp_command_refresh_done": "{lime}正在刷新武器涂装",
"wp_knife_menu_select": "您选择了 {lime}{0}{default} 作为您的刀具", "wp_knife_menu_select": "您选择了 {lime}{0}{default} 作为您的刀具",
@@ -17,6 +18,8 @@
"wp_agent_menu_title": "代理菜单", "wp_agent_menu_title": "代理菜单",
"wp_music_menu_title": "音乐菜单", "wp_music_menu_title": "音乐菜单",
"wp_music_menu_select": "您选择了 {lime}{0}{default} 作为您的音乐包", "wp_music_menu_select": "您选择了 {lime}{0}{default} 作为您的音乐包",
"wp_pins_menu_title": "固定项菜单",
"wp_pins_menu_select": "您已选择 {lime}{0}{default} 作为您的固定项",
"wp_skin_menu_weapon_title": "武器菜单", "wp_skin_menu_weapon_title": "武器菜单",
"wp_skin_menu_skin_title": "选择 {lime}{0}{default} 的皮肤", "wp_skin_menu_skin_title": "选择 {lime}{0}{default} 的皮肤",
"wp_skin_menu_select": "您选择了 {lime}{0}{default} 作为您的皮肤", "wp_skin_menu_select": "您选择了 {lime}{0}{default} 作为您的皮肤",