Brauche Hilfe bei einem Befehl

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
  • Da ich erst seit ein paar Tagen sripte (und auch schon was geschafft habe :D ) habe ich hier ein fehler imBefehl den ich nicht weg bekomme^^
    Wäre nett wenn mal einer drauf gucken könnte und mir sagen kann ob das komplett mist ist oder nur einfacher Fehler Xd
    Es sind 26 errors also klammer falsch glaube ich...aber habe halt noch keine große ahnung vom sripten.... :|
    Vieleicht könnte mir einer den befehl /beladen mit einbauen,der soll aber nur gehen wenn der spieler im checkpoint war..


    if (strcmp("/startl", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,COLOR_RED,"Fahre nun in den Wald...!!");
    SetPlayerCheckpoint(playerid,447.5733,-1912.5801,6.3275,10);
    }
    if IsPlayerInCheckpoint(playerid);
    {
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid,COLOR_RED,"Du kannst den Truck jetzt beladen!! /beladen");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist noch nicht am Ziel!!");
    }
    return 1;
    }

  • du kannst doch nicht in einem befehl abfragen ob der spieler in dem checkpoint ist der gerade erstellt wurde da die funtktion danach beendet wird. die abfrage muss unter public onplayerentercheckpoint

  • Weiß nich, ob sich das mit Pawn verträgt, aber versuche es mal so:



    new checkpoint1[MAX_PLAYERS] = SetPlayerCheckpoint(...);


    Zu deinem Problem mit den 26 Errors: Mithilfe des Semikolons ; wird Pawn gezeigt, dass hiermit die Zeile vorbei ist und der Code so ausgeführt werden soll. Möchtest du eine Bedingung miteinbringen, so musst du das ohne ; tun.
    Nun hast du aber mehrere Fehler reingebracht:



    if (strcmp("/startl", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,COLOR_RED,"Fahre nun in den Wald...!!");
    SetPlayerCheckpoint(playerid,447.5733,-1912.5801,6.3275,10);
    }


    Mit { startest du eine Bedingung (wenn der Spieler /startl eintippt) und mit } schließt du sie. Das heißt, der Rest des Codes wird gar nicht beachtet.



    if IsPlayerInCheckpoint(playerid);
    {
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid,COLOR_RED,"Du kannst den Truck jetzt beladen!! /beladen");
    return 1;
    }


    Hier möchtest du eine Bedingung starten, welches aber nicht geht, weil du den Code gleich ausführen lässt. (;)
    Noch etwas: durch das return wird dort abgebrochen, was aber (glaube ich) nicht beabsichtigt sein sollte.


    - surrender

  • ok danke für deine erklärungen ich versuch mal was draus zu machen^^
    :thumbup:



    EDIT
    aber wie soll ich den checkpoint mit in den befehl /start reinbring und wie unter public OnPlayerEnterCheckpoint(playerid)?
    also wie soll ich da checkpoint1 mit reinschreiben?


    sry aber ich bin anfänger^^

    3 Mal editiert, zuletzt von Jadon ()

  • new zielid[MAX_PLAYERS]; // Zwischenspeicher für jeweilige Zielangabe siehe weiter unten ( Kommando & Aktion )


    // Kommando
    if(!strcmp("/startl", cmdtext, true))
    {
    if(zielid[playerid] > 0)return SendClientMessage(playerid,0xFF0000FF,"Du hast bereits ein Ziel...");
    SendClientMessage(playerid,COLOR_RED,"Fahre nun in den Wald...!!");
    zielid[playerid] = 2; // Ziel setzen damit nichts vertauscht wird...
    return SetPlayerCheckpoint(playerid,447.5733,-1912.5801,6.3275,10);
    }


    //Unter OnPlayerEnterCheckPoint...


    if(zielid[playerid] == 2)
    {
    SendClientMessage(playerid,0x00FF00FF,"Du hast das Ziel erreicht!");
    }



    Sollte so Funktionieren wenn, ist nur ein Beispiel, musst du halt nur noch bearbeiten & nach deinen Wünschen gestalten...

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • Danke BF baue ich sofort ein^^


    -closed-
    EDIT
    sooo muss wieder was fragen^^
    wie kann ich das mit dem script von Black Fox so machen /start und /beladen nur an einer bestimmten stelle machen kann?
    weil wenn ich jetzt noch zufüge dass man geld bekommt kann man sich ja vor den checkpoint stellen und die ganze zeit / beladen machen....^^
    aso /beldaen dürfte auch nur gehen wenn man voher los gemacht hat und ebim checkpoint gewesen ist .....wie macht man das?



    hoffe ihr helft mir noch mal^^
    Myn

    Einmal editiert, zuletzt von Jadon ()

  • ne dersript von blach fox mach ja ohne das ich


    if(IsPlayerinRangeOfPoint(playerid, RADIUS, x,y,z) {


    einfügen will ja keine errors und wenn ich die klammer einfüge bei retunrn hab ich immer noch errors :D help^^


    wo undwie soll ich denn if(IsPlayerinRangeOfPoint(playerid, RADIUS, x,y,z) { einfügen?

  • ja du willst dass man den befehl auf einer bestimmtden stelle ausführen muss/kann?


    if(!strcmp("/startl", cmdtext, true))
    {
    if(IsPlayerinRangeOfPoint(playerid, RADIUS, x,y,z) {
    if(zielid[playerid] > 0)return SendClientMessage(playerid,0xFF0000FF,"Du hast bereits ein Ziel...");
    SendClientMessage(playerid,COLOR_RED,"Fahre nun in den Wald...!!");
    zielid[playerid] = 2; // Ziel setzen damit nichts vertauscht wird...
    return SetPlayerCheckpoint(playerid,447.5733,-1912.5801,6.3275,10);
    }}

  • 1 error .pwn(149) : error 017: undefined symbol "IsPlayerinRangeOfPoint"


    wie kann man das definieren^^ ?


    EDIT wartet mal du hast in klein geschrieben ....



    EDIT2



    wenn ich das jetzt groß mache also IsPlayerInRange ..... dann kommt das hier: 149) : error 001: expected token: ")", but found "{"

  • jaa is mir schon aufgefalllen doch immer noch error^^


    wenn ich das jetzt groß mache also IsPlayerInRange ..... dann kommt das hier: 149) : error 001: expected token: ")", but found "{"



    if(!strcmp("/startl", cmdtext, true))
    {
    if(IsPlayerInRangeOfPoint(playerid, 4, -1970.0770,-2433.3831,30.7094) {
    if(zielid[playerid] > 0)return SendClientMessage(playerid,0xFF0000FF,"Du hast bereits ein Ziel...");
    SendClientMessage(playerid,COLOR_RED,"Fahre nun in den Wald...!!");
    zielid[playerid] = 2; // Ziel setzen damit nichts vertauscht wird...
    return SetPlayerCheckpoint(playerid,447.5733,-1912.5801,6.3275,10);
    }}


    hab das so mit dem error


    EDIT
    wie bekomme ich den weg de error was is da falsch dran?:D

    Einmal editiert, zuletzt von Jadon ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen