Probleme beim Duty Pickup

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
  • Ich habe ein Problem, ich wollte ein Duty Pickup machen, das auf Score reagiert.
    Nur hab ich ein Problem, ich kriege zwar keine Error/Warnings, jedoch kommt immer wenn ich IG bin die Meldung (Also wenn ich ins Pickup gehe) "Du arbeitest nicht beim PD!"


    Hier mal die Zeilen:
    if (pickupid ==PD1E)
    {
    if(PD1 == 0)
    {
    if(GetPlayerScore(playerid) != 1 ||GetPlayerScore(playerid) != 11 ||GetPlayerScore(playerid) != 111)return SendClientMessage(playerid,ROT,"Du arbeitest nicht beim PD!");
    SetPlayerColor(playerid,Police);
    new sendername[MAX_PLAYER_NAME], string[128];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s hat den Dient beim PD begonnen!", sendername);
    SendClientMessageToAll(COLOR_WHITE, string);
    PD1 = 1;
    }
    else
    {
    if(PD1 == 1)
    {
    SetPlayerColor(playerid,Zivi);
    new sendername[MAX_PLAYER_NAME], string[128];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s hat den Dient beim PD beendet!", sendername);
    SendClientMessageToAll(COLOR_WHITE, string);
    PD1 = 0;
    }
    }
    }
    Vielleicht könnt ihr mir ja helfen?^^

  • Müsste ma sehen wie du PD1 definiert hast, und wo es verändert wird. in diesem scriptabschnitt find ich jetz keine fehler.

    Delphi - Check
    PHP - Check
    PAWN - Check
    MySQL - Check


    Bissel rumnerden :D


  • new PD1[MAX_PLAYERS]; // Variable für jeden spieler einzeln, nicht mehr global




    if (pickupid ==PD1E)
    {
    if(PD1[playerid] == 0 && GetPlayerScore(playerid) == XXX)
    {
    SetPlayerColor(playerid,Police);
    new sendername[MAX_PLAYER_NAME], string[128];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s hat den Dient beim PD begonnen!", sendername);
    SendClientMessageToAll(COLOR_WHITE, string);
    PD1[playerid] = 1;
    }
    else if(PD1[playerid] == 1)
    {
    SetPlayerColor(playerid,Zivi);
    new sendername[MAX_PLAYER_NAME], string[128];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s hat den Dient beim PD beendet!", sendername);
    SendClientMessageToAll(COLOR_WHITE, string);
    PD1[playerid] = 0;
    }
    }





    € für 'XXX' deinen Score eintragen...
    €² Code ausgebessert

  • Ich kriege leider diese Errors:
    D:\GTA San Andreas\GTA San Andreas\GTA San Andreas\gamemodes\ModdedRL.pwn(797) : error 029: invalid expression, assumed zero
    D:\GTA San Andreas\GTA San Andreas\GTA San Andreas\gamemodes\ModdedRL.pwn(797) : error 022: must be lvalue (non-constant)
    D:\GTA San Andreas\GTA San Andreas\GTA San Andreas\gamemodes\ModdedRL.pwn(797) : error 029: invalid expression, assumed zero
    D:\GTA San Andreas\GTA San Andreas\GTA San Andreas\gamemodes\ModdedRL.pwn(797) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.
    Hier die Zeile:
    if(PD1[playerid] == 0 && if(!GetPlayerScore(playerid) = 1 || = 11 || = 111)return SendClientMessage(playerid,ROT,"Du arbeitest nicht beim PD!");

  • new PD1[MAX_PLAYERS]; // Variable für jeden spieler einzeln, nicht mehr global




    if (pickupid ==PD1E)
    {
    if(PD1[playerid] == 0 && GetPlayerScore(playerid) != 1 || PD1[playerid] == 0 && GetPlayerScore(playerid) != 11 || PD1[playerid] == 0 && GetPlayerScore(playerid) != 111)
    {
    SetPlayerColor(playerid,Police);
    new sendername[MAX_PLAYER_NAME], string[128];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s hat den Dient beim PD begonnen!", sendername);
    SendClientMessageToAll(COLOR_WHITE, string);
    PD1[playerid] = 1;
    }
    else if(PD1[playerid] == 1)
    {
    SetPlayerColor(playerid,Zivi);
    new sendername[MAX_PLAYER_NAME], string[128];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s hat den Dient beim PD beendet!", sendername);
    SendClientMessageToAll(COLOR_WHITE, string);
    PD1[playerid] = 0;
    }
    }


    habe das von PhoeniX mal genommen und das so gemacht das das mit deinem score ist. Ich hoffe das klappt so.

  • Ich glaube die Abfrage ist Falsch, denn ich kann mit jedem Score nun den Job beginnen, außerdem wollte ich fragen wie ich machen kann das dann da steht, wenn der Spieler halt nicht 1/11 oder 111 Punkte hat, das dann da steht "Du arbeitest nicht beim PD!" wäre Nett wenn das einer lösen könnte, also man sollte nur mit den Punkten 1,11 und 111 den Job beginnen können ;)


    Edit:/ Aber sonst tut es klappen :)

  • Hängste an deine Abfrage nochn else dran, wenn er keine rechte hat wirn ne Msg gemacht.



    else
    {
    SendClientMessage(playerid, red, "Du arbeitest nicht beim PD!");
    }

    Delphi - Check
    PHP - Check
    PAWN - Check
    MySQL - Check


    Bissel rumnerden :D