Example #1
0
        private static void LoadCharInfo(string charID, ref Packet result)
        {
            KODatabase db = new KODatabase();

            var user = db.USERDATA.Where(u => u.strUserID == charID).First();

            int nHair = 0;
            short sClass = 0;
            byte bRace = 0, bLevel = 0, bFace = 0, bZone = 0;
            string strItem = String.Empty;
            byte[] ItemArray = new byte[INVENTORY_TOTAL * 8];// = ToBytes(strItem);

            if (user != null)
            {
                result.SetString(user.strUserID);
                result.SetByte(user.Race);
                result.SetShort(user.Class);
                result.SetByte(user.Level);
                result.SetByte(user.Face);
                result.SetDword(user.HairRGB);
                result.SetByte(user.Zone);

                Packet item = new Packet();
                item.append(user.strItem, user.strItem.Length);

                for (int i = 0; i < SLOT_MAX; i++)
                {
                    int nItemID;
                    short sDurability, sCount;
                    nItemID = item.GetDWORD();
                    sDurability = item.GetShort();
                    sCount = item.GetShort();
                    if (i == HEAD || i == BREAST || i == SHOULDER || i == LEG || i == GLOVE || i == FOOT || i == RIGHTHAND || i == LEFTHAND)
                    {
                        result.SetDword(nItemID);
                        result.SetShort(sDurability);
                    }
                }
            }
            else
            {
                result.SetString(charID);
                result.SetByte(bRace);
                result.SetShort(sClass);
                result.SetByte(bLevel);
                result.SetByte(bFace);
                result.SetDword(nHair);
                result.SetByte(bZone);

                for (int i = 0; i < SLOT_MAX; i++)
                {
                    if (i == HEAD || i == BREAST || i == SHOULDER || i == LEG || i == GLOVE || i == FOOT || i == RIGHTHAND || i == LEFTHAND)
                    {
                        result.SetDword(0);
                        result.SetShort(0);
                    }
                }
            }
            
        }
Example #2
0
        internal static void LoadCharInfoReq(User user, Packet pkt)
        {
            string strChar1 = String.Empty, strChar2 = String.Empty, strChar3 = String.Empty, strChar4 = String.Empty;

            Packet result = new Packet(WIZ_ALLCHAR_INFO_REQ);

            result.SetByte(1);

            if (__VERSION >= 1920)
            {
                result.SetByte(1);
            }

            KODatabase db = new KODatabase();

            Debug.WriteLine("Char bilgleri istendi {0}", user.strAccountID);
            var AllCharID = db.ACCOUNT_CHAR.Where(u => u.strAccountID == user.strAccountID).FirstOrDefault();

            if (AllCharID != null)
            {
                Debug.WriteLine("Char bilgileri alındı.");
                LoadCharInfo(AllCharID.strCharID1.TrimEnd(' ', '/'), ref result);
                LoadCharInfo(AllCharID.strCharID2.TrimEnd(' ', '/'), ref result);
                LoadCharInfo(AllCharID.strCharID3.TrimEnd(' ', '/'), ref result);
            }
            else
            {
                Debug.WriteLine("Char bilgileri alınamadı.");
            }

            user.Send(result);
        }
Example #3
0
        private void button2_Click(object sender, EventArgs e)
        {
            KODatabase db     = new KODatabase();
            int        result = db.CREATE_NEW_CHAR("fkose3", 3, "teswet2", 1, 10, 1, 1, 60, 60, 60, 60, 60);

            MessageBox.Show(result.ToString());
        }
Example #4
0
        private static void LoadCharInfo(string charID, ref Packet result)
        {
            KODatabase db = new KODatabase();

            var user = db.USERDATA.Where(u => u.strUserID == charID).First();

            int    nHair = 0;
            short  sClass = 0;
            byte   bRace = 0, bLevel = 0, bFace = 0, bZone = 0;
            string strItem = String.Empty;

            byte[] ItemArray = new byte[INVENTORY_TOTAL * 8];// = ToBytes(strItem);

            if (user != null)
            {
                result.SetString(user.strUserID);
                result.SetByte(user.Race);
                result.SetShort(user.Class);
                result.SetByte(user.Level);
                result.SetByte(user.Face);
                result.SetDword(user.HairRGB);
                result.SetByte(user.Zone);

                Packet item = new Packet();
                item.append(user.strItem, user.strItem.Length);

                for (int i = 0; i < SLOT_MAX; i++)
                {
                    int   nItemID;
                    short sDurability, sCount;
                    nItemID     = item.GetDWORD();
                    sDurability = item.GetShort();
                    sCount      = item.GetShort();
                    if (i == HEAD || i == BREAST || i == SHOULDER || i == LEG || i == GLOVE || i == FOOT || i == RIGHTHAND || i == LEFTHAND)
                    {
                        result.SetDword(nItemID);
                        result.SetShort(sDurability);
                    }
                }
            }
            else
            {
                result.SetString(charID);
                result.SetByte(bRace);
                result.SetShort(sClass);
                result.SetByte(bLevel);
                result.SetByte(bFace);
                result.SetDword(nHair);
                result.SetByte(bZone);

                for (int i = 0; i < SLOT_MAX; i++)
                {
                    if (i == HEAD || i == BREAST || i == SHOULDER || i == LEG || i == GLOVE || i == FOOT || i == RIGHTHAND || i == LEFTHAND)
                    {
                        result.SetDword(0);
                        result.SetShort(0);
                    }
                }
            }
        }
Example #5
0
        internal static void LoadCharInfoReq(User user, Packet pkt)
        {
            string strChar1 = String.Empty, strChar2 = String.Empty, strChar3 = String.Empty, strChar4 = String.Empty;

            Packet result = new Packet(WIZ_ALLCHAR_INFO_REQ);
            result.SetByte(1);

            if (__VERSION >= 1920)
                result.SetByte(1);

            KODatabase db = new KODatabase();
            Debug.WriteLine("Char bilgleri istendi {0}", user.strAccountID);
            var AllCharID = db.ACCOUNT_CHAR.Where(u => u.strAccountID == user.strAccountID).FirstOrDefault();

            if (AllCharID != null)
            {
                Debug.WriteLine("Char bilgileri alındı.");
                LoadCharInfo(AllCharID.strCharID1.TrimEnd(' ', '/'), ref result);
                LoadCharInfo(AllCharID.strCharID2.TrimEnd(' ', '/'), ref result);
                LoadCharInfo(AllCharID.strCharID3.TrimEnd(' ', '/'), ref result);
            }
            else
                Debug.WriteLine("Char bilgileri alınamadı.");

            user.Send(result);
        }
Example #6
0
        private void HandleLogin(Packet pkt)
        {
            KODatabase db = new KODatabase();
            string     AccountID = pkt.GetString(), Passwd = pkt.GetString();
            short      resultCode = 1;

            if (AccountID == string.Empty || AccountID.Length >= Define.MAX_ID_SIZE ||
                Passwd == string.Empty || Passwd.Length >= Define.MAX_PW_SIZE)
            {
                resultCode = 2;
            }
            else
            {
                resultCode = db.TB_USER.Where(u => u.strAccountID == AccountID && u.strPasswd == Passwd).Count() > 0 ? (short)1 : (short)2;
            }

            Packet result = new Packet((byte)LogonOpcodes.LS_LOGIN_REQ);

            result.SetByte((byte)resultCode);
            if (resultCode == 1)
            {
                result.SetShort((short)db.ACCOUNT_PREMIUM(AccountID));
                result.SetString(AccountID);
            }

            Send(result);

            Debug.WriteLine("Kullanıcı girişi : {1} - {0}", resultCode, AccountID);
        }
Example #7
0
        internal static void SelectNation(ref Packet result, byte nation, string strUserID)
        {
            KODatabase db = new KODatabase();

            ACCOUNT_CHAR aChar  = db.ACCOUNT_CHAR.Where(acc => acc.strAccountID == strUserID).FirstOrDefault();
            WAREHOUSE    wHouse = db.WAREHOUSE.Where(wh => wh.strAccountID == strUserID).FirstOrDefault();

            if (wHouse == null)
            {
                wHouse = new WAREHOUSE();
                wHouse.strAccountID      = strUserID;
                wHouse.nMoney            = 0;
                wHouse.dwTime            = 0;
                wHouse.WarehouseData     = new byte[1536];
                wHouse.strSerial         = new byte[1536];
                wHouse.WarehouseDataTime = new byte[1536];

                db.WAREHOUSE.Add(wHouse);

                Debug.WriteLine("WAREHOUSE hesabı bulunamadığından yeni WAREHOUSE eklendi.");
            }

            if (aChar == null)
            {
                aChar = new ACCOUNT_CHAR();
                aChar.strAccountID = strUserID;
                aChar.bNation      = nation;
                aChar.strCharID1   = null;
                aChar.strCharID2   = null;
                aChar.strCharID3   = null;
                db.ACCOUNT_CHAR.Add(aChar);
                Debug.WriteLine("Hesap bulunamadığından yeni account eklendi.");
            }
            else
            {
                nation = aChar.bNation;
                Debug.WriteLine("Hesap bilgileri alındı. Seçilen ırk {0}", nation);
            }

            db.SaveChanges();

            if (nation != KARUS && nation != ELMORAD)
            {
                result.SetByte(0);
                return;
            }

            result.SetByte(nation);
        }
Example #8
0
        internal static void CreateNewChar(User user, Packet pkt)
        {
            Packet result = new Packet(WIZ_NEW_CHAR);
            byte   nHair;
            short  sClass;
            byte   bCharIndex, bRace, bFace, str, sta, dex, intel, cha, errorCode = 0;
            string strUserID;

            bCharIndex = pkt.GetByte();
            strUserID  = pkt.GetString();
            bRace      = pkt.GetByte();
            sClass     = pkt.GetShort();
            bFace      = pkt.GetByte();
            nHair      = pkt.GetByte();
            str        = pkt.GetByte();
            sta        = pkt.GetByte();
            dex        = pkt.GetByte();
            intel      = pkt.GetByte();
            cha        = pkt.GetByte();

            COEFFICIENT p_TableCoefficient = user.g_pMain.GetCoefficientData(sClass);

            if (bCharIndex > 2)
            {
                errorCode = NEWCHAR_NO_MORE;
            }
            else if (p_TableCoefficient == null ||
                     (str + sta + dex + intel + cha) > 300)
            {
                errorCode = NEWCHAR_INVALID_DETAILS;
            }
            else if (str < 50 || sta < 50 || dex < 50 || intel < 50 || cha < 50)
            {
                errorCode = NEWCHAR_STAT_TOO_LOW;
            }

            if (errorCode != 0)
            {
                result.SetByte(errorCode);
                user.Send(result);
                return;
            }

            int nRet = new KODatabase().CREATE_NEW_CHAR(user.GetAccountID(), bCharIndex, strUserID, bRace, sClass, nHair, bFace, str, sta, dex, intel, cha);

            result.SetByte((byte)nRet);

            user.Send(result);
        }
Example #9
0
        public static bool LoadCoefficient(ref List <COEFFICIENT> m_CoefficientArray)
        {
            try
            {
                KODatabase db = new KODatabase();

                foreach (COEFFICIENT coeff in db.COEFFICIENT)
                {
                    m_CoefficientArray.Add(coeff);
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #10
0
        public static bool LoadLevelUp(ref List <LEVEL_UP> m_arLevelUp)
        {
            try
            {
                KODatabase db = new KODatabase();

                foreach (LEVEL_UP level in db.LEVEL_UP)
                {
                    m_arLevelUp.Add(level);
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #11
0
        internal static byte GameLogin(string accountID, string strPassword, ref Packet result)
        {
            KODatabase db = new KODatabase();

            int nRet = db.TB_USER.Where(usr => usr.strAccountID == accountID && usr.strPasswd == strPassword).Count();

            if (nRet < 1)
            {
                return(0);
            }

            ACCOUNT_CHAR Account = db.ACCOUNT_CHAR.Where(acc => acc.strAccountID == accountID).FirstOrDefault();

            if (Account == null)
            {
                return(0);
            }

            return(Account.bNation);
        }
Example #12
0
        internal static void AccountLogin(User user, Packet pkt)
        {
            KODatabase db = new KODatabase();
            // Login işlemleri.
            string AccountID   = pkt.GetString();
            string strPassword = pkt.GetString();

            Packet result = new Packet(WIZ_LOGIN);

            result.SetByte(DBAgent.GameLogin(AccountID, strPassword, ref result));

            Thread thd = new Thread(() =>
            {
                user.sSid = user.g_pMain.GetNewSocketID();
            });

            thd.Start();

            user.Send(result);

            user.strAccountID = AccountID;
        }
Example #13
0
        internal static void AccountLogin(User user, Packet pkt)
        {
            KODatabase db = new KODatabase();
            // Login işlemleri.
            string AccountID = pkt.GetString();
            string strPassword = pkt.GetString();

            Packet result = new Packet(WIZ_LOGIN);

            result.SetByte(DBAgent.GameLogin(AccountID, strPassword,ref result));
            
            Thread thd = new Thread(() =>
            {
                user.sSid = user.g_pMain.GetNewSocketID();
            });

            thd.Start();

            user.Send(result);

            user.strAccountID = AccountID;
        }
Example #14
0
        internal static bool GetLetterList(string strAccountID, ref Packet result, bool isHistory)
        {
            try {
                KODatabase db = new KODatabase();

                byte bType = isHistory ? (byte)2 : (byte)1;

                var  letterlist = db.MAIL_BOX.Where(i => i.strRecipientID == strAccountID && i.bStatus == bType && !i.bDeleted).Take(10);
                byte Count      = (byte)letterlist.Count();

                result.SetByte(1).SetByte(bType);

                foreach (MAIL_BOX letter in letterlist)
                {
                    result.SetDword(letter.nLetterID)
                    .SetByte(letter.bStatus)
                    .SetString(letter.strSubject)
                    .SetString(letter.strSenderID)
                    .SetByte(letter.bType);

                    if (letter.bType == 2)
                    {
                        result.SetDword(letter.nItemID).SetShort(letter.sCount).SetDword(letter.nCoins);
                    }

                    int DayDiff = (Int32)UNIXTIME - (Int32)(letter.dtSendDate.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;

                    byte RemainDays = (byte)(DayDiff / 60 / 60 / 24);
                    result.SetDword((int)UNIXTIME).SetByte(RemainDays);
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
Example #15
0
        internal void GetServerList(ref Packet result)
        {
            KODatabase db = new KODatabase();
            short      CurrentUserCount = (short)db.CURRENTUSER.Count();

            result.SetByte((byte)ServerList.Count);

            foreach (SERVER_INFO server in ServerList)
            {
                result.SetString(server.strServerIP);
                result.SetString(server.strLanIP);
                result.SetString(server.strServerName);

                if (CurrentUserCount <= server.sPlayerCap)
                {
                    result.SetShort(CurrentUserCount);
                }
                else
                {
                    result.SetShort(-1);
                }

                result.SetShort(server.sServerID);
                result.SetShort(server.sGroupID);

                result.SetShort(server.sPlayerCap);
                result.SetShort(server.sFreePlayerCap);

                result.SetByte(0);

                result.SetString(server.strKarusKingName);
                result.SetString(server.strKarusNotice);
                result.SetString(server.strElMoradKingName);
                result.SetString(server.strElMoradNotice);
            }
        }
Example #16
0
        public LoginServerDLG()
        {
            KODatabase db = new KODatabase();

            foreach (VERSION lstVersion in db.VERSION)
            {
                version = version > lstVersion.sVersion ? version : lstVersion.sVersion;
                PatchList.Add(lstVersion);
            }

            Console.WriteLine("Login Versiyon : " + version);

            INIReader ini = new INIReader(Environment.CurrentDirectory + "/LogInServer.ini");

            FTP_URL  = ini.Read("DOWNLOAD", "URL");
            FTP_PATH = ini.Read("DOWNLOAD", "PATH");

            int ServerCount = ini.GetInt("SERVER_LIST", "COUNT");

            for (int i = 0; i < ServerCount; i++)
            {
                SERVER_INFO info = new SERVER_INFO();
                info.strServerIP        = ini.GetString("SERVER_LIST", string.Format("SERVER_{0}", i.ToString("00")));
                info.strLanIP           = ini.GetString("SERVER_LIST", string.Format("LANIP_{0}", i.ToString("00")));
                info.strServerName      = ini.GetString("SERVER_LIST", string.Format("NAME_{0}", i.ToString("00")));
                info.sServerID          = ini.GetShort("SERVER_LIST", string.Format("ID_{0}", i.ToString("00")));
                info.sGroupID           = ini.GetShort("SERVER_LIST", string.Format("GROUPID_{0}", i.ToString("00")));
                info.sPlayerCap         = ini.GetShort("SERVER_LIST", string.Format("PREMLIMIT_{0}", i.ToString("00")));
                info.sFreePlayerCap     = ini.GetShort("SERVER_LIST", string.Format("FREELIMIT_{0}", i.ToString("00")));
                info.strKarusKingName   = ini.GetString("SERVER_LIST", string.Format("KING1_{0}", i.ToString("00")));
                info.strElMoradKingName = ini.GetString("SERVER_LIST", string.Format("KING2_{0}", i.ToString("00")));
                info.strKarusNotice     = ini.GetString("SERVER_LIST", string.Format("KINGMSG1_{0}", i.ToString("00")));
                info.strElMoradNotice   = ini.GetString("SERVER_LIST", string.Format("KINGMSG2_{0}", i.ToString("00")));
                ServerList.Add(info);
            }
        }
Example #17
0
        public static bool LoadItemTable(ref List <_ITEM_TABLE> m_ItemTable)
        {
            try
            {
                KODatabase db = new KODatabase();

                foreach (ITEM item in db.ITEM)
                {
                    _ITEM_TABLE pItem = new _ITEM_TABLE();

                    pItem.m_iNum             = item.Num;
                    pItem.m_sName            = item.strName;
                    pItem.m_bKind            = item.Kind;
                    pItem.m_bSlot            = item.Slot;
                    pItem.m_bRace            = item.Race;
                    pItem.m_bClass           = item.Class;
                    pItem.m_sDamage          = item.Damage;
                    pItem.m_sDelay           = item.Delay;
                    pItem.m_sRange           = item.Range;
                    pItem.m_sWeight          = item.Weight;
                    pItem.m_sDuration        = item.Duration;
                    pItem.m_iBuyPrice        = item.BuyPrice;
                    pItem.m_iSellPrice       = item.SellPrice;
                    pItem.m_sAc              = item.Ac;
                    pItem.m_bCountable       = item.Countable;
                    pItem.m_iEffect1         = item.Effect1;
                    pItem.m_iEffect2         = item.Effect2;
                    pItem.m_bReqLevel        = item.ReqLevel;
                    pItem.m_bReqLevelMax     = item.ReqLevelMax;
                    pItem.m_bReqRank         = item.ReqRank;
                    pItem.m_bReqTitle        = item.ReqTitle;
                    pItem.m_bReqStr          = item.ReqStr;
                    pItem.m_bReqSta          = item.ReqSta;
                    pItem.m_bReqDex          = item.ReqDex;
                    pItem.m_bReqIntel        = item.ReqIntel;
                    pItem.m_bReqCha          = item.ReqCha;
                    pItem.m_bSellingGroup    = item.SellingGroup;
                    pItem.m_ItemType         = item.ItemType;
                    pItem.m_sHitrate         = item.Hitrate;
                    pItem.m_sEvarate         = item.Evasionrate;
                    pItem.m_sDaggerAc        = item.DaggerAc;
                    pItem.m_sSwordAc         = item.SwordAc;
                    pItem.m_sMaceAc          = item.MaceAc;
                    pItem.m_sAxeAc           = item.AxeAc;
                    pItem.m_sSpearAc         = item.SpearAc;
                    pItem.m_sBowAc           = item.BowAc;
                    pItem.m_bFireDamage      = item.FireDamage;
                    pItem.m_bIceDamage       = item.IceDamage;
                    pItem.m_bLightningDamage = item.LightningDamage;
                    pItem.m_bPoisonDamage    = item.PoisonDamage;
                    pItem.m_bHPDrain         = item.HPDrain;
                    pItem.m_bMPDamage        = item.MPDamage;
                    pItem.m_bMPDrain         = item.MPDrain;
                    pItem.m_bMirrorDamage    = item.MirrorDamage;
                    pItem.m_sStrB            = item.StrB;
                    pItem.m_sStaB            = item.StaB;
                    pItem.m_sDexB            = item.DexB;
                    pItem.m_sIntelB          = item.IntelB;
                    pItem.m_sChaB            = item.ChaB;
                    pItem.m_MaxHpB           = item.MaxHpB;
                    pItem.m_MaxMpB           = item.MaxMpB;
                    pItem.m_bFireR           = item.FireR;
                    pItem.m_bColdR           = item.ColdR;
                    pItem.m_bLightningR      = item.LightningR;
                    pItem.m_bMagicR          = item.MagicR;
                    pItem.m_bPoisonR         = item.PoisonR;
                    pItem.m_bCurseR          = item.CurseR;
                    pItem.ItemClass          = (short)item.ItemClass;
                    pItem.ItemExt            = (short)item.ItemExt;

                    m_ItemTable.Add(pItem);
                }
            }catch
            {
                return(false);
            }

            return(true);
        }
Example #18
0
        internal static void CreateNewChar(User user, Packet pkt)
        {
            Packet result = new Packet(WIZ_NEW_CHAR);
            byte nHair;
            short sClass;
            byte bCharIndex, bRace, bFace, str, sta, dex, intel, cha, errorCode = 0;
            string strUserID;

            bCharIndex = pkt.GetByte();
            strUserID = pkt.GetString();
            bRace = pkt.GetByte();
            sClass = pkt.GetShort();
            bFace = pkt.GetByte();
            nHair = pkt.GetByte();
            str = pkt.GetByte();
            sta = pkt.GetByte();
            dex = pkt.GetByte();
            intel = pkt.GetByte();
            cha = pkt.GetByte();

            COEFFICIENT p_TableCoefficient = user.g_pMain.GetCoefficientData(sClass);
            
            if (bCharIndex > 2)
                errorCode = NEWCHAR_NO_MORE;
            else if (p_TableCoefficient == null
                || (str + sta + dex + intel + cha) > 300)
                errorCode = NEWCHAR_INVALID_DETAILS;
            else if (str < 50 || sta < 50 || dex < 50 || intel < 50 || cha < 50)
                errorCode = NEWCHAR_STAT_TOO_LOW;
            
            if (errorCode != 0)
            {
                result.SetByte(errorCode);
                user.Send(result);
                return;
            }

            int nRet = new KODatabase().CREATE_NEW_CHAR(user.GetAccountID(), bCharIndex, strUserID, bRace, sClass, nHair, bFace, str, sta, dex, intel, cha);
            result.SetByte((byte)nRet);

            user.Send(result);
        }
Example #19
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);
            }
        }
Example #20
0
        internal static byte GetUnreadLetter(string strAccountID)
        {
            KODatabase db = new KODatabase();

            return((byte)db.MAIL_BOX.Where(i => i.strRecipientID == strAccountID && i.bStatus == 1 && !i.bDeleted).Count());
        }