/// <summary> /// Сохранить данные телепорта в БД /// </summary> /// <param name="sid">StringID телепорта</param> /// <returns>True - если данные были обновлены</returns> public bool Save(string sid) { if (arr.ContainsKey(sid)) { ColShapeData data = arr[sid]; MySqlCommand cmd = new MySqlCommand { CommandText = "UPDATE `ColShapes` SET Fraction=@fr,Rank=@ra,FPosX=@fX,FPosY=@fY,FPosZ=@fZ,FPosDim=@fDim," + "TPosX=@tX,TPosY=@tY,TPosZ=@tZ,TPosDim=@tDim,Revers=@rev,ForVeh=@veh,Interact=@itr WHERE ID=@id LIMIT 1" }; cmd.Parameters.AddWithValue("@fr", data.Fraction); cmd.Parameters.AddWithValue("@ra", data.Rank); cmd.Parameters.AddWithValue("@fX", data.FromPos.X); cmd.Parameters.AddWithValue("@fY", data.FromPos.Y); cmd.Parameters.AddWithValue("@fZ", data.FromPos.Z); cmd.Parameters.AddWithValue("@fDim", data.FromDim); cmd.Parameters.AddWithValue("@tX", data.ToPos.X); cmd.Parameters.AddWithValue("@tY", data.ToPos.Y); cmd.Parameters.AddWithValue("@tZ", data.ToPos.Z); cmd.Parameters.AddWithValue("@tDim", data.ToDim); cmd.Parameters.AddWithValue("@rev", data.Revers); cmd.Parameters.AddWithValue("@veh", data.ForVeh); cmd.Parameters.AddWithValue("@itr", data.Interact); cmd.Parameters.AddWithValue("@id", data.SID); MySQL.Query(cmd); return(true); } return(false); }
/// <summary> /// Создать новую точку /// </summary> /// <param name="data">Данные точки</param> /// <returns>True - если точка была создана</returns> public bool Create(ColShapeData data) { if (!arr.ContainsKey(data.SID)) { MySqlCommand cmd = new MySqlCommand { CommandText = "INSERT INTO `test`.`colshapes`(`ID`,`Fraction`,`Rank`,`FPosX`,`FPosY`,`FPosZ`,`FPosDim`,`TPosX`,`TPosY`,`TPosZ`,`TPosDim`,`Revers`,`ForVeh`,`Interact`) " + "VALUES (@id,@fr,@ra,@fX,@fY,@fZ,@fDim,@tX,@tY,@tZ,@tDim,@rev,@veh,@itr);" }; cmd.Parameters.AddWithValue("@fr", data.Fraction); cmd.Parameters.AddWithValue("@ra", data.Rank); cmd.Parameters.AddWithValue("@fX", data.FromPos.X); cmd.Parameters.AddWithValue("@fY", data.FromPos.Y); cmd.Parameters.AddWithValue("@fZ", data.FromPos.Z); cmd.Parameters.AddWithValue("@fDim", data.FromDim); cmd.Parameters.AddWithValue("@tX", data.ToPos.X); cmd.Parameters.AddWithValue("@tY", data.ToPos.Y); cmd.Parameters.AddWithValue("@tZ", data.ToPos.Z); cmd.Parameters.AddWithValue("@tDim", data.ToDim); cmd.Parameters.AddWithValue("@rev", data.Revers); cmd.Parameters.AddWithValue("@veh", data.ForVeh); cmd.Parameters.AddWithValue("@itr", data.Interact); cmd.Parameters.AddWithValue("@id", data.SID); MySQL.Query(cmd); return(true); } return(false); }
private void LoadFromDB(DataRow row) { ColShapeData tp = new ColShapeData() { SID = Convert.ToString(row[0]), Fraction = Convert.ToByte(row[1]), Rank = Convert.ToByte(row[2]), FromPos = new Vector3((float)row[3], (float)row[4], (float)row[5]), FromDim = Convert.ToUInt32(row[6]), ToPos = new Vector3((float)row[7], (float)row[8], (float)row[9]), ToDim = Convert.ToUInt32(row[10]), Revers = Convert.ToBoolean(row[11]), ForVeh = Convert.ToBoolean(row[12]), Interact = Convert.ToBoolean(row[13]) }; tp.Tp[0] = NAPI.ColShape.CreateSphereColShape(tp.FromPos, 3f, tp.FromDim); if (tp.Revers) { tp.Tp[1] = NAPI.ColShape.CreateSphereColShape(tp.ToPos, 3f, tp.ToDim); } if (tp.Interact) { tp.Tp[0].OnEntityEnterColShape += (ColShape c, Client p) => { p.SetData("ColShapeInteract", tp.SID); }; tp.Tp[0].OnEntityExitColShape += (ColShape c, Client p) => { p.ResetData("ColShapeInteract"); }; } arr.Add(tp.SID, tp); }