Пример #1
0
    private string ParseTalk(string src)
    {
        XCharacter role = RoleModule.Instance.GetCurPlayer();
        string     s    = src.Replace("[ROLE]", role.Name);

        return(s);
    }
Пример #2
0
    private void ShowContentView2()
    {
        Dictionary <int, DSkillTalent> dict = ReadCfgSkillTalent.Dict;

        Dictionary <int, DSkillTalent> .Enumerator em = dict.GetEnumerator();
        XCharacter role   = RoleModule.Instance.GetCurPlayer();
        ECarrer    carrer = ReadCfgActor.GetDataById(role.Id).Carrer;

        int[] activeArray = new int[mTalents.Count];
        for (int i = 0; i < mTalents.Count; i++)
        {
            ItemTalent tab = mTalents[i];
            tab.talentLevel.text = DSkillTalent.TALENT_LEVELS[i].ToString();
            GTItemHelper.ShowImageBlack(tab.talentLevelBack, role.Level < DSkillTalent.TALENT_LEVELS[i]);
            activeArray[i] = 0;
        }
        while (em.MoveNext())
        {
            if (carrer != em.Current.Value.Carrer)
            {
                continue;
            }
            DSkillTalent db    = em.Current.Value;
            int          layer = em.Current.Value.Layer;
            int          i     = db.Pos - 1;
            ItemTalent   tab   = mTalents[layer - 1];
            GTItemHelper.ShowTexture(tab.talentIcons[i], db.Icon);
            tab.talentNames[i].text = db.Name.ToString();
            tab.talentHighLights[i].SetActive(activeArray[layer - 1] == db.Pos);
        }
        em.Dispose();
    }
Пример #3
0
    public static int GetFightValue(XCharacter player)
    {
        Dictionary <EAttr, int> attrValues = GetPropertys(player);
        int value = GetFightValue(attrValues);

        return(value);
    }
Пример #4
0
    private void OnUpdateAvatarExp()
    {
        XCharacter role   = RoleModule.Instance.GetCurPlayer();
        int        maxExp = ReadCfgRoleLevel.GetDataById(role.Level).RequireExp;

        mBar3.value = (role.CurExp * 1f) / maxExp;
    }
Пример #5
0
    public Character AddActorLocalSync(XCharacter data)
    {
        if (data == null)
        {
            return(null);
        }
        GTTransform dTrans = GTTransform.Create(data.PosX, data.PosY, data.PosZ, data.Face);
        Character   cc     = AddActor(data.Id, (EBattleCamp)data.Camp, (EActorType)data.Type, dTrans, data, false);

        cc.Carrer        = data.Carrer;
        cc.IsRemoteActor = true;
        switch (cc.Type)
        {
        case EActorType.MONSTER:
            cc.EnableAI(true);
            cc.OnDeadFinish = () =>
            {
                if (cc != null && cc.CacheTransform != null)
                {
                    cc.CacheTransform.gameObject.SetActive(false);
                    GTEventCenter.FireEvent(GTEventID.TYPE_ACTOR_KILL_MONSTER, cc.GUID, cc.ID);
                    cc.OnDeadFinish = null;
                }
            };
            break;

        case EActorType.NPC:
            cc.EnableAI(true);
            break;
        }
        return(cc);
    }
Пример #6
0
    private void OnAck_ChangePartner(MessageRecv obj)
    {
        System.IO.MemoryStream ms  = new System.IO.MemoryStream(obj.Data);
        AckChangePartner       ack = Serializer.Deserialize <AckChangePartner>(ms);

        XCharacter role = RoleModule.Instance.GetCurPlayer();

        switch (ack.Pos)
        {
        case 1:
            role.Partner1 = ack.ID;
            break;

        case 2:
            role.Partner2 = ack.ID;
            break;
        }
        DataDBSRole.Update(role.Id, role);
        if (!DataDBSPartner.ContainsKey(ack.ID))
        {
            XPartner xp = new XPartner();
            xp.Id      = ack.ID;
            xp.Level   = 1;
            xp.Star    = 0;
            xp.Wake    = 0;
            xp.Advance = 1;
            xp.Exp     = 0;
            DataDBSPartner.Insert(ack.ID, xp);
        }

        CharacterManager.Instance.SyncMainPlayerData(ESyncDataType.TYPE_BASEATTR);
        GTEventCenter.FireEvent(GTEventID.TYPE_CHANGE_PARTNER, ack.Pos, ack.ID);
        GTEventCenter.FireEvent(GTEventID.TYPE_CHANGE_FIGHTVALUE);
    }
Пример #7
0
    private void ShowPropertys()
    {
        propertyTemplate.SetActive(false);
        XCharacter role = GTGlobal.Main;
        Dictionary <EAttr, int> propertys = GTAttrHelper.GetPropertys(role);

        Dictionary <EAttr, int> .Enumerator em = propertys.GetEnumerator();
        while (em.MoveNext())
        {
            EAttr e = em.Current.Key;
            if ((int)e > 10)
            {
                continue;
            }
            ItemProperty item;
            if (!mPropertyItems.ContainsKey(e))
            {
                item = new ItemProperty();
                GameObject go = NGUITools.AddChild(propertyGrid.gameObject, propertyTemplate);
                item.propertyNum  = go.transform.Find("Num").GetComponent <UILabel>();
                item.propertyName = go.transform.Find("Name").GetComponent <UILabel>();
                go.SetActive(true);
                mPropertyItems.Add(e, item);
            }
            else
            {
                item = mPropertyItems[e];
            }
            DProperty db = ReadCfgProperty.GetDataById(em.Current.Key);
            item.propertyName.text = db.Name;
            item.propertyNum.text  = db.IsPercent == false?em.Current.Value.ToString() : (em.Current.Value / 100f).ToPercent();
        }
    }
Пример #8
0
    private void ShowDialogueModel(DDialogue db)
    {
        DActor actorDB = null;

        if (db.Actor == 0)
        {
            XCharacter role = GTGlobal.Main;
            actorDB = ReadCfgActor.GetDataById(role.Id);
        }
        else
        {
            actorDB = ReadCfgActor.GetDataById(db.Actor);
        }

        if (actorDB == null)
        {
            return;
        }
        if (dlgRenderer != null)
        {
            dlgRenderer.DelAllModels();
        }
        else
        {
            dlgRenderer = ERender.AddRender(dlgTexture);
        }
        dlgAvatar = GTWorld.Instance.AddAvatar(actorDB.Model);
        dlgAvatar.PlayAnim(db.Anim, null);
        dlgRenderer.AddModel(dlgAvatar.GetRootObj());
        dlgAvatar.GetRootObj().transform.localPosition = new Vector3(-0.22f, -1.61f, 1.0f);
        dlgAvatar.GetRootObj().transform.localEulerAngles = new Vector3(0, 180, 0);
    }
Пример #9
0
    public XCharacter GetMainPartner(int id)
    {
        if (id == 0)
        {
            return(null);
        }
        XPartner data = DataDBSPartner.GetDataById(id);

        if (data == null)
        {
            return(null);
        }
        XCharacter c  = new XCharacter();
        DActor     db = ReadCfgActor.GetDataById(id);

        c.Id    = id;
        c.Level = data.Level;
        c.Sex   = 0;
        c.Title = 0;
        c.Name  = db.Name;
        c.BaseAttr.Clear();
        c.CurrAttr.Clear();
        c.BaseAttr.AddRange(AttrHelper.GetPropertys(data).Values);
        for (int i = 0; i < c.BaseAttr.Count; i++)
        {
            c.CurrAttr.Add(c.BaseAttr[i]);
        }
        return(c);
    }
Пример #10
0
    private void OnUpdateAvatarExp()
    {
        XCharacter role   = GTGlobal.Main;
        int        maxExp = ReadCfgRoleLevel.GetDataById(role.Level).RequireExp;

        mBar3.value = (role.CurExp * 1f) / maxExp;
    }
Пример #11
0
    public Character AddMainPlayer(KTransform bornData)
    {
        XCharacter data = RoleModule.Instance.GetMainPlayer();

        Main = AddActor(data.Id, EBattleCamp.A, EActorType.PLAYER, bornData, data, true);
        return(Main);
    }
Пример #12
0
    private void OnReq_RoleLogin(MessageRecv obj)
    {
        System.IO.MemoryStream ms  = new System.IO.MemoryStream(obj.Data);
        RoleLoginReq           req = Serializer.Deserialize <RoleLoginReq>(ms);

        foreach (var current in DataDBSCharacter.Dict)
        {
            XCharacter c = current.Value;
            if (c.GUID == req.RoleID)
            {
                RoleLoginAck ack = new RoleLoginAck();
                ack.RoleID = c.GUID;
                ack.Name   = c.Name;
                ack.Carrer = c.Carrer;
                ack.Level  = c.Level;
                ack.Exp    = c.CurExp;
                GTDataManager.Instance.LoadRoleData(c.Carrer);
                NetworkManager.Instance.Send(MessageID.MSG_ROLE_LOGIN_ACK, ack, 0, 0);


                NotifyIntoScene ntf = new NotifyIntoScene();
                ntf.CopyID   = GTGlobal.LastCityID;
                ntf.CopyGuid = 0;
                ntf.RoleID   = c.GUID;
                ntf.ServerID = MLLogin.Instance.GetCurrServerID();
                NetworkManager.Instance.Send(MessageID.MSG_NOTIFY_INTO_SCENE, ntf, 0, 0);
                break;
            }
        }
    }
Пример #13
0
    private string ParseTalk(string src)
    {
        XCharacter role = GTGlobal.Main;
        string     s    = src.Replace("[ROLE]", role.Name);

        return(s);
    }
Пример #14
0
    //public CharacterAvatar DelAvatar(CharacterAvatar avatar)
    //{
    //    if (avatar == null)
    //    {
    //        return null;
    //    }
    //    avatar.Release();
    //    GTResourceManager.Instance.DestroyObj(avatar.GetRootObj());
    //    return null;
    //}

    public void SyncMainPlayerData(ESyncDataType type)
    {
        if (Main != null)
        {
            XCharacter data = RoleModule.Instance.GetMainPlayer();
            Main.SyncData(data, type);
        }
    }
Пример #15
0
    public Character AddMainPlayer(GTTransform bornData)
    {
        XCharacter data = GTGlobal.Main;

        Main        = AddActor(data.Id, EBattleCamp.CT_PVE_PLAYER, EActorType.PLAYER, bornData, data, true);
        Main.Carrer = data.Carrer;
        Main.OnDead = OnDeadForMain;
        return(Main);
    }
Пример #16
0
 public void EnterWorld(MapConfig data)
 {
     for (int i = 0; i < data.MapNpcs.Count; i++)
     {
         MapNpc cfg = data.MapNpcs[i];
         DActor db  = ReadCfgActor.GetDataById(cfg.NpcID);
         if (db == null)
         {
             continue;
         }
         XCharacter c = new XCharacter();
         c.Id   = cfg.NpcID;
         c.Name = db.Name;
         c.GUID = GTGUID.NewGUID();
         c.PosX = cfg.Pos.x;
         c.PosY = cfg.Pos.y;
         c.PosZ = cfg.Pos.z;
         c.Face = cfg.Face;
         c.Type = (int)EActorType.NPC;
         c.Camp = (int)EBattleCamp.CT_PVE_NEUTRAL;
         c.CurAttrs.AddRange(GTTools.GetListFromEnumNames <int>(typeof(EAttr)));
         foreach (var current in db.Attrs)
         {
             c.CurAttrs[(int)current.Key - 1] = current.Value;
         }
         m_AllActors.Add(c.GUID, c);
     }
     for (int i = 0; i < data.MapAreaMonsters.Count; i++)
     {
         MapAreaMonster cfg = data.MapAreaMonsters[i];
         DActor         db  = ReadCfgActor.GetDataById(cfg.MonsterID);
         if (db == null)
         {
             continue;
         }
         for (int k = 0; k < cfg.Points.Count; k++)
         {
             MapPoint   p = cfg.Points[k];
             XCharacter c = new XCharacter();
             c.Id   = cfg.MonsterID;
             c.Name = db.Name;
             c.GUID = GTGUID.NewGUID();
             c.PosX = p.Pos.x;
             c.PosY = p.Pos.y;
             c.PosZ = p.Pos.z;
             c.Face = p.EulerAngles.y;
             c.Type = (int)EActorType.MONSTER;
             c.Camp = (int)EBattleCamp.CT_PVE_ENEMY;
             c.CurAttrs.AddRange(GTTools.GetListFromEnumNames <int>(typeof(EAttr)));
             foreach (var current in db.Attrs)
             {
                 c.CurAttrs[(int)current.Key - 1] = current.Value;
             }
             m_AllActors.Add(c.GUID, c);
         }
     }
 }
Пример #17
0
    private void OnAck_SetMount(MessageRecv obj)
    {
        System.IO.MemoryStream ms   = new System.IO.MemoryStream(obj.Data);
        AckSetMount            ack  = Serializer.Deserialize <AckSetMount>(ms);
        XCharacter             role = GTGlobal.Main;

        role.Mount = ack.MountID;
        DataDBSCharacter.Update(role.Carrer, role);
        GTEventCenter.FireEvent(GTEventID.TYPE_MOUNT_DRESSMOUNT);
    }
Пример #18
0
    public static XCharacter CreatePlayer(int id, string name)
    {
        XCharacter tab = new XCharacter();

        tab.Name  = name;
        tab.Id    = id;
        tab.Level = 1;
        tab.GUID  = GTGUID.NewGUID();
        return(tab);
    }
Пример #19
0
    private void ShowRandomName()
    {
        XCharacter role = DataDBSCharacter.GetDataById(CurRole.Carrer);

        if (role == null)
        {
            int    sex        = CurRole.Carrer == 2 || CurRole.Carrer == 3 ? 1 : 0;
            string randomName = GetRandomName(sex);
            iptHeroName.value = randomName;
        }
    }
Пример #20
0
    private void ShowView()
    {
        ItemMount tab = mMountItems[mSelectIndex];
        DActor    db  = ReadCfgActor.GetDataById(tab.id);

        mMountSpeed.text = db.RSpeed.ToPoint();
        GTItemHelper.ShowItemQuality(mMountQuality, db.Quality);
        XCharacter role = RoleModule.Instance.GetCurPlayer();

        btnFight.SetActive(role.Mount != tab.id);
    }
Пример #21
0
    private void OnAck_SetMount(MessageRecv obj)
    {
        System.IO.MemoryStream ms  = new System.IO.MemoryStream(obj.Data);
        AckSetMount            ack = Serializer.Deserialize <AckSetMount>(ms);

        XCharacter role = RoleModule.Instance.GetCurPlayer();

        role.Mount = ack.MountID;
        DataDBSRole.Update(role.Id, role);
        GTEventCenter.FireEvent(GTEventID.TYPE_DRESS_MOUNT);
    }
Пример #22
0
    private void ShowView()
    {
        ItemMount tab = mMountItems[mSelectIndex];
        DActor    db  = ReadCfgActor.GetDataById(tab.id);

        mMountSpeed.text = (db.Attrs[EAttr.SPEED] / 100f).ToPoint();
        GTItemHelper.ShowItemQuality(mMountQuality, db.Quality);
        XCharacter role = GTGlobal.Main;

        btnFight.SetActive(role.Mount != tab.id);
    }
Пример #23
0
    static void CalcRoleLevel(Dictionary <EAttr, int> dict, XCharacter player)
    {
        Dictionary <int, DRoleLevel> heroLevelDict = ReadCfgRoleLevel.Dict;

        Dictionary <EAttr, int> .Enumerator em = heroLevelDict[player.Level].Attrs.GetEnumerator();
        while (em.MoveNext())
        {
            dict[em.Current.Key] += em.Current.Value;
        }
        em.Dispose();
    }
Пример #24
0
    private void ShowView()
    {
        int        id     = mRoleDBList[mRoleIndex].Id;
        XCharacter role   = DataDBSRole.GetDataById(id);
        DActor     roleDB = ReadCfgActor.GetDataById(id);

        btnCreateRole.SetActive(role == null);
        btnRoll.SetActive(role == null);
        iptHeroName.gameObject.SetActive(role == null);
        btnEnterGame.SetActive(role != null);
        labHeroName.text = role != null?GTTools.Format("Lv.{0} {1}", role.Level, role.Name != null?role.Name : roleDB.Name) : "未创建";
    }
Пример #25
0
    public static List <int> GetPropertyValues(XCharacter player)
    {
        List <int> list = new List <int>();
        Dictionary <EAttr, int> attrValues = GetPropertys(player);

        string[] values = Enum.GetNames(typeof(EAttr));
        for (int i = 0; i < values.Length; i++)
        {
            list.Add(attrValues[(EAttr)i]);
        }
        return(list);
    }
Пример #26
0
    private void ShowView()
    {
        DRole      db      = mRoleDBList[mRoleIndex];
        XCharacter role    = DataDBSCharacter.GetDataById(db.Carrer);
        DActor     actorDB = ReadCfgActor.GetDataById(db.ActorID);

        btnCreateRole.SetActive(role == null);
        btnRoll.SetActive(role == null);
        iptHeroName.gameObject.SetActive(role == null);
        btnEnterGame.SetActive(role != null);
        labHeroName.text = role != null?GTTools.Format("Lv.{0} {1}", role.Level, role.Name != null?role.Name : actorDB.Name) : "未创建";
    }
Пример #27
0
    public Character AddActorSync(XCharacter data)
    {
        if (data == null)
        {
            return(null);
        }
        GTTransform dTrans = GTTransform.Create(data.PosX, data.PosY, data.PosZ, data.Face);
        Character   cc     = AddActor(data.Id, (EBattleCamp)data.Camp, (EActorType)data.Type, dTrans, data, false);

        cc.Carrer        = data.Carrer;
        cc.IsRemoteActor = true;
        return(cc);
    }
Пример #28
0
    private void OnEnterGameClick(GameObject go)
    {
        GTAudioManager.Instance.PlayEffectAudio(GTAudioKey.SOUND_UI_CLICK);
        int        id = mRoleDBList[mRoleIndex].Id;
        XCharacter c  = DataDBSRole.GetDataById(id);

        if (c == null)
        {
            GTItemHelper.ShowTip("你还没有创建这个角色");
            return;
        }
        LoginService.Instance.TryEnterGame(c.GUID);
    }
Пример #29
0
    private void InitView()
    {
        XCharacter role = RoleModule.Instance.GetCurPlayer();

        for (int i = 0; i < mMountItems.Count; i++)
        {
            ItemMount tab = mMountItems[i];
            tab.dress.SetActive(role.Mount == tab.id);
            GTItemHelper.ShowActorQuality(tab.quality, tab.id);
            DActor db = ReadCfgActor.GetDataById(tab.id);
            tab.icon.spriteName = db.Icon;
        }
    }
Пример #30
0
    private void OnEnterGameClick(GameObject go)
    {
        GTAudioManager.Instance.PlayEffectAudio(GTAudioKey.SOUND_UI_CLICK);
        int        carrerID = mRoleDBList[mRoleIndex].Carrer;
        XCharacter c        = DataDBSCharacter.GetDataById(carrerID);

        if (c == null)
        {
            GTItemHelper.ShowTip("你还没有创建这个角色");
            return;
        }
        GTNetworkSend.Instance.TryRoleLogin(c.GUID);
    }
Пример #31
0
 public Rocky(GraphicsHW g)
     : base(g,true,128,128,192,192)
 {
     hotspot = new Rectangle(48, 80, 32, 32);
     model = new XCharacter(g, @"/ApplicationFolder/rocky.x");
 }