[Frage] Start Befehl falsch?

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
  • Moin,
    Ich habe ein Problem mit meinem Befehl um ein Job zu starten.
    Problem : Abfragen wie Ob er im Auto ist und ob der Job schon läuft funktioniert nicht richtig.
    Befehl :

    Spoiler anzeigen
    if (strcmp("/starts", cmdtext, true, 10) == 0)
    {
    if((Joblaufen) == 1)
    {
    new car=GetPlayerVehicleID(playerid);
    if(car==Infernus1||car==Infernus2||car==Infernus3||car==Infernus4)
    {
    Joblaufen = 1;
    SetPlayerCheckpoint(playerid, Checkpoint1, 3.0);
    GameTextForPlayer(playerid, "~g~Du hast nun den Job angenommen!", 3000, 3);
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s ist nun Speed - Curier.", name );
    SendClientMessageToAll(COLOR_RED, string);
    return 1;
    }
    else SendClientMessage(playerid, 0xFFFFFFFF, "Du hast bereits ein Job!");
    }
    SendClientMessage(playerid, COLOR_RED,"Du musst in einem Speed - Infernus sein, um den Job auszuführen!");
    }

    Im Entefeckt soll bei dem Befehl passieren,
    wenn er nicht im Auto ist [Infernus] soll die Nachricht kommen und wenn er schon im Job ist, soll die Nachricht kommen das er bereits ein Job hat.
    Könnte mir wer da weiter helfen :)?


    MfG
    Ed_Hardy

  • SendClientMessage(playerid, COLOR_RED,"Du musst in einem Speed - Infernus sein, um den Job auszuführen!");
    Ersetzen durch:
    else SendClientMessage(playerid, COLOR_RED,"Du musst in einem Speed - Infernus sein, um den Job auszuführen!");


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • Habe ich gerade probiert,
    Wenn das So ist

    Spoiler anzeigen
    if (strcmp("/starts", cmdtext, true, 10) == 0)
    {
    if((Joblaufen) == 1)
    {
    new car=GetPlayerVehicleID(playerid);
    if(car==Infernus1||car==Infernus2||car==Infernus3||car==Infernus4)
    {
    Joblaufen = 1;
    SetPlayerCheckpoint(playerid, Checkpoint1, 3.0);
    GameTextForPlayer(playerid, "~g~Du hast nun den Job angenommen!", 3000, 3);
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s ist nun Speed - Curier.", name );
    SendClientMessageToAll(COLOR_RED, string);
    return 1;
    }
    else SendClientMessage(playerid, 0xFFFFFFFF, "Du hast bereits ein Job!");
    return 1;
    }
    else SendClientMessage(playerid, COLOR_RED,"Du musst in einem Speed - Infernus sein, um den Job auszuführen!");
    return 1;
    }

    kommt der Fehler das ich in einem Infernus sein muss obwohl ich bereits drinne sitze ?oO
    Wenn else SenClient.....Du hast bereits ein Job unten steht dann kommt diese Meldung ingame, das ich bereits ein Job habe, also kann ich den Start befehl nie ausführen.
    Woran liegt das ?


    MfG
    Ed_Hardy

  • if (strcmp("/starts", cmdtext, true, 10) == 0)
    {
    if((Joblaufen) != 1)return SendClientMessage(playerid, 0xFFFFFFFF, "Du hast bereits ein Job!");
    new car=GetPlayerVehicleID(playerid);
    if(car!=Infernus1&&car!=Infernus2&&car!=Infernus3&&car!=Infernus4)return SendClientMessage(playerid, COLOR_RED,"Du musst in einem Speed - Infernus sein, um den Job auszuführen!");
    Joblaufen = 1;
    SetPlayerCheckpoint(playerid, Checkpoint1, 3.0);
    GameTextForPlayer(playerid, "~g~Du hast nun den Job angenommen!", 3000, 3);
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s ist nun Speed - Curier.", name );
    SendClientMessageToAll(COLOR_RED, string);
    return 1;
    }
    Verstehe zwar die Variable "Joblaufen" nicht, aber egal, so muss es gehen.

  • Joblaufen soll abfragen ob er bereits ein Job hat oder nicht, bei /starts soll es ja auf 1 gestellt werden da er da ein Job hat.
    Wenn ich den Befehl ausführe kommt jetzt die Meldung das ich bereits ein Job habe,
    egal ob ich ihm im Infernus ausführe der nicht.
    Joblaufen = 1; dann kommt die Meldung als auch wenn es auf 0 steht.
    Also woran könnte das noch liegen ?


    MfG
    Ed_Hardy

  • if (strcmp("/starts", cmdtext, true, 10) == 0)
    {
    if(Joblaufen[playerid] == 1)return SendClientMessage(playerid, 0xFFFFFFFF, "Du hast bereits ein Job!");
    new car=GetPlayerVehicleID(playerid);
    if(car!=Infernus1&&car!=Infernus2&&car!=Infernus3&&car!=Infernus4)return SendClientMessage(playerid, COLOR_RED,"Du musst in einem Speed - Infernus sein, um den Job auszuführen!");
    Joblaufen[playerid]=1;
    SetPlayerCheckpoint(playerid, Checkpoint1, 3.0);
    GameTextForPlayer(playerid, "~g~Du hast nun den Job angenommen!", 3000, 3);
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "%s ist nun Speed - Curier.", name );
    SendClientMessageToAll(COLOR_RED, string);
    return 1;
    }
    //Dann noch nach
    new Joblaufen;
    //suchen und daraus
    new Joblaufen[MAX_PLAYERS];
    //machen^^ :)

  • Danke, jetzt funktioniert die ganze Sache,
    nur noch eine Frage.
    Was ist an dem Code unter OnPlayerExitVehicle

    Spoiler anzeigen
    if((Joblaufen) == 1)
    {
    Joblaufen = 0;
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid, COLOR_RED, "Du hast das Fahrzeug verlassen.");
    SendClientMessage(playerid, COLOR_RED, "Somit ist deine Tour vorbei!");


    falsch ?
    Bekomme da 2Errors wegen den 2Variablen Joblaufen Oo
    Spoiler anzeigen
    C:\Dokumente und Einstellungen\Ed_Hardy\Desktop\samp03asvr_win32\gamemodes\SesStunt.pwn(5624) : error 033: array must be indexed (variable "Joblaufen")
    C:\Dokumente und Einstellungen\MEd_Hardy\Desktop\samp03asvr_win32\gamemodes\SesStunt.pwn(5626) : error 033: array must be indexed (variable "Joblaufen")


    MfG
    Ed_Hardy

  • if((Joblaufen[playerid]) == 1)
    {
    Joblaufen[playerid] = 0;
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid, COLOR_RED, "Du hast das Fahrzeug verlassen.");
    SendClientMessage(playerid, COLOR_RED, "Somit ist deine Tour vorbei!");


    }