Exemple #1
0
    public void CreateNpc(MapInfo.Npc data)
    {
        Npc.Info info = Game.Database.GetNpcInfo(data.id);

        GameObject go = Game.Database.LoadResource("Roles/" + info.model);

        go.name = info.name.ToString();
        go.transform.SetParent(m_npcRoot);

        CharacterController cc = go.AddComponent <CharacterController>();

        cc.center = new Vector3(0, 1, 0);

        float scale = info.scaling;

        go.transform.localScale = new Vector3(scale, scale, scale);
        data.pos.CopyTo(go.transform);

        Role role = go.AddComponent <Role>();

        role.team = Role.Team.Yellow;
        role.hp   = info.hp;
        role.atk  = info.atk;
        role.def  = info.def;

        Npc npc = go.AddComponent <Npc>();

        npc.m_id = data.id;

        m_roles.Add(role);
    }
Exemple #2
0
    public void SaveMapInfo()
    {
        MapInfo mapInfo = new MapInfo();

        mapInfo.born.CopyFrom(m_bornPosition);

        MapInfo.Npc mapNpc = new MapInfo.Npc();
        int         count  = m_npcRoot.childCount;

        for (int i = 0; i < count; i++)
        {
            Transform t   = m_npcRoot.GetChild(i);
            Npc       npc = t.GetComponent <Npc>();
            if (npc != null)
            {
                mapNpc.id = npc.id;
                mapNpc.pos.CopyFrom(t);
                mapInfo.npc.Add(mapNpc);
            }
        }

        MapInfo.Monster mapMonster = new MapInfo.Monster();
        count = m_monsterRoot.childCount;
        for (int i = 0; i < count; i++)
        {
            Transform t       = m_monsterRoot.GetChild(i);
            Monster   monster = t.GetComponent <Monster>();
            if (monster != null)
            {
                mapMonster.id = monster.id;
                mapMonster.pos.CopyFrom(t);
                mapInfo.monster.Add(mapMonster);
            }
        }

        MapInfo.Position savePoint = new MapInfo.Position();
        count = m_savePointRoot.childCount;
        for (int i = 0; i < count; i++)
        {
            Transform t = m_savePointRoot.GetChild(i);
            savePoint.CopyFrom(t);
            mapInfo.savepoint.Add(savePoint);
        }

        MapInfo.Teleporter mapTel = new MapInfo.Teleporter();
        count = m_teleporterRoot.childCount;
        for (int i = 0; i < count; i++)
        {
            Transform  t   = m_teleporterRoot.GetChild(i);
            Teleporter tel = t.GetComponent <Teleporter>();
            if (tel != null)
            {
                mapTel.pos.CopyFrom(t);
                mapTel.scaling = tel.transform.localScale;
                mapTel.toMap   = tel.m_toMap;
                mapInfo.teleporter.Add(mapTel);
            }
        }

        Game.Database.SaveMapInfo(mapInfo, m_name);
    }