2021-12-22 10:01:30 +08:00
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Threading;
|
|
|
|
|
using MySql.Data.MySqlClient;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class PlayerInfo : MonoBehaviour
|
|
|
|
|
{
|
|
|
|
|
public DataScriptableObject dataScriptableObject; //服务器信息,赋值后请勿再动
|
|
|
|
|
|
|
|
|
|
public string uName; //用户昵称
|
|
|
|
|
public int uid; //玩家uid
|
|
|
|
|
public int rate; //玩家进度
|
|
|
|
|
public List<BoardInfo> BoardInfos; //公告板信息链表
|
|
|
|
|
public List<DeadInfo> DeadInfos;//死亡信息链表
|
|
|
|
|
|
|
|
|
|
private string LinkInfo;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 将类里储存的信息上传到数据库
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void UpdatePlayerInfo()
|
|
|
|
|
{
|
|
|
|
|
MySqlConnection con = new MySqlConnection(LinkInfo);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
con.Open();
|
|
|
|
|
Debug.Log("连接成功");
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
e.ToString();//解决Warming
|
|
|
|
|
Debug.Log("连接失败");
|
|
|
|
|
}
|
|
|
|
|
MySqlCommand cmd = new MySqlCommand("UPDATE 用户表 SET 进度 = "+rate+", 最后登录 = CURRENT_TIME() WHERE uid = "+uid, con);
|
|
|
|
|
MySqlDataReader reader = cmd.ExecuteReader();
|
|
|
|
|
reader.Read();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建一条留言信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void CreateBoard(int WorldId, Vector2 postion,string text)
|
|
|
|
|
{
|
|
|
|
|
MySqlConnection con = new MySqlConnection(LinkInfo);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
con.Open();
|
|
|
|
|
Debug.Log("连接成功");
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
e.ToString();//解决Warming
|
|
|
|
|
Debug.Log("连接失败");
|
|
|
|
|
}
|
|
|
|
|
MySqlCommand cmd = new MySqlCommand("INSERT INTO `religion`.`留言表` (`wid`, `uid`, `世界编号`, `坐标x`, `坐标y`, `正文`) VALUES (NULL, "+uid+", "+WorldId+", "+postion.x+", "+postion.y+", '"+text+"')", con);
|
|
|
|
|
MySqlDataReader reader = cmd.ExecuteReader();
|
|
|
|
|
reader.Read();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 创建一条死亡信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void CreateDead(int WorldId, Vector2 postion)
|
|
|
|
|
{
|
|
|
|
|
MySqlConnection con = new MySqlConnection(LinkInfo);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
con.Open();
|
|
|
|
|
Debug.Log("连接成功");
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
e.ToString();//解决Warming
|
|
|
|
|
Debug.Log("连接失败");
|
|
|
|
|
}
|
|
|
|
|
MySqlCommand cmd = new MySqlCommand("INSERT INTO 死亡表 (`did`, `uid`, `世界编号`, `坐标x`, `坐标y`) VALUES (NULL, "+uid+", "+WorldId+", "+postion.x+", "+postion.y+")", con);
|
|
|
|
|
MySqlDataReader reader = cmd.ExecuteReader();
|
|
|
|
|
reader.Read();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取指定世界的死亡信息链表。
|
|
|
|
|
/// </summary>
|
|
|
|
|
public List<DeadInfo> GetDeadInfo(int WorldId)
|
|
|
|
|
{
|
|
|
|
|
MySqlConnection con = new MySqlConnection(LinkInfo);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
con.Open();
|
|
|
|
|
Debug.Log("连接成功");
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
e.ToString();//解决Warming
|
|
|
|
|
Debug.Log("连接失败");
|
|
|
|
|
}
|
|
|
|
|
MySqlCommand cmd = new MySqlCommand("SELECT * FROM 死亡表 NATURAL JOIN 用户表 WHERE 世界编号 = "+WorldId, con);
|
|
|
|
|
MySqlDataReader reader = cmd.ExecuteReader();
|
|
|
|
|
DeadInfos.Clear();
|
|
|
|
|
while (reader.Read())
|
|
|
|
|
{
|
|
|
|
|
DeadInfo deadInfos = new DeadInfo();
|
|
|
|
|
|
|
|
|
|
deadInfos.uid = reader.GetInt32("uid");
|
|
|
|
|
deadInfos.id = reader.GetInt32("did");
|
|
|
|
|
deadInfos.postion = new Vector2(reader.GetFloat("坐标x"),reader.GetFloat("坐标y"));
|
|
|
|
|
DeadInfos.Add(deadInfos);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return DeadInfos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取指定世界的留言板链表。
|
|
|
|
|
/// </summary>
|
2021-12-25 00:37:29 +08:00
|
|
|
|
public List<BoardInfo> GetBoardInfo(int WorldId)
|
2021-12-22 10:01:30 +08:00
|
|
|
|
{
|
|
|
|
|
MySqlConnection con = new MySqlConnection(LinkInfo);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
con.Open();
|
|
|
|
|
Debug.Log("连接成功");
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
e.ToString();//解决Warming
|
|
|
|
|
Debug.Log("连接失败");
|
|
|
|
|
}
|
|
|
|
|
MySqlCommand cmd = new MySqlCommand("SELECT * FROM 留言表 NATURAL JOIN 用户表 WHERE 世界编号 = "+WorldId, con);
|
|
|
|
|
MySqlDataReader reader = cmd.ExecuteReader();
|
|
|
|
|
BoardInfos.Clear();
|
|
|
|
|
while (reader.Read())
|
|
|
|
|
{
|
|
|
|
|
BoardInfo boardInfos = new BoardInfo();
|
|
|
|
|
boardInfos.text = reader.GetString("正文");
|
|
|
|
|
boardInfos.uid = reader.GetInt32("uid");
|
|
|
|
|
boardInfos.id = reader.GetInt32("wid");
|
|
|
|
|
boardInfos.postion = new Vector2(reader.GetFloat("坐标x"),reader.GetFloat("坐标y"));
|
|
|
|
|
BoardInfos.Add(boardInfos);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return BoardInfos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 判断是否存在这个用户
|
|
|
|
|
/// </summary>
|
|
|
|
|
public bool hasName(string _searchName)
|
|
|
|
|
{
|
|
|
|
|
MySqlConnection con = new MySqlConnection(LinkInfo);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
con.Open();
|
|
|
|
|
Debug.Log("连接成功");
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
e.ToString();//解决Warming
|
|
|
|
|
Debug.Log("连接失败");
|
|
|
|
|
}
|
|
|
|
|
MySqlCommand cmd = new MySqlCommand("SELECT * FROM 用户表 WHERE 昵称='"+_searchName+"'", con);
|
|
|
|
|
MySqlDataReader reader = cmd.ExecuteReader();
|
|
|
|
|
return reader.HasRows;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 在用户表内创建一个用户
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void CreateUser(string username)
|
|
|
|
|
{
|
|
|
|
|
MySqlConnection con = new MySqlConnection(LinkInfo);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
con.Open();
|
|
|
|
|
Debug.Log("连接成功");
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
e.ToString();//解决Warming
|
|
|
|
|
Debug.Log("连接失败");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MySqlCommand cmd = new MySqlCommand("INSERT INTO 用户表 (`uid`, `昵称`, `血量`, `进度`, `注册时间`, `最后登录`) VALUES (NULL, '"+username+"', 0, 0, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)", con);
|
|
|
|
|
MySqlDataReader reader = cmd.ExecuteReader();
|
|
|
|
|
reader.Read();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 使用多线程获取用户信息,使用前请先设置公关变量name
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void GetSqlData()
|
|
|
|
|
{
|
|
|
|
|
Thread thread = new Thread(ThreadGetSqlData);
|
|
|
|
|
thread.Start();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ThreadGetSqlData()
|
|
|
|
|
{
|
|
|
|
|
MySqlConnection con = new MySqlConnection(LinkInfo);
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
con.Open();
|
|
|
|
|
Debug.Log("连接成功");
|
|
|
|
|
}
|
|
|
|
|
catch (MySqlException e)
|
|
|
|
|
{
|
|
|
|
|
e.ToString();//解决Warming
|
|
|
|
|
Debug.Log("连接失败");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MySqlCommand cmd = new MySqlCommand("SELECT * FROM 用户表 WHERE 昵称='"+uName+"'", con);
|
|
|
|
|
MySqlDataReader reader = cmd.ExecuteReader();
|
|
|
|
|
reader.Read();
|
|
|
|
|
|
|
|
|
|
uid = reader.GetInt32("uid");
|
|
|
|
|
rate = reader.GetInt32("进度");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ThreadUpdatePlayerInfo()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
void Start()
|
|
|
|
|
{
|
2021-12-23 18:22:59 +08:00
|
|
|
|
//
|
|
|
|
|
if(FindObjectsOfType<PlayerInfo>().Length > 1)
|
|
|
|
|
Destroy(gameObject);
|
|
|
|
|
DontDestroyOnLoad(gameObject);
|
2021-12-25 00:37:29 +08:00
|
|
|
|
BoardInfos = new List<BoardInfo>();
|
2021-12-25 18:27:29 +08:00
|
|
|
|
DeadInfos = new List<DeadInfo>();
|
2021-12-23 18:22:59 +08:00
|
|
|
|
//
|
2021-12-22 10:01:30 +08:00
|
|
|
|
LinkInfo = "server="+dataScriptableObject.IP+";" +
|
|
|
|
|
"port="+dataScriptableObject.Port+";" +
|
|
|
|
|
"database="+dataScriptableObject.Database+";" +
|
|
|
|
|
"user="+dataScriptableObject.User+";" +
|
|
|
|
|
"password="+dataScriptableObject.Password+";" +
|
|
|
|
|
"charset="+dataScriptableObject.Charset;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|