Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

修复: 多个文件编码修复为utf-8 #85

Merged
merged 1 commit into from
May 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions CriticalHit/Config.cs
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
using Newtonsoft.Json;
锘縰sing Newtonsoft.Json;

namespace CriticalHit;
public class Config
{
[JsonProperty("总开关")]
[JsonProperty("鎬诲紑鍏�")]
public bool Enable = true;
[JsonProperty("仅暴击显示")]
[JsonProperty("浠呮毚鍑绘樉绀�")]
public bool NoCritMessages = true;

// 使用JsonConverter
// 浣跨敤JsonConverter
[JsonConverter(typeof(WeaponTypeDictionaryConverter))]
[JsonProperty("消息分类")]
[JsonProperty("娑堟伅鍒嗙被")]
public Dictionary<WeaponType, CritMessage> CritMessages { get; set; } = new Dictionary<WeaponType, CritMessage>();

public void Write(string path)
Expand Down Expand Up @@ -44,7 +44,7 @@ public void Read(Stream stream)
this.CopyFrom(deserializedConfig);
}

// 添加一个新的 CopyFrom 方法来复制属性值
// 娣诲姞涓�涓柊鐨� CopyFrom 鏂规硶鏉ュ鍒跺睘鎬у��
public void CopyFrom(Config sourceConfig)
{
this.Enable = sourceConfig.Enable;
Expand Down
4 changes: 2 additions & 2 deletions CriticalHit/CritMessage.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
using Newtonsoft.Json;
锘縰sing Newtonsoft.Json;

namespace CriticalHit;

public class CritMessage
{
[JsonProperty("详细消息设置")]
[JsonProperty("璇︾粏娑堟伅璁剧疆")]
public Dictionary<string, int[]> Messages = new Dictionary<string, int[]>();
}
10 changes: 5 additions & 5 deletions CriticalHit/WeaponType.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Newtonsoft.Json;
锘縰sing Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace CriticalHit;
Expand All @@ -14,10 +14,10 @@ public class WeaponTypeDictionaryConverter : JsonConverter
{
private static readonly Dictionary<WeaponType, string> DisplayNames = new Dictionary<WeaponType, string>
{
{ WeaponType.Melee, "近战" },
{ WeaponType.Ranged, "远程" },
{ WeaponType.Magic, "魔法" },
{ WeaponType.Explosive, "爆炸" },
{ WeaponType.Melee, "杩戞垬" },
{ WeaponType.Ranged, "杩滅▼" },
{ WeaponType.Magic, "榄旀硶" },
{ WeaponType.Explosive, "鐖嗙偢" },
};

public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
Expand Down
4 changes: 2 additions & 2 deletions PvPer/DBManager/DPlayer.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace PvPer
锘縩amespace PvPer
{
public class DPlayer
{
Expand All @@ -9,7 +9,7 @@ public class DPlayer
public int RatingDeviation { get; set; }
public int RatingVolatility { get; set; }

public int WinStreak { get; set; } // 添加WinStreak属性
public int WinStreak { get; set; } // 娣诲姞WinStreak灞炴��

public DPlayer(int accountID, int kills = 0, int deaths = 0, int winStreak = 0)
{
Expand Down
10 changes: 5 additions & 5 deletions PvPer/DBManager/DbManager.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using MySql.Data.MySqlClient;
锘縰sing MySql.Data.MySqlClient;
using System.Data;
using TShockAPI.DB;

Expand All @@ -18,7 +18,7 @@ public DbManager(IDbConnection db)
new SqlColumn("AccountID", MySqlDbType.Int32) { Primary = true, Unique = true },
new SqlColumn("Kills", MySqlDbType.Int32),
new SqlColumn("Deaths", MySqlDbType.Int32),
new SqlColumn("WinStreak", MySqlDbType.Int32) // 添加WinStreak列
new SqlColumn("WinStreak", MySqlDbType.Int32) // 娣诲姞WinStreak鍒�
));
}

Expand Down Expand Up @@ -48,15 +48,15 @@ public List<DPlayer> GetAllDPlayers()
using var reader = _db.QueryReader("SELECT * FROM Players");
while (reader.Read())
{
list.Add(new DPlayer(reader.Get<int>("AccountID"), reader.Get<int>("Kills"), reader.Get<int>("Deaths"), reader.Get<int>("WinStreak"))); // 添加WinStreak参数
list.Add(new DPlayer(reader.Get<int>("AccountID"), reader.Get<int>("Kills"), reader.Get<int>("Deaths"), reader.Get<int>("WinStreak"))); // 娣诲姞WinStreak鍙傛暟
}
return list;
}

// 清空玩家数据表中的所有记录(羽学加)
// 娓呯┖鐜╁鏁版嵁琛ㄤ腑鐨勬墍鏈夎褰曪紙缇藉鍔狅級
public static bool ClearData()
{
// 删除Players表中的所有记录
// 鍒犻櫎Players琛ㄤ腑鐨勬墍鏈夎褰�
return _db.Query("DELETE FROM Players") != 0;
}
}
Expand Down
56 changes: 28 additions & 28 deletions PvPer/Tool/Pair.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Microsoft.Xna.Framework;
锘縰sing Microsoft.Xna.Framework;
using Terraria;
using Terraria.ID;
using TShockAPI;
Expand Down Expand Up @@ -42,24 +42,24 @@ public void StartDuel()
{
if (!plr1.Active || !plr2.Active)
{
plr1.SendErrorMessage("决斗已被取消,因为其中一名参与者不在线。");
plr2.SendErrorMessage("决斗已被取消,因为其中一名参与者不在线。");
plr1.SendErrorMessage("鍐虫枟宸茶鍙栨秷锛屽洜涓哄叾涓竴鍚嶅弬涓庤�呬笉鍦ㄧ嚎銆�");
plr2.SendErrorMessage("鍐虫枟宸茶鍙栨秷锛屽洜涓哄叾涓竴鍚嶅弬涓庤�呬笉鍦ㄧ嚎銆�");
PvPer.Invitations.Remove(this);
return;
}

if (plr1.Dead || plr2.Dead)
{
plr1.SendErrorMessage("决斗已被取消,因为其中一名参与者已经死亡。");
plr2.SendErrorMessage("决斗已被取消,因为其中一名参与者已经死亡。");
plr1.SendErrorMessage("鍐虫枟宸茶鍙栨秷锛屽洜涓哄叾涓竴鍚嶅弬涓庤�呭凡缁忔浜°��");
plr2.SendErrorMessage("鍐虫枟宸茶鍙栨秷锛屽洜涓哄叾涓竴鍚嶅弬涓庤�呭凡缁忔浜°��");
PvPer.Invitations.Remove(this);
return;
}

if (Utils.IsPlayerInADuel(plr1.Index) || Utils.IsPlayerInADuel(plr2.Index))
{
plr1.SendErrorMessage("决斗已被取消,因为其中一名参与者已处于另一场决斗中。");
plr2.SendErrorMessage("决斗已被取消,因为其中一名参与者已处于另一场决斗中。");
plr1.SendErrorMessage("鍐虫枟宸茶鍙栨秷锛屽洜涓哄叾涓竴鍚嶅弬涓庤�呭凡澶勪簬鍙︿竴鍦哄喅鏂椾腑銆�");
plr2.SendErrorMessage("鍐虫枟宸茶鍙栨秷锛屽洜涓哄叾涓竴鍚嶅弬涓庤�呭凡澶勪簬鍙︿竴鍦哄喅鏂椾腑銆�");
PvPer.Invitations.Remove(this);
return;
}
Expand All @@ -70,10 +70,10 @@ public void StartDuel()
return;
}

plr1.SendSuccessMessage($"决斗开始!");
plr2.SendSuccessMessage($"决斗开始!");
plr1.SendSuccessMessage($"鍐虫枟寮�濮嬶紒");
plr2.SendSuccessMessage($"鍐虫枟寮�濮嬶紒");

// 传送玩家和设置BUFF
// 浼犻�佺帺瀹跺拰璁剧疆BUFF
plr1.Teleport(PvPer.Config.Player1PositionX * 16, PvPer.Config.Player1PositionY * 16);
plr2.Teleport(PvPer.Config.Player2PositionX * 16, PvPer.Config.Player2PositionY * 16);

Expand All @@ -89,19 +89,19 @@ public void StartDuel()
plr1.SendData(PacketTypes.PlayerDodge, number: plr1.Index, number2: 6);
plr2.SendData(PacketTypes.PlayerDodge, number: plr1.Index, number2: 6);

// 将这对决斗者移入活跃决斗列表
// 灏嗚繖瀵瑰喅鏂楄�呯Щ鍏ユ椿璺冨喅鏂楀垪琛�
PvPer.Invitations.Remove(this);
PvPer.ActiveDuels.Add(this);

// 计时倒数并为每位玩家设置PvP模式
// 璁℃椂鍊掓暟骞朵负姣忎綅鐜╁璁剧疆PvP妯″紡
Task.Run(async () =>
{
NetMessage.SendData((int)PacketTypes.CreateCombatTextExtended, Player1, -1,
Terraria.Localization.NetworkText.FromLiteral("决斗即将开始..."), (int)new Color(0, 255, 0).PackedValue,
Terraria.Localization.NetworkText.FromLiteral("鍐虫枟鍗冲皢寮�濮�..."), (int)new Color(0, 255, 0).PackedValue,
plr1.X + 16, plr1.Y - 16);

NetMessage.SendData((int)PacketTypes.CreateCombatTextExtended, Player2, -1,
Terraria.Localization.NetworkText.FromLiteral("决斗即将开始..."), (int)new Color(0, 255, 0).PackedValue,
Terraria.Localization.NetworkText.FromLiteral("鍐虫枟鍗冲皢寮�濮�..."), (int)new Color(0, 255, 0).PackedValue,
plr2.X + 16, plr2.Y - 16);

for (int i = 5; i > 0; i--)
Expand All @@ -119,11 +119,11 @@ public void StartDuel()
await Task.Delay(1000);

NetMessage.SendData((int)PacketTypes.CreateCombatTextExtended, Player1, -1,
Terraria.Localization.NetworkText.FromLiteral("开战!!"), (int)new Color(255, 0, 0).PackedValue,
Terraria.Localization.NetworkText.FromLiteral("寮�鎴�!!"), (int)new Color(255, 0, 0).PackedValue,
plr1.X + 16, plr1.Y - 16);

NetMessage.SendData((int)PacketTypes.CreateCombatTextExtended, Player2, -1,
Terraria.Localization.NetworkText.FromLiteral("开战!!"), (int)new Color(255, 0, 0).PackedValue,
Terraria.Localization.NetworkText.FromLiteral("寮�鎴�!!"), (int)new Color(255, 0, 0).PackedValue,
plr2.X + 16, plr2.Y - 16);

plr1.TPlayer.hostile = true;
Expand All @@ -135,7 +135,7 @@ public void StartDuel()
});
}

// 结束决斗后的方法
// 缁撴潫鍐虫枟鍚庣殑鏂规硶
public void EndDuel(int winner)
{
int loser = winner == Player1 ? Player2 : Player1;
Expand All @@ -146,33 +146,33 @@ public void EndDuel(int winner)
TShock.Players[winner].SetPvP(false);
TShock.Players[loser].SetPvP(false);

// 保存赢家数据并计算连胜次数
// 淇濆瓨璧㈠鏁版嵁骞惰绠楄繛鑳滄鏁�
SavePlayersData(winner);
// 重置输家的连胜次数为0
// 閲嶇疆杈撳鐨勮繛鑳滄鏁颁负0
ResetLoserWinStreak(loser);
// 更新赢家连胜次数
// 鏇存柊璧㈠杩炶儨娆℃暟
DPlayer winnerData = PvPer.DbManager.GetDPlayer(TShock.Players[winner].Account.ID);
winnerData.WinStreak++; // 增加赢家连胜次数
PvPer.DbManager.SavePlayer(winnerData); // 保存更新后的赢家数据
winnerData.WinStreak++; // 澧炲姞璧㈠杩炶儨娆℃暟
PvPer.DbManager.SavePlayer(winnerData); // 淇濆瓨鏇存柊鍚庣殑璧㈠鏁版嵁

int winStreak = winnerData.WinStreak;// 直接使用更新后的赢家连胜次数
TSPlayer.All.SendMessage($"{TShock.Players[winner].Name} 已经连胜 {winStreak} 场决斗!", 255, 255, 90);
int winStreak = winnerData.WinStreak;// 鐩存帴浣跨敤鏇存柊鍚庣殑璧㈠杩炶儨娆℃暟
TSPlayer.All.SendMessage($"{TShock.Players[winner].Name} 宸茬粡杩炶儨 {winStreak} 鍦哄喅鏂�!", 255, 255, 90);

int p = Projectile.NewProjectile(Projectile.GetNoneSource(), TShock.Players[winner].TPlayer.position.X + 16,
TShock.Players[winner].TPlayer.position.Y - 64f, 0f, -8f, ProjectileID.RocketFireworkGreen, 0, 0);
Main.projectile[p].Kill();

}

// 重置输家的连胜次数为0
// 閲嶇疆杈撳鐨勮繛鑳滄鏁颁负0
private void ResetLoserWinStreak(int loser)
{
DPlayer playerData = PvPer.DbManager.GetDPlayer(TShock.Players[loser].Account.ID);
playerData.WinStreak = 0; // WinStreak的属性存储玩家连胜次数
PvPer.DbManager.SavePlayer(playerData); // 保存更新后的输家数据
playerData.WinStreak = 0; // WinStreak鐨勫睘鎬у瓨鍌ㄧ帺瀹惰繛鑳滄鏁�
PvPer.DbManager.SavePlayer(playerData); // 淇濆瓨鏇存柊鍚庣殑杈撳鏁版嵁
}

//存储玩家胜负值数据
//瀛樺偍鐜╁鑳滆礋鍊兼暟鎹�
public void SavePlayersData(int winnerIndex)
{
DPlayer plr1, plr2;
Expand Down
2 changes: 1 addition & 1 deletion PvPer/Tool/Utils.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using TShockAPI;
锘縰sing TShockAPI;



Expand Down
Loading