Problem mit SpawnPlayer(playerid)

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 habe unter OnPlayerRequestClass einige if Abfragen gesetzt. Zum Beispiel wenn ein Spieler auf den Server kommt wird nach dem Login eine Variable auf 1 gesetzt. Bei OnPlayerRequestClass wird dann abgefragt ob die Variable auf 1 ist und wenn ja wird der Spieler direkt gespawnt, wenn nicht kommt er logischer weise in die Skin Auswahl. So sollte es in der Teorie funktionieren. Mein Problem ist nun so funktioniert es leider nicht. Mein Spieler ist nach dem Login immer in der Skin Auswahl, aber nicht in der Skin Auswahl wie ich sie bearbeitet habe mit GameTextForPlayer und so sondern einfach iregendwie und iregendwo.


    Hier mal ein paar Codestellen die euch helfen könnten:


    public OnPlayerRequestClass(playerid, classid)
    {
    if(KeineSkinAuswahl[playerid] == 1)
    {
    SpawnPlayer(playerid);
    SetPlayerSkin(playerid, pInfo[playerid][Skin]);
    }
    else if(KeineSkinAuswahl[playerid] == 0)
    {
    if(allowSkinAuswahl[playerid] == 1)
    {
    SetPlayerPos(playerid, 2051.0093,1588.8508,10.6719);
    SetPlayerFacingAngle(playerid, 201.074);
    SetPlayerCameraPos(playerid, 2053.7935,1582.5558,10.6719);
    SetPlayerCameraLookAt(playerid, 2051.0093,1588.8508,10.6719);


    if(classid <= 20)
    {
    if(pInfo[playerid][Team] == 0 && pInfo[playerid][Leader] == 0)
    {
    GameTextForPlayer(playerid, "~g~Zivilist", 2000, 6);
    }
    else
    {
    GameTextForPlayer(playerid, "~r~Zivilist", 2000, 6);
    }
    }
    if (classid > 20)
    {
    if(pInfo[playerid][Team] == 1 || pInfo[playerid][Leader] == 1)
    {
    GameTextForPlayer(playerid, "~g~LVPD", 2000, 6);
    }
    else
    {
    GameTextForPlayer(playerid, "~r~LVPD", 2000, 6);
    }
    }
    if(classid > 26 && classid < 31)
    {
    if(pInfo[playerid][Team] == 1 || pInfo[playerid][Leader] == 1)
    {
    GameTextForPlayer(playerid, "~g~F.B.I", 2000, 6);
    }
    else
    {
    GameTextForPlayer(playerid, "~r~F.B.I", 2000, 6);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, FARBE_GELB, "Aus Roleplay gründen ist die Skin Auswahl via F4 Taste verboten...du wirst vom Server geworfen.");
    SendClientMessage(playerid, FARBE_ROT, "[SERVERGUARD]: Du wurdest vom Server geworfen. Grund: Skin Auswahl via F4 Taste.");
    SendClientMessage(playerid, FARBE_WEISS, "HINWEIß: Betete einen Binco oder Zip und Tippe /kleidung um deinen Skin zu wechseln");
    Kick(playerid);
    }
    }
    return 1;
    }


    die Variablen habe ich dann nartürlich auch in meinen Login Script auf die entsprechenden werte gesetzt. Wenn ihr das auch noch sehen wollte dann sagt bescheid. Zur Sicherheit habe ich die Variablen auch noch bei "OnPlayerConnect" gesetzt und bei "OnPlayerDisconnect".


    Vielen dank im Voraus


    MfG
    Steven


    /edit: Form verändert/verbessert
    /edit: Bemerkte grade Kick(playerid) fehlte ändert aber nichts am Problem, habs hinzugefügt


    /EDIT WICHTIG: Ich habe gerade an der stelle oben mit SetPlayerSkin(playerid, pInfo[playerid][Skin]); und den SpawnPlayer(playerid); darunter noch ein print("Debug - Skinauwahl"); gesetzt dieses wird ausgeführt also muss er ja über diese Stelle laufen richtig ?

    3 Mal editiert, zuletzt von NMS ()