Is Player in Range () = Befehl ausführen

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
  • Heyho liebe Comunity
    Ich bins wiedermal euer Masterstorm
    Mein Problem:
    Also ich gebe nun einen Befehl ein z.b "/test" danach erscheint bei mir auf der Karte einen Checkpoint. das klappt auch alles wunderbar. doch wenn ich jetzt zu diesem Checkpoint fahre, funktioniert iwie der IsPlayerInRange Befehl ned also zuerst "/test"-> chekpoint erscheint auf der strasse,-> fahre hin -> und ein Befehl soll ausgeführt werden z.b das dan ne 1 an alle gesendet wird und der Chekpoint wieder verschwindet.
    kann mir da einer helfen?
    Wäre sehr Dankbahr ^^


    MFG: Masterstorm :thumbup:

    I didn't hit you. I high fived your face.

  • Kannst doch auch einfach ein 'new' für den Checkpoint machen und bei OnPlayerEnterCheckpoint den Checkpoint verschwinden lassen und auch gleich andere Sachen ausführen



    new bool:Checkpoint1;


    dcmd_test(playerid,params[]) {
    #pragma unused params
    {
    if(IsPlayerConnected(playerid))
    {
    SetPlayerCheckpoint(lalala);
    Checkpoint1 = true;
    }
    return 1;
    }
    }


    public OnPlayerEnterCheckpoint(playerid)
    {
    if(Checkpoint1 == true) {
    DisablePlayerCheckpoint(playerid);
    Checkpoint1 = false;
    return 1;
    }

  • hehe mach einfach bei deinen new´s im Script oben:


    new bool:Checkpoint1;


    dann gehst du zu deinem Command /test und fügst dort wo der Checkpoint erstellt wird drunter:


    Checkpoint1 = true;


    Dann suchst du mit STRG + F "OnPlayerEnterCheckpoint" und fügst das ein:



    if(Checkpoint1 == true) {
    DisablePlayerChekpoint(playerid);
    Checkpoint1 = false;
    }


    Edit: Fehler :S

  • gud danke passt werde es sobald wie möglich testen ;)
    nun hab ich aber nochmal ne andere Frage
    wie muss ich das jetzt machen wen ich nur möchte das der nur in den punkt stehen mus und aleine davon ein befehl ausgeführt wird?


    MFG: Masterstorm :thumbup:

    I didn't hit you. I high fived your face.

  • wenn du strcmp verwendest machst einfach so:


    if(Checkpoint1 == true) {
    DisablePlayerChekpoint(playerid);
    Checkpoint1 = false;
    OnPlayerCommandText(playerid,"/test");
    }

  • nene jetzt haste mich falsch verstanden sry
    also abgesehen vom oberen problem
    ich definiere einen Punkt mittels koordinaten so nun wen einer da reintritt, sol ein befehl ausgeführt werden z.b eben das an alle ne 1 gesendet wird ;)
    hoffe das es jetzt klar ist ^^


    MFG: Masterstorm :thumbup:

    I didn't hit you. I high fived your face.

  • Achso dann machst du einfach:
    if(Checkpoint1 == true) {
    DisablePlayerChekpoint(playerid);
    Checkpoint1 = false;
    SendClientMessageToAll(*FARBE*,"Ich bin in den Checkpoint rein getreten!");
    }

  • Keine Ursache, ich hoffe ich konnte dir soweit helfen, wenn du noch was brauchst frag einfach.

  • Welche Koordinaten meist du denn? Die des Checkpoints kannst du dir selbst setzen:


    SetPlayerCheckpoint(playerid, Koord:X, Koord:Y, Koord:Z, Größe des Checkpoints bsp: 5.0 );

  • Die Koordinaten kannst du im Spiel per "/save" in eine Datei Speichern lassen. Die Datei findest du unter C:\Users\*NAME*\Documents\GTA San Andreas User Files\SAMP\savedpositions.txt

  • Ui ui ui ui... Ich helf dir dann per PM weiter das wird hier Offtopic.. Muss mir eben nur fix ne neue maus Kaufen gehen.