
1.编写留言系统 (1.当玩家无Catch的时候,记录长按Y的时间,若时间大于两秒,呼唤UI,触发相应事件 *.编写撰写留言板逻辑 (*.清空操作地图 (1.呼出留言板UI (2.当按下确认键,确认建立一个本地留言板,并初始化该本地留言板,恢复操作地图 (3.将留言板数据传向云端 *.编写留言板逻辑 (1.内含BoardInfo内的信息 (2.继承于可交互物体 (3.当交互,呼出留言板UI,显示内容、UID等信息 (4.当按下返回键,关闭UI *.编写拉取留言板系统 (1.加在开幕演出中,开幕时呼叫sql上的脚本,拉取若干条留言板 (2.在场景内创建留言板,并初始化信息 *.替换和实装美术素材,增加部分动画 1.增加村内上树动画 2.更新村场景,使得玩家可以走到村下 3.制作以撒闪电攻击动画 4.制作以撒冲撞攻击动画 5.制作以撒雕像碎裂动画 6.贴上对话框 7.制作以撒闪电攻击动画 8.制作村民和贵族的待机角色 9.制作特洛伊木马死亡动画 10.制作特洛伊木马的喷射动画 *优化和修复 1.修复佛教前置关掉怪陷阱有时不会触发的问题 2.重做渲染层,避免出现覆盖问题 3.修复玩家会卡在村里桥上的问题 4.解决了屎山代码的warming问题 5.删除了子弹时间,效果太差 建议: 1.给击中添加一些效果,目前还是打击感太弱 2.目前木马死后,灰尘不会消失 *.至此,留言系统全部完成 下班
246 lines
7.5 KiB
C#
246 lines
7.5 KiB
C#
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>
|
||
public List<BoardInfo> GetBoardInfo(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();
|
||
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()
|
||
{
|
||
//
|
||
if(FindObjectsOfType<PlayerInfo>().Length > 1)
|
||
Destroy(gameObject);
|
||
DontDestroyOnLoad(gameObject);
|
||
BoardInfos = new List<BoardInfo>();
|
||
//
|
||
LinkInfo = "server="+dataScriptableObject.IP+";" +
|
||
"port="+dataScriptableObject.Port+";" +
|
||
"database="+dataScriptableObject.Database+";" +
|
||
"user="+dataScriptableObject.User+";" +
|
||
"password="+dataScriptableObject.Password+";" +
|
||
"charset="+dataScriptableObject.Charset;
|
||
|
||
}
|
||
|
||
}
|