Position auslesen und Spieler benachrichtigen.

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
  • Hi,


    ich habe mal wieder eine Frage:
    Nehmen wir an, wir haben einen Bus, der durch die Gegend fährt.
    Und nehmen wir auch an, dass der Spieler beim Einsteigen in ein Interior in 3000 Metern Höhe kommt.
    Wie lasse ich den Spieler nun wissen, wann der Bus an der Haltestelle ist und wann er aussteigen sollte aus dem Interior?


    Liebste Grüße,
    PreJay

  • Ich bin mirr sicher, aber ich glaube damit?:


    if(IsPlayerInRangeOfPoint(botname, 5.0, HIER DANN DIE KOORDINATEN VON DER BUSSTATION))


    Und das halt alle 5 Sekunden oder so.



    Ich hatte 2 Jahre lang pause, bin mir nicht sicher, ob das richtig ist.


    MfG

  • Ich weiß nicht, ob das geht, aber könnte man nicht theoretisch an den Bushaltestellen Checkpoints für den NPC erstellen und wenn dieser da reinfährt, erhält jeder Spieler im "Bus" dann eine festgelegte Nachricht (z.B. Derzeitige Busstation)


    Geht das?

  • Hallo [GSR]PreJay,


    so mein erster Beitrag nach ähm langer, langer Zeit. :D (greeetz Blackiii :* )


    Da ich seit langer Zeit raus bin hier die Theorie ohne Timer etc.


    • Checkpoint für den NPC erstellen (isPlayerNPC etc)
    • OnPlayerEnterCheckpoint abfragen ob der NPC im Checkpoint ist
    • Deine Aktion durchführen
    • Nächsten Checkpoint setzten bzw den Checkpoint erneut setzen falls es sich im eine Routine handeln sollte (Bus fährt immer dieselbe Strecke)


    Mit freundlichen Grüßen
    eXchange


    Bitte keine Script/Supportanfragen via PN!!!
    (Ausnahme: Scripten gegen Bezahlung!)

  • Ich habe gerade wohl eine kleine Denkblockade. Wieso bekomme ich hier nun beide Meldungen (also: Haltstelle Bahnhof und Flughafen) x-mal im Chat gespammt? Ich seh' gerade den Grund nicht...
    if(BusCheckSchwarz[playerid] == 2) {
    if(IsPlayerNPC(playerid))
    {
    new npcvehicle = GetPlayerVehicleID(playerid);
    new string[128];
    if(npcvehicle == SchwarzeLinie)
    {
    format(string, sizeof(string), "[Aktuelle Haltestelle] LS Bahnhof");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i, 25, 2021.9390,2241.9487,2103.9536) && P_Data[i][pBusID] == 1)
    {
    SendClientMessage(i, COLOR_LIGHTGREEN, string);
    PlayerPlaySound(i, 1147, 0.0, 0.0, 0.0);
    }
    }
    }
    SetPlayerCheckpoint(playerid, 1651.3413, -2251.2000, 13.3367, 4);
    BusCheckSchwarz[playerid] = 1;
    }
    }

  • Du darfst NIE
    eine nachricht in einem Schleife Ausgeben


    if(BusCheckSchwarz[playerid] == 2) {
    if(IsPlayerNPC(playerid))
    {
    new npcvehicle = GetPlayerVehicleID(playerid);
    new string[128];
    if(npcvehicle == SchwarzeLinie)
    {
    format(string, sizeof(string), "[Aktuelle Haltestelle] LS Bahnhof");
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i, 25, 2021.9390,2241.9487,2103.9536) && P_Data[i][pBusID] == 1)
    {
    PlayerPlaySound(i, 1147, 0.0, 0.0, 0.0);
    }
    }
    SendClientMessage(i, COLOR_LIGHTGREEN, string);
    }
    SetPlayerCheckpoint(playerid, 1651.3413, -2251.2000, 13.3367, 4);
    BusCheckSchwarz[playerid] = 1;
    }
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Du darfst NIE
    eine nachricht in einem Schleife Ausgeben


    Was für ein bullshit weißt du überhaupt für was die schleife hier benutzt wird ?
    Bestimmt nicht daher werde ich dir da smal erläutern und zwar siehe allein die koordinaten an diese sind sehr groß und geben den rückschluss darüber das es sich um ein interior handelt in dem
    die Spieler sind wenn sie in dem bus einsteigen.
    Dieser wert wird zusätzlich wird ein gesetzter wert abgeprüft.
    So nun zur schleife die geht natürlich das array durch un überprüft auch noch ob der spieler in dem jeweiligen bereich ist obwohl das überflüssig ist da ja schon ein wert wahrscheinlich beim betreten gesetzt wurde.
    Nun gut ist der Spieler in der nähe und ist der wert für P_Data[playerid][pBusID] gleich 1 so wird dennen die nachricht und der ton gesendet.


    Was man besser nie machen sollte was auch sinnlose ist, ist wenn die Nachricht an eine Person gesendet werden sollte in der schleife ist also sowas zum beispiel:

    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i, 25, 2021.9390,2241.9487,2103.9536) && P_Data[i][pBusID] == 1)
    {
    PlayerPlaySound(i, 1147, 0.0, 0.0, 0.0);
    SendClientMessage(playerid, COLOR_LIGHTGREEN, "Du als Busfahrer hast die Haltestelle xyz erreicht");
    }
    }


    }

  • Wieder was dazu gelernt! :D Nun weiß ich doch aber leider nach wie vor nicht, warum ich die Meldung x-mal bekomme. Jedenfalls wird jetzt nur noch eine Haltestelle gespammt, ich hatte das DisablePlayerCheckpoint() vergessen, deswegen ging das falsch.


    EDIT: Niemand eine Idee?