SA-MP Forums Archive
No one seems to be able to help - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: No one seems to be able to help (/showthread.php?tid=422853)



No one seems to be able to help - Eminem 2ka9 - 15.03.2013

This is something i've been posting over and over for the last week, and I haven't gotten ONE answer, i don't know if it's too hard or i'm not explaining it enough.

I have LuxAdmin as an admin system. If i put the below code into OnPlayerSpawn, then it will work good. But, if i put it in to OnPlayerConnect, it does not work, the dialog appears, but when you type into the dialog and press enter, the dialog closes and nothing happens (No logging in, registering) I don't know what the problem is.

pawn Код:
//==============================================================================
// Request Register
//==============================================================================
 if(AccInfo[playerid][Registered] == 0 && ServerInfo[MustRegister] == 1)
    {
        #if USE_DIALOGS == true
        new rstring[256];
        format(rstring,256,"Welcome to the '%s'\n\nAccount '%s' is not registred!\n\nEnter the password to Register your Account:",GetServerHostName(),pName(playerid));
        ShowPlayerDialog(playerid,DIALOGID+66,DIALOG_STYLE_INPUT,"Register Account",rstring,"Register","Quit");
        #endif
        return 1;
    }
//==============================================================================
// Request Login
//==============================================================================
    if(ServerInfo[MustLogin] == 1 && AccInfo[playerid][Registered] == 1 && AccInfo[playerid][LoggedIn] == 0)
    {
        #if USE_DIALOGS == true
        new lstring[256];
        format(lstring,green,"That account '%s 'is Registered!\n\n Login to access your Account:",pName(playerid));
        ShowPlayerDialog(playerid,DIALOGID+67,DIALOG_STYLE_INPUT, "Login Account",lstring,"Login","Quit");
        #endif
        return 1;
    }



Re: No one seems to be able to help - P3DRO - 15.03.2013

Код:
format(lstring,green,"That account '%s 'is Registered!\n\n Login to access your Account:",pName(playerid));
green? maybe in OnPlayerConnect you have some green definition.. idk, at least it was the only "error" i found


Re: No one seems to be able to help - Eminem 2ka9 - 15.03.2013

The green works as far as i know, considering that text appears green when i connect.

Although, i doubt that would be a problem as i would most likely get a compiling error if that was the case.


Re: No one seems to be able to help - Denying - 15.03.2013

May we see the OnDialogResponse callback with the register dialog?


Re: No one seems to be able to help - Eminem 2ka9 - 15.03.2013

yes you may

pawn Код:
/==============================================================================
//---------------
// Dialog - REGISTER
//---------------
//==============================================================================
    if (dialogid == DIALOGID+66)
    {
        if(response == 0 && ServerInfo[MustRegister] == 1)
        {
            Kick(playerid);
        }
        if(response)
        {
            if (strlen(inputtext) < 4 || strlen(inputtext) > 20)
            {
                new rstring[256];
                format(rstring,256,"Sorry %s\n\nThe length of your password should contain more \nthan 3 characters and less than 20 characters! \n\n Please, re-enter the Password:",pName(playerid));
                return ShowPlayerDialog(playerid,DIALOGID+68,DIALOG_STYLE_INPUT,"Register Error!",rstring,"Register","Quit");
            }
            if (udb_Create(PlayerName2(playerid)))
            {
                ShowPlayerDialog(playerid,DIALOG_TYPE_QUESTION,DIALOG_STYLE_INPUT,"LuxAdmin - Account Safety Question","Type a security question, for when you forget\n your password, you just answer this Question.","Next","End");
                new file[256],name[MAX_PLAYER_NAME], buf[145],tmp3[100];
                new strdate[20], year,month,day;
                getdate(year, month, day);
                WP_Hash(buf, sizeof(buf), inputtext);
                GetPlayerName(playerid,name,sizeof(name));
                format(file,sizeof(file),"/LuxAdmin/Accounts/%s.sav",udb_encode(name));
                GetPlayerIp(playerid,tmp3,100);
                dini_Set(file,"Password",buf);
                dini_Set(file,"Ip",tmp3);
                dUserSetINT(PlayerName2(playerid)).("Registered",1);
                format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
                dini_Set(file,"RegisteredDate",strdate);
                dUserSetINT(PlayerName2(playerid)).("Loggedin",1);
                dUserSetINT(PlayerName2(playerid)).("Banned",0);
                dUserSetINT(PlayerName2(playerid)).("Level",0);
                dUserSetINT(PlayerName2(playerid)).("AccountType",0);
                dUserSetINT(PlayerName2(playerid)).("LastOn",0);
                dUserSetINT(PlayerName2(playerid)).("Money",0);
                dUserSetINT(PlayerName2(playerid)).("Kills",0);
                dUserSetINT(PlayerName2(playerid)).("Deaths",0);
                dUserSetINT(PlayerName2(playerid)).("WantedLevel",0);
                #if SaveScore == true
                dUserSetINT(PlayerName2(playerid)).("Score",0);
                #endif
                dUserSetINT(PlayerName2(playerid)).("Hours",0);
                dUserSetINT(PlayerName2(playerid)).("Minutes",0);
                dUserSetINT(PlayerName2(playerid)).("Seconds",0);
                AccInfo[playerid][LoggedIn] = 1;
                AccInfo[playerid][Registered] = 1;
                SendClientMessage(playerid, green, "|- You are now Registered, and have been automaticaly Logged in! -|");
                PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
                return 1;
            }
        }
        return 1;
    }
//==============================================================================
//---------------
// Dialog - LOGIN
//---------------
//==============================================================================
    if (dialogid == DIALOGID+67)
    {
        if(response == 0 && ServerInfo[MustLogin] == 1)
        {
            Kick(playerid);
        }
        if(response)
        {
            new lstring[256];
            new file[128], Pass[256];
            format(file,sizeof(file),"/LuxAdmin/Accounts/%s.sav",udb_encode(PlayerName2(playerid)));

            Pass = dini_Get(file, "Password");
            new buf[145];
            WP_Hash(buf, sizeof(buf), inputtext);
           
            AccInfo[playerid][NoQuestion] = dUserINT(PlayerName2(playerid)).("NoQuestion");

            if(strcmp(Pass, buf, false) == 0)
            {
                new tmp3[100], string[128];
                format(file,sizeof(file),"/LuxAdmin/Accounts/%s.sav",udb_encode(PlayerName2(playerid)));
                GetPlayerIp(playerid,tmp3,100);
                dini_Set(file,"Ip",tmp3);
                LoginPlayer(playerid);
                PlayerPlaySound(playerid,1057,0.0,0.0,0.0);

                if(AccInfo[playerid][Level] > 0)
                {
                    switch(AccInfo[playerid][Level])
                    {
                        case 1: AdmRank = "Starter Administrator";
                case 2: AdmRank = "Junior Administrator";
                case 3: AdmRank = "Intermediate Administrator";
                case 4: AdmRank = "Head Administrator";
                case 5: AdmRank = "Executive Admin";
                case 6: AdmRank = "Co-Owner";
                case 7: AdmRank = "Owner";
                    }
                    if(AccInfo[playerid][Level] > 5)
                    {
                        AdmRank = "Head Administrator";
                    }
                    if(AccInfo[playerid][pVip] > 0)
                    {
                        switch(AccInfo[playerid][pVip])
                        {
                        case 1: AccType = "Silver";
                        case 2: AccType = "Gold";
                        case 3: AccType = "Premium";
                        }
                        format(string,sizeof(string),"|- You have Successfully Logged! | Account: %s | Level %d - %s -|", AccType, AccInfo[playerid][Level], AdmRank);
                        return SendClientMessage(playerid,0x00C378AA,string);
                    }
                    else
                    {
                        format(string,sizeof(string),"|- You have Successfully Logged! | Level %d - %s -|", AccInfo[playerid][Level], AdmRank);
                        return SendClientMessage(playerid,green,string);
                    }
                }
                else
                {
                    if(AccInfo[playerid][pVip] > 0)
                    {
                        switch(AccInfo[playerid][pVip])
                        {
                        case 1: AccType = "Silver";
                        case 2: AccType = "Gold";
                        case 3: AccType = "Premium";
                        }
                        format(string,sizeof(string),"|- You have Successfully logged! | Account: %s -|", AccType);
                        return SendClientMessage(playerid,0x00C896AA,string);
                    }
                    else return SendClientMessage(playerid,green,"|- You have Successfully logged! -|");
                }
            }
            else
            {
                AccInfo[playerid][FailLogin]++;
                printf("LOGIN: Failed Login: %s. Wrong password (%s) (%d)", PlayerName2(playerid), inputtext, AccInfo[playerid][FailLogin] );
                if(AccInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
                {
                    new string[128]; format(string, sizeof(string), "|- Player %s has been automatically kicked (Reason: Many attempts Incorrect Passwords) -|", PlayerName2(playerid) );
                    SendClientMessageToAll(red, string);
                    print(string);
                    Kick(playerid);
                }
                if(AccInfo[playerid][NoQuestion] == 1)
                {
                    format(lstring,256,"Sorry '%s'\n\nYour entered password is Incorrect!\nPlease, re-enter the Correct Password:",pName(playerid));
                    return ShowPlayerDialog(playerid,DIALOGID+69,DIALOG_STYLE_INPUT,"Login Error",lstring,"Login","Quit");
                }
                if(AccInfo[playerid][NoQuestion] == 0)
                {
                    format(lstring,256,"Sorry '%s'\n\nYour entered password is Incorrect!\nPlease, re-enter the Correct Password:\n\nOr type the response of your security question:\n\n \"%s\"",pName(playerid),dini_Get(file, "Question"));
                    return  ShowPlayerDialog(playerid,DIALOGID+69,DIALOG_STYLE_INPUT,"Login Error",lstring,"Login","Quit");
                }
            }
        }
    }



Re: No one seems to be able to help - Denying - 15.03.2013

NOTE: You should fix that comment ( first line )

EDIT: So it just disappears and does nothing else whenever you click enter if it's in OnPlayerConnet?
Try to debug it, add prints all around the dialog response. See where it stops, it might help you.
I can't notice any wrong thing here. I will keep searching.


Re: No one seems to be able to help - Eminem 2ka9 - 15.03.2013

I just forgot to copy that extra bracket in my script.. no worries.

I'm not sure what could possibly be wrong with this script

Maybe if i could find another admin script.

Not too much commands, automatic register + login system + VIP system, and register dialog system appears when the player connects to the server.


Re: No one seems to be able to help - Denying - 15.03.2013

I honestly don't know.


Re: No one seems to be able to help - mastermax7777 - 16.03.2013

why u put green in format?? u cant define color there? maybe show onplayerconnect


Re: No one seems to be able to help - Pottus - 16.03.2013

Try putting it into OnPlayerRequestClass() instead if I remember correctly there are some problems trying to display dialogs in OnPlayerConnect().