コード例 #1
0
    private IEnumerator WaitForServerResponseThenDisplayCharacters()
    {
        while (!serverResponseFinished)
        {
            yield return(null);
        }

        if (characterServerResponse.Count > 0)
        {
            //load character here
            //will have to change/add a lot more later to this when you can edit race/face/etc
            StatusBoxHandler.statusText = "Status: Loading characters";
            Dictionary <ushort, Character> tempCharacterDictionaryToSet = new Dictionary <ushort, Character>();
            for (int i = 0; i < characterServerResponse.Count; i++)
            {
                CharacterQueryPacket cq = new CharacterQueryPacket();
                cq.ReadResponsePacket(characterServerResponse[i]);
                GameObject characterHolder = GetCharacterModelHolder(cq.GetCharacterSlot());
                if (!CharacterModelAlreadyLoaded(characterHolder))
                {
                    GameObject characterSprite = new GameObject();
                    Character  character       = characterSprite.AddComponent <Character>();
                    character.SetCharacterInfoFromPacket(cq);
                    tempCharacterDictionaryToSet.Add(cq.GetCharacterSlot(), character);
                    LoadCharacterInSlot(characterSprite, characterHolder);
                    LoadCharacterSnippet(characterHolder, cq);
                }
            }
            Utils.SetCharacterDictionary(tempCharacterDictionaryToSet);
        }
        statusBoxHandler.DestroyStatusBox();
    }
コード例 #2
0
    private void LoadCharacterSnippet(GameObject characterHolder, CharacterQueryPacket cq)
    {
        var parent = characterHolder.transform.parent;

        foreach (Transform child in parent)
        {
            if (child.CompareTag("CharacterInfo"))
            {
                child.gameObject.GetComponent <Text>().text = cq.GetName() + " (lv 1)"; //change this when levels implemented
            }
        }
    }
コード例 #3
0
 public void SetCharacterInfoFromPacket(CharacterQueryPacket cq)
 {
     charId        = cq.GetCharId();
     slot          = cq.GetCharacterSlot();
     accountId     = cq.GetAccountId();
     characterName = cq.GetName();
     strength      = cq.GetStrength();
     agility       = cq.GetAgility();
     intellect     = cq.GetIntellect();
     vitality      = cq.GetVitalty();
     dexterity     = cq.GetDexterity();
 }
コード例 #4
0
ファイル: Character.cs プロジェクト: tuita520/UnityMMO
 public void SetCharacterInfoFromPacket(CharacterQueryPacket cq)
 {
     Id            = cq.GetCharId();
     Slot          = cq.GetCharacterSlot();
     AccountId     = cq.GetAccountId();
     CharacterName = cq.GetName();
     Strength      = cq.GetStrength();
     Agility       = cq.GetAgility();
     Intellect     = cq.GetIntellect();
     Vitality      = cq.GetVitalty();
     Dexterity     = cq.GetDexterity();
 }
コード例 #5
0
ファイル: CharacterLoader.cs プロジェクト: tuita520/UnityMMO
    // Use this for initialization
    void OnEnable()
    {
        serverResponseFinished  = false;
        characterServerResponse = new List <SubPacket>();
        CharacterQueryPacket cq           = new CharacterQueryPacket(Utils.GetAccountName());
        SubPacket            sp           = cq.BuildQueryPacket();
        BasePacket           packetToSend = BasePacket.CreatePacket(sp, PacketProcessor.isAuthenticated, false);

        packetProcessor = GameObject.FindGameObjectWithTag("PacketProcessor").GetComponent <PacketProcessor>();
        statusBoxHandler.InstantiateStatusBoxPrefabWithNoMenuLink(MenuPrefabs.StatusBox);
        StatusBoxHandler.statusText = "Status: Retrieving character list from server";

        packetProcessor.SendPacket(packetToSend);
        StartCoroutine(WaitForServerResponseThenDisplayCharacters());
    }
コード例 #6
0
    // Use this for initialization
    void OnEnable()
    {
        serverResponseFinished  = false;
        characterServerResponse = new List <SubPacket>();
        Debug.Log(Utils.GetAccountName());
        CharacterQueryPacket cq           = new CharacterQueryPacket(Utils.GetAccountName());
        SubPacket            sp           = cq.BuildQueryPacket();
        BasePacket           packetToSend = BasePacket.CreatePacket(sp, PacketProcessor.isAuthenticated, false);

        packetProcessor = GameObject.FindGameObjectWithTag("PacketProcessor").GetComponent <PacketProcessor>();
        statusBoxHandler.InstantiateStatusBoxPrefabWithNoMenuLink(MenuPrefabs.StatusBox);
        StatusBoxHandler.statusText = "Status: Retrieving character list from server";

        packetProcessor.SendPacket(packetToSend);
        StartCoroutine(WaitForServerResponseThenDisplayCharacters());
        //send character query packet to server
        //open status box you cant close until received response from server
        //receive what characters are avaiable for this account if any
        //draw them on character select boxes
    }