Job system komme nicht weiter :(

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
  • Hay,
    ich habe ein Halb Dynamisches Job System erstellt, komme aber nicht weiter :(
    Code:


    Mit freundlichen Grüßen,
    Chriss aka. xDesertx

  • Am besten wäre, wenn du die einzelnen Job Positionen oben im Script definierst, und anstatt die [i] jeweil die ID des Jobs hinein schreibt,
    und dann in Verbindung mit den oben definierten Positionen .

    ehm. Administration StateV ~ Domi

  • Hallo Chrissss,


    Kennst Du dich eigentlich mit Arrays aus?
    Es sieht mir fast nicht dannach aus, da Du einen Fehler gemacht hast.


    Erstmal: Du kannst PAWN-Code übersichtlicher darstellen, wenn Du die

    Code
    [pawn][/pawn]


    Tags benutzt.


    Kommen wir zum wesentlichen:
    Du hast bei der Positionsabfrage bei der Variable für die Position X den Index ausgelassen (Das "i").
    Somit würde die Zeile dir wahrscheinlich nen Error rauswerfen.


    Dass Du die Job-ID im Array mit speicherst ist eine mögliche Lösung.
    Andernfalls könntest du die Job-Punkte auch in der Reihenfolge definieren, in der Du die Jobs definierst hast.
    Wenn Job-ID 5 also Mechaniker wäre, dann würdest du an 5. Stelle den Job-Punkt für die Mechaniker definieren.
    Dann müsstest Du die Job-ID nicht im Array definieren sondern könntest einfach die Variable nehmen, mit der Du in der Schleife arbeitest.
    Diese müsstest Du dann natürlich noch +1 rechnen, weil der Index eines Array bei 0 beginnt, Job-ID 0 aber sehr wahrscheinlich bei dir "Arbeitlosigkeit" bedeutet.


    Du müsstest ausserdem die "else"-Abfragen auslassen.
    Die Schleife wiederholt sich solange bis sie der Zähler (Das "i") So groß wie MAX_JOBS ist.
    Auch wenn du an einer Position stehst würdest Du nen Spam an "Du stehst nicht da und da"-Nachrichten abbekommen.
    Regel das am besten mit einem boolean, Den Du in der Schleife auf true setzt, wenn er einer Position steht.
    Den kannst Du später ganz leicht abfragen ;)


    Beide Lösungen, die du nur noch an die Gegebenheiten deines Scripts anpassen muss:
    for(new i; i<MAX_JOBS; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0,JobSyst[i][AnnehmbarX], JobSyst[i][AnnehmbarY], JobSyst[i][AnnehmbarZ]))
    {
    PlayerInfo[playerid][Job] = i+1;
    SendClientMessage(playerid,FARBE,"Job Erfolgreich Angenommen");
    }
    }
    for(new i; i<MAX_JOBS; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0,JobSyst[i][AnnehmbarX], JobSyst[i][AnnehmbarY], JobSyst[i][AnnehmbarZ]))
    {
    PlayerInfo[playerid][Job] = JobSyst[i][JobID]
    SendClientMessage(playerid,FARBE,"Job Erfolgreich Angenommen");
    }
    }