Beispiel #1
0
        //复活幻兽
        //target 死亡的怪物- 只有打怪才会加幻兽灵气
        public void Eudemon_Alive(MonsterObject taget)
        {
            for (int i = 0; i < mBattleObj.Count; i++)
            {
                EudemonObject obj = mBattleObj[i];
                if (obj.GetState() == EUDEMONSTATE.BATTLE && obj.GetAttr().bDie)
                {
                    obj.GetAttr().life += (int)(obj.GetAttr().life_max * 0.1) ; //杀死一个怪物加5点
                    NetMsg.MsgEudemonInfo msg = new NetMsg.MsgEudemonInfo();
                    msg.id = obj.GetTypeId();
                    msg.AddAttribute(EudemonAttribute.Life, obj.GetAttr().life);

                     PacketOut outpack = new PacketOut();
                    if (obj.GetAttr().life >= obj.GetAttr().life_max )
                    {
                        //      收到网络协议:长度:24协议号:2037
                        //{24,0,245,7,1,0,0,0,252,159,138,131,1,0,0,0,6,0,0,0,65,0,0,0}
                        obj.GetAttr().life = obj.GetAttr().life_max;
                        outpack.WriteInt16(24);
                        outpack.WriteInt16(2037);
                        outpack.WriteInt32(1);
                        outpack.WriteUInt32(obj.GetTypeId());
                        outpack.WriteInt32(1);
                        outpack.WriteInt32(6);
                        outpack.WriteInt32(obj.GetAttr().life);
                        obj.BrocatBuffer(outpack.Flush());
            //收到网络协议:长度:20协议号:1017
            //{20,0,249,3,252,159,138,131,1,0,0,0,0,0,0,0,65,0,0,0}
                        outpack = new PacketOut();
                        outpack.WriteInt16(20);
                        outpack.WriteInt16(1017);
                        outpack.WriteUInt32(obj.GetTypeId());
                        outpack.WriteInt32(1);
                        outpack.WriteInt32(0);
                        outpack.WriteInt32(obj.GetAttr().life);
                        obj.BrocatBuffer(outpack.Flush());
            //收到网络协议:长度:20协议号:1017
            //{20,0,249,3,252,159,138,131,1,0,0,0,26,0,0,0,4,0,0,0}
                        outpack = new PacketOut();
                        outpack.WriteInt16(20);
                        outpack.WriteInt16(1017);
                        outpack.WriteUInt32(obj.GetTypeId());
                        outpack.WriteInt32(1);
                        outpack.WriteInt32(26);
                        outpack.WriteInt32(4);
                        obj.BrocatBuffer(outpack.Flush());
            //收到网络协议:长度:20协议号:1017
            //{20,0,249,3,252,159,138,131,1,0,0,0,26,0,0,0,0,0,0,0}
                        outpack = new PacketOut();
                        outpack.WriteInt16(20);
                        outpack.WriteInt16(1017);
                        outpack.WriteUInt32(obj.GetTypeId());
                        outpack.WriteInt32(1);
                        outpack.WriteInt32(26);
                        outpack.WriteInt32(0);
                        obj.BrocatBuffer(outpack.Flush());

                        obj.GetAttr().bDie = false;
                        obj.SendEudemonInfo();
                    }
                    else
                    {
                    //    收到网络协议:长度:40协议号:1022

                       outpack.WriteInt16(40);
                        outpack.WriteInt16(1022);
                        outpack.WriteInt32(System.Environment.TickCount);
                        outpack.WriteUInt32(obj.GetTypeId());
                        outpack.WriteUInt32(taget.GetTypeId());
                        outpack.WriteInt16(obj.GetCurrentX());
                        outpack.WriteInt16(obj.GetCurrentY());

                        outpack.WriteInt32(32);
                        outpack.WriteInt16(4);
                        outpack.WriteInt32(obj.GetAttr().life);
                        outpack.WriteInt32(0);
                        outpack.WriteInt32(0);
                        outpack.WriteInt16(0);
                        obj.BrocatBuffer(outpack.Flush());

                    }
                    break;
                }
            }
        }