/duty Befehl Problem

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
  • Geehrte Community ich befasse mich derzeit mit einem /duty befehl nun bin ich aber auf ein Problem gestoßen und zwar, habe ich bereits ein Enum erstellt und möchte dieses gerne in einem "ImDienst" übernehmen nun weiß ich leider nicht, wie ich im meinem Falle ImDienst" (entspricht duty) definieren muss um das dieser Befehl auch auf dem Server umgesetzt wird.


    Hier der Code:


    ocmd:duty(playerid,params[])
    {
    if(pInfo[playerid][Fraktion][ImDienst]==1)
    {
    SendClientMessage(playerid,ROT," Du bist nun im Dienst");
    GivePlayerWeapon(playerid,38,1000);
    }
    else if(pInfo[playerid][Fraktion][ImDienst]==0)
    {
    SendClientMessage(playerid,"Du bist nun nicht mehr im Dienst");
    ResetPlayerWeapons(playerid);
    }
    return 1;
    }


    Für jede Hilfe bin ich dankbar


    MfG


    Styler_1

  • so würd ich das machen



    ocmd:duty(playerid,params[])
    {
    if(pInfo[playerid][Fraktion][ImDienst]==0)// null steht dafür das er nicht duty ist
    {
    SendClientMessage(playerid,ROT," Du bist nun im Dienst");
    pInfo[playerid][Fraktion][ImDienst]=1;
    GivePlayerWeapon(playerid,38,1000);
    }
    else // also wenn er dann schon duty ist
    {
    SendClientMessage(playerid,"Du bist nun nicht mehr im Dienst");
    pInfo[playerid][Fraktion][ImDienst]=0;
    ResetPlayerWeapons(playerid);
    }
    return 1;
    }

    Alles sollte so einfach wie möglich gemacht werden, aber nicht einfacher.
    "Albert Einstein"

  • Ok wenn ich das jetzt so übernehme bekomme ich nun aber folgenden Fehler bei mir in Zeile 314


    Dies Entpricht dann bei mir diese Zeile


    ocmd:duty(playerid,params[])
    {
    if(pInfo[playerid][Fraktion][ImDienst]==0) // <---- Fehler Zeile
    {
    SendClientMessage(playerid,ROT," Du bist nun im Dienst");
    pInfo[playerid][Fration][ImDienst]=1;
    GivePlayerWeapon(playerid,38,1000);
    }
    else
    {
    SendClientMessage(playerid,"Du bist nun nicht mehr im Dienst");
    pInfo[playerid][Fraktion][ImDienst]=0;
    ResetPlayerWeapons(playerid);
    }
    return 1;
    }


    Fehler:


    Test1.pwn(314) : error 001: expected token: ")", but found "["
    Test1.pwn(314) : error 029: invalid expression, assumed zero
    Test1.pwn(314) : warning 215: expression has no effect
    \Test1.pwn(314) : error 001: expected token: ";", but found "]"
    Test1.pwn(314) : fatal error 107: too many error messages on one line

  • Mach's am besten so:

    new Duty[MAX_PLAYERS];


    //Beim Befehl


    ocmd:duty(playerid,params[])
    {
    if(Duty[playerid] == 0)
    {
    Duty[playerid] = 1;
    //Spieler Duty machen
    }
    else if(Duty[playerid] == 1)
    {
    Duty[playerid] = 0;
    //Spieler in Normalzustand setzten
    }
    return 1;
    }


    Ist am Schnellsten & einfachsten


    Gruß

  • Ich war mir nicht sicher ob ich einen neue Variabele machen soll hätte das glaub auch nicht ganz geschafft bin noch nicht so erfahren. ;)


    Aber vielen Dank für eure Hilfen


    MfG


    Styler_1

    Einmal editiert, zuletzt von Styler_1 ()