TogglePlayerSpectating

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
  • if(dialogid == DIALOG_REGISTER)
    {
    if(!response) return Kick(playerid);
    if(response)
    {
    if(!strlen(inputtext)) return ShowLanguageDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registrieren", "Register", "Willkommen auf San Andreas Arena! Dieser Account ist noch nicht registriert!\nBitte gib ein Passwort ein, um dich zu registrieren!", "Welcome to San Andreas Arena! This account is not registered yet!\nPlease type in a password to register!", "Registrieren", "Register", "Verlassen", "Leave"); //Zeige erneut den Registrierungsdialog
    if(strlen(inputtext))
    {
    new hashpass[129];
    WP_Hash(hashpass, sizeof(hashpass), inputtext); //Whirlpool-Plugin-Funktion zum Verschlüsseln des Passworts
    GetPlayerIp(playerid, pInfo[playerid][IP], 16);

    new INI:file = INI_Open(Path(playerid));
    INI_SetTag(file, "User Data");
    INI_WriteString(file, "Password", hashpass);
    INI_WriteString(file, "IP", pInfo[playerid][IP]);
    INI_WriteInt(file, "AdminLevel", 0);
    INI_WriteInt(file, "Money", 0);
    INI_WriteInt(file, "Score", 0);
    INI_WriteInt(file, "Kills", 0);
    INI_WriteInt(file, "Deaths", 0);
    INI_WriteInt(file, "Language", pInfo[playerid][Language]);
    INI_Close(file);

    new stringDE[128],
    stringEN[128],
    pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(stringDE, sizeof(stringDE), "»SPIELERINFO« Herzlichen Glückwunsch! Du hast dich erfolgreich mit dem Namen "#C_GOLD_E"%s "#C_TURQUOISE_E"registriert!", pName);
    format(stringEN, sizeof(stringEN), "»SPIELERINFO« Congratulations! You have successfully registered with the name "#C_GOLD_E"%s "#C_TURQUOISE_E"!", pName);
    SendLanguageMessage(playerid, C_TURQUOISE, stringDE, stringEN);

    TogglePlayerSpectating(playerid, 0);
    pInfo[playerid][JustRegistered] = true;
    LoggedIn[playerid] = true;
    }
    return 1;
    }
    }


    public OnPlayerConnect(playerid)
    {
    TogglePlayerSpectating(playerid, 1);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    SetPlayerColor(playerid, C_BLUE);


    new VirtualWorld = GetPlayerVirtualWorld(playerid);
    switch(VirtualWorld)
    {
    case 0:
    {
    UseTeleports[playerid] = true;
    if(pInfo[playerid][JustLoggedIn] == true)
    {
    GivePlayerMoneyEx(playerid, pInfo[playerid][Money]);
    SetPlayerScore(playerid, pInfo[playerid][Score]);
    pInfo[playerid][JustLoggedIn] = false;
    return 1;
    }
    if(pInfo[playerid][JustRegistered] == true)
    {
    cmd_rules(playerid, "");
    pInfo[playerid][JustRegistered] = false;
    return 1;
    }
    if(pInfo[playerid][JustLoggedIn] == false) return GivePlayerMoneyEx(playerid, 5000);
    SetSpawnProtection(playerid);
    }
    case 1..7:
    {
    UseTeleports[playerid] = false;
    if(pInfo[playerid][Money] == 0) GivePlayerMoneyEx(playerid, 5000);
    SetSpawnProtection(playerid);
    }
    }
    return 1;
    }


    Obwohl ich bei OnPlayerConnect den Spectating Modus anmache, ist er an, wenn ein Spieler sich registriert. Beim Login klappt das alles wunderbar, nur beim Registrieren nicht. Es ist so, dass man zunächst einen Sprachendialog kriegt. In der gewählten Sprache, wird der Registrierungsdialog dann angezeigt. Wenn dieser aber angezeigt wird, ist der Spectating Modus plötzlich wieder an.

  • public OnPlayerConnect(playerid)
    {
    if(fexist(Path(playerid))) //Überprüfen, ob der Account existiert
    {
    INI_ParseFile(Path(playerid), "loadaccount_%s", .bExtra = true, .extra = playerid); //Userfile laden
    new pName_[MAX_PLAYER_NAME],
    stringDE_[128],
    stringEN_[128];
    GetPlayerName(playerid, pName_, sizeof(pName_));
    format(stringDE_, sizeof(stringDE_), "Willkommen zurück, "#C_LIGHT_BLUE_E"%s"#C_DIALOG_E"! Dieser Account ist registriert!\nBitte gib das Passwort für diesen Account ein!", pName_);
    format(stringEN_, sizeof(stringEN_), "Welcome back, "#C_LIGHT_BLUE_E"%s"#C_DIALOG_E"! This account is registered!\nPlease type in the password for this account!", pName_);
    ShowLanguageDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", "Login", stringDE_, stringEN_, "Einloggen", "Log in", "Abbrechen", "Cancel");
    }
    else //Wenn nicht, dann zeige die Sprachauswahl
    {
    ShowPlayerDialog(playerid, DIALOG_LANGUAGES, DIALOG_STYLE_LIST, "Sprachauswahl | Language Selection", "Deutsch [DE] | German [GER]\nEnglisch [ENG] | English [ENG]", "OK", "");
    return 1;
    }
    return SAVE_OnPlayerConnect(playerid);
    }
    Das Ding ist, dass ist 2x OnPlayerConnect habe. Im "Mutterscript" steht das, was ich bereits oben gepostet habe. Das jetzt ist die gehookte Version.


    EDIT: Dummer Leichtsinnsfehler von mir. Gelöst.

    Einmal editiert, zuletzt von Manyula ()