[Ayuda]: Ingreso del servidor bug.!
#1

Buenas tardes comunidad, bueno hoy estuve trabajando con mi gamemode, y tenнa ganas de cambiarle el login/registro, bueno lo hice todo bien, hasta que llegу el punto de testear, al testear, te creas una cuenta nueva y te tira la opciуn directamente para loguear, osea poner la contraseсa, pero la cuenta nunca se registrу, osea antes de йsto me tendrнa que mostrar para colocar una contraseсa para registrarme, їvamos bien?, bueno, antes el registro/ingreso era mediante textdraw, pero ahora querнa que salga directamente el dialogo.


Код HTML:
ShowMainMenuDialog(playerid, frame)
{
    InsideMainMenu[playerid] = true;
    switch(frame)
    {
        case 1:
        {
        InsideMainMenu[playerid] = true;
        INI_ParseFile(UserPath(playerid), "LoadUser_pass", .bExtra = true, .extra = playerid);
        format(szMessage, sizeof(szMessage), ""COL_B"ЎBienvenido {BFDC68}(%s)"COL_B"! para jugar en el servidor ingrese su contraseсa\n\n{A5ADEC}Contraseсa:\n", GetPlayerNameEx(playerid));
        ShowPlayerDialog(playerid,D_INGRESO,DIALOG_STYLE_PASSWORD ,""COL_B"Ingresar",szMessage,"Ingresar","Salir");
        SetPlayerVirtualWorld(playerid, 20);
        }
        case 2:
        {
        InsideMainMenu[playerid] = true;
        format(szMessage, sizeof(szMessage), ""COL_B"Su cuenta {BFDC68}(%s)"COL_B" no esta registrada en la base de datos\n\n{A5ADEC}Ingrese una contraseсa en el siguiente espacio:\n", GetPlayerNameEx(playerid));
        ShowPlayerDialog(playerid,D_REGISTRO,DIALOG_STYLE_INPUT ,""COL_B"Registro",szMessage,"Registrar","Salir");
        }
    }
}
Код HTML:
    case D_INGRESO:
    {
        if(response)
        {
            if(udb_hash(inputtext) == Info[playerid][pClave])
            {
                InsideMainMenu[playerid] = false;
                INI_ParseFile(UserPath(playerid), "LoadUser_data", .bExtra = true, .extra = playerid);
                //KillTimer(LoginTimer[playerid]);
                OnPlayerLoginEx(playerid);
            }
            else
            {
                new cam = Random(1,4);
                SetPlayerCameraPos(playerid, cam);
                format(szDialog, sizeof(szDialog), ""COL_B"Ha ocurrido un error!\nHas ingresado una contraseсa incorrecta.\nVuelve a ingresar tu contraseсa correcta.\n\n"COL_GENERAL"Contraseсa:", GetPlayerNameEx(playerid));
                ShowPlayerDialog(playerid,D_INGRESO,DIALOG_STYLE_PASSWORD ,""COL_B"ERROR",szDialog,"Entrar","Salir");
                SetPlayerVirtualWorld(playerid, 20);
                return 1;
            }
        }
    }
 case D_REGISTRO:
    {
        if(response)
        {
            if(strlen(inputtext) > 12)
            {
                   new cam = Random(1,8);
                SetPlayerCameraPos(playerid, cam);
                format(szDialog, sizeof(szDialog), ""COL_B"Ha ocurrido un error.\nDebes ingresar una contraseсa no mayor de 15 carбcteres.\nVuelve a intentarlo.\n\n"COL_GENERAL"Contraseсa:");
                ShowPlayerDialog(playerid,D_REGISTRO,DIALOG_STYLE_INPUT ,""COL_B"ERROR",szDialog,"Registrar","Salir");
                return 1;
            }
            if(isnull(inputtext))
            {
                new cam = Random(1,8);
                SetPlayerCameraPos(playerid, cam);
                format(szDialog, sizeof(szDialog), ""COL_B"Ha ocurrido un error.\nDebes ingresar una contraseсa con mбs de 1 carбcter, no has ingresado nada.\nVuelve a intentarlo.\n\n"COL_GENERAL"Contraseсa:");
                ShowPlayerDialog(playerid,D_REGISTRO,DIALOG_STYLE_PASSWORD,""COL_B"ERROR",szDialog,"Registrar","Salir");
                return 1;
            }
            InsideMainMenu[playerid] = false;
            OnPlayerRegister(playerid,inputtext);
            //KillTimer(LoginTimer[playerid]);
            return 1;
             }
        }
Espero que me puedan ayudar, gracias de ante mano!
Reply
#2

Entonces lo que pasa es que no guarda la cuenta?
Reply
#3

Lo que pasa es que cuando entras con una cuenta nueva, no te deja registrarla, en vez de tirarte el panel de registro, te tira directamente el panel de ingreso, como si la cuenta ya estuviese creada anteriormente, cuando no es asн.. Pones cualquier contraseсa, claro, ya que no estб registrada йsta cuenta y te tira como que pusiste mal la clave. їMe entiendes?
Reply
#4

Haz que frame en ShowMainMenuDialog(playerid, frame) sea 2 y no 1.
Reply
#5

ЎGRACIAS! ЎTE AMOOOOOO!

Era eso n.n

De verdad, gracias!
Reply
#6

ЎUPS!

Ahora siempre al entrar me pide registro, osea entro una vez la registro, hago el test, pongo la edad, etc..etc..Salgo , vuelvo a entrar y me pide que me registre nuevamente.. :/
Reply
#7

Debes ver si su cuenta existe, si existe pon ShowMainMenuDialog(playerid, frame) con frame en 1, y si no existe su cuenta pon ShowMainMenuDialog(playerid, frame) con frame en 2.

Por ejemplo:
pawn Код:
if(fexist(PON LA DIRECCION AQUI))
{
    ShowMainMenuDialog(playerid, 1);
}
else
{
    ShowMainMenuDialog(playerid, 2);
}
Reply
#8

No entendi. :B
Reply
#9

Quote:
Originally Posted by ScripterNovato
Посмотреть сообщение
No entendi. :B
Publica el callback OnPlayerConnect.
Reply
#10

Код HTML:
public OnPlayerConnect(playerid)
{

    PlayAudioStreamForPlayer(playerid, RandMusic[random(sizeof(RandMusic))]);
    if(IsPlayerNPC(playerid)) return 1;
	new playerIP[16];
    TogglePlayerSpectating(playerid, 1);
	GetPlayerIp(playerid, playerIP, sizeof(playerIP));
    SetPlayerColor(playerid,COLOR_GRAD2);
 /* SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");
    SendClientMessage(playerid, COLOR_WHITE, "");*/

	if(CheckBan(playerIP) == 1)
	{
	    SetPlayerName(playerid, "BannedPlayer");
	    SendClientMessage(playerid, COLOR_GENERAL, ""COL_R"[Servidor]:"COL_G" Lo sentimos, su cuenta se encuentra baneada. Si cree que fue un error, por favor, reportelo via foro o TS3.");
		Expulsar(playerid);
		return 1;
	}
	TotalConnect++;
	resetPlayerVariables(playerid);
	MapsRemoveForPlayer(playerid);
	ClearMarriage(playerid);
	SyncPlayerTime(playerid);
	// Leсador
    lena1[playerid] = 0;
	SetPVarInt(playerid,"Lena",0);
	// Obrero
	SetPVarInt(playerid,"Miner", 0);
	entregare[playerid] = 0;
	Camaras[playerid] = 0;

	TextDrawShowForPlayer(playerid, Cargando1);
	TextDrawShowForPlayer(playerid, Cargando2);
	if(Iter_Count(Player) > MaxPlayersConnected)
	{
		MaxPlayersConnected = Iter_Count(Player);
		gettime(MPHour,MPMinute);
		getdate(MPYear,MPMonth,MPDay);
	}
	if(MaxPlayersConnected > 200) MaxPlayersConnected = 200; // Temp good fix
	SetTimerEx("SafeLogin", 4000, 0, "d", playerid);
    return 1;
}
function SafeLogin(playerid)
{
	ClearChatbox(playerid);
	TextDrawHideForPlayer(playerid, Cargando1);
	TextDrawHideForPlayer(playerid, Cargando2);
	ShowMenuLogin(playerid);
	SetPlayerPos(playerid, 1535.1390, -760.8167, 80.2266);
	SetPlayerCameraPos(playerid, 1547.1914, -736.4717, 108.1993);
    SetPlayerCameraLookAt(playerid, 1546.4908, -735.7599, 107.9343);
	new playername[MAX_PLAYER_NAME];
	GetPlayerName(playerid, playername, sizeof(playername));
	if(strfind( playername, "_", true) == -1)
	{
 		SetPlayerName(playerid, "InvalidNick");
		SendClientMessageEx(playerid, COLOR_WHITE, ""COL_R"[ERROR]:"COL_G"Porfavor usa el formato correcto: Nombre_Apellido");
		SendClientMessageEx(playerid, COLOR_WHITE, ""COL_R"[ERROR]:"COL_G"Vuelve a entrar con el formato indicado." );
		Expulsar(playerid);
	}
        gPlayerAccount[playerid] = 1;
        ShowMainMenuDialog(playerid, 1);
    return 1;

}
ShowMainMenuDialog(playerid, frame)
{
	InsideMainMenu[playerid] = true;
	switch(frame)
	{
		case 1:
		{
        InsideMainMenu[playerid] = true;
	    format(szMessage, sizeof(szMessage), ""COL_B"Su cuenta {BFDC68}(%s)"COL_B" no esta registrada en la base de datos\n\n{A5ADEC}Ingrese una contraseсa en el siguiente espacio:\n", GetPlayerNameEx(playerid));
		ShowPlayerDialog(playerid,D_REGISTRO,DIALOG_STYLE_INPUT ,""COL_B"Registro",szMessage,"Registrar","Salir");
		}
		case 2:
		{
 	    InsideMainMenu[playerid] = true;
		INI_ParseFile(UserPath(playerid), "LoadUser_pass", .bExtra = true, .extra = playerid);
		format(szMessage, sizeof(szMessage), ""COL_B"ЎBienvenido {BFDC68}(%s)"COL_B"! para jugar en el servidor ingrese su contraseсa\n\n{A5ADEC}Contraseсa:\n", GetPlayerNameEx(playerid));
		ShowPlayerDialog(playerid,D_INGRESO,DIALOG_STYLE_PASSWORD ,""COL_B"Ingresar - {A5ADEC}",szMessage,"Ingresar","Salir");
		SetPlayerVirtualWorld(playerid, 20);
		}
	}
}
ShowMenuLogin(playerid)
{
	ClearChatbox(playerid);
	SelectTextDraw(playerid, COLOR_WHITE);
	TextDrawShowForPlayer(playerid, Intro[0]);
	TextDrawShowForPlayer(playerid, Intro[1]);
	TextDrawShowForPlayer(playerid, Intro[2]);
   	TextDrawShowForPlayer(playerid, Intro[3]);
	TextDrawShowForPlayer(playerid, Intro[4]);
	TextDrawShowForPlayer(playerid, Intro[5]);
	TextDrawShowForPlayer(playerid, Intro[6]);
	TextDrawShowForPlayer(playerid, Intro[7]);
	return 1;
}

HideMenuLogin(playerid)
{
   	TextDrawHideForPlayer(playerid, Intro[0]);
	TextDrawHideForPlayer(playerid, Intro[1]);
	TextDrawHideForPlayer(playerid, Intro[2]);
   	TextDrawShowForPlayer(playerid, Intro[3]);
	TextDrawShowForPlayer(playerid, Intro[4]);
	TextDrawShowForPlayer(playerid, Intro[5]);
	TextDrawShowForPlayer(playerid, Intro[6]);
	TextDrawShowForPlayer(playerid, Intro[7]);
	return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)