public TankInfo(Vector3 _position, Vector3 _eularAngles, Vector3 _turretEularAngles, int _health, float _protection, int [] _partHealth, float[] _partProtection, TankOrder _order) : base(_position, _eularAngles) { PartHealth = _partHealth; PartProtection = _partProtection; TurretEularAngles = _eularAngles; Health = _health; tankOrder = _order; _partHealth.CopyTo(PartHealth, 0); _partProtection.CopyTo(PartProtection, 0); }
// 是否存在有效操作 private bool CanRecOpera(ZF.TankOrder _order) { // 是否在前进/转弯/开火 if (_order.move != 0 || _order.steer != 0 || _order.shoot != 0) { return(true); } // 是否准心发生了移动 if (Math.Abs(_order.direction.x) > 0.1f || Math.Abs(_order.direction.y) > 0.1f || Math.Abs(_order.direction.z) > 0.1f) { return(true); } return(false); }
// operation 除掉gameid/gametime/player 剩下项如果全是0就不存,0.02秒检查一次 public void StoreOperation(ZF.TankOrder _order) { string cmdstr = string.Format("insert into operation set gameId='{0}', gameTime='{1}', player='{2}', flag='{3}', move='{4}', " + "steer='{5}', derX='{6}', derY='{7}', derZ='{8}', shoot='{9}';", gameId, (float)PhotonNetwork.time, PhotonNetwork.player.ID, (int)PhotonNetwork.player.AllProperties["flag"], _order.move, _order.steer, _order.direction.x, _order.direction.y, _order.direction.z, _order.shoot); try { Execute(cmdstr); return; } catch (MySqlException e) { Debug.Log("[DataMgr]execution" + e.Message); return; } }