automatische Fahrschule verwendet nur Playerid "0"

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, habe eine Problem und zwar die automatische Fahrschule benutzt nur die Playerid "0".
    D.H: Ich bin ID 0 und sehe nur die Checkpoints und so. Ein weiterer Spieler "ID 1" sieht keine Checkpoints.
    An was könnte es liegen?


    if(dialogid == DIALOG_AUTOFAHRSCHULE)
    {
    if(response)
    {
    if(listitem==0)
    {
    for(new i=0; i<sizeof(Fahrauto); i++)
    {
    PutPlayerInVehicle(playerid,Fahrauto[i],0);
    }
    Fahrpruefung[playerid] = 1;
    Freeze[playerid] = 20;
    TextTimer[playerid] = 5;
    GivePlayerMoney(playerid,-1250);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid, K3VIN, " ");
    SendClientMessage(playerid, K3VIN, " ");
    SendClientMessage(playerid, K3VIN, " ");
    SendClientMessage(playerid, K3VIN, " ");
    SendClientMessage(playerid, K3VIN, " ");
    SendClientMessage(playerid, K3VIN, "Herzlich Willkommen zur Automatischen Fahrschule,");
    SendClientMessage(playerid, K3VIN, "damit es gleich los geht, werden dir vohrer noch ein Paar grundregeln beigebracht.");
    SendClientMessage(playerid, K3VIN, " ");
    SendClientMessage(playerid, GELB, "~~~~ Geschwindigkeit ~~~~");
    SendClientMessage(playerid, WHITE, " Innerorts 60-80Km/h");
    SendClientMessage(playerid, WHITE, " Ausserorts max. 160Km/h");
    SendClientMessage(playerid, GELB, "~~~~~~~~~~~~~~~~~~~~~~~~~");
    SendClientMessage(playerid, WHITE, " ");
    }
    }
    }


    if(TextTimer[playerid] == 0 && Freeze[playerid] > 0)
    {
    if(Fahrpruefung[playerid] == 1)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new lights,alarm,doors,bonnet,boot,objective;
    TextTimer[playerid] = 0;
    Freeze[playerid] = 0;
    SendClientMessage(playerid, GELB, "~~~~ Fahrrichtlinien ~~~~");
    SendClientMessage(playerid, WHITE, " Auf 4 Spurigen Straßen gelten die Ampeln");
    SendClientMessage(playerid, WHITE, " Auf 2 Spurigen Straßen Rechts v. Links.");
    SendClientMessage(playerid, GELB, "~~~~~~~~~~~~~~~~~~~~~~~~~");
    SendClientMessage(playerid, K3VIN, " ");
    SendClientMessage(playerid, K3VIN, "Es geht los, es werden dir ein Paar Checkpoints gesetzt, fahre diese bitte ab.");
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
    SetPlayerCheckpoint(playerid,1432.1012,-1606.3234,12.9460,5.0);
    return 1;
    }
    }


    if(IsPlayerInRangeOfPoint(playerid,5.0,1432.1012,-1606.3234,12.9460))
    {
    SendClientMessage(playerid,F_O, " ");
    SendClientMessage(playerid,F_O, ".: 1 Checkpoint erreicht :.");
    SendClientMessage(playerid,F_O, "Weiter zum nächsten");
    SetPlayerCheckpoint(playerid,1456.3450,-1344.4047,12.9473,5.0);
    }
    if(IsPlayerInRangeOfPoint(playerid,5.0,1456.3450,-1344.4047,12.9473))
    {
    SendClientMessage(playerid,F_O, " ");
    SendClientMessage(playerid,F_O, ".: 2 Checkpoint erreicht :.");
    SendClientMessage(playerid,F_O, "Weiter zum nächsten");
    SetPlayerCheckpoint(playerid,1550.6346,-1305.8374,15.9807,5.0);
    }
    if(IsPlayerInRangeOfPoint(playerid,5.0,1550.6346,-1305.8374,15.9807))
    {
    SendClientMessage(playerid,F_O, " ");
    SendClientMessage(playerid,F_O, ".: 3 Checkpoint erreicht :.");
    SendClientMessage(playerid,F_O, "Weiter zum nächsten");
    SetPlayerCheckpoint(playerid,1601.2756,-1400.2301,13.4819,5.0);
    }
    if(IsPlayerInRangeOfPoint(playerid,5.0,1601.2756,-1400.2301,13.4819))
    {
    SendClientMessage(playerid,F_O, " ");
    SendClientMessage(playerid,F_O, ".: 4 Checkpoint erreicht :.");
    SendClientMessage(playerid,F_O, "Weiter zum nächsten");
    SetPlayerCheckpoint(playerid,1656.3323,-1555.8042,12.9474,5.0);
    }
    if(IsPlayerInRangeOfPoint(playerid,5.0,1656.3323,-1555.8042,12.9474))
    {
    SendClientMessage(playerid,F_O, " ");
    SendClientMessage(playerid,F_O, ".: 5 Checkpoint erreicht :.");
    SendClientMessage(playerid,F_O, "Weiter zum nächsten");
    SetPlayerCheckpoint(playerid,1453.2759,-1589.3062,12.9473,5.0);
    }
    if(IsPlayerInRangeOfPoint(playerid,5.0,1453.2759,-1589.3062,12.9473))
    {
    SendClientMessage(playerid,F_O, " ");
    SendClientMessage(playerid,F_O, ".: Letzten Checkpoint erreicht :.");
    SendClientMessage(playerid,F_O, "Fahre zurück zum Fahrschulgelände");
    SetPlayerCheckpoint(playerid,1372.9949,-1648.7467,12.9440,5.0);
    }
    if(IsPlayerInRangeOfPoint(playerid,5.0,1372.9949,-1648.7467,12.9440))
    {
    if(Fahrpruefung[playerid] == 1)
    {
    for(new i=0; i<sizeof(Fahrauto); i++)
    {
    if(GetPlayerVehicleID(playerid) == Fahrauto[i])
    {


    SendClientMessage(playerid, F_O, " ");
    SendClientMessage(playerid, K3VIN, "Herzlichen Glückwunsch,");
    SendClientMessage(playerid, K3VIN, "Du hast den Autoführerschein bestanden.");
    Fahrpruefung[playerid] = 0;
    SetPVarInt(playerid,"Autoschein",1);
    SetVehicleToRespawn(Fahrauto[i]);
    }
    }
    }
    }


    Gruß

  • :o Die Checkpointabfrage sieht sehr "wüst" und unübersichtlich aus und es wäre besser, wenn du die TextTimer Definition nochmal postest :)
    Checkpoints werden normalerweise nicht so abgefragt und wenn das ganze auch noch mit einem Timer läuft ist es möglich, dass du später mit mehreren Spielern große Probleme bekommst, da Timer die Server-CPU belasten und diese Timer an dieser Stelle unnötig sind. Die Checkpointabfrage lässt sich hervorragend mit mehrdimensionales Arrays regeln!