Re-initializing the mouse?
#1

I tried to do something like this;

pawn Code:
else if( clickedid == startup1 ) // Login
        {
            if( fexist ( accPath ( playerid ) ) ) //They exist, this is good! Let them continue.
            {
                INI_ParseFile( accPath ( playerid ), "LoadAccount_%s", .bExtra = true, .extra = playerid);

                ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Access your account", "Please login to your account using your unique password that you set when you created it.", "Submit", "Back" );
            }

            else if( !fexist ( accPath ( playerid ) ) ) //They don't have an account, but they're hitting 'Login'? Why?
                return ShowPlayerDialog( playerid, DIALOG_BLANK, DIALOG_STYLE_MSGBOX, "You can't do that!", "ACTION FAILED\n\nYou don't have an account! Why are you trying to login to something that is non-existant?\n\nPlease click \"Create an Account\" to create an account!", "OK", "" );

        }
pawn Code:
case DIALOG_LOGIN:
        {
            if ( response )
            {
                if( !strlen ( inputtext ) )
                    return ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Incorrect password!", "You have entered an incorrect password. Please try again!\n\nNot your account? Type \"/q\" and change your name in the SA:MP browser!", "Submit", "Back" );

                if ( udb_hash ( inputtext ) == accInfo [ playerid ] [ Passcode ] )
                {
                    INI_ParseFile( accPath ( playerid ), "LoadAccount_%s", .bExtra = true, .extra = playerid);

                    accLoggedIn [ playerid ] = 1; // They are now 'logged in'!

                    GivePlayerMoney ( playerid, accInfo [ playerid ] [ Cash ] );

                    HideStartupTextdraws( playerid );

                    SetSpawnInfo ( playerid, 255, accInfo [ playerid ] [ Model ], 0, 0, 10.0, 0.0, 4, 1, 24, 999, 31, 100 );
                    SpawnPlayer ( playerid );
                }
                else return ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Incorrect password!", "You have entered an incorrect password. Please try again!\n\nNot your account? Type \"/q\" and change your name in the SA:MP browser!", "Submit", "Back" );
            }
            else if ( !response )
            {
                //They hit 'back'
                SelectTextDraw( playerid, 0xC90411FF );
            }
        }
However, when they hit back, their mouse disappears. (even though I redid SelectTextDraw), what's wrong?
Reply
#2

Could be a SA:MP bug due to the fact that responding to a dialog hides the cursor, I shall test it.

P.S.
pawn Code:
//They don't have an account, but they're hitting 'Login'? Why?
why give them that option then? >.>


I've tested enabling TD selection, showing a dialog then responding to that dialog, and it works fine.
Reply
#3

Quote:
Originally Posted by MP2
View Post
Could be a SA:MP bug due to the fact that responding to a dialog hides the cursor, I shall test it.

P.S.
pawn Code:
//They don't have an account, but they're hitting 'Login'? Why?
why give them that option then? >.>


I've tested enabling TD selection, showing a dialog then responding to that dialog, and it works fine.
I'd rather not have to reformat my 'menu' according to their account status.

@I've... : Why doesn't this work?
Reply
#4

You never cancel the TD selection. Use CancelSelectTextDraw (or whatever the function is called).
Reply
#5

Quote:
Originally Posted by MP2
View Post
You never cancel the TD selection. Use CancelSelectTextDraw (or whatever the function is called).
Thank you. Will test shortly!
Reply
#6

pawn Code:
case DIALOG_LOGIN:
        {
            if ( response )
            {
                if( !strlen ( inputtext ) )
                    return ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Incorrect password!", "You have entered an incorrect password. Please try again!\n\nNot your account? Type \"/q\" and change your name in the SA:MP browser!", "Submit", "Back" );

                if ( udb_hash ( inputtext ) == accInfo [ playerid ] [ Passcode ] )
                {
                    INI_ParseFile( accPath ( playerid ), "LoadAccount_%s", .bExtra = true, .extra = playerid);

                    accLoggedIn [ playerid ] = 1; // They are now 'logged in'!

                    GivePlayerMoney ( playerid, accInfo [ playerid ] [ Cash ] );

                    HideStartupTextdraws( playerid );

                    SetSpawnInfo ( playerid, 255, accInfo [ playerid ] [ Model ], 0, 0, 10.0, 0.0, 4, 1, 24, 999, 31, 100 );
                    SpawnPlayer ( playerid );
                }
                else return ShowPlayerDialog( playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Incorrect password!", "You have entered an incorrect password. Please try again!\n\nNot your account? Type \"/q\" and change your name in the SA:MP browser!", "Submit", "Back" );
            }
            else if ( !response )
            {
                //They hit 'back'
                CancelSelectTextDraw ( playerid );
                SelectTextDraw( playerid, 0xC90411FF );
            }
        }
Not working. :3
Reply
#7

Use CancelSelectTextDraw ( playerid ); when you show the dialog.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)