private void CGameStateController_OnProcessSecTimer(CGameStateController gs)
        {
            if (DateTime.Now - m_LastGlobalAccSave >= m_GlobalAccSaveDueTime)
            {
                for (int i = 0; i < gs.Players.Length; i++)
                {
                    if (gs.Players[i]?.State == EPlayerState.AT_WORLD)
                    {
                        var account = gs.Players[i].AccountData.Value;

                        if (AccountCRUD.TrySaveAccount(ref account) != AccountCRUD.EResult.NO_ERROR)
                        {
                            // TODO: the account could not be saved for some reason.
                            // Do something...
                            throw new Exception($"The account {gs.Players[i].AccountData.Value.Info.LoginInfo.AccName} couldn't be saved.");
                        }
                        else
                        {
                            W2Log.Write($"The account {gs.Players[i].AccountData.Value.Info.LoginInfo.AccName} was saved successfuly.", ELogType.GAME_EVENT);
                        }
                    }
                }

                m_LastGlobalAccSave = gs.SinceInit;
            }
        }
Ejemplo n.º 2
0
        public static ERequestResult HandleRequest(CGameStateController gs, CPlayer player)
        {
            if (gs.PlayerState[player] != EPlayerState.UNITIALIZED)
            {
                return(ERequestResult.PLAYER_INCONSISTENT_STATE);
            }

            MAccountLoginPacket packet = MyMarshal.GetStructure <MAccountLoginPacket>(player.RecvPacket);

            MAccountFile?nAccFile;

            AccountCRUD.EErrorMsg accErr = AccountCRUD.TryRead(packet.AccName, out nAccFile);

            if (accErr == AccountCRUD.EErrorMsg.NO_ERROR)
            {
                MLoginSuccessfulPacket answer =
                    PacketHelper.GetEmptyValid <MLoginSuccessfulPacket>(MLoginSuccessfulPacket.Opcode);

                MAccountFile accFile = nAccFile.Value;

                answer.AccName   = accFile.Info.LoginInfo.AccName;
                answer.Cargo     = accFile.Cargo;
                answer.CargoCoin = accFile.CargoCoin;

                for (int i = 0; i < GameBasics.MAXL_ACC_MOB; i++)
                {
                    unsafe
                    {
                        answer.SelChar.Coin[i]  = accFile.MobCore[i].Coin;
                        answer.SelChar.Equip[i] = accFile.MobCore[i].Equip;
                        answer.SelChar.Exp[i]   = accFile.MobCore[i].Exp;
                        answer.SelChar.Guild[i] = accFile.MobCore[i].Guild;
                        answer.SelChar.Name[i]  = accFile.MobCore[i].Name;
                        answer.SelChar.Score[i] = accFile.MobCore[i].BaseScore;
                        answer.SelChar.SPosX[i] = accFile.MobCore[i].StellarGemPosition.X;
                        answer.SelChar.SPosY[i] = accFile.MobCore[i].StellarGemPosition.Y;
                    }
                }

                player.SendPacket(MyMarshal.GetBytes(answer));
            }
            else if (accErr == AccountCRUD.EErrorMsg.ACC_NOT_FOUND)
            {
                MTextMessagePacket answer =
                    PacketHelper.GetEmptyValid <MTextMessagePacket>(MTextMessagePacket.Opcode);

                answer.Message = "Esta conta não foi encontrada.";

                player.SendPacket(MyMarshal.GetBytes(answer));
            }
            else
            {
                return(ERequestResult.UNKNOWN);
            }

            return(ERequestResult.NO_ERROR);
        }
 public ActionResult Register(Account reg)
 {
     if (AccountCRUD.RegisterUser(reg))
     {
         return(Content("<script>alert('Account Registeration Successful.');window.location = 'Login';</script>"));
     }
     else
     {
         return(Content("<script>alert('Account Registeration Failed.');window.location = 'SignUp'</script>"));
     }
 }
        public ActionResult ChangePassword(FormCollection collection)
        {
            //int id = 1;
            string newPass = collection["Password"];

            if (AccountCRUD.ChangePassword((int)Session["UserID"], newPass))
            {
                return(Content("<script>alert('Password Changed Successfully Successfully.');window.location.href=document.referrer;</script>"));
            }
            else
            {
                return(Content("<script>alert('Password could not be Changed');window.location.href=document.referrer</script>"));
            }
        }
Ejemplo n.º 5
0
        public ActionResult UpdateUserPriviledges(FormCollection collection)
        {
            int id    = Int32.Parse(collection["UserID"]);
            int value = Int32.Parse(collection["AccessStatus"]);

            if (AccountCRUD.ChangePriviledges(id, value == 1 ? "Admin" : "User"))
            {
                return(Content("<script>alert('User Status has been Updated Successfully.');window.location.href=document.referrer;</script>"));
            }
            else
            {
                return(Content("<script>alert('User Status could not be Updated.');window.location.href=document.referrer</script>"));
            }
        }
        public ActionResult DeleteAccount()
        {
            List <Order> orders = OrderCRUD.GetUserOrders((int)Session["UserID"]);

            //if any order exists that hasnt been delievered then cannot delete account
            if (orders.FindIndex(item => item.OrderStatus != "Delivered") < 0)
            {
                AccountCRUD.RemoveUser((int)Session["UserID"]);
                return(Redirect("Home"));
            }
            else
            {
                return(Content("<script>alert('You still have pending Orders.');window.location.href=document.referrer</script>"));
            }
        }
        public ActionResult Authenticate(string email, string password)
        {
            Account UserAcc = AccountCRUD.UserLogin(email, password);

            if (UserAcc != null)
            {
                Session["UserID"]      = UserAcc.UserID;
                Session["UserName"]    = UserAcc.Username;
                Session["Priviledges"] = UserAcc.AccStatus;
                Session["OrderItems"]  = new List <Tuple <int, int, int> >();

                return(RedirectToAction(UserAcc.AccStatus == "Admin" ? "Console" : "DashBoard", UserAcc.AccStatus));
            }
            else
            {
                return(Content("<script>alert('Incorrect Email or Password.');window.location = 'Login';</script>"));
            }
        }
Ejemplo n.º 8
0
        public ActionResult Authenticate(string uname, string password)
        {
            Account UserAcc = AccountCRUD.UserLogin(uname, password);

            if (UserAcc != null)
            {
                Session["UserID"]   = UserAcc.UserID;
                Session["FullName"] = UserAcc.FullName;
                Session["UserType"] = UserAcc.AccType;
                Session["PrisonID"] = UserAcc.Prison.PrisonID;

                return(RedirectToAction("DashBoard", UserAcc.AccType == "J" ? "Jailer" : "JailO"));
            }
            else
            {
                return(Content("<script>alert('Incorrect Email or Password.');window.location = 'Login';</script>"));
            }
        }
        public ActionResult ChangeInfo(FormCollection collection)
        {
            Account myacc = new Account();

            myacc.UserID    = Int32.Parse(collection["UserID"]);
            myacc.Email     = collection["Email"];
            myacc.Username  = collection["Username"];
            myacc.ContactNo = collection["ContactNo"];
            myacc.Address   = collection["Address"];
            myacc.Gender    = Convert.ToChar(collection["Gender"]);
            if (AccountCRUD.UpdateUser(myacc))
            {
                return(Content("<script>alert('Profile Edited Successfully.');window.location.href=document.referrer;</script>"));
            }
            else
            {
                return(Content("<script>alert('Profile Could not be Updated');window.location.href=document.referrer</script>"));
            }
        }
 public ActionResult EditInfo(int id)
 {
     return(PartialView("_EditInfo", AccountCRUD.GetAccount(id)));
 }
 //User Account related methods
 public ActionResult ProfileInfo()
 {
     return(View(AccountCRUD.GetAccount((int)Session["UserID"])));
 }
Ejemplo n.º 12
0
 public ActionResult UserDetail(int id)
 {
     return(PartialView("_UserDetail", AccountCRUD.GetAccount(id)));
 }
Ejemplo n.º 13
0
 public ActionResult Users()
 {
     return(View(AccountCRUD.GetAllUsers()));
 }
Ejemplo n.º 14
0
        private EPlayerRequestResult CGameStateController_OnProcessPacket(CGameStateController gs, CPlayer player)
        {
            switch (player.RecvPacket.ReadNextUShort(4))
            {
            case MAccountLoginPacket.Opcode:
            {
                if (player.State != EPlayerState.WAITING_TO_LOGIN)
                {
                    return(EPlayerRequestResult.PLAYER_INCONSISTENT_STATE);
                }

                MAccountLoginPacket packet = W2Marshal.GetStructure <MAccountLoginPacket>(player.RecvPacket);

                MAccountFile?       nAccFile;
                AccountCRUD.EResult accErr = AccountCRUD.TryRead(packet.AccName, out nAccFile);

                if (accErr != AccountCRUD.EResult.NO_ERROR)
                {
                    // if account doesn't exist...
                    if (accErr == AccountCRUD.EResult.ACC_NOT_FOUND)
                    {
                        // create a new account file
                        MAccountFile newAccFile = W2Marshal.CreateEmpty <MAccountFile>();
                        // set the username & password
                        newAccFile.Info.LoginInfo.AccName  = packet.AccName;
                        newAccFile.Info.LoginInfo.Password = packet.Password;

                        AccountCRUD.EResult createAccErr = AccountCRUD.TrySaveAccount(ref newAccFile);

                        if (createAccErr == AccountCRUD.EResult.NO_ERROR)
                        {
                            accErr = AccountCRUD.TryRead(packet.AccName, out nAccFile);

                            if (accErr != AccountCRUD.EResult.NO_ERROR)
                            {
                                return(EPlayerRequestResult.UNKNOWN);
                            }
                        }
                        else if (createAccErr == AccountCRUD.EResult.ACC_NOT_SAVED)
                        {
                            MTextMessagePacket createFailedAnswer =
                                W2Marshal.GetEmptyValid <MTextMessagePacket>(MTextMessagePacket.Opcode);

                            createFailedAnswer.Message = "Não foi possível criar a conta.";

                            player.SendPacket(createFailedAnswer);

                            return(EPlayerRequestResult.NO_ERROR);
                        }
                        else if (createAccErr == AccountCRUD.EResult.UNKNOWN)
                        {
                            return(EPlayerRequestResult.UNKNOWN);
                        }
                    }
                    else
                    {
                        return(EPlayerRequestResult.UNKNOWN);
                    }
                }

                MLoginSuccessfulPacket answer =
                    W2Marshal.GetEmptyValid <MLoginSuccessfulPacket>(MLoginSuccessfulPacket.Opcode);

                MAccountFile accFile = nAccFile.Value;

                answer.AccName   = accFile.Info.LoginInfo.AccName;
                answer.Cargo     = accFile.Cargo;
                answer.CargoCoin = accFile.CargoCoin;

                for (int i = 0; i < GameBasics.MAXL_ACC_MOB; i++)
                {
                    unsafe
                    {
                        answer.SelChar.Coin[i]  = accFile.MobCore[i].Coin;
                        answer.SelChar.Equip[i] = accFile.MobCore[i].Equip;
                        answer.SelChar.Exp[i]   = accFile.MobCore[i].Exp;
                        answer.SelChar.Guild[i] = accFile.MobCore[i].Guild;
                        answer.SelChar.Name[i]  = accFile.MobCore[i].Name;
                        answer.SelChar.Score[i] = accFile.MobCore[i].BaseScore;
                        answer.SelChar.SPosX[i] = accFile.MobCore[i].StellarGemPosition.X;
                        answer.SelChar.SPosY[i] = accFile.MobCore[i].StellarGemPosition.Y;
                    }
                }

                player.SendPacket(answer);

                player.State = EPlayerState.SEL_CHAR;


                return(EPlayerRequestResult.NO_ERROR);
            }

            default: return(EPlayerRequestResult.PACKET_NOT_HANDLED);
            }
        }
Ejemplo n.º 15
0
        private EPlayerRequestResult CGameStateController_OnProcessPacket(CGameStateController gs, CPlayer player)
        {
            switch (player.RecvPacket.ReadNextUShort(4))
            {
            case MAccountLoginPacket.Opcode:
            {
                if (player.State != EPlayerState.WAITING_TO_LOGIN)
                {
                    return(EPlayerRequestResult.PLAYER_INCONSISTENT_STATE);
                }

                MAccountLoginPacket packet = W2Marshal.GetStructure <MAccountLoginPacket>(player.RecvPacket);

                MAccountFile?       nAccFile;
                AccountCRUD.EResult accErr = AccountCRUD.TryRead(packet.AccName, out nAccFile);

                if (accErr == AccountCRUD.EResult.NO_ERROR)
                {
                    MLoginSuccessfulPacket answer =
                        W2Marshal.GetEmptyValid <MLoginSuccessfulPacket>(MLoginSuccessfulPacket.Opcode);

                    MAccountFile accFile = nAccFile.Value;

                    answer.AccName   = accFile.Info.LoginInfo.AccName;
                    answer.Cargo     = accFile.Cargo;
                    answer.CargoCoin = accFile.CargoCoin;

                    for (int i = 0; i < GameBasics.MAXL_ACC_MOB; i++)
                    {
                        unsafe
                        {
                            answer.SelChar.Coin[i]  = accFile.MobCore[i].Coin;
                            answer.SelChar.Equip[i] = accFile.MobCore[i].Equip;
                            answer.SelChar.Exp[i]   = accFile.MobCore[i].Exp;
                            answer.SelChar.Guild[i] = accFile.MobCore[i].Guild;
                            answer.SelChar.Name[i]  = accFile.MobCore[i].Name;
                            answer.SelChar.Score[i] = accFile.MobCore[i].BaseScore;
                            answer.SelChar.SPosX[i] = accFile.MobCore[i].StellarGemPosition.X;
                            answer.SelChar.SPosY[i] = accFile.MobCore[i].StellarGemPosition.Y;
                        }
                    }

                    player.SendPacket(answer);

                    player.State = EPlayerState.SEL_CHAR;
                }
                else if (accErr == AccountCRUD.EResult.ACC_NOT_FOUND)
                {
                    MTextMessagePacket answer =
                        W2Marshal.GetEmptyValid <MTextMessagePacket>(MTextMessagePacket.Opcode);

                    answer.Message = "Esta conta não foi encontrada.";

                    player.SendPacket(answer);
                }
                else
                {
                    return(EPlayerRequestResult.UNKNOWN);
                }

                return(EPlayerRequestResult.NO_ERROR);
            }

            default: return(EPlayerRequestResult.PACKET_NOT_HANDLED);
            }
        }