Beim Spawn gefreezt bis Login

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo!
    Ich wollte kurz fragen, wie ich es hinbekomme, dass ich bei OnPlayerSpawn eine if-Abfrage(ist Spieler eingeloggt) mache, welche dann einen Spieler entfreezt.
    Das ganze soll so funktionieren:
    Man betritt den Server, wird solange gefreezt bis man sich eingeloggt hat. Nach dem Login wird man wieder unfreezt.



    public OnPlayerSpawn(playerid)
    {


    SetPlayerPos(playerid, 1622.3199462891, -2328.9699707031, 13.546875); //Spawn-Punkt
    SendClientMessage(playerid, green, "Willkommen auf unserem Server!");


    SendClientMessage(playerid, green, "Du kannst dich nun mit /login [Passwort] einloggen");
    TogglePlayerControllable(player1,false); PlayerInfo[player1][Frozen] = 1; PlayerPlaySound(player1,1057,0.0,0.0,0.0);

    return 1;
    }


    In der Spieler-Datei gibt es die Information "PlayerInfo[playerid][LoggedIn] = 0;".


    Hoffe, ihr könnt mir helfen.
    Mit freundlichen Grüßen, Luc

  • OnPlayerConnect
    TogglePlayerControllable //Freezen


    ...


    OnPlayerSpawn
    TogglePlayerControllable //Entfreezen



    --------------------------------------------------
    Solltest du einen Dialog wählen, um den Spieler einzuloggen, kann er sich eh nicht bewegen. Wenn du den Spieler erst nach dem Login spawnen lässt, geht die Möglichkeit, die oben kurz angedeutet wurde.

  • public OnPlayerSpawn(playerid)
    {
    if(PlayerInfo[playerid][LoggedIn] == 0)
    {
    SetPlayerPos(playerid, 1622.3199462891, -2328.9699707031, 13.546875); //Spawn-Punkt
    SendClientMessage(playerid, green, "Willkommen auf unserem Server!");


    SendClientMessage(playerid, green, "Du kannst dich nun mit /login [Passwort] einloggen");
    TogglePlayerControllable(player1,false); PlayerInfo[player1][Frozen] = 1; PlayerPlaySound(player1,1057,0.0,0.0,0.0);
    }
    else
    {
    TogglePlayerControllable(player1,true);
    }
    return 1;
    }meinst du das so?

  • Also das mit dem freezen am Anfang klappt schonmal. Jedoch entfreezt der den Spieler nicht, wenn er das Passwort eingegeben hat..


    Ich hab das jetzt so:



    if(PlayerInfo[playerid][LoggedIn] == 0)
    {
    SetPlayerPos(playerid, 1622.3199462891, -2328.9699707031, 13.546875); //Spawn-Punkt
    SendClientMessage(playerid, green, "Willkommen auf unserem Server!");


    SendClientMessage(playerid, green, "Du kannst dich nun mit /login [Passwort] einloggen");
    TogglePlayerControllable(playerid,false); PlayerInfo[playerid][Frozen] = 1; PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
    }
    else
    {
    TogglePlayerControllable(playerid,true);
    PlayerInfo[playerid][Spawned] = 1;
    }

  • dann mach das nach dem login
    TogglePlayerControllable(player1,true);
    aber nur wen das erfolgreich war