Hi Community,
wie schaffe ich das, dass das Login Fenster ca. 3 Sekunden nach
dem Connecting to SERVERNAME kommt ?
Bei mir kommt es gleichzeitig bzw vorher !
Liebe Grüße
Hi Community,
wie schaffe ich das, dass das Login Fenster ca. 3 Sekunden nach
dem Connecting to SERVERNAME kommt ?
Bei mir kommt es gleichzeitig bzw vorher !
Liebe Grüße
Timer
Also einen Timer in OnPlayerConnect ?
Genau, und in dem Public vom Timer erst den Dialog anzeigen lassen.
klappt danke
edit: nicht alle bekommen das fenster zusehen ?! Wieso
zeig mal den Dialog Code und den Timer
//Edit am besten alles unter OnPlayerConnect
//oben definiert
forward LoginTimer(playerid);
//onplayerrequestclass ...
SetTimer("LoginTimer", 2500, 0);
//public
public LoginTimer(playerid)
{
if(gPlayerAccount[playerid] == 1 && gPlayerLogged[playerid] == 0)
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Willkommen","Willkommen auf {4BFF00}Street Reallife\nBitte logge dich nun in deinen Account ein!","Login","Abbrechen");
}
else if(gPlayerAccount[playerid] == 0 && gPlayerLogged[playerid] == 0)
{
ShowPlayerDialog(playerid,DIALOG_REG,DIALOG_STYLE_MSGBOX,"Account","Du benötigst einen Account, um auf diesem Server zu spielen!","Erstellen","Abbrechen");
}
}
Habe es so gemacht, weil der Code unter dem Public vorher da stand, wo jetzt der SetTimer - Befehl steht.
dann mach die Dialoge unter OnPlayerConnect ich denke daher kommt der Fehler.
//OnPlayerConnect
if(fexist(string))
{
gPlayerAccount[playerid] = 1;
SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}Willkommen zurück auf {4BFF00}Street Reallife");
SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}Der Server hat deinen Account gefunden. Du kannst dich in 4 Sekunden einloggen.");
SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}Viel Spaß weiterhin auf Street Reallife");
GameTextForPlayer(playerid, "Verbinde ...", 4000, 3);
SetTimer("LoginTimer", 4000, 0);
return 1;
}
else
{
gPlayerAccount[playerid] = 0;
SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}Willkommen auf {4BFF00}Street Reallife");
SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}Da dein Account nicht gefunden wurde musst du dich Registrieren.");
SendClientMessage(playerid, COLOR_WHITE, "{FFFFFF}Wir wünschen dir viel Spaß auf unserem Server.");
GameTextForPlayer(playerid, "Verbinde ...", 4000, 3);
SetTimer("LoginTimer", 4000, 0);
return 1;
}
Dialog_Login wird immer noch nicht angezeigt
SetTimer("LoginTimer", 2500, 0); //public
public LoginTimer(playerid)
Wenn das für alle funktioniert bin ich Gott
xD ?
Was ist gefailt ?
Du übergibst nichts als Paramter an die Funktion, so wird das nur für die ID 0 funktionieren.
Das hat zu folge, das immer wenn jemand connecten die ID 0 den Login Dialog bekommt.
#define timer%0(%1) forward%0(%1); public%0(%1)
timer LoginFenster(playerid)
{
// Hier ShowPlayerDialog
return 1;
}
public OnPlayerConnect(playerid)
{
SetTimerEx("LoginFenster", 3000, false, "d", playerid);
// Rest vom Code
return 1;
}