예제 #1
0
    public void Initialize()
    {
        Data = new CharacterStatusData();

        WalkSpeed   = 1f;
        StrafeSpeed = 1.75f;
        RunSpeed    = 4f;
        SprintSpeed = 5.2f;

        ArmFatigue    = 0;
        MaxArmFatigue = 5;

        ResetSpeedModifier();

        MaxStamina          = 100;
        Stamina             = 100;
        StaminaRestoreSpeed = 6;
        StaminaReduceMult   = 1;

        MaxHealth = 160;
        Health    = 160;

        Energy    = 3000;
        MaxEnergy = 3000;

        EyeSight = 1.5f;

        Intelligence = 2;

        RadiationDefense = 10;

        MaxCarryWeight = 40.0f;
    }
예제 #2
0
        public bool Serialize(CharacterStatusData data)
        {
            bool ret = true;

            ret &= Serialize((byte)Encoding.Unicode.GetBytes(data.Name).Length);
            ret &= Serialize(data.Name);
            ret &= Serialize(data.Gender);
            ret &= Serialize(data.Level);
            ret &= Serialize(data.HClass);
            ret &= Serialize(data.Exp);
            ret &= Serialize(data.HealthPoint);
            ret &= Serialize(data.MagicPoint);
            ret &= Serialize(data.HpRegeneration);
            ret &= Serialize(data.MpRegeneration);
            ret &= Serialize(data.MoveSpeed);
            ret &= Serialize(data.Attack);
            ret &= Serialize(data.Defense);
            ret &= Serialize(data.SkillPoint);
            ret &= Serialize(data.DreamStone);

            for (int i = 0; i < HeroData.skillNum; i++)
            {
                ret &= Serialize(data.SkillLevel[i]);
            }

            for (int i = 0; i < HeroData.equipNum; i++)
            {
                ret &= Serialize(data.EquipLevel[i]);
            }

            return(ret);
        }
예제 #3
0
    public void SetCharacterStatus(CharacterStatusData characterStatusData)
    {
        hName          = characterStatusData.Name;
        level          = characterStatusData.Level;
        hGender        = (Gender)characterStatusData.Gender;
        charClass      = (CharClass)characterStatusData.HClass;
        exp            = characterStatusData.Exp;
        healthPoint    = characterStatusData.HealthPoint;
        magicPoint     = characterStatusData.MagicPoint;
        hpRegeneration = characterStatusData.HpRegeneration;
        mpRegeneration = characterStatusData.MpRegeneration;
        attack         = characterStatusData.Attack;
        defense        = characterStatusData.Defense;
        dreamStone     = characterStatusData.DreamStone;
        skillLevel     = new int[skillNum];
        equipLevel     = new int[equipNum];

        for (int i = 0; i < skillNum; i++)
        {
            skillLevel[i] = characterStatusData.SkillLevel[i];
        }

        for (int i = 0; i < equipNum; i++)
        {
            equipLevel[i] = characterStatusData.EquipLevel[i];
        }
    }
예제 #4
0
    //캐릭터 정보 요청
    public void RequestCharacterStatus(DataPacket packet)
    {
        Console.WriteLine(packet.client.RemoteEndPoint.ToString() + "캐릭터 정보 요청");

        CharacterIndexPacket characterIndexPacket = new CharacterIndexPacket(packet.msg);
        CharacterIndexData   characterIndexData   = characterIndexPacket.GetData();

        string id        = loginUser[packet.client];
        int    character = characterIndexData.Index;

        userState[id].characterId = character;

        HeroData              heroData              = database.GetHeroData(id, character);
        CharacterStatusData   characterStatusData   = new CharacterStatusData(heroData);
        CharacterStatusPacket characterStatusPacket = new CharacterStatusPacket(characterStatusData);

        characterStatusPacket.SetPacketId((int)ServerPacketId.CharacterStatus);

        Console.WriteLine(characterStatusData.HClass + ", " + characterStatusData.Gender);

        byte[] msg = CreatePacket(characterStatusPacket);
        packet = new DataPacket(msg, packet.client);

        lock (sendLock)
        {
            sendMsgs.Enqueue(packet);
        }
    }
예제 #5
0
        public bool Deserialize(ref CharacterStatusData element)
        {
            if (GetDataSize() == 0)
            {
                // 데이터가 설정되지 않았다.
                return(false);
            }

            bool   ret        = true;
            byte   nameLength = 0;
            string name;
            byte   gender         = 0;
            byte   level          = 0;
            byte   hClass         = 0;
            byte   exp            = 0;
            byte   healthPoint    = 0;
            byte   magicPoint     = 0;
            byte   hpRegeneration = 0;
            byte   mpRegeneration = 0;
            byte   moveSpeed      = 0;
            byte   attack         = 0;
            byte   defense        = 0;
            byte   skillPoint     = 0;
            byte   dreamStone     = 0;

            byte[] skillLevel = new byte[HeroData.skillNum];
            byte[] equipLevel = new byte[HeroData.equipNum];

            ret &= Deserialize(ref nameLength);
            ret &= Deserialize(out name, nameLength);
            ret &= Deserialize(ref gender);
            ret &= Deserialize(ref level);
            ret &= Deserialize(ref hClass);
            ret &= Deserialize(ref exp);
            ret &= Deserialize(ref healthPoint);
            ret &= Deserialize(ref magicPoint);
            ret &= Deserialize(ref hpRegeneration);
            ret &= Deserialize(ref mpRegeneration);
            ret &= Deserialize(ref moveSpeed);
            ret &= Deserialize(ref attack);
            ret &= Deserialize(ref defense);
            ret &= Deserialize(ref skillPoint);
            ret &= Deserialize(ref dreamStone);

            for (int i = 0; i < HeroData.skillNum; i++)
            {
                ret &= Deserialize(ref skillLevel[i]);
            }

            for (int i = 0; i < HeroData.equipNum; i++)
            {
                ret &= Deserialize(ref equipLevel[i]);
            }

            element = new CharacterStatusData(name, level, gender, hClass, exp, healthPoint, magicPoint, hpRegeneration,
                                              mpRegeneration, moveSpeed, attack, defense, skillPoint, dreamStone, skillLevel, equipLevel);

            return(ret);
        }
예제 #6
0
    //Server - 캐릭터 정보 수신
    public void CharacterData(DataPacket packet)
    {
        Debug.Log("캐릭터 정보 수신");
        CharacterStatusPacket characterStatusPacket = new CharacterStatusPacket(packet.msg);
        CharacterStatusData   characterStatusData   = characterStatusPacket.GetData();

        characterStatus.SetCharacterStatus(characterStatusData);
    }
예제 #7
0
    //Server - 캐릭터 정보 수신
    public void CharacterStatus(DataPacket packet)
    {
        Debug.Log("캐릭터 정보 수신");
        CharacterStatusPacket characterStatusPacket = new CharacterStatusPacket(packet.msg);
        CharacterStatusData   characterStatusData   = characterStatusPacket.GetData();

        characterStatus.SetCharacterStatus(characterStatusData);

        if (SceneChanger.Instance.CurrentScene == SceneChanger.SceneName.LoadingScene)
        {
            SceneChanger.Instance.LoadingCheck[1] = true;
        }
    }
예제 #8
0
    //Server - 캐릭터 정보 수신
    public void SetCharacterStatus(DataPacket packet)
    {
        Debug.Log("캐릭터 정보 수신");
        CharacterStatusPacket characterStatusPacket = new CharacterStatusPacket(packet.msg);
        CharacterStatusData   characterStatusData   = characterStatusPacket.GetData();

        Debug.Log(characterStatusData.HClass + ", " + characterStatusData.Gender);

        CharacterStatus characterStatus = GameObject.Find("CharacterStatus").GetComponent <CharacterStatus>();

        characterStatus.SetCharacterStatus(characterStatusData);

        if (SceneChanger.Instance.CurrentScene == SceneChanger.SceneName.LoadingScene)
        {
            SceneChanger.Instance.LoadingCheck[1] = true;
        }
    }
예제 #9
0
    public void SetCharacterStatus(CharacterStatusData characterStatusData)
    {
        hName          = characterStatusData.Name;
        level          = characterStatusData.Level;
        hGender        = (Gender)characterStatusData.Gender;
        charClass      = (CharClass)characterStatusData.HClass;
        exp            = characterStatusData.Exp;
        maxExp         = characterStatusData.Exp;
        healthPoint    = characterStatusData.HealthPoint;
        maxHealthPoint = characterStatusData.HealthPoint;
        maxMagicPoint  = 2000;
        magicPoint     = 2000;
        hpRegeneration = characterStatusData.HpRegeneration;
        mpRegeneration = characterStatusData.MpRegeneration;
        moveSpeed      = characterStatusData.MoveSpeed;
        attack         = characterStatusData.Attack;
        defense        = characterStatusData.Defense;
        dreamStone     = characterStatusData.DreamStone;
        activeSkillUse = new bool[5];
        skillLevel     = new int[skillNum];
        equipLevel     = new int[equipNum];

        Debug.Log(moveSpeed);

        for (int i = 0; i < skillNum; i++)
        {
            skillLevel[i] = characterStatusData.SkillLevel[i];
        }

        for (int i = 0; i < equipNum; i++)
        {
            equipLevel[i] = characterStatusData.EquipLevel[i];
        }

        for (int i = 0; i < activeSkillUse.Length; i++)
        {
            activeSkillUse[i] = true;
        }
    }