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!
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.
Код 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;
}