Esempio n. 1
0
    public DynamicCharacterAvatar CreateCharacter(CharacterDataHolder characterData, float posX, float posY, float posZ, float heading)
    {
        // Setting race on Instantiate, because even we set it at CustomizeCharacterAppearance, we could not mount items for female characters.
        Vector3 newPosition = new Vector3(posX, posY, posZ);
        DynamicCharacterAvatar avatarTemplate = characterData.GetRace() == 0 ? _avatarMale : _avatarFemale;
        DynamicCharacterAvatar newAvatar      = Instantiate(avatarTemplate, newPosition, Quaternion.identity) as DynamicCharacterAvatar;

        // Set heading early, to avoid inconsistencies with template heading that are
        // sometimes visible before CustomizeCharacterAppearance starts on character selection scene.
        SetAvatarHeading(newAvatar, heading);

        // Prevent UMA bone error.
        newAvatar.BuildCharacter(false);

        // Add a new Capsule Collider to prevent falling.
        CapsuleCollider capsuleCollider = newAvatar.gameObject.AddComponent <CapsuleCollider>();

        capsuleCollider.radius = 0.15f;
        capsuleCollider.height = 1.71f;
        capsuleCollider.center = new Vector3(0, 0.82f, 0);

        // Add AudioSource.
        newAvatar.gameObject.AddComponent <AudioSource>();

        // Customize character.
        StartCoroutine(CustomizeCharacterAppearance(characterData, newAvatar));
        StartCoroutine(InitializeLocation(newAvatar, newPosition, heading));

        // Return GameObject.
        return(newAvatar);
    }
Esempio n. 2
0
    public DynamicCharacterAvatar CreateCharacter(CharacterDataHolder characterData, float posX, float posY, float posZ)
    {
        // Setting race on Instantiate, because even we set it at CustomizeCharacterAppearance, we could not mount items for female characters.
        DynamicCharacterAvatar newAvatar = Instantiate(characterData.GetRace() == 0 ? avatarMale : avatarFemale, new Vector3(posX, posY, posZ), Quaternion.identity) as DynamicCharacterAvatar;

        newAvatar.BuildCharacter(); // Prevent UMA bone error.

        // Add a new Capsule Collider to prevent falling.
        CapsuleCollider capsuleCollider = newAvatar.gameObject.AddComponent <CapsuleCollider>();

        capsuleCollider.radius = 0.15f;
        capsuleCollider.height = 1.71f;
        capsuleCollider.center = new Vector3(0, 0.82f, 0);

        // Customize character.
        StartCoroutine(CustomizeCharacterAppearance(characterData, newAvatar));

        // Add AudioSource.
        newAvatar.gameObject.AddComponent <AudioSource>();

        // Disable avatar until race customization ends.
        newAvatar.gameObject.SetActive(false);

        // Return GameObject.
        return(newAvatar);
    }
    public static void Process(ReceivablePacket packet)
    {
        // Server information.
        long objectId = packet.ReadLong();
        CharacterDataHolder npcTemplate   = NpcData.GetNpc(packet.ReadInt());
        CharacterDataHolder characterData = new CharacterDataHolder();

        characterData.SetX(packet.ReadFloat());
        characterData.SetY(packet.ReadFloat());
        characterData.SetZ(packet.ReadFloat());
        characterData.SetHeading(packet.ReadFloat());
        characterData.SetCurrentHp(packet.ReadLong());
        // Client information.
        characterData.SetName(npcTemplate.GetName());
        characterData.SetRace(npcTemplate.GetRace());
        characterData.SetHeight(npcTemplate.GetHeight());
        characterData.SetBelly(npcTemplate.GetBelly());;
        characterData.SetHairType(npcTemplate.GetHairType());
        characterData.SetHairColor(npcTemplate.GetHairColor());
        characterData.SetSkinColor(npcTemplate.GetSkinColor());
        characterData.SetEyeColor(npcTemplate.GetEyeColor());
        characterData.SetHeadItem(npcTemplate.GetHeadItem());
        characterData.SetChestItem(npcTemplate.GetChestItem());
        characterData.SetLegsItem(npcTemplate.GetLegsItem());
        characterData.SetHandsItem(npcTemplate.GetHandsItem());
        characterData.SetFeetItem(npcTemplate.GetFeetItem());
        characterData.SetLeftHandItem(npcTemplate.GetLeftHandItem());
        characterData.SetRightHandItem(npcTemplate.GetRightHandItem());
        characterData.SetMaxHp(npcTemplate.GetMaxHp());
        characterData.SetTargetable(npcTemplate.IsTargetable());

        WorldManager.Instance.UpdateObject(objectId, characterData);
    }
    public static void Notify(ReceivablePacket packet)
    {
        long objectId = packet.ReadLong();
        CharacterDataHolder characterData = new CharacterDataHolder();

        characterData.SetName(packet.ReadString());
        characterData.SetRace((byte)packet.ReadByte());
        characterData.SetHeight(packet.ReadFloat());
        characterData.SetBelly(packet.ReadFloat());
        characterData.SetHairType((byte)packet.ReadByte());
        characterData.SetHairColor(packet.ReadInt());
        characterData.SetSkinColor(packet.ReadInt());
        characterData.SetEyeColor(packet.ReadInt());
        characterData.SetHeadItem(packet.ReadInt());
        characterData.SetChestItem(packet.ReadInt());
        characterData.SetLegsItem(packet.ReadInt());
        characterData.SetHandsItem(packet.ReadInt());
        characterData.SetFeetItem(packet.ReadInt());
        characterData.SetLeftHandItem(packet.ReadInt());
        characterData.SetRightHandItem(packet.ReadInt());
        characterData.SetX(packet.ReadFloat());
        characterData.SetY(packet.ReadFloat());
        characterData.SetZ(packet.ReadFloat());
        characterData.SetHeading(packet.ReadFloat());

        WorldManager.Instance.UpdateObject(objectId, characterData);
    }
    public void UpdateObject(long objectId, CharacterDataHolder characterdata)
    {
        lock (updateObjectLock) // Use lock to avoid adding duplicate gameObjects.
        {
            // Check for existing objects.
            if (gameObjects.ContainsKey(objectId))
            {
                // Update object info.
                ((IDictionary <long, CharacterDataHolder>)characterUpdateQueue).Remove(objectId);
                characterUpdateQueue.TryAdd(objectId, characterdata);
                return;
            }

            // Object is out of sight.
            if (CalculateDistance(new Vector3(characterdata.GetX(), characterdata.GetY(), characterdata.GetZ())) > VISIBILITY_RADIUS)
            {
                return;
            }

            // Add placeholder to game object list.
            gameObjects.GetOrAdd(objectId, (GameObject)null);

            // Queue creation.
            CharacterManager.Instance.characterCreationQueue.TryAdd(objectId, characterdata);
        }
    }
Esempio n. 6
0
 public void Init()
 {
     SaveLoad.LoadState();
     if (SaveLoad.recentState == null)
     {
         if (isBattle)
         {
             InitBattleScene();
         }
         else
         {
             InitMovementScene();
         }
     }
     mainc        = SaveLoad.recentState.mainc;
     ActivePMs    = SaveLoad.recentState.ActivePMs;
     NonActivePMs = SaveLoad.recentState.NonActivePMs;
     if (isBattle == true)
     {
         enemiesCDH = SaveLoad.recentState.enemiesCDH;
         InitBattleScene();
     }
     else
     {
         mainc._x = SaveLoad.recentState.entrenceX;
         mainc._y = SaveLoad.recentState.entrenceY;
         InitMovementScene();
     }
 }
Esempio n. 7
0
    public void DeleteCharacter()
    {
        // Get current character data.
        CharacterDataHolder characterData = MainManager.Instance.GetSelectedCharacterData();

        // Return if no character is selected.
        if (characterData == null)
        {
            return;
        }

        // Set text message to deleting character.
        _textMessage.text = "Deleting character " + characterData.GetName() + "...";

        // Request info.
        _waitingServer = true;
        NetworkManager.ChannelSend(new CharacterDeletionRequest(characterData.GetSlot()));

        // Wait until server deletes the character.
        while (_waitingServer)
        {
            // Make sure server has deleted the character.
        }

        if (_characterSelected)
        {
            Destroy(_avatar.gameObject);
        }

        // Reload everything.
        MainManager.Instance.LoadScene(MainManager.CHARACTER_SELECTION_SCENE);
    }
Esempio n. 8
0
    public void CreateCharacterStats(int index)
    {
        CharacterDataHolder characterHolder = FindObjectOfType <GameManager>().Characters;
        Character           character       = CharacterDataSupplier.GetCharacterFromIndex(characterHolder, index);

        for (int i = 0; i < character.stats.Length; i++)
        {
            GameObject go;
            if (ObjectPool.Count > i)
            {
                go = ObjectPool[i];
            }
            else
            {
                go = Instantiate(StatsBarPrefab, transform.parent);

                ObjectPool.Add(go);
                go = ObjectPool[i];
            }
            if (!ObjectPool[i].activeSelf)
            {
                ObjectPool[i].SetActive(true);
            }

            ObjectPool[i].GetComponent <StatBar>().HookUp(character.stats[i]);
        }
        if (ObjectPool.Count > character.stats.Length)
        {
            for (int i = character.stats.Length; i < ObjectPool.Count; i++)
            {
                ObjectPool[i].SetActive(false);
            }
        }
    }
Esempio n. 9
0
    public void UpdateTargetInformation(WorldObject obj)
    {
        // Hide when object is null.
        if (obj == null)
        {
            HideTargetInformation();
            return;
        }
        // Show if hidden.
        if (!targetInformation.IsActive())
        {
            targetInformation.gameObject.SetActive(true);
            targetHpBar.gameObject.SetActive(true);
        }
        // Update information.
        CharacterDataHolder data = obj.characterData;

        if (data != null)
        {
            targetInformation.text = data.GetName();
            float progress = Mathf.Clamp01(data.GetCurrentHp() / data.GetMaxHp());
            targetHpBar.value    = progress;
            targetHpPercent.text = (int)(progress * 100f) + "%";
        }
    }
Esempio n. 10
0
    private void OnClickDeleteButton()
    {
        // Get current character data.
        CharacterDataHolder characterData = PlayerManager.instance.selectedCharacterData;

        // Return if no character is selected.
        if (characterData == null)
        {
            return;
        }

        // Disable buttons.
        createButton.enabled     = false;
        deleteButton.enabled     = false;
        enterWorldButton.enabled = false;
        exitButton.enabled       = false;

        // Set text message to deleting character.
        textMessage.text = "Deleting character " + characterData.GetName() + "...";

        // Request info.
        waitingServer = true;
        NetworkManager.instance.ChannelSend(new CharacterDeletionRequest(characterData.GetSlot()));

        // Wait until server deletes the character.
        while (waitingServer)
        {
            // Make sure server has deleted the character.
        }

        // Reload everything.
        Destroy(characterSelected); // Destroy clone object.
        SceneFader.Fade("CharacterSelection", Color.white, 0.5f);
    }
Esempio n. 11
0
 public void DisplayCharacters(bool isVisible)
 {
     if (!isVisible)
     {
         CharacterDataHolder characterHolder = FindObjectOfType <ManagementScripts.GameManager>().Characters;
         textDisplayTemplate.GetComponent <IDisplayCharacters>().Display(CharacterDataSupplier.AllCharacterNames(characterHolder));
     }
 }
Esempio n. 12
0
    public CharacterSelectionInfoResult(string accountName)
    {
        // Local data.
        List <CharacterDataHolder> characterList = new List <CharacterDataHolder>();

        // Get data from database.
        try
        {
            MySqlConnection con = DatabaseManager.GetConnection();
            MySqlCommand    cmd = new MySqlCommand(CHARACTER_QUERY, con);
            cmd.Parameters.AddWithValue("account", accountName);
            MySqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                CharacterDataHolder characterData = new CharacterDataHolder();
                characterData.SetName(reader.GetString("name"));
                characterData.SetSlot((byte)reader.GetInt16("slot"));        // TODO: Remove cast?
                characterData.SetSelected(reader.GetBoolean("selected"));
                characterData.SetClassId((byte)reader.GetInt16("class_id")); // TODO: Remove cast?
                characterData.SetLocationName(reader.GetString("location_name"));
                characterData.SetX(reader.GetFloat("x"));
                characterData.SetY(reader.GetFloat("y"));
                characterData.SetZ(reader.GetFloat("z"));
                characterData.SetHeading(reader.GetFloat("heading"));
                characterData.SetExperience(reader.GetInt64("experience"));
                characterData.SetHp(reader.GetInt64("hp"));
                characterData.SetMp(reader.GetInt64("mp"));
                characterData.SetAccessLevel((byte)reader.GetInt16("access_level")); // TODO: Remove cast?
                characterList.Add(characterData);
            }
            con.Close();
        }
        catch (Exception e)
        {
            LogManager.Log(e.ToString());
        }

        // Send the data.
        WriteShort(2); // Packet id.
        WriteByte(characterList.Count);
        foreach (CharacterDataHolder characterData in characterList)
        {
            WriteString(characterData.GetName());
            WriteByte(characterData.GetSlot());
            WriteByte(characterData.IsSelected() ? 1 : 0);
            WriteByte(characterData.GetClassId());
            WriteString(characterData.GetLocationName());
            WriteFloat(characterData.GetX());
            WriteFloat(characterData.GetY());
            WriteFloat(characterData.GetZ());
            WriteFloat(characterData.GetHeading());
            WriteLong(characterData.GetExperience());
            WriteLong(characterData.GetHp());
            WriteLong(characterData.GetMp());
            WriteByte(characterData.GetAccessLevel());
        }
    }
    private void GetAndShowCharacterDetails(string characterName)
    {
        gameManager.ActivateCharacterReturnWasActive(characterName);
        CharacterDataHolder holder = gameManager.Characters;

        CurrentCharacterName   = characterName;
        CharacterNameText.text = "Name: " + characterName;
        SetMoneyText(CharacterDataSupplier.GetCharacterFromName(holder, characterName).FinancialAccountID);
    }
Esempio n. 14
0
    public IEnumerator CustomizeCharacterAppearance(CharacterDataHolder characterData, DynamicCharacterAvatar newAvatar)
    {
        // Hide avatar until delay ends.
        newAvatar.gameObject.SetActive(false);

        // Unfortunately UMA needs a small delay to initialize.
        yield return(new WaitForSeconds(0.25f));

        // Delay ended. Show avatar.
        newAvatar.gameObject.SetActive(true);

        // Customize character.
        int hairType = characterData.GetHairType();

        if (characterData.GetRace() == 0)
        {
            newAvatar.ChangeRace("HumanMaleDCS");
            if (hairType != 0)
            {
                newAvatar.SetSlot("Hair", _hairModelsMale[characterData.GetHairType()]);
            }
        }
        if (characterData.GetRace() == 1)
        {
            newAvatar.ChangeRace("HumanFemaleDCS");
            if (hairType != 0)
            {
                newAvatar.SetSlot("Hair", _hairModelsFemale[characterData.GetHairType()]);
            }
        }

        // Set colors.
        newAvatar.SetColor("Hair", Util.IntToColor(characterData.GetHairColor()));
        newAvatar.SetColor("Skin", Util.IntToColor(characterData.GetSkinColor()));
        newAvatar.SetColor("Eyes", Util.IntToColor(characterData.GetEyeColor()));
        newAvatar.UpdateColors(true);

        Dictionary <string, DnaSetter> dna = newAvatar.GetDNA();

        dna["height"].Set(characterData.GetHeight());
        dna["belly"].Set(characterData.GetBelly());
        newAvatar.BuildCharacter(false);

        // Set visible equipable armor items.
        EquipItem(newAvatar, characterData.GetHeadItem());
        EquipItem(newAvatar, characterData.GetChestItem());
        EquipItem(newAvatar, characterData.GetLegsItem());
        EquipItem(newAvatar, characterData.GetHandsItem());
        EquipItem(newAvatar, characterData.GetFeetItem());

        // Without this delay, sometimes, we cannot not see mounted weapons.
        yield return(new WaitForSeconds(0.25f));

        // Set visible equipable left and right hand items.
        EquipItem(newAvatar, characterData.GetLeftHandItem());
        EquipItem(newAvatar, characterData.GetRightHandItem());
    }
Esempio n. 15
0
    public void UpdatePlayerInformation()
    {
        CharacterDataHolder data = MainManager.Instance.selectedCharacterData;

        playerInformation.text = data.GetName();
        float progress = Mathf.Clamp01(data.GetCurrentHp() / data.GetMaxHp());

        playerHpBar.value    = progress;
        playerHpPercent.text = (int)(progress * 100f) + "%";
    }
Esempio n. 16
0
        public void can_create_a_random_character_and_verify_exists()
        {
            string[] fakeStats = { "stat1", "stat2" };

            CharacterDataHolder characterDataHolder = new CharacterDataHolder(fakeStats);

            Character character = CharacterDataCreator.CreateRandomCharacter(characterDataHolder, 1, 2);

            Assert.NotNull(CharacterDataSupplier.AllCharacterNames(characterDataHolder));
            Assert.AreEqual(character.CharacterName, CharacterDataSupplier.AllCharacterNames(characterDataHolder)[CharacterDataSupplier.AllCharacterNames(characterDataHolder).Length - 1]);
        }
Esempio n. 17
0
        private void Awake()
        {
            GameManager gameManager = FindObjectOfType <GameManager>();

            if (gameManager != this)
            {
                Destroy(this);
            }
            bank       = new Bank();
            Characters = new CharacterDataHolder(StatTypes);
        }
 public CharacterCreationRequest(CharacterDataHolder dataHolder)
 {
     WriteShort(3); // Packet id.
     WriteString(dataHolder.GetName());
     WriteByte(dataHolder.GetRace());
     WriteFloat(dataHolder.GetHeight());
     WriteFloat(dataHolder.GetBelly());
     WriteByte(dataHolder.GetHairType());
     WriteInt(dataHolder.GetHairColor());
     WriteInt(dataHolder.GetSkinColor());
     WriteInt(dataHolder.GetEyeColor());
 }
Esempio n. 19
0
    private void CreateTestCharacters()
    {
        Bank bank = gameManager.bank;
        CharacterDataHolder characterDataHolder = gameManager.Characters;

        for (int i = 0; i < characterAmount; i++)
        {
            Character character = CharacterDataCreator.CreateRandomCharacter(characterDataHolder, Random.Range(0, 9999999), Random.Range(0, 9999999));
            CharacterDataCreator.CreateCharacterAccount(bank, character);

            SetCharcterStatsRandomMulipliers(character);
            SetCharcterStatsTreshholds(character);
        }
    }
Esempio n. 20
0
 public void SwitchGender(bool male)
 {
     if (male && avatar.activeRace.name != "HumanMaleDCS")
     {
         dataHolder = dataHolderMale;
         Destroy(avatar.gameObject);
         avatar = CharacterManager.Instance.CreateCharacter(dataHolder, 8.28f, 0.1035156f, 20.222f, 180);
     }
     if (!male && avatar.activeRace.name != "HumanFemaleDCS")
     {
         dataHolder = dataHolderFemale;
         Destroy(avatar.gameObject);
         avatar = CharacterManager.Instance.CreateCharacter(dataHolder, 8.28f, 0.1035156f, 20.222f, 180);
     }
 }
Esempio n. 21
0
    public void SaveStatePause()
    {
        GameObject boardOp = GameObject.Find("BoardOp");
        BoardOp    bo      = boardOp.GetComponent <BoardOp> ();

        mainc = new CharacterDataHolder(bo.mC);
        for (int i = 0; i < ActivePMs.Length; i++)
        {
            ActivePMs [i] = new CharacterDataHolder(bo.PMs [i]);
        }
        this.entrenceX       = mainc._x;
        this.entrenceY       = mainc._y;
        SaveLoad.recentState = this;
        SaveLoad.SaveState();
    }
Esempio n. 22
0
    public DynamicCharacterAvatar CreateCharacter(CharacterDataHolder characterData, float posX, float posY, float posZ, float heading)
    {
        DynamicCharacterAvatar newAvatar = CreateCharacter(characterData, posX, posY, posZ);

        // Rotation.
        Quaternion curHeading = newAvatar.gameObject.transform.localRotation;
        Vector3    curvAngle  = curHeading.eulerAngles;

        curvAngle.y            = heading;
        curHeading.eulerAngles = curvAngle;
        newAvatar.gameObject.transform.localRotation = curHeading;

        // Return the new DynamicCharacterAvatar.
        return(newAvatar);
    }
Esempio n. 23
0
    private void OnClickMoveUp5Button()
    {
        // Send character slot update packet to server.
        NetworkManager.instance.ChannelSend(new CharacterSlotUpdate(5, 4));
        // Update stored data.
        CharacterDataHolder temp = (CharacterDataHolder)PlayerManager.instance.characterList[3];

        PlayerManager.instance.characterList[3] = PlayerManager.instance.characterList[4];
        PlayerManager.instance.characterList[4] = temp;
        // Update button name.
        string name = selectButtons[3].GetComponentInChildren <Text>().text;

        selectButtons[3].GetComponentInChildren <Text>().text = selectButtons[4].GetComponentInChildren <Text>().text;
        selectButtons[4].GetComponentInChildren <Text>().text = name;
        // Select character.
        OnClickSelectCharacter4Button();
    }
    public static void Notify(ReceivablePacket packet)
    {
        // Get player list size.
        int listSize = packet.ReadByte();
        // Read the data.
        List <CharacterDataHolder> characterList = new List <CharacterDataHolder>(listSize);

        for (int i = 0; i < listSize; i++)
        {
            CharacterDataHolder characterData = new CharacterDataHolder();
            characterData.SetName(packet.ReadString());
            characterData.SetSlot((byte)packet.ReadByte());
            characterData.SetSelected(packet.ReadByte() == 1 ? true : false);
            characterData.SetRace((byte)packet.ReadByte());
            characterData.SetHeight(packet.ReadFloat());
            characterData.SetBelly(packet.ReadFloat());
            characterData.SetHairType(packet.ReadByte());
            characterData.SetHairColor(packet.ReadInt());
            characterData.SetSkinColor(packet.ReadInt());
            characterData.SetEyeColor(packet.ReadInt());
            characterData.SetHeadItem(packet.ReadInt());
            characterData.SetChestItem(packet.ReadInt());
            characterData.SetLegsItem(packet.ReadInt());
            characterData.SetHandsItem(packet.ReadInt());
            characterData.SetFeetItem(packet.ReadInt());
            characterData.SetLeftHandItem(packet.ReadInt());
            characterData.SetRightHandItem(packet.ReadInt());
            characterData.SetX(packet.ReadFloat());
            characterData.SetY(packet.ReadFloat());
            characterData.SetZ(packet.ReadFloat());
            characterData.SetHeading(packet.ReadFloat());
            characterData.SetExperience(packet.ReadLong());
            characterData.SetCurrentHp(packet.ReadLong());
            characterData.SetMaxHp(packet.ReadLong());
            characterData.SetCurrentMp(packet.ReadLong());
            characterData.SetMaxMp(packet.ReadLong());
            characterData.SetAccessLevel((byte)packet.ReadByte());
            characterList.Add(characterData);
        }

        // Send the data.
        MainManager.Instance.SetCharacterList(characterList);

        // Enable player selection.
        CharacterSelectionManager.Instance.SetWaitingServer(false);
    }
Esempio n. 25
0
 public void SwitchGender(bool male)
 {
     if (male && _avatar.activeRace.name != "HumanMaleDCS")
     {
         _dataHolder = _dataHolderMale;
         Destroy(_avatar.gameObject);
         _avatar = CharacterManager.Instance.CreateCharacter(_dataHolder, 8.28f, 0.1035156f, 20.222f, 180);
         _avatar.CharacterUpdated.AddListener(Updated);
     }
     if (!male && _avatar.activeRace.name != "HumanFemaleDCS")
     {
         _dataHolder = _dataHolderFemale;
         Destroy(_avatar.gameObject);
         _avatar = CharacterManager.Instance.CreateCharacter(_dataHolder, 8.28f, 0.1035156f, 20.222f, 180);
         _avatar.CharacterUpdated.AddListener(Updated);
     }
 }
Esempio n. 26
0
    public void InitMovementScene()
    {
        GameObject boardOp = GameObject.Find("BoardOp");
        BoardOp    bo      = boardOp.GetComponent <BoardOp> ();

        bo.setPMsSize(ActivePMs.Length);
        currentScene = bo.currentScene;
        GameObject   camera = GameObject.Find("Main Camera");
        CameraFollow cf     = camera.GetComponent <CameraFollow> ();

        bo.mC     = mainc.createMain("archer");
        cf.target = bo.mC.transform;
        for (int i = 0; i < ActivePMs.Length; i++)
        {
            string classselect = "";
            if (i % 3 == 0)
            {
                classselect = "mage";
            }
            else if (i % 3 == 1)
            {
                classselect = "warrior";
            }
            else if (i % 3 == 2)
            {
                classselect = "monk";
            }
            bo.PMs [i] = ActivePMs [i].createParty(classselect);
        }
        bo.MovePMsToCurrentPosition();
        enemiesCDH = new CharacterDataHolder[bo.Enemies.Length];
        for (int i = 0; i < enemiesCDH.Length; i++)
        {
            enemiesCDH [i] = new CharacterDataHolder(bo.Enemies[i]);
        }
        GameObject  battleW = GameObject.Find("BattleWarp");
        BattleWarps bwarp   = battleW.GetComponent <BattleWarps> ();

        bo.bw = bwarp;
        PauseMenu pm = camera.GetComponent <PauseMenu> ();

        pm.go = this;
        SaveLoad.recentState = this;
    }
    private void Start()
    {
        Instance = this;

        TextAsset data = Resources.Load("data/NpcData") as TextAsset;

        string[] lines = Regex.Split(data.text, "\r\n|\n\r|\n|\r");
        for (int i = 0; i < lines.Length; i++)
        {
            string line = lines[i];
            if (line.StartsWith("#"))
            {
                continue;
            }
            string[] values = line.Split(';');
            if (values.Length < 18)
            {
                continue;
            }

            CharacterDataHolder holder = new CharacterDataHolder();
            holder.SetName(values[1]);
            holder.SetRace(byte.Parse(values[2]));
            holder.SetHeight(float.Parse(values[3], CultureInfo.InvariantCulture));
            holder.SetBelly(float.Parse(values[4], CultureInfo.InvariantCulture));
            holder.SetHairType(int.Parse(values[5]));
            holder.SetHairColor(int.Parse(values[6]));
            holder.SetSkinColor(int.Parse(values[7]));
            holder.SetEyeColor(int.Parse(values[8]));
            holder.SetHeadItem(int.Parse(values[9]));
            holder.SetChestItem(int.Parse(values[10]));
            holder.SetHandsItem(int.Parse(values[11]));
            holder.SetLegsItem(int.Parse(values[12]));
            holder.SetFeetItem(int.Parse(values[13]));
            holder.SetRightHandItem(int.Parse(values[14]));
            holder.SetLeftHandItem(int.Parse(values[15]));
            holder.SetMaxHp(int.Parse(values[16]));
            holder.SetTargetable(bool.Parse(values[17]));

            NPCS.Add(int.Parse(values[0]), holder);
        }
    }
    private void Start()
    {
        // Return if account name is empty.
        if (MainManager.Instance == null || MainManager.Instance.GetAccountName() == null)
        {
            return;
        }

        // Set instance.
        if (Instance != null)
        {
            return;
        }
        Instance = this;

        // Schedule exit to login screen.
        StartCoroutine(ExitToCharacterSelection());

        // Add button listeners.
        _zoomIn.onClick.AddListener(CameraZoomIn);
        _zoomOut.onClick.AddListener(CameraZoomOut);
        _createButton.onClick.AddListener(OnClickCreateButton);
        _backButton.onClick.AddListener(OnClickBackButton);

        // Initialize character data holders.
        _dataHolderMale = new CharacterDataHolder();
        _dataHolderMale.SetRace(0);
        _dataHolderFemale = new CharacterDataHolder();
        _dataHolderFemale.SetRace(1);
        _dataHolder = _dataHolderMale;

        // Initial values.
        _avatar = CharacterManager.Instance.CreateCharacter(_dataHolderMale, 8.28f, 0.1035156f, 20.222f, 180);
        _avatar.SetSlot("Underwear", "MaleUnderwear");
        _avatar.CharacterUpdated.AddListener(Updated);
        _heightSlider.onValueChanged.AddListener(HeightChange);
        _bellySlider.onValueChanged.AddListener(BellyChange);

        // Camera position.
        Camera.main.transform.position = new Vector3(8.29f, 1.29f, 17.7f);
    }
Esempio n. 29
0
    public static void notify(ReceivablePacket packet)
    {
        // Get player list size.
        int listSize = packet.ReadByte();

        // Read the data.
        ArrayList characterList = new ArrayList(listSize);

        for (int i = 0; i < listSize; i++)
        {
            CharacterDataHolder characterData = new CharacterDataHolder();
            characterData.SetName(packet.ReadString());
            characterData.SetSlot((byte)packet.ReadByte());
            characterData.SetSelected(packet.ReadByte() == 1 ? true : false);
            characterData.SetClassId((byte)packet.ReadByte());
            characterData.SetLocationName(packet.ReadString());
            characterData.SetX(packet.ReadFloat());
            characterData.SetY(packet.ReadFloat());
            characterData.SetZ(packet.ReadFloat());
            characterData.SetHeading(packet.ReadInt());
            characterData.SetExperience(packet.ReadLong());
            characterData.SetHp(packet.ReadLong());
            characterData.SetMp(packet.ReadLong());
            characterData.SetAccessLevel((byte)packet.ReadByte());
            characterData.SetItemHead(packet.ReadInt());
            characterData.SetItemChest(packet.ReadInt());
            characterData.SetItemGloves(packet.ReadInt());
            characterData.SetItemLegs(packet.ReadInt());
            characterData.SetItemBoots(packet.ReadInt());
            characterData.SetItemRightHand(packet.ReadInt());
            characterData.SetItemLeftHand(packet.ReadInt());
            characterList.Add(characterData);
        }

        // Send the data.
        PlayerManager.instance.characterList = characterList;

        // Enable player selection.
        CharacterSelectionManager.instance.waitingServer = false;
    }
Esempio n. 30
0
    public void Create()
    {
        ActivePMs = new CharacterDataHolder[3];
        // Instantiating our Main Character
        GameObject    go    = GameObject.Instantiate(Resources.Load("MainCharacter")) as GameObject;
        MainCharacter mainC = go.GetComponent <MainCharacter> ();

        mainc       = new CharacterDataHolder(mainC);
        mainc._name = newMainName;
        // Instantiating first teammate
        GameObject  gameO  = GameObject.Instantiate(Resources.Load("PartyMember")) as GameObject;
        PartyMember party0 = gameO.GetComponent <PartyMember> ();

        party0.name = newParty1Name;
        CharacterDataHolder pmHolder0 = new CharacterDataHolder(party0);

        ActivePMs [0] = pmHolder0;
        // Instantiating second teammate
        GameObject  gameO1 = GameObject.Instantiate(Resources.Load("PartyMember")) as GameObject;
        PartyMember party1 = gameO1.GetComponent <PartyMember> ();

        party1.name = newParty2Name;
        CharacterDataHolder pmHolder1 = new CharacterDataHolder(party1);

        ActivePMs [1] = pmHolder1;
        // Instantiating third teammate
        GameObject  gameO2 = GameObject.Instantiate(Resources.Load("PartyMember")) as GameObject;
        PartyMember party2 = gameO2.GetComponent <PartyMember> ();

        party2.name = newParty3Name;
        CharacterDataHolder pmHolder2 = new CharacterDataHolder(party2);

        ActivePMs [2] = pmHolder2;
        // Set initial conditions of map
        entrenceX            = 0.47f;
        entrenceY            = -1.44f;
        isBattle             = false;
        SaveLoad.recentState = this;
        SaveLoad.SaveState();
    }