public static DrawData AmmoGunDrawData(PlayerDrawInfo drawInfo, string ammoCounterSprite, int yOffset, float angleInRadians) { Player drawPlayer = drawInfo.drawPlayer; Mod mod = Highlander.Instance; HighlanderPlayer modPlayer = drawPlayer.GetModPlayer <HighlanderPlayer>(); float scale = 1f; Texture2D texture = mod.GetTexture(ammoCounterSprite); int drawX = (int)(drawInfo.position.X + drawPlayer.width / 2f - Main.screenPosition.X); int drawY = (int)(drawInfo.position.Y + yOffset + 70 - Main.screenPosition.Y); if (drawPlayer.mount.Active) { MountData data = drawPlayer.mount._data; Vector2 pos = new Vector2(); pos.Y += data.heightBoost; pos += drawInfo.position; int smoothOffset = (int)((drawInfo.position - Main.screenPosition) - (drawPlayer.position - Main.screenPosition)).Y + data.heightBoost; drawX = (int)(pos.X + drawPlayer.width / 2f - Main.screenPosition.X); drawY = (int)(pos.Y + yOffset - smoothOffset + 70 - Main.screenPosition.Y); } return(new DrawData(texture, new Vector2(drawX, drawY), new Rectangle(0, 0, texture.Width, texture.Height), Color.White, angleInRadians, new Vector2(texture.Width / 2f, texture.Height / 2f), scale, SpriteEffects.None, 0)); }
public static DrawData AutonomousOrbData(PlayerDrawInfo drawInfo, string autonomousOrb, int yOffset, float angleInRadians) { Player drawPlayer = drawInfo.drawPlayer; Mod mod = Highlander.Instance; HighlanderPlayer modPlayer = drawPlayer.GetModPlayer <HighlanderPlayer>(); var dye = drawPlayer.dye[0]; // Tick up the hat effect timer modPlayer.hatEffectTime = (short)((modPlayer.hatEffectTime + 1) % 47); short timer = modPlayer.hatEffectTime; float scale = 1f; Texture2D texture = mod.GetTexture(autonomousOrb); int drawX = (int)(drawInfo.position.X + drawPlayer.width / 2f - Main.screenPosition.X); int drawY = (int)(drawInfo.position.Y + yOffset + 70 - Main.screenPosition.Y); int numFrames = 1; int currFrame = 0; if (drawPlayer.mount.Active) { MountData data = drawPlayer.mount._data; Vector2 pos = new Vector2(); pos.Y += data.heightBoost; pos += drawInfo.position; drawX = (int)(pos.X + drawPlayer.width / 2f - Main.screenPosition.X); drawY = (int)(pos.Y + yOffset + 70 - Main.screenPosition.Y); } if (timer <= 14) { //currFrame = 0; drawY -= 0; } else if (timer <= 23) { //currFrame = 1; drawY -= 1; } else if (timer <= 38) { //currFrame = 2; drawY -= 2; } else if (timer <= 47) { //currFrame = 3; drawY -= 1; } Rectangle frame = new Rectangle(0, currFrame * texture.Height / numFrames, texture.Width, texture.Height / numFrames); int cX = (int)(drawPlayer.position.X / 16f); int cY = (int)((drawPlayer.position.Y) / 16f); Color color = Lighting.GetColor(cX, cY, Color.White); return(new DrawData(texture, new Vector2(drawX, drawY), frame, color, angleInRadians, new Vector2(texture.Width / 2f, texture.Height / 2f), scale, SpriteEffects.None, 0)); }
public void SendMountData(MountData data) { PlayerDataManager.Instance.mMountData = data; var controller = UIManager.Instance.GetController(UIConfig.MountUI) as MountController; if (null != controller) { controller.CallFromOtherClass("UpdateInfo", null); } }
public MountInfo(MountData _actorData, PlayerBaseInfo _info, bool _isSkin) { hasInited = true; serverData = _actorData; ownerInfo = _info; if (RefData != null) { previewItem = new EquipmentInfo(RefData.itemID, 1, EquipmentBelongTo.PREVIEW); } ProcessLevEffect(); }
private void SetRoleZuoQiData(GameServerClient client, int nID, byte[] cmdParams, int count) { try { string cmdData = new UTF8Encoding().GetString(cmdParams, 0, count); string[] fields = cmdData.Split(new char[] { ':' }); if (fields.Length != 3) { LogManager.WriteLog(LogTypes.Error, string.Format("指令参数个数错误, CMD={0}, Recv={1}, CmdData={2}", (TCPGameServerCmds)nID, fields.Length, cmdData), null, true); client.sendCmd <int>(nID, -4); } int roleID = Convert.ToInt32(fields[0]); int goodsID = Convert.ToInt32(fields[1]); int isNew = Convert.ToInt32(fields[2]); DBRoleInfo dbRoleInfo = DBManager.getInstance().FindDBRoleInfo(ref roleID); if (null == dbRoleInfo) { LogManager.WriteLog(LogTypes.Error, string.Format("发起请求的角色不存在,CMD={0}, RoleID={1}", (TCPGameServerCmds)nID, roleID), null, true); client.sendCmd(30767, "0"); } else { using (MyDbConnection3 conn = new MyDbConnection3(false)) { string cmdText = string.Format("REPLACE INTO t_zuoqi(rid, goodsid, isnew) VALUES('{0}', '{1}', '{2}')", roleID, goodsID, isNew); conn.ExecuteNonQuery(cmdText, 0); } MountData mountData = dbRoleInfo.MountList.Find((MountData _g) => _g.GoodsID == goodsID); if (null == mountData) { mountData = new MountData { GoodsID = goodsID, IsNew = (1 == isNew) }; dbRoleInfo.MountList.Add(mountData); } else { mountData.IsNew = (1 == isNew); } client.sendCmd <int>(nID, 1); } } catch (Exception ex) { LogManager.WriteException(ex.Message); client.sendCmd <int>(nID, -8); } }
/// <summary> /// 以客户端数据构造MountInfo,取管理类里面的等级,特效需要 /// </summary> public MountInfo(MountRef _mountRef) { refData = _mountRef; serverData = new MountData(); hasInited = false; serverData.configID = _mountRef.mountId; serverData.lev = GameCenter.newMountMng.CurLev; serverData.isRiding = false; AssetName = _mountRef.mountModel;//模型资源 if (RefData != null) { previewItem = new EquipmentInfo(RefData.itemID, 1, EquipmentBelongTo.PREVIEW); } ProcessLevEffect(); }
/// <summary> /// 以服务端数据和PlayerBaseInfo构造MountInfo /// </summary> public MountInfo(MountData _actorData, PlayerBaseInfo _info) { hasInited = true; serverData = _actorData; ownerInfo = _info; if (RefData != null) { previewItem = new EquipmentInfo(RefData.itemID, 1, EquipmentBelongTo.PREVIEW); } if (ownerInfo != null && _actorData.isRiding) { ownerInfo.UpdateMount(this); } ProcessLevEffect(); }
public MountData GetMountData(MountManager _this) { RefreshSkinState(_this); MountData data = new MountData(); data.Attrs.AddRange(_this.mDbData.Attrs); data.Id = _this.mDbData.Id; data.Exp = _this.mDbData.Exp; data.Level = _this.mDbData.Level; data.Step = _this.mDbData.Step; data.Ride = _this.mDbData.Ride; data.Skills.AddRange(_this.mDbData.Skills); data.Feeds.AddRange(_this.mDbData.Feeds); data.Special.AddRange(_this.mDbData.Special); return(data); }
public static DrawData OozeDrawData(PlayerDrawInfo drawInfo, string unusualSprite, int yOffset, float angleInRadians) { Player drawPlayer = drawInfo.drawPlayer; Mod mod = Highlander.Instance; HighlanderPlayer modPlayer = drawPlayer.GetModPlayer <HighlanderPlayer>(); float scale = 1f; Texture2D texture = mod.GetTexture(unusualSprite); int drawX = (int)(drawInfo.position.X + drawPlayer.width / 2f - Main.screenPosition.X); int drawY = (int)(drawInfo.position.Y + yOffset + 75 + drawPlayer.height / 0.6f - Main.screenPosition.Y); if (drawPlayer.mount.Active) { MountData data = drawPlayer.mount._data; Vector2 pos = new Vector2(); pos.Y += data.heightBoost; pos += drawInfo.position; drawX = (int)(pos.X + drawPlayer.width / 2f - Main.screenPosition.X); drawY = (int)(pos.Y + yOffset + 70 + 75 - Main.screenPosition.Y); } int numFrames = 8; int cX = (int)(drawPlayer.position.X / 16f); int cY = (int)((drawPlayer.position.Y) / 16f); Color color = Lighting.GetColor(cX, cY, Color.White); Color other = Color.White; color = new Color((color.R * 2 + other.R) / 3, (color.G * 2 + other.G) / 3, (color.B * 2 + other.B) / 3, (color.A * 2 + other.A) / 3) * 0.9f;// Color.White * 0.8f; if (modPlayer.unusualLayerTime > 10) { int newFrame = Main.rand.Next(0, numFrames) * texture.Height / numFrames; while (newFrame == modPlayer.unusualFrame) { newFrame = Main.rand.Next(0, numFrames) * texture.Height / numFrames; } modPlayer.unusualFrame = newFrame; modPlayer.unusualLayerTime = 0; } modPlayer.unusualLayerTime++; return(new DrawData(texture, new Vector2(drawX, drawY), new Rectangle(0, modPlayer.unusualFrame, texture.Width, texture.Height / numFrames), color, angleInRadians, new Vector2(texture.Width / 2f, texture.Height / 2f), scale, SpriteEffects.None, 0)); }
public static DrawData TallHatData(PlayerDrawInfo drawInfo, string hat, int yOffset, float angleInRadians) { Player drawPlayer = drawInfo.drawPlayer; Mod mod = Highlander.Instance; HighlanderPlayer modPlayer = drawPlayer.GetModPlayer <HighlanderPlayer>(); var dye = drawPlayer.dye[0]; float scale = 1f; Texture2D texture = mod.GetTexture(hat); int drawX = (int)(drawInfo.position.X + drawPlayer.width / 2f - Main.screenPosition.X); int drawY = (int)(drawInfo.position.Y + yOffset + 0 - Main.screenPosition.Y); int playerFrame = drawPlayer.bodyFrame.Y / drawPlayer.bodyFrame.Height; if (playerFrame == 7 || playerFrame == 8 || playerFrame == 9 || playerFrame == 14 || playerFrame == 15 || playerFrame == 16) { drawY -= 2; } if (drawPlayer.mount.Active) { MountData data = drawPlayer.mount._data; Vector2 pos = new Vector2(); pos.Y += data.heightBoost; pos += drawInfo.position; drawX = (int)(pos.X + drawPlayer.width / 2f - Main.screenPosition.X); drawY = (int)(pos.Y + yOffset - Main.screenPosition.Y); } Rectangle frame = new Rectangle(0, 0, texture.Width, texture.Height); int cX = (int)(drawPlayer.position.X / 16f); int cY = (int)((drawPlayer.position.Y) / 16f); Color color = Lighting.GetColor(cX, cY, Color.White); SpriteEffects effect = drawPlayer.direction == -1 ? SpriteEffects.FlipHorizontally : SpriteEffects.None; return(new DrawData(texture, new Vector2(drawX, drawY), frame, color, angleInRadians, new Vector2(texture.Width / 2f, texture.Height / 2f), scale, effect, 0)); }
public static DrawData FauxDustDrawData(PlayerDrawInfo drawInfo, FauxDust d, string unusualSprite, int yOffset, float angleInRadians) { Player drawPlayer = drawInfo.drawPlayer; Mod mod = Highlander.Instance; HighlanderPlayer modPlayer = drawPlayer.GetModPlayer <HighlanderPlayer>(); Texture2D texture = mod.GetTexture(unusualSprite); int drawX = (int)(drawInfo.position.X + drawPlayer.width / 2f - Main.screenPosition.X); int drawY = (int)(drawInfo.position.Y + yOffset + drawPlayer.height / 0.6f - Main.screenPosition.Y); if (drawPlayer.mount.Active) { MountData data = drawPlayer.mount._data; Vector2 pos = new Vector2(); pos.Y += data.heightBoost; pos += drawInfo.position; drawX = (int)(pos.X + drawPlayer.width / 2f - Main.screenPosition.X); drawY = (int)(pos.Y + yOffset + 70 - Main.screenPosition.Y); } int numFrames = 3; int cX = (int)(drawPlayer.position.X / 16f); int cY = (int)((drawPlayer.position.Y) / 16f); Color color = Lighting.GetColor(cX, cY, Color.White); if (modPlayer.unusualLayerTime2 > 40) { int newFrame = Main.rand.Next(0, numFrames) * texture.Height / numFrames; while (newFrame == modPlayer.unusualFrame2) { newFrame = Main.rand.Next(0, numFrames) * texture.Height / numFrames; } modPlayer.unusualFrame2 = newFrame; modPlayer.unusualLayerTime2 = 0; } modPlayer.unusualLayerTime2++; return(new DrawData(d.texture, new Vector2(drawX + d.Offset.X, drawY + d.Offset.Y), d.frame, d.Color, angleInRadians, d.origin, d.scale, SpriteEffects.None, 0)); }
/// <summary> /// 其他玩家的坐骑构造 /// </summary> /// <param name="_msg"></param> public MountInfo(scene_ply _msg, PlayerBaseInfo _belongto) { //Debug.Log(" MountInfo " + " rideType : " + _msg.ride_type + " ,rideState : " + _msg.ride_state + " , skin : " + _msg.currskin + " , ridelev : " + _msg.ride_lev); ownerInfo = _belongto; serverData = new MountData(); serverData.configID = (int)_msg.ride_type; if (_msg.currskin != 0) { serverData.configID = (int)_msg.currskin; } serverData.isRiding = _msg.ride_state == (byte)1; serverData.lev = _msg.ride_lev; if (OnRideStateUpdate != null) { OnRideStateUpdate(serverData.isRiding); } if (ownerInfo.OnMountRideStateUpdate != null) { ownerInfo.OnMountRideStateUpdate(serverData.isRiding, true); } UpdateMountEffect(); }
public DrawData DrawData(PlayerDrawInfo info) { drawInfo = info; Player drawPlayer = info.drawPlayer; int drawX = (int)(info.position.X + Player.width / 2f - Main.screenPosition.X); int drawY = (int)(info.position.Y + Player.height / 0.6f - Main.screenPosition.Y); if (drawPlayer.mount.Active) { MountData data = drawPlayer.mount._data; Vector2 pos = new Vector2(); pos.Y += data.heightBoost; pos += drawInfo.position; int smoothOffset = (int)((drawInfo.position - Main.screenPosition) - (drawPlayer.position - Main.screenPosition)).Y + data.heightBoost; drawX = (int)(pos.X + drawPlayer.width / 2f - Main.screenPosition.X); drawY = (int)(pos.Y + 70 - smoothOffset - Main.screenPosition.Y); } return(new DrawData(texture, new Vector2(drawX, drawY - 65) + Offset, frame, Color * ((255 - alpha) / 255f), 0, origin, scale, SpriteEffects.None, 0)); }