Compare commits

..

8 Commits

Author SHA1 Message Date
xiaodo
9f12d5a81f Merge c5e219b445 into 3929a43e46 2024-10-23 20:21:41 +03:00
xiaodoxd
c5e219b445 Fix 2024-03-17 20:31:55 +08:00
xiaodoxd
5c75616060 Fix 2024-03-10 04:17:41 +08:00
xiaodoxd
3ddf8f23ac Fix 2024-03-10 04:16:12 +08:00
xiaodoxd
7d185825ff Fix 2024-03-10 04:14:41 +08:00
xiaodoxd
48acbd3fa8 Fix 2024-03-10 04:13:51 +08:00
xiaodoxd
6842861f55 Fix 2024-03-10 04:12:44 +08:00
xiaodoxd
53cadcff40 zh-cn.json Locallyized. 2024-03-10 04:08:25 +08:00
7 changed files with 59 additions and 61 deletions

View File

@@ -181,7 +181,7 @@ public partial class WeaponPaints
.Where(pair => pair.Key.StartsWith("weapon_knife") || pair.Key.StartsWith("weapon_bayonet"))
.ToDictionary(pair => pair.Key, pair => pair.Value);
var giveItemMenu = Utility.CreateMenu(Localizer["wp_knife_menu_title"]);
var giveItemMenu = MenuApi?.NewMenu(Localizer["wp_knife_menu_title"]);
var handleGive = (CCSPlayerController player, ChatMenuOption option) =>
{
@@ -265,7 +265,7 @@ public partial class WeaponPaints
.Except([new KeyValuePair<string, string>("weapon_knife", "Default Knife")])
.ToDictionary(kvp => kvp.Value, kvp => kvp.Key);
var weaponSelectionMenu = Utility.CreateMenu(Localizer["wp_skin_menu_weapon_title"]);
var weaponSelectionMenu = MenuApi?.NewMenu(Localizer["wp_skin_menu_weapon_title"]);
// Function to handle skin selection for a specific weapon
var handleWeaponSelection = (CCSPlayerController? player, ChatMenuOption option) =>
@@ -280,7 +280,7 @@ public partial class WeaponPaints
weaponName?.ToString() == selectedWeaponClassname
)?.ToList();
var skinSubMenu = Utility.CreateMenu(Localizer["wp_skin_menu_skin_title", selectedWeapon]);
var skinSubMenu = MenuApi?.NewMenu(Localizer["wp_skin_menu_skin_title", selectedWeapon]);
// Function to handle skin selection for the chosen weapon
var handleSkinSelection = (CCSPlayerController p, ChatMenuOption opt) =>
@@ -416,7 +416,7 @@ public partial class WeaponPaints
private void SetupGlovesMenu()
{
var glovesSelectionMenu = Utility.CreateMenu(Localizer["wp_glove_menu_title"]);
var glovesSelectionMenu = MenuApi?.NewMenu(Localizer["wp_glove_menu_title"]);
if (glovesSelectionMenu == null) return;
glovesSelectionMenu.PostSelectAction = PostSelectAction.Close;
@@ -625,7 +625,7 @@ public partial class WeaponPaints
if (!CommandsCooldown.TryGetValue(player.Slot, out DateTime cooldownEndTime) ||
DateTime.UtcNow >= (CommandsCooldown.TryGetValue(player.Slot, out cooldownEndTime) ? cooldownEndTime : DateTime.UtcNow))
{
var agentsSelectionMenu = Utility.CreateMenu(Localizer["wp_agent_menu_title"]);
var agentsSelectionMenu = MenuApi?.NewMenu(Localizer["wp_agent_menu_title"]);
if (agentsSelectionMenu == null) return;
agentsSelectionMenu.PostSelectAction = PostSelectAction.Close;
@@ -665,7 +665,7 @@ public partial class WeaponPaints
private void SetupMusicMenu()
{
var musicSelectionMenu = Utility.CreateMenu(Localizer["wp_music_menu_title"]);
var musicSelectionMenu = MenuApi?.NewMenu(Localizer["wp_music_menu_title"]);
if (musicSelectionMenu == null) return;
musicSelectionMenu.PostSelectAction = PostSelectAction.Close;
@@ -800,7 +800,7 @@ public partial class WeaponPaints
private void SetupPinsMenu()
{
var pinsSelectionMenu = Utility.CreateMenu(Localizer["wp_pins_menu_title"]);
var pinsSelectionMenu = MenuApi?.NewMenu(Localizer["wp_pins_menu_title"]);
if (pinsSelectionMenu == null) return;
pinsSelectionMenu.PostSelectAction = PostSelectAction.Close;

View File

@@ -99,8 +99,5 @@ namespace WeaponPaints
[JsonPropertyName("Additional")]
public Additional Additional { get; set; } = new();
[JsonPropertyName("MenuType")]
public string MenuType { get; set; } = "selectable";
}
}

View File

@@ -1,8 +1,6 @@
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Core.Translations;
using CounterStrikeSharp.API.Modules.Menu;
using Dapper;
using MenuManager;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
@@ -190,32 +188,10 @@ namespace WeaponPaints
Console.WriteLine("[WeaponPaints] " + message);
Console.ResetColor();
}
internal static IMenu? CreateMenu(string title)
internal static string ReplaceTags(string message)
{
var menuType = WeaponPaints.Instance.Config.MenuType.ToLower();
var menu = menuType switch
{
_ when menuType.Equals("selectable", StringComparison.CurrentCultureIgnoreCase) =>
WeaponPaints.MenuApi?.NewMenu(title),
_ when menuType.Equals("dynamic", StringComparison.CurrentCultureIgnoreCase) =>
WeaponPaints.MenuApi?.NewMenuForcetype(title, MenuType.ButtonMenu),
_ when menuType.Equals("center", StringComparison.CurrentCultureIgnoreCase) =>
WeaponPaints.MenuApi?.NewMenuForcetype(title, MenuType.CenterMenu),
_ when menuType.Equals("chat", StringComparison.CurrentCultureIgnoreCase) =>
WeaponPaints.MenuApi?.NewMenuForcetype(title, MenuType.ChatMenu),
_ when menuType.Equals("console", StringComparison.CurrentCultureIgnoreCase) =>
WeaponPaints.MenuApi?.NewMenuForcetype(title, MenuType.ConsoleMenu),
_ => WeaponPaints.MenuApi?.NewMenu(title)
};
return menu;
return message.ReplaceColorTags();
}
internal static async Task CheckVersion(string version, ILogger logger)

View File

@@ -1 +1 @@
3.1b
3.0c

View File

@@ -20,10 +20,8 @@ namespace WeaponPaints
bool isKnife = weapon.DesignerName.Contains("knife") || weapon.DesignerName.Contains("bayonet");
if (isKnife && (!GPlayersKnife.ContainsKey(player.Slot) ||
!GPlayersKnife[player.Slot].ContainsKey(player.Team) ||
GPlayersKnife[player.Slot][player.Team] == "weapon_knife"))
return;
if (isKnife && !GPlayersKnife.ContainsKey(player.Slot) ||
isKnife && GPlayersKnife[player.Slot][player.Team] == "weapon_knife") return;
if (isKnife)
{
@@ -54,9 +52,7 @@ namespace WeaponPaints
bool isLegacyModel;
if (_config.Additional.GiveRandomSkin &&
GPlayerWeaponsInfo.ContainsKey(player.Slot) &&
(!GPlayerWeaponsInfo[player.Slot].ContainsKey(player.Team) ||
!GPlayerWeaponsInfo[player.Slot][player.Team].ContainsKey(weaponDefIndex)))
!GPlayerWeaponsInfo[player.Slot][player.Team].ContainsKey(weaponDefIndex))
{
// Random skins
weapon.FallbackPaintKit = GetRandomPaint(weaponDefIndex);
@@ -107,7 +103,14 @@ namespace WeaponPaints
weapon.AttributeManager.Item.CustomName = weaponInfo.Nametag;
weapon.FallbackPaintKit = weaponInfo.Paint;
weapon.FallbackSeed = weaponInfo is { Paint: 38, Seed: 0 } ? _fadeSeed++ : weaponInfo.Seed;
if (weaponInfo is { Paint: 38, Seed: 0 })
{
weapon.FallbackSeed = _fadeSeed++;
}
else
{
weapon.FallbackSeed = weaponInfo.Seed;
}
weapon.FallbackWear = weaponInfo.Wear;
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle, "set item texture prefab", weapon.FallbackPaintKit);
@@ -183,13 +186,15 @@ namespace WeaponPaints
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
$"sticker slot {stickerSlot} id", ViewAsFloat(sticker.Id));
if (sticker.OffsetX != 0 || sticker.OffsetY != 0)
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
$"sticker slot {stickerSlot} schema", 0);
// CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
// $"sticker slot {stickerSlot} schema", stickerSlot);
// if (stickerSlot == 5)
// {
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
$"sticker slot {stickerSlot} offset x", sticker.OffsetX);
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
$"sticker slot {stickerSlot} offset y", sticker.OffsetY);
// }
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
$"sticker slot {stickerSlot} wear", sticker.Wear);
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
@@ -212,11 +217,8 @@ namespace WeaponPaints
int weaponDefIndex = weapon.AttributeManager.Item.ItemDefinitionIndex;
if (!GPlayerWeaponsInfo.TryGetValue(player.Slot, out var playerWeaponsInfo) ||
!playerWeaponsInfo.TryGetValue(player.Team, out var teamWeaponsInfo) ||
!teamWeaponsInfo.TryGetValue(weaponDefIndex, out var value) ||
value.KeyChain == null)
return;
!playerWeaponsInfo[player.Team].TryGetValue(weaponDefIndex, out var value) ||
value.KeyChain == null) return;
var keyChain = value.KeyChain;
CAttributeListSetOrAddAttributeValueByName.Invoke(weapon.AttributeManager.Item.NetworkedDynamicAttributes.Handle,
@@ -404,12 +406,9 @@ namespace WeaponPaints
return;
if (!GPlayersGlove.TryGetValue(player.Slot, out var gloveInfo) ||
!gloveInfo.TryGetValue(player.Team, out var gloveId) ||
gloveId == 0 ||
!GPlayerWeaponsInfo.TryGetValue(player.Slot, out var playerWeaponsInfo) ||
!playerWeaponsInfo.TryGetValue(player.Team, out var teamWeaponsInfo) ||
!teamWeaponsInfo.TryGetValue(gloveId, out var weaponInfo))
return;
!gloveInfo.TryGetValue(player.Team, out var gloveId) || gloveId == 0) return;
WeaponInfo weaponInfo = GPlayerWeaponsInfo[player.Slot][player.Team][gloveId];
item.ItemDefinitionIndex = gloveId;
item.ItemIDLow = 16384 & 0xFFFFFFFF;
@@ -543,6 +542,7 @@ namespace WeaponPaints
var weapon = handle.Value;
if (weapon == null || !weapon.IsValid) continue;
if (myWeapons.Count == 1)
{
var newWeapon = new CBasePlayerWeapon(player.GiveNamedItem(CsItem.USP));

View File

@@ -17,7 +17,7 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig
public override string ModuleAuthor => "Nereziel & daffyy";
public override string ModuleDescription => "Skin, gloves, agents and knife selector, standalone and web-based";
public override string ModuleName => "WeaponPaints";
public override string ModuleVersion => "3.1b";
public override string ModuleVersion => "3.0c";
public override void Load(bool hotReload)
{

25
lang/zh-Hans.json Normal file
View File

@@ -0,0 +1,25 @@
{
"wp_prefix": "{lightblue}[WeaponPaints] {default}",
"wp_info_website": "您可以在浏览器访问 {lime}{0}{default} 来更改您的饰品",
"wp_info_refresh": "输入 {lime}!wp{default} 来刷新武器皮肤",
"wp_info_knife": "输入 {lime}!knife{default} 来打开选刀菜单",
"wp_info_glove": "输入 {lime}!gloves{default} 来打开手套菜单",
"wp_info_agent": "输入 {lime}!agents{default} 来打开探员菜单",
"wp_info_music": "输入 {lime}!music{default} 来打开音乐盒菜单",
"wp_command_cooldown": "{lightred}饰品刷新冷却中!请稍后再试!",
"wp_command_refresh_done": "{lime}饰品已刷新",
"wp_knife_menu_select": "您的刀已更改为 {lime}{0}{default}",
"wp_knife_menu_kill": "",
"wp_knife_menu_title": "选刀菜单",
"wp_glove_menu_select": "您的手套已更改为 {lime}{0}{default}",
"wp_glove_menu_title": "手套菜单",
"wp_agent_menu_select": "您的探员已更改为 {lime}{0}{default}",
"wp_agent_menu_title": "探员菜单",
"wp_music_menu_title": "音乐盒菜单",
"wp_music_menu_select": "您的音乐盒已更改为 {lime}{0}{default}",
"wp_skin_menu_weapon_title": "武器菜单",
"wp_skin_menu_skin_title": "为 {lime}{0}{default} 更换皮肤",
"wp_skin_menu_select": "皮肤已更换为 {lime}{0}{default} ",
"None": "无"
}