Oko Login


Započeo Claus, Decembar 05, 2018, 18:05:18 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning): Kako da napravim tajmer da kad se pojavi dialog za login da ako se ne ulogujes tipa u roku od 30 sekundi da se iskljuci dialog i da te kika sa servera?
Dio skripte: [ pawn ]Ako treba dacu[ /pawn ]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]//[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): //

Vljd je tacno s tela pisem
// ovo nedje na vrh
new nekickaj[MAX_PLAYERS];
//ovo nedje na kraj mos
Forward loginkick(playerid);
public loginkick(playerid);
{
if(nekickaj[playerid] == 0)
{
Kick(playerid);
} 
return 1; 
}
//ovo kod toga dje ti se pojavljuje dijalog za login
nekickaj[playerid] = 0;
SetTimerEx("loginkick", 30000, false, "i", playerid); //1000 = 1 sekund
//ovo kod tog sto se pojavi kad ukuca sifru
nekickaj[playerid] = 1;



Citat: Ð'алша. poslato Decembar 05, 2018, 18:34:55 POSLE PODNE
Vljd je tacno s tela pisem
// ovo nedje na vrh
new nekickaj[MAX_PLAYERS];
//ovo nedje na kraj mos
Forward loginkick(playerid);
public loginkick(playerid);
{
if(nekickaj[playerid] == 0)
{
Kick(playerid);
} 
return 1; 
}
//ovo kod toga dje ti se pojavljuje dijalog za login
nekickaj[playerid] = 0;
SetTimerEx("loginkick", 30000, false, "i", playerid); //1000 = 1 sekund
//ovo kod tog sto se pojavi kad ukuca sifru
nekickaj[playerid] = 1;

Nece, nista se ne desava

Ocigledno zato sto nisi lepo postavio :P, koji mod radis, Underpoint ? Ako radis underpoint lepo stavi tamo de igracu izlazi dialog ovo
SetTimerEx("LoginVreme", 30000, false, "i", playerid);

i onda pri dnu skripte
forward LoginVreme(playerid);
public LoginVreme(playerid)
{
       if(UlogovanProvera[playerid] == 0) { Kick(playerid); }
       else { return 1; }
       return 1;
}


Citat: ShomY071 poslato Decembar 05, 2018, 19:46:05 POSLE PODNE
Ocigledno zato sto nisi lepo postavio :P, koji mod radis, Underpoint ? Ako radis underpoint lepo stavi tamo de igracu izlazi dialog ovo
SetTimerEx("LoginVreme", 30000, false, "i", playerid);

i onda pri dnu skripte
forward LoginVreme(playerid);
public LoginVreme(playerid)
{
       if(UlogovanProvera[playerid] == 0) { Kick(playerid); }
       else { return 1; }
       return 1;
}

Nije UnderPoint, od 0 jedan, nije moj

Citat: Ð'алша. poslato Decembar 05, 2018, 18:34:55 POSLE PODNE
Vljd je tacno s tela pisem
// ovo nedje na vrh
new nekickaj[MAX_PLAYERS];
//ovo nedje na kraj mos
Forward loginkick(playerid);
public loginkick(playerid);
{
if(nekickaj[playerid] == 0)
{
Kick(playerid);
} 
return 1; 
}
//ovo kod toga dje ti se pojavljuje dijalog za login
nekickaj[playerid] = 0;
SetTimerEx("loginkick", 30000, false, "i", playerid); //1000 = 1 sekund
//ovo kod tog sto se pojavi kad ukuca sifru
nekickaj[playerid] = 1;

Imas dosta greškica, najviše pravopisnih...
public loginkick(playerid);

u
public loginkick(playerid)


dijalog
else { return 1; }

može i:
else return 1;
Pomogao sam ti?
- Zahvali se!





Citat: Makenzi poslato Decembar 05, 2018, 20:58:45 POSLE PODNE
Imas dosta greškica, najviše pravopisnih...
public loginkick(playerid);

u
public loginkick(playerid)


dijalog
else { return 1; }

može i:
else return 1;

Uradio sam to i sve lepo radi, uradio sam i poruku ali poruka nece da se pojavi, samo izbaci server closed the connection, a poruka je nema nigde.

Daj celu funkciju gde mu pokazuješ dialog pa ću fixati.
Pomogao sam ti?
- Zahvali se!





Citat: Makenzi poslato Decembar 05, 2018, 21:08:18 POSLE PODNE
Daj celu funkciju gde mu pokazuješ dialog pa ću fixati.
forward Ucitano(playerid);
public Ucitano(playerid)
{
	ClearChat(playerid, 25);
	SendClientMessage(playerid, -1, "SERVER LOADED...");
	if(fexist(UserPath(playerid)))
	{
	    SetPlayerVirtualWorld(playerid, 0); SetPlayerInterior(playerid, 0);
	    InterpolateCameraPos(playerid, -996.689, 869.492, 41.923, -1265.562, 666.918, 42.151, 7000);
		InterpolateCameraLookAt(playerid, -1112.462, 867.032, 36.464, -1252.443, 765.840, 35.994, 7000);
		ClearChat(playerid, 25);
		INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
		SPD(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,""BELA"LOGIN..",""BELA"Hello and welcome back to Insanity DeathMatch!\nYour account has been found in our database.\n\nHINT: Type your password in 60 seconds or you will get kicked.","Login","Exit");
		Uneo_Pass[playerid] = 1;
		nekickaj[playerid] = 0; OVO 
		SetTimerEx("loginkick", 5000, false, "i", playerid); //OVO
	}
	else
	{
	    SetPlayerVirtualWorld(playerid, 0); SetPlayerInterior(playerid, 0);
	    InterpolateCameraPos(playerid,-996.689, 869.492, 41.923, -1265.562, 666.918, 42.151, 7000);
		InterpolateCameraLookAt(playerid, -1112.462, 867.032, 36.464, -1252.443, 765.840, 35.994, 7000);
 		ClearChat(playerid, 25);
 		SPD(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"REGISTRATION..","Hello and welcome to Insanity DeathMatch SA-MP server!\nIn the blank spot bellow you should type your password.\n\nHINT: It shouldn't be more than 24 characters or less than 6.","Register","Exit");
	}
}
forward loginkick(playerid); //OVO SVE NA DOLE JE TO
public loginkick(playerid)
{
	if(nekickaj[playerid] == 0)
{
    SCM(playerid, -1, "Imali ste 60 sekundi da se ulogujete na vas account! KIKOVANI STE!");
	Kick(playerid);
}
	return 1;
}

Izvol'te:
new g_LoginTimer[MAX_PLAYERS];

public OnPlayerDisconnect(playerid, reason)
{
	KillTimer(g_LoginTimer[playerid]);
	return 1;
}

forward Ucitano(playerid);
public Ucitano(playerid)
{
	ClearChat(playerid, 25);
	SendClientMessage(playerid, -1, "SERVER LOADED...");
	if(fexist(UserPath(playerid)))
	{
	    SetPlayerVirtualWorld(playerid, 0); SetPlayerInterior(playerid, 0);
	    InterpolateCameraPos(playerid, -996.689, 869.492, 41.923, -1265.562, 666.918, 42.151, 7000);
		InterpolateCameraLookAt(playerid, -1112.462, 867.032, 36.464, -1252.443, 765.840, 35.994, 7000);
		ClearChat(playerid, 25);
		INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
		SPD(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,""BELA"LOGIN..",""BELA"Hello and welcome back to Insanity DeathMatch!\nYour account has been found in our database.\n\nHINT: Type your password in 60 seconds or you will get kicked.","Login","Exit");
		Uneo_Pass[playerid] = 1;
		nekickaj[playerid] = 0; OVO 
		g_LoginTimer[playerid] = SetTimerEx("g_Kick", 30000, false, "d", playerid);
	}
	else
	{
	    SetPlayerVirtualWorld(playerid, 0); SetPlayerInterior(playerid, 0);
	    InterpolateCameraPos(playerid,-996.689, 869.492, 41.923, -1265.562, 666.918, 42.151, 7000);
		InterpolateCameraLookAt(playerid, -1112.462, 867.032, 36.464, -1252.443, 765.840, 35.994, 7000);
 		ClearChat(playerid, 25);
 		SPD(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"REGISTRATION..","Hello and welcome to Insanity DeathMatch SA-MP server!\nIn the blank spot bellow you should type your password.\n\nHINT: It shouldn`t be more than 24 characters or less than 6.","Register","Exit");
	}
}

forward g_Kick(playerid);
public g_Kick(playerid)
{
	SendClientMessage(playerid, -1, "You are kicked from the server because you didn't logged in on time!");
	SetTimerEx("Kick", 465, false, "d", playerid); //Mora ovako ili mu nece pokazati poruku ^.
	return 1;
}
//sada ovo dodas ako se uspesno loginao:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if(dialogid == DIALOG_LOGIN)
	{
		if(!response) return Kick(playerid);
		if(response)
		{
			//Ako je logged in:
			KillTimer(g_LoginTimer[playerid]);
		}
	}
	return 1;
}
Pomogao sam ti?
- Zahvali se!





Citat: Makenzi poslato Decembar 05, 2018, 21:31:57 POSLE PODNE
Izvol'te:
new g_LoginTimer[MAX_PLAYERS];

public OnPlayerDisconnect(playerid, reason)
{
	KillTimer(g_LoginTimer[playerid]);
	return 1;
}

forward Ucitano(playerid);
public Ucitano(playerid)
{
	ClearChat(playerid, 25);
	SendClientMessage(playerid, -1, "SERVER LOADED...");
	if(fexist(UserPath(playerid)))
	{
	    SetPlayerVirtualWorld(playerid, 0); SetPlayerInterior(playerid, 0);
	    InterpolateCameraPos(playerid, -996.689, 869.492, 41.923, -1265.562, 666.918, 42.151, 7000);
		InterpolateCameraLookAt(playerid, -1112.462, 867.032, 36.464, -1252.443, 765.840, 35.994, 7000);
		ClearChat(playerid, 25);
		INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
		SPD(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD,""BELA"LOGIN..",""BELA"Hello and welcome back to Insanity DeathMatch!\nYour account has been found in our database.\n\nHINT: Type your password in 60 seconds or you will get kicked.","Login","Exit");
		Uneo_Pass[playerid] = 1;
		nekickaj[playerid] = 0; OVO 
		g_LoginTimer[playerid] = SetTimerEx("g_Kick", 30000, false, "d", playerid);
	}
	else
	{
	    SetPlayerVirtualWorld(playerid, 0); SetPlayerInterior(playerid, 0);
	    InterpolateCameraPos(playerid,-996.689, 869.492, 41.923, -1265.562, 666.918, 42.151, 7000);
		InterpolateCameraLookAt(playerid, -1112.462, 867.032, 36.464, -1252.443, 765.840, 35.994, 7000);
 		ClearChat(playerid, 25);
 		SPD(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"REGISTRATION..","Hello and welcome to Insanity DeathMatch SA-MP server!\nIn the blank spot bellow you should type your password.\n\nHINT: It shouldn`t be more than 24 characters or less than 6.","Register","Exit");
	}
}

forward g_Kick(playerid);
public g_Kick(playerid)
{
	SendClientMessage(playerid, -1, "You are kicked from the server because you didn't logged in on time!");
	SetTimerEx("Kick", 465, false, "d", playerid); //Mora ovako ili mu nece pokazati poruku ^.
	return 1;
}
//sada ovo dodas ako se uspesno loginao:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if(dialogid == DIALOG_LOGIN)
	{
		if(!response) return Kick(playerid);
		if(response)
		{
			//Ako je logged in:
			KillTimer(g_LoginTimer[playerid]);
		}
	}
	return 1;
}

Nece da kika igraca, a izbaci poruka nakon 30 sekunde, a kad dodam Kick(playerid); , onda nece poruku da prikaze a nece da kika igraca

brate ovo
[pawno]
SetTimerEx("Kick", 465, false, "d", playerid); //Mora ovako ili mu nece pokazati poruku ^. [/pawno]
u
[pawno] SetTimerEx("KickPL", 465, false, "d", playerid); //Mora ovako ili mu nece pokazati poruku ^. [/pawno]
I dodaj ovo kod g_Kick
[pawno]
forward KickPL(playerid);
public KickPL(playerid)
{
      Kick(playerid);
      return 1;
}
[/pawno]

Citat: ShomY071 poslato Decembar 06, 2018, 18:48:25 POSLE PODNE
brate ovo
[pawno]
SetTimerEx("Kick", 465, false, "d", playerid); //Mora ovako ili mu nece pokazati poruku ^. [/pawno]
u
[pawno] SetTimerEx("KickPL", 465, false, "d", playerid); //Mora ovako ili mu nece pokazati poruku ^. [/pawno]
I dodaj ovo kod g_Kick
[pawno]
forward KickPL(playerid);
public KickPL(playerid)
{
      Kick(playerid);
      return 1;
}
[/pawno]
Dobro, radi kika lepo nakon 30 sekundi ali nece poruka u chatu da izbaci da ga je kikalo zato sto su istekle 30 sekundi