Guten Tag,
ich habe eine Funktion erstellt die ein 3DTextLabel über einem Spieler erstellen soll sobald er auf den Desktop oder in das Menü geht.
Ich hab schon einiges versucht aber finde einfach den Fehler nicht, ich glaube ich denke zu kompliziert und am Ende ist es ein ganz einfacher Fehler.
Naja vielleicht sieht jemand von euch, ja was auf dem ersten Blick.
Im Spiel sieht man meistens kein Label oder nur 1 Sekunde und es verschwindet.
C
public OnPlayerUpdate(playerid)
{
pInfo[playerid][pSync]=1; // Ist der Spieler im Spiel wird die Variable auf 1 gesetzt
return 1;
}
Timer AFKCheck -> Wird jede Sekunde ausgeführt...
C
public AFKCheck()
{
ForEachPlayer(i)
{
if(pInfo[i][pTot] == 0 && pInfo[i][pEingeloggt] == true) //Ist der Spieler eingeloggt und nicht Tot ?
{
if(pInfo[i][pSync]==1) // Ist die Variable von OnPlayerUpdate 1 dann ist der Spieler noch im Spiel
{
pInfo[i][pSync]=0; //Spieler ist im Spiel die Variablen werden auf 0 gesetzt
Delete3DTextLabel(pInfo[i][pAFKLabel]);
pInfo[i][pDeskZeit]=0;
} else { // wenn sie nicht 1 ist
new string[12];
if(pInfo[i][pDeskZeit]==0) // ist der spieler bereits auf dem desktop gewesen ? Nein -> erstellen
{
format(string,sizeof(string),"- %d s -",pInfo[i][pDeskZeit]);
pInfo[i][pAFKLabel] = Create3DTextLabel(string,GRAU,0.0,0.0,0.0,7.0,0);
Attach3DTextLabelToPlayer(pInfo[i][pAFKLabel], i, 0.0, 0.0, 0.3);
pInfo[i][pDeskZeit]++; // +1 Sekunde auf dem Desptop
} else if(pInfo[i][pDeskZeit]>0){ // hat der spieler bereits ein Label -> updaten
format(string,sizeof(string),"- %d s -",pInfo[i][pDeskZeit]);
Update3DTextLabelText(pInfo[i][pAFKLabel],GRAU,string);
pInfo[i][pDeskZeit]++; //+1 Sekunde auf dem Desktop
}
}
}
}
return 1;
}
Alles anzeigen
Vielleicht hat ja jemand sogar eine Idee wie ich es besser Umsetzen könnte ?
//Edit hab das Problem selber gelöst, bei Fragen gern PN