public void SendRoleInfo(PlayerObject play)
{
NetMsg.MsgRoleInfo role = new NetMsg.MsgRoleInfo();
role.Create(null, this.GetGamePackKeyEx());
role.role_id = play.GetTypeId();
role.x = play.GetCurrentX();
role.y = play.GetCurrentY();
role.armor_id = play.GetItemSystem().GetArmorLook();
role.wepon_id = play.GetItemSystem().GetWeaponLook();
// role.face_sex = play.GetFace();
role.face_sex = (uint)play.GetLookFace();
role.face_sex1 = play.GetBaseAttr().lookface;
role.dir = play.GetDir();
role.action = play.GetCurrentAction();
role.guanjue = (byte)play.GetGuanJue();
role.hair_id = play.GetBaseAttr().hair;
role.str.Add(play.GetName());
role.rid_id = play.GetMountID();
//军团
if (play.GetLegionSystem().IsHaveLegion() && play.GetLegionSystem().GetLegion() != null)
{
role.legion_id = play.GetLegionSystem().GetLegion().GetBaseInfo().id;
role.legion_title = play.GetLegionSystem().GetLegion().GetBaseInfo().title;
role.legion_place = play.GetLegionSystem().GetPlace();
role.legion_id1 = role.legion_id;
}
this.SendData(role.GetBuffer());
//发送状态
play.GetTimerSystem().SendState(this);
//军团名称-
if (role.legion_id > 0)
{
NetMsg.MsgLegionName legion = new NetMsg.MsgLegionName();
legion.Create(null, this.GetGamePackKeyEx());
legion.legion_id = role.legion_id;
legion.legion_name = play.GetLegionSystem().GetLegion().GetBaseInfo().name;
this.SendData(legion.GetBuffer());
}
//加到对方玩家可视列表
//if (!this.GetVisibleList().ContainsKey(play.GetGameID()))
//{
// RefreshObject refobj = new RefreshObject();
// refobj.bRefreshTag = true;
// refobj.obj = play;
// this.GetVisibleList()[play.GetGameID()] = refobj;
//}
this.AddVisibleObject(play, true);
//前面发送了角色的lookface 却并没有变为鬼魂状态,用这个协议号再改变一次..偷个懒 省的去分析封包结构了。
if (play.IsDie() && play.IsGhost())
{
play.ChangeAttribute(UserAttribute.LOOKFACE, play.GetLookFace(), true);
}
}