Files
2024-08-23 15:49:34 +08:00

877 lines
31 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/********************************************************************************
* 文件名: Obj_NPC.cs
* 全路径: \Script\Obj\Obj_NPC.cs
* 创建人: 李嘉
* 创建时间2013-10-25
*
* 功能说明游戏NPC的Obj逻辑类
* 修改记录:
*********************************************************************************/
using Games.GlobeDefine;
using Games.Mission;
using GCGame.Table;
using System.Collections;
using System.Collections.Generic;
using Module.Log;
using UnityEngine;
using Games.ChatHistory;
namespace Games.LogicObj
{
public class Obj_NPC_Init_Data : Obj_Character_Init_Data
{
public bool ShowNPCHP = false;
public Obj_NPC_Init_Data()
{
CleanUp();
}
public override void CleanUp()
{
base.CleanUp();
m_nProfession = -1;
}
}
public class Obj_NPC : Obj_Character
{
public override UIPathData HeadUiPath
{
get { return Obj_NPCHeadUI.pathData; }
}
protected Obj_NPCHeadUI m_headUIObj;
protected long m_OwerGuid; //专属怪的主人guid
protected string m_OwerName; //专属怪的主人名字
public Obj_NPC()
{
m_ObjType = GameDefine_Globe.OBJ_TYPE.OBJ_NPC;
m_listMissionID = new List<int>();
}
public long OwerGUID
{
get { return m_OwerGuid; }
}
public ObjShieldData shieldData;
public override bool Init(ObjParent_Init_Data initData1)
{
bool result = base.Init(initData1);
if (result == false)
{
LogModule.ErrorLog("Base Init Failure!");
return false;
}
Obj_NPC_Init_Data initData = initData1 as Obj_NPC_Init_Data;
if (initData == null)
return false;
m_OwerGuid = (long) initData.m_OwerGuid;
m_OwerName = initData.m_OwerName;
BaseAttr.HP = initData._InitCurHP;
BaseAttr.MaxHP = initData._InitMaxHP;
//服务器发过来的信息
BornPosX = initData.m_fX;
BornPosY = gameObject.transform.position.y;
BornPosZ = initData.m_fZ;
//BaseAttr.RoleName = BaseAttr.RoleData.Name;
// NPC挂任务
AddDialogMission();
//初始化寻路代理
InitNavAgent();
CreateNameBoard();
InitImpactInfo(initData);
ObjManager.Instance.AddPoolObj(this);
CreateModel(ForceUseModel == null ? ModelID : ForceUseModel.modelData.Id);
if (GameManager.gameManager.AutoSearch != null)
GameManager.gameManager.AutoSearch.AgentToNPC(this);
_autoShowDialogue = IsAutoShowOptionDialog();
var roleTab = BaseAttr.RoleData;
if (roleTab.NpcType == 4 && roleTab.Camp == 1)
beTargetRange = 5;
speedAdaption = roleTab.SpeedAdaption == 1;
Hashtable tab = new Hashtable();
tab["roleBassId"] = initData.m_RoleBaseID;
tab["type"] = Obj_Fellow.FellowDialogType.MonsterCheck;
Events.EventDispatcher.Instance.SendMessage(Games.Events.EventId.FellowDialogEvent, tab);
showHPFlag = initData.ShowNPCHP;
return true;
}
/// <summary>
/// 是否主角可以对话的NPC
/// </summary>
public bool CanTalkTo()
{
return Reputation.IsReputation(this, CharacterDefine.REPUTATION_TYPE.REPUTATION_DUMMY);
}
//NPC面向某一点
public override void FaceTo(Vector3 facePos)
{
var roleBaseAttr = TableManager.GetRoleBaseAttrByID(BaseAttr.RoleBaseID, 0);
if (roleBaseAttr != null && roleBaseAttr.BindFace < 1)
{
if (CanTalkTo())
{
var forward = facePos - transform.position;
forward.y = 0f;
if (forward == Vector3.zero)
_targetRotation = null;
else
_targetRotation = Quaternion.LookRotation(forward, Vector3.up);
}
else
base.FaceTo(facePos);
}
}
private Quaternion? _targetRotation;
private void SlowFaceTo()
{
if (_targetRotation != null)
{
m_ObjTransform.rotation = Quaternion.RotateTowards(m_ObjTransform.rotation, _targetRotation.Value,
Time.deltaTime * 540f);
if (m_ObjTransform.rotation == _targetRotation.Value)
_targetRotation = null;
}
}
protected override void CreateModelOver(Hashtable table)
{
base.CreateModelOver(table);
RealoadPlayerWeaponVisual();
ReloadPlayerEffect();
RealoadWingModel();
}
private float m_fBornPosX = 0.0f;
public float BornPosX
{
get { return m_fBornPosX; }
set { m_fBornPosX = value; }
}
private float m_fBornPosY = 0.0f;
public float BornPosY
{
get { return m_fBornPosY; }
set { m_fBornPosY = value; }
}
private float m_fBornPosZ = 0.0f;
public float BornPosZ
{
get { return m_fBornPosZ; }
set { m_fBornPosZ = value; }
}
/// <summary>
/// 停止NPC当前播放的特效
/// </summary>
public void StopNPCEffect()
{
if (ObjEffectLogic != null)
{
ObjEffectLogic.CleanImpacts();
ObjEffectLogic.CleanEffect();
}
}
public override bool OnDie()
{
var result = base.OnDie();
if (result)
{
if (m_headUIObj != null)
m_headUIObj.SetNameColor(CharacterDefine.NPC_COLOR_DIE);
#if UNITY_ANDROID
if (NavAgent != null)
{
NavAgent.enabled = false;
}
#endif
//死亡特效
var roleBaseAttr = TableManager.GetRoleBaseAttrByID(BaseAttr.RoleBaseID, 0);
if (roleBaseAttr != null && ObjEffectLogic != null)
{
//死亡特效
if (roleBaseAttr.DieEffectID != -1)
PlayEffect(roleBaseAttr.DieEffectID);
}
SceneMovieManager.Instance.OnKillMonster(BaseAttr.RoleBaseID);
}
return result;
}
protected override void Update()
{
base.Update();
AutoShowNPCDialogNear();
SlowFaceTo();
}
private bool _autoShowDialogue;
private const float _autoDialogueDistSqr = 2f * 2f;
private const float _autoDialogueRefreshSqr = 2.5f * 2.5f;
private void AutoShowNPCDialogNear()
{
// 注Award_Npc需要动态确定IsServerFlagOpen
if (_autoShowDialogue)
{
var mainPlayer = ObjManager.Instance.MainPlayer;
if (mainPlayer != null)
{
if (_autoShowDialogue)
{
if ((mainPlayer.Position - Position).RemoveY().sqrMagnitude > _autoDialogueRefreshSqr)
_autoShowDialogue = false;
}
else
{
if ((mainPlayer.Position - Position).RemoveY().sqrMagnitude < _autoDialogueDistSqr
&& mainPlayer.MovementState == MoveState.Static)
{
_autoShowDialogue = true;
if (BaseAttr.RoleBaseID == GlobeVar.GUILDDATAID_SUZHOU)
{
if (MissionInfoController.Instance() == null) //没有弹出对话(无选项)
Singleton<DialogCore>.GetInstance().Show(this);
}
else
{
if (OptionDialogLogic.Instance() == null) //没有弹出对话(有选项)
Singleton<DialogCore>.GetInstance().Show(this);
}
}
}
}
}
}
// 需要显示 OptionDialog的在这加吧
private bool IsAutoShowOptionDialog()
{
var bRet = false;
//是黑市商人
switch (BaseAttr.RoleBaseID)
{
case GlobeVar.BLACKMAKETDATAID_ERHAI:
case GlobeVar.BLACKMAKETDATAID_SHUZHOU:
case GlobeVar.CANGKU1_SHUZHOU:
case GlobeVar.CANGKU2_SHUZHOU:
case GlobeVar.RECOVERNPC_DATAID:
case GlobeVar.PAOSHANG_ACCEPTNPC_DATAID:
case GlobeVar.AWARD_NPCID:
case GlobeVar.GUILDDATAID_SUZHOU:
bRet = true;
break;
}
return bRet;
}
public static string GetColor(int sceneType)
{
switch (sceneType)
{
case 0:
{
return StrDictionary.GetClientDictionaryString("#{5562}",
StrDictionary.GetClientDictionaryString("#{5012}"));
}
case 1:
{
return StrDictionary.GetClientDictionaryString("#{5562}",
StrDictionary.GetClientDictionaryString("#{5013}"));
}
case 2:
{
return StrDictionary.GetClientDictionaryString("#{5562}",
StrDictionary.GetClientDictionaryString("#{5014}"));
}
case 3:
{
return StrDictionary.GetClientDictionaryString("#{5562}",
StrDictionary.GetClientDictionaryString("#{5015}"));
}
case 4:
{
return StrDictionary.GetClientDictionaryString("#{5562}",
StrDictionary.GetClientDictionaryString("#{5016}"));
}
case 5:
{
return StrDictionary.GetClientDictionaryString("#{5562}",
StrDictionary.GetClientDictionaryString("#{5017}"));
}
}
return "";
}
public override void ShowChatBubble(ChatHistoryItem history)
{
if (null != m_headUIObj)
{
m_headUIObj.ShowChatBubble(history);
}
}
//有些特殊的NPC身上不挂任务,通过活动来判断
bool SpecialNpc()
{
if (RoleBaseID == 912 || RoleBaseID == 913 || RoleBaseID == 914)
return true;
return false;
}
public override void InitNameBoard(Obj_HeadUI headUiItem)
{
base.InitNameBoard(headUiItem);
m_headUIObj = (Obj_NPCHeadUI) headUiItem;
if (MissionList.Count > 0 || SpecialNpc())
{
m_headUIObj.ChangeBoardState(true);
//设置MissionBoard的NPC
var missionBoard = m_headUIObj.boardObj.GetComponent<MissionBoard>();
if (missionBoard != null)
{
missionBoard.InitNpcInfo(this);
}
else
{
Module.Log.LogModule.ErrorLog("----------missionBoard is null");
}
}
else
{
m_headUIObj.ChangeBoardState(false);
}
if (Singleton<ObjManager>.Instance.m_Belongs.Contains(ServerID))
{
m_headUIObj.ChangeBelong(true);
Singleton<ObjManager>.Instance.m_Belongs.Remove(ServerID);
}
else
m_headUIObj.ChangeBelong(false);
m_headUIObj.SetOwnerName(m_OwerName);
Tab_RoleBaseAttr roleBase = TableManager.GetRoleBaseAttrByID(RoleBaseID, 0);
if (roleBase == null)
return;
if (roleBase.NpcType == 4)
{
m_headUIObj.HideHp(false);
m_headUIObj.HideBackImage(true);
}
else
{
OptHPChange();
m_headUIObj.HideBackImage(false);
}
m_headUIObj.SetNameColor(GetNameBoardColor());
if (roleBase.IsShowHeadIcon == 1)
{
m_headUIObj.NameText.gameObject.SetActive(true);
m_headUIObj.SetName(GetNPCNameColor(BaseAttr.RoleName));
}
else
{
if (showHPFlag)
{
m_headUIObj.NameText.gameObject.SetActive(true);
m_headUIObj.SetLevelName(BaseAttr.Level, GetNPCNameColor(BaseAttr.RoleName));
}
else
{
m_headUIObj.NameText.gameObject.SetActive(false);
}
}
m_headUIObj.HideChatBubble(false);
if (shieldData != null)
{
m_headUIObj.CreateShield();
m_headUIObj.UpdateShield((float)shieldData.health / shieldData.maxHealth);
}
else
{
m_headUIObj.RemoveShield();
}
}
private string GetNPCNameColor(string name)
{
return GetNpcNameColor(name, this);
}
public static string GetNpcNameColor(string name, Obj_Character character)
{
Tab_RoleBaseAttr roleBase = TableManager.GetRoleBaseAttrByID(character.RoleBaseID, 0);
if (roleBase != null && roleBase.NpcType == 4 && roleBase.SceneNpcType != -1)
{
name = StrDictionary.GetClientDictionaryString("#{5561}", name,
GetColor(roleBase.SceneNpcType));
}
Tab_CrossSerEscortConfig config = TableManager.GetCrossSerEscortConfigByID(character.RoleBaseID, 0);
if (config != null)
{
var fuben = TableManager.GetFubenByID(GlobalData.GetCurSceenFubenId(), 0);
if (fuben.IsShowCamp == 1)
{
if (character.BaseAttr.Force == 6)
name = StrDictionary.GetClientDictionaryString("#{5820}") + name;
if (character.BaseAttr.Force == 7)
name = StrDictionary.GetClientDictionaryString("#{5821}") + name;
if (character.BaseAttr.Force == 27)
name = StrDictionary.GetClientDictionaryString("#{5822}") + name;
}
name = string.Format("<color=#{0}>{1}</color>", config.NPCNameColor, name);
}
return name;
}
//怪物归属改变
public void ChangeBelong(bool state)
{
if (m_headUIObj != null)
m_headUIObj.ChangeBelong(state);
}
//////////////////////////////////////////////////////////////////////////
//NPC对话相关处理
//////////////////////////////////////////////////////////////////////////
private int m_nDefaultDialogID = -1; //NPC对话索引列表
public int DefaultDialogID
{
get { return m_nDefaultDialogID; }
set { m_nDefaultDialogID = value; }
}
private List<int> m_listMissionID; //NPC任务脚本
public List<int> MissionList
{
get { return m_listMissionID; }
}
void AddMissionToList(int nMissionID)
{
m_listMissionID.Add(nMissionID);
}
void ClearMissionList()
{
m_listMissionID.Clear();
}
public bool IsHaveMission(int nMissionID)
{
if (m_listMissionID.Contains(nMissionID))
{
Tab_MissionBase missionBase = TableManager.GetMissionBaseByID(nMissionID, 0);
if (missionBase != null) //主线任务状态是未接取的全部是没有任务
{
if (missionBase.MissionType == (int) MISSIONTYPE.MISSION_MAIN
&& GameManager.gameManager.MissionManager.GetMissionState(nMissionID) ==
(int) MissionState.Mission_NotAccept)
{
return false;
}
}
return true;
}
return false;
}
public override bool OnEnterCombat(Obj_Character Attacker)
{
if (IsDie())
{
return false;
}
base.OnEnterCombat(Attacker);
if (Controller == null)
{
return false;
}
if (Controller.CurrentAIState.AIType != CharacterDefine.AI_TYPE.AI_TYPE_COMBAT)
{
Controller.EnterCombat();
}
if (Attacker)
{
Controller.ThreadInfo.AddThreat(Attacker, 10);
}
return true;
}
public override void OnLevelCombat(Obj_Character Attacker)
{
base.OnLevelCombat(Attacker);
if (Controller == null)
{
return;
}
if (Controller.CurrentAIState.AIType == CharacterDefine.AI_TYPE.AI_TYPE_COMBAT)
{
Controller.LeaveCombat();
}
if (Attacker)
{
Controller.ThreadInfo.ResetThreat(Attacker);
}
}
public void AddDialogMission()
{
Tab_RoleBaseAttr RoleBase = TableManager.GetRoleBaseAttrByID(BaseAttr.RoleBaseID, 0);
if (RoleBase == null)
return;
Tab_NpcDialog DialogLine = TableManager.GetNpcDialogByID(RoleBase.DialogID, 0);
if (DialogLine != null)
{
m_nDefaultDialogID = RoleBase.DialogID;
for (int i = 0; i < DialogLine.getMissionIDCount(); ++i)
{
int nMissionID = DialogLine.GetMissionIDbyIndex(i);
if (nMissionID >= 0)
{
m_listMissionID.Add(nMissionID);
}
}
}
}
public override void OptNameChange() //名字变化后的操作
{
if (m_headUIObj != null)
m_headUIObj.SetName(GetNPCNameColor(BaseAttr.RoleName));
}
public override void OptForceChange() //势力变化后的操作
{
base.OptForceChange();
if (m_headUIObj != null)
m_headUIObj.SetNameColor(GetNameBoardColor());
}
public override void OptHPChange()
{
base.OptHPChange();
if (m_headUIObj != null)
{
Tab_RoleBaseAttr roleBase = TableManager.GetRoleBaseAttrByID(RoleBaseID, 0);
if (roleBase.IsShowHeadIcon != 1)
{
if (!showHPFlag)
{
m_headUIObj.HideHp(false);
//m_headUIObj.NameText.gameObject.SetActive(true);
OptNameChange();
return;
}
else
{
m_headUIObj.HideHp(true);
m_headUIObj.NameText.gameObject.SetActive(true);
m_headUIObj.SetLevelName(BaseAttr.Level, BaseAttr.RoleName);
}
}
float rate = 1;
if (BaseAttr.MaxHP > 0)
rate = BaseAttr.HP * 1.0f / (BaseAttr.MaxHP * 1.0f);
m_headUIObj.SetNewHp(rate);
}
}
public override bool UseSkill(Tab_SkillEx skillEx, Tab_SkillBase skillBase, int firstSkillId, int targetId,
Vector3 facePoint, bool skipWindup = false)
{
var result = base.UseSkill(skillEx, skillBase, firstSkillId, targetId, facePoint, skipWindup);
if (BossFramUI.Instance() != null && BossFramUI.Instance().TargetServerID == ServerID)
{
BossFramUI.Instance().ShowAttackObjName(result ? targetId : -1);
}
return result;
}
public override void CreateShield(ObjShieldData shield)
{
if (shieldData != null)
LogModule.ErrorLog(string.Format("类型为{0}的Obj {1}试图获得两层盾牌!", ObjType, ServerID));
else
{
shieldData = shield;
// 创建新的盾牌
if (m_headUIObj != null)
{
m_headUIObj.CreateShield();
m_headUIObj.UpdateShield((float)shieldData.health / shieldData.maxHealth);
}
LogModule.DebugLog(string.Format("创建类型为{0}的Obj {1}de盾牌", ObjType, ServerID));
Events.EventDispatcher.Instance.Dispatch(Events.EventId.CreateTargetHealth,this);
Events.EventDispatcher.Instance.Dispatch(Events.EventId.UpdateTargetHealth, this);
}
}
public override void UpdateShieldHealth(long health, int handle)
{
if (shieldData != null && shieldData.handle == handle)
{
shieldData.health = health;
// 更新盾牌数值
if (m_headUIObj != null)
m_headUIObj.UpdateShield((float)shieldData.health / shieldData.maxHealth);
Events.EventDispatcher.Instance.Dispatch(Events.EventId.UpdateTargetHealth, this);
}
}
public override void RemoveShield(int handle)
{
if (shieldData != null && shieldData.handle == handle)
{
shieldData = null;
// 移除盾牌
if (m_headUIObj != null)
m_headUIObj.RemoveShield();
LogModule.DebugLog(string.Format("移除类型为{0}的Obj {1}de盾牌", ObjType, ServerID));
Events.EventDispatcher.Instance.Dispatch(Events.EventId.RemoveTargetHealth, this);
}
}
public Color GetOutLineColor()
{
string curColr;
var reputation = Reputation.GetObjReputionType(this);
switch (reputation)
{
case CharacterDefine.REPUTATION_TYPE.REPUTATION_NEUTRAL:
curColr = "3e380f";
break;
case CharacterDefine.REPUTATION_TYPE.REPUTATION_HOSTILE:
curColr = "3f0f0f";
break;
default:
curColr = "0e4410";
break;
}
return GCGame.Utils.GetColorByString(curColr);
}
public virtual Color GetNameBoardColor()
{
return GetNameBoardColor(this);
}
public static Color GetNameBoardColor(Obj_Character character)
{
var curColr = string.Empty;
if (character.RoleBaseID == 0 && Reputation.CanAttack(character))
{
curColr = StrDictionary.GetClientDictionaryString("#{5564}");
}
else
{
var roleBase = TableManager.GetRoleBaseAttrByID(character.RoleBaseID, 0);
if (roleBase != null && roleBase.NpcType != 4 && Reputation.CanAttack(character))
curColr = roleBase.NpcType == 2 || roleBase.NpcType == 5 ?
StrDictionary.GetClientDictionaryString("#{5563}") :
StrDictionary.GetClientDictionaryString(roleBase.Camp == 2 ? "#{5559}" : "#{5564}");
}
if (string.IsNullOrEmpty(curColr))
curColr = StrDictionary.GetClientDictionaryString("#{5560}");
return GCGame.Utils.GetColorByString(curColr);
}
public override void DestroyObj()
{
var optionDialog = OptionDialogLogic.Instance();
if (optionDialog != null && DialogCore.Instance.CareNPC != null && DialogCore.Instance.CareNPC.ServerID == ServerID)
UIManager.CloseUI(UIInfo.OptionDialogRoot);
if (BossFramUI.Instance() != null && BossFramUI.Instance().gameObject.activeInHierarchy)
BossFramUI.Instance().CancelTarget(ServerID);
if (m_headUIObj != null)
m_headUIObj.RemoveShield();
if (RoleBaseID == 1123)
{
GCGame.Utils.ShowMainTopRightUI();
}
base.DestroyObj();
}
public bool IsNeedBecameVisible()
{
if (BaseAttr.RoleBaseID == GlobeVar.PARADE_BUSID)
{
return false;
}
return true;
}
public override void OnBindOpt(Obj_Character obj)
{
base.OnBindOpt(obj);
//婚车特殊摆设
if (BaseAttr.RoleBaseID == GlobeVar.PARADE_BUSID && obj != null)
{
Transform playermodel = obj.transform.Find("Model");
Transform ridepoint =
gameObject.transform.Find("Model/All/Bip01/Bip01 Pelvis/Bip01 Spine/Ride_Point01");
Transform seatpoint = gameObject.transform.Find("Model/All/Bone02/Ride_Point02");
if (playermodel == null || ridepoint == null || seatpoint == null)
{
return;
}
if (GetBindChildIndex(obj.ServerID) == 0 && ridepoint.childCount < 1)
{
obj.gameObject.transform.localPosition = new Vector3(0.0f, 0.78f, -0.47f);
GameObject fakeobj = (GameObject) Instantiate(playermodel.gameObject);
if (fakeobj != null)
{
fakeobj.SetActive(true);
fakeobj.transform.parent = ridepoint;
fakeobj.transform.localPosition = Vector3.zero;
fakeobj.transform.localRotation = Quaternion.Euler(90.0f, 0.0f, 0.0f);
fakeobj.transform.localScale = Vector3.one;
// 注:以下代码实际没有意义 - al.InitState(fakeobj,null);会让AnimationLogic不响应Play函数
//AnimationLogic al = ridepoint.gameObject.AddComponent<AnimationLogic>();
//if (al != null)
//{
// al.InitState(fakeobj,null);
// Tab_RoleBaseAttr role = TableManager.GetRoleBaseAttrByID(obj.BaseAttr.RoleBaseID, 0);
// if (role != null)
// {
// Tab_CharModel mo = TableManager.GetCharModelByID(role.CharModelID, 0);
// if (mo != null)
// {
// //al.AnimResFilePath = mo.AnimPath;
// }
// }
// int animId = -1;
// //sl/ts/dl/xy
// if (obj.BaseAttr.RoleBaseID == 0)
// animId = 153;
// else if (obj.BaseAttr.RoleBaseID == 1)
// animId = 155;
// else if (obj.BaseAttr.RoleBaseID == 2)
// animId = 159;
// else if (obj.BaseAttr.RoleBaseID == 3)
// animId = 157;
// if (animId > 0)
// {
// al.Play(animId);
// }
//}
}
return;
}
if (GetBindChildIndex(obj.ServerID) == 1 && seatpoint.childCount < 1)
{
obj.gameObject.transform.localPosition = new Vector3(0.0f, 0.47f, -1.83f);
GameObject fakeobj = (GameObject) Instantiate(playermodel.gameObject);
if (fakeobj != null)
{
fakeobj.SetActive(true);
fakeobj.transform.parent = seatpoint;
fakeobj.transform.localPosition = Vector3.zero;
fakeobj.transform.localRotation = Quaternion.Euler(90.0f, 0.0f, 0.0f);
fakeobj.transform.localScale = Vector3.one;
// 注:以下代码实际没有意义 - al.InitState(fakeobj,null);会让AnimationLogic不响应Play函数
//AnimationLogic al = seatpoint.gameObject.AddComponent<AnimationLogic>();
//if (al != null)
//{
// al.InitState(fakeobj,null);
// Tab_RoleBaseAttr role = TableManager.GetRoleBaseAttrByID(obj.BaseAttr.RoleBaseID, 0);
// if (role != null)
// {
// Tab_CharModel mo = TableManager.GetCharModelByID(role.CharModelID, 0);
// if (mo != null)
// {
// //al.AnimResFilePath = mo.AnimPath;
// }
// }
// int animId = -1;
// //sl/ts/dl/xy
// if (obj.BaseAttr.RoleBaseID == 0)
// animId = 146;
// else if (obj.BaseAttr.RoleBaseID == 1)
// animId = 148;
// else if (obj.BaseAttr.RoleBaseID == 2)
// animId = 152;
// else if (obj.BaseAttr.RoleBaseID == 3)
// animId = 150;
// if (animId > 0 && al)
// al.Play(animId);
//}
}
return;
}
}
}
private int m_BelongTeamID = GlobeVar.INVALID_ID;
public int BelongTeamID
{
get { return m_BelongTeamID; }
set { m_BelongTeamID = value; }
}
private int m_BelongObjID = GlobeVar.INVALID_ID;
public int BelongObjID
{
get { return m_BelongObjID; }
set { m_BelongObjID = value; }
}
private bool m_bIsGuildActivityBoss = false; // 帮会活动Boss;
public bool IsGuildActivityBoss
{
get { return m_bIsGuildActivityBoss; }
set { m_bIsGuildActivityBoss = value; }
}
}
}