Esempio n. 1
0
        public static void LoadCharInfo(string strCharName, ref Packet result)
        {
            USERDATA m_CharInfo = m_GameDb.USERDATA.Where(i => i.strUserID == strCharName).FirstOrDefault();

            result += strCharName;

            byte  race = 0, level = 0, face = 0, hair = 0, zone = 0;
            short sclass = 0;

            UInt32 itemid = 0;
            UInt16 dur    = 0;
            UInt16 stack  = 0;

            byte[] strItem = new byte[484];
            if (m_CharInfo != null)
            {
                strItem = m_CharInfo.strItem;
                race    = m_CharInfo.Race;
                level   = m_CharInfo.Level;
                face    = m_CharInfo.Face;
                hair    = m_CharInfo.Hair;
                zone    = m_CharInfo.Zone;
                sclass  = m_CharInfo.Class;
            }

            result += race;
            result += sclass;
            result += level;
            result += face;
            result += hair;
            result += zone;

            MemoryStream stream  = new MemoryStream(strItem);
            BinaryReader bReader = new BinaryReader(stream);

            for (int i = 0; i < (int)ITEM.SLOT_MAX; i++)
            {
                itemid = bReader.ReadUInt32();
                dur    = bReader.ReadUInt16();
                stack  = bReader.ReadUInt16();
                switch (i)
                {
                case (int)INVENTORY.HEAD:
                case (int)INVENTORY.BREAST:
                case (int)INVENTORY.SHOULDER:
                case (int)INVENTORY.LEG:
                case (int)INVENTORY.RIGHTHAND:
                case (int)INVENTORY.LEFTHAND:
                case (int)INVENTORY.GLOVE:
                case (int)INVENTORY.FOOT:
                    result += (itemid);
                    result += (dur);
                    break;
                }
            }
        }
Esempio n. 2
0
        public static User CreateUser(USERDATA user)
        {
            return(new User()
            {
                Identifier = user.USID,
                FullName = DecryptNeeded(user.USNAME),
                UserName = DecryptNeeded(user.USUSERNAME),

                EMail = DecryptOptional(user.USMAIL),
            });
        }
Esempio n. 3
0
    public static void SetDATAS(string user, string pin)
    {
        NetData.userDir = "OnlineSystem/_DATA/_USER_DATA__/" + user;
        NetData.passDir = NetData.userDir + @"/" + pin;
        NetData.chatDir = NetData.passDir + @"/chat";

        NetData.userEXIST   = NetData.userDir + @"/exist.tagtx";
        NetData.pin_EXIST   = NetData.passDir + @"/exist.tagtx";
        NetData.data_config = NetData.passDir + @"/data.txt";
        NetData.data_log    = NetData.passDir + @"/log.txt";
        NetData.user        = new USERDATA(user, pin);
    }
Esempio n. 4
0
        public User()
        {
            hasCharacterSelected = hasVersionChecked = false;
            m_DatabaseInfo       = new USERDATA();

            m_bPlayerAttackAmount = 100;

            m_bAddWeaponDamage = 0;
            m_bPctArmourAc     = 100;
            m_sAddArmourAc     = 0;

            m_sItemHitrate     = 100;
            m_sItemEvasionrate = 100;
            m_bHitRateAmount   = 100;
            m_sAvoidRateAmount = 100;
        }
        public bool CreateFirstUserIfNeeded()
        {
            if (!login.NeedFirstUser())
            {
                return(true);
            }

            (User newUser, var newUserPassword) = newUserService.Create();

            if (newUser == null)
            {
                return(false);
            }

            USERDATA firstUser = UserFactory.CreateUser(newUser, newUserPassword);

            db.USERDATA.Add(firstUser);
            db.SaveChanges();
            return(true);
        }
Esempio n. 6
0
        public void UserFactoryCreateTest()
        {
            var userName = "******";
            var fullName = "Max Mustermann";
            var password = "******";

            USERDATA userData = UserFactory.CreateUser(new User()
            {
                UserName = userName, FullName = fullName
            }, password);

            string cryptUserName = Encryption.EncryptString(userName);
            string cryptPassword = Password.GetHash(password + userData.USSALT);


            Assert.That(userData.USPASSWORD, Is.Not.EqualTo(password));
            Assert.That(userData.USUSERNAME, Is.Not.EqualTo(userName));

            Assert.That(userData.USUSERNAME, Is.EqualTo(cryptUserName));
            Assert.That(userData.USPASSWORD, Is.EqualTo(cryptPassword));
        }
Esempio n. 7
0
        public static USERDATA CreateUser(User user, string password)
        {
            string pwSalt = Password.GetSalt();

            var newUser = new USERDATA
            {
                USID       = Guid.NewGuid().ToString(),
                USNAME     = EncryptNeeded(user.FullName),
                USUSERNAME = EncryptNeeded(user.UserName),

                USPASSWORD = Password.GetHash(password + pwSalt),

                USMAIL = EncryptOptional(user.EMail),
                USSALT = pwSalt
            };

            // Thread sleeps for few seconds for preventing brute-force attacks
            Thread.Sleep(500);

            return(newUser);
        }
Esempio n. 8
0
        public static bool LoadUserData(string AccountID, string strCharID, ref User pUser)
        {
            KODatabase db = new KODatabase();

            try
            {
                USERDATA pData = db.USERDATA.Where(user => user.strUserID == strCharID).FirstOrDefault();

                if (pData == null)
                {
                    return(false);
                }

                pUser.m_bNation  = pData.Nation;
                pUser.m_bRace    = pData.Race;
                pUser.m_sClass   = pData.Class;
                pUser.m_nHair    = pData.HairRGB;
                pUser.m_bRank    = pData.Rank;
                pUser.m_bTitle   = pData.Title;
                pUser.m_bLevel   = pData.Level;
                pUser.m_iExp     = pData.Exp;
                pUser.m_iLoyalty = pData.Loyalty;
                pUser.m_bFace    = pData.Face;
                pUser.m_bCity    = (sbyte)pData.City;
                pUser.m_bKnights = pData.Knights;
                pUser.m_bFame    = pData.Fame;
                pUser.m_sHp      = pData.Hp;
                pUser.m_sMp      = pData.Mp;
                pUser.m_sSp      = pData.Sp;
                pUser.m_bStats[(int)StatType.STAT_STR] = pData.Strong;
                pUser.m_bStats[(int)StatType.STAT_STA] = pData.Sta;
                pUser.m_bStats[(int)StatType.STAT_DEX] = pData.Dex;
                pUser.m_bStats[(int)StatType.STAT_INT] = pData.Intel;
                pUser.m_bStats[(int)StatType.STAT_CHA] = pData.Cha;
                pUser.m_bAuthority = pData.Authority;
                pUser.m_sPoints    = pData.Points;
                pUser.m_iGold      = pData.Gold;
                pUser.m_bZone      = pData.Zone;
                pUser.m_sBind      = (long)pData.Bind;

                pUser.m_curx = (float)(pData.PX / 100.0f);
                pUser.m_curz = (float)(pData.PZ / 100.0f);
                pUser.m_cury = (float)(pData.PY / 100.0f);
                pUser.m_oldx = pUser.m_curx;
                pUser.m_oldy = pUser.m_cury;
                pUser.m_oldz = pUser.m_curz;

                pUser.m_dwTime = pData.dwTime;

                pUser.m_bstrSkill = pData.strSkill.ToCharArray();

                Packet itemBuffer     = new Packet(pData.strItem);
                Packet serialBuffer   = new Packet(pData.strSerial);
                Packet itemTimeBuffer = new Packet(pData.strItemTime);
                for (int i = 0; i < INVENTORY_TOTAL; i++)
                {
                    Int64 nSerialNum;
                    Int32 nItemID;
                    Int16 sDurability, sCount, nRentalTime;
                    Int32 nItemTime;

                    nItemID     = itemBuffer.GetDWORD();
                    sDurability = itemBuffer.GetShort();
                    sCount      = itemBuffer.GetShort();
                    nSerialNum  = serialBuffer.GetInt64();
                    nItemTime   = itemTimeBuffer.GetDWORD();
                    nRentalTime = itemTimeBuffer.GetShort();

                    _ITEM_DATA pItem = new _ITEM_DATA();

                    pItem.nNum                 = nItemID;
                    pItem.sCount               = sCount;
                    pItem.sDuration            = sDurability;
                    pItem.nSerialNum           = nSerialNum;
                    pItem.nExpirationTime      = nItemTime;
                    pItem.sRemainingRentalTime = nRentalTime;

                    pUser.m_sItemArray[i] = pItem;
                }

                return(true);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Karakter bilgileri alınırken özel durum oluştu : " + ex.Message);

                return(false);
            }
        }