mirror of
https://github.com/Nereziel/cs2-WeaponPaints.git
synced 2026-02-17 18:39:07 +00:00
2.8a
- Pins menu added
This commit is contained in:
134
Commands.cs
134
Commands.cs
@@ -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"]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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"];
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
14
Utility.cs
14
Utility.cs
@@ -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
|
||||||
|
|||||||
@@ -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 = [];
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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ę",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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} в качестве вашего скина",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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} як свою шкіру",
|
||||||
|
|||||||
@@ -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} 作为您的皮肤",
|
||||||
|
|||||||
Reference in New Issue
Block a user