Example #1
0
        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));
        }
Example #2
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));
        }
Example #3
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);
        }
    }
Example #4
0
 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();
 }
Example #5
0
 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);
     }
 }
Example #6
0
 /// <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();
 }
Example #7
0
 /// <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();
 }
Example #8
0
        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);
        }
Example #9
0
        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));
        }
Example #10
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));
        }
Example #11
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));
        }
Example #12
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();
 }
Example #13
0
        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));
        }