#1

Tengo un player dialog que se llama DLOGIN que es lo que te sale al abrir el gta (La pass d la cuenta) Bueno, lo que pasa es que cuando logeo una vez bien, pero salgo y vuelvo a intentar logear, ya no me sale el dialog para poner la pass.


їQue pasa?
Reply
#2

Quote:
Originally Posted by Metzone
Посмотреть сообщение
Tengo un player dialog que se llama DLOGIN que es lo que te sale al abrir el gta (La pass d la cuenta) Bueno, lo que pasa es que cuando logeo una vez bien, pero salgo y vuelvo a intentar logear, ya no me sale el dialog para poner la pass.


їQue pasa?
Pueden pasar mil cosas XD, creo que es porque has puesto el dialog para cuando el archivo de la contraseсa este vacia y al estar lleno no te te da el mensage pasanos el dialog
Reply
#3

Puedes agregar una variable que sea algo como Logeado[MAX_PLAYERS];, en OnPlayerConnect pones Logeado[playerid] = 0; y luego donde quieras usar el dialog del login pones if(Logeado[playerid] == 0) { ShowPlayerDialog, bla bla.

De esa forma te fuerza a logear cada vez que entres en el servidor, pero como dijo chusothe41 pueden ser muchas cosas distintas, es dificil saber si no muestras el codigo.
Reply
#4

 PlayerGotSpottedRecently[playerid] = 1;
Checked[playerid] = 1;
RemoveObjects(playerid);
for (new c=0; c<13; c++) ScriptWeapons[playerid][c] = 0;
ScriptWeaponsUpdated[playerid] = 0;
SetTimerEx("ResetAcWarn", 30000, 0, "i", playerid);
SetPlayerColor(playerid,COLOR_GRAD2);
SetPVarString(playerid, "pPassword", "0") ;
SetTimerEx("CameraLogin", 100, false, "i", playerid);
GetPlayerName(playerid, plname, sizeof(plname));
format(string, sizeof(string), "users/%s.ini", plname);
if(INI_Exist(string)) ShowLoginDialog(playerid, DLOGIN);
else ShowRegisterDialog(playerid, DREGISTER);
SetPlayerVirtualWorld(playerid, 20);
return 1;
}

INI_Exist(filename[]) {
if (fexist(filename)) return true;
return false;
}




Esto lo tengo en OnPlayerConnect, los usuarios los tengo en SCRIPTFILES/users/user.ini, el dialogo de lo que me pide para ingresar





case DLOGIN:
{
if (response)
{
if(IsNull(inputtext))
{
ShowLoginDialog(playerid,DLOGIN);
return 1;
}
new string2[128], PlayerPass[32], playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), "users/%s.ini", playername2);
INI_ParseFile(string2, "GetPlayerPass", .bExtra = true, .extra = playerid);
GetPVarString(playerid, "pPassword", PlayerPass, 32);
if(!strcmp(PlayerPass, inputtext))
{
format(string2, sizeof(string2), "users/%s.ini", playername2);
INI_ParseFile(string2, "LoadUser", false, true, playerid, true, false );
OnPlayerLogin(playerid);
}
else
{
ClearChatbox(playerid, 10);
ShowLoginDialog(playerid,DLOGIN);
Message(playerid, COLOR_WHITE, "Has introducido una contraseсa {B00000}Incorrecta");
gPlayerLogTries[playerid] += 1;
if(gPlayerLogTries[playerid] == 4) { Kick(playerid); }
}
}
else
{
Kick(playerid);
}
return 1;
}
Reply
#5

Pon al codigo[pawn][/pawn*] (sin asterisco), con el codigo asi me dejas los ojos...
Reply
#6

Si, haz lo que dijo chuso, їno que llevabas un aсo en pawn y podнas resolver los problemas tъ solo?
Reply
#7

pawn Код:
PlayerGotSpottedRecently[playerid] = 1;
Checked[playerid] = 1;
RemoveObjects(playerid);
for (new c=0; c<13; c++) ScriptWeapons[playerid][c] = 0;
ScriptWeaponsUpdated[playerid] = 0;
SetTimerEx("ResetAcWarn", 30000, 0, "i", playerid);
SetPlayerColor(playerid,COLOR_GRAD2);
SetPVarString(playerid, "pPassword", "0") ;
SetTimerEx("CameraLogin", 100, false, "i", playerid);
GetPlayerName(playerid, plname, sizeof(plname));
format(string, sizeof(string), "users/%s.ini", plname);
if(INI_Exist(string)) ShowLoginDialog(playerid, DLOGIN);
else ShowRegisterDialog(playerid, DREGISTER);
SetPlayerVirtualWorld(playerid, 20);
return 1;
}
INI_Exist(filename[]) {
if (fexist(filename)) return true;
return false;
}
Esto lo tengo en OnPlayerConnect, los usuarios los tengo en SCRIPTFILES/users/user.ini, el dialogo
de lo que me pide para ingresar



pawn Код:
case DLOGIN:
{
if (response)
{
if(IsNull(inputtext))
{
ShowLoginDialog(playerid,DLOGIN);
return 1;
}
new string2[128], PlayerPass[32], playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), "users/%s.ini", playername2);
INI_ParseFile(string2, "GetPlayerPass", .bExtra = true, .extra = playerid);
GetPVarString(playerid, "pPassword", PlayerPass, 32);
if(!strcmp(PlayerPass, inputtext))
{
format(string2, sizeof(string2), "users/%s.ini", playername2);
INI_ParseFile(string2, "LoadUser", false, true, playerid, true, false );
OnPlayerLogin(playerid);
}
else
{
ClearChatbox(playerid, 10);
ShowLoginDialog(playerid,DLOGIN);
Message(playerid, COLOR_WHITE, "Has introducido una contraseсa {B00000}Incorrecta");
gPlayerLogTries[playerid] += 1;
if(gPlayerLogTries[playerid] == 4) { Kick(playerid); }
}
}
else
{
Kick(playerid);
}
return 1;
}



Pido ayuda de cosas que no se, tanto te molesta, mira la cantidad de temas que he creado.
Reply
#8

La primera vez que entras te aparecera el dialog de registro no? La seguda vez te deberia de aparecer el de logueo
Reply
#9

Te explico, cuando inicio el Samp Server y entro al gta, funciona tal y como debe, me muestra el dialog de poner la pass, bueno salgo y sin cerrar ni reiniciar el Samp Server, vuelvo a entrar, y ya no me vuelve a salir el dialog de la Pass.

Yo lo que hize en onplayerconnect es poner el dialog Login, y funciona pero me salen dos dialogos de pass al iniciar el sv y es molesto, y suele sali el dialog cuando alguien esta baneado o mal nombre, lo kickea pero el dialog les sale.
Reply
#10

revivo.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)