Interior über Checkpoint betretbar machen. RageMP

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
  • Hallo Community.
    Ich habe jetzt schon länger geschaut ob ich zu dem Thema was finden kann aber immer nur ziemlich Bruchig alles.
    Und jetzt wollte ich euch fragen wie kann ich ein Interior über ein Marker (Checkpoint)Betretbar machen?
    Zum beispiel das ich ins Casino komme in den ich in den Marker laufe und dann "E" Drücke.
    Wie gesagt habe schon viel hin und her geschaut aber bin einfach nicht Fundig geworden.
    Würde mich Freuen wenn mir da Jemand ein bisschen Hilfestellung leisten könnte.


    Vielen Dank

  • Mit mp.keys.bind einen neuen Handler für die E-Taste setzen, in diesem Handler fragst du ab ob der Spieler in der Nähe von dem Marker ist, wenn ja dann teleportierst du den Spieler in das Interior. (mp.keys.bind ist clientside, und das teleportieren machst du serverside)

  • https://wiki.rage.mp/index.php?title=Marker::Marker

    Code
    let marker = mp.markers.new(0, new mp.Vector3(0.0, 0.0, 0.0), 1);
    
    
    // Im Key Handler für E
    if(mp.game.system.vdist(mp.players.local.position.x, mp.players.local.position.y, mp.players.local.position.z, marker.position.x, marker.position.y, marker.position.z) < 2.5) mp.events.callRemote("markerPosition");

    https://wiki.rage.mp/index.php?title=Entity::position

    Code
    mp.events.add("markerPosition", (player) => {
        player.position = new mp.Vector3(x, y, z);
    });
  • So habe nun das Problem das er über die E Taste nicht eintritt.


    //Client Packageslet marker = mp.markers.new(0, new mp.Vector3(294.387, -1448.783, 29.967), 1);mp.keys.bind(0x71, false, () =>{if(mp.game.system.vdist(mp.players.local.position.x, mp.players.local.position.y, mp.players.local.position.z, marker.position.x, marker.position.y, marker.position.z) < 2.5){mp.world.requestIpl("Coroner_Int_On");mp.events.callRemote("275.446, -1361.11, 24.5378");}});

    Einmal editiert, zuletzt von McTavish348 ()

  • 275.446, -1361.11, 24.5378 ist die Interior Koordinate oder liege ich das Falsch?

    Natürlich sind das die Koordinaten, aber doch nicht der Event-Name, der gefordert ist.


    Also musst du es so schreiben:


    mp.events.callRemote("teleportInterior");

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Funktioniert immer noch nicht Marker ist da Aber interagieren Funktioniert nicht.


    mp.events.add("teleportInterior", (player) => {
    player.position = new mp.Vector3(275.446, -1361.11, 24.5378);
    });


    //Client Packages
    let marker = mp.markers.new(0, new mp.Vector3(294.387, -1448.783, 29.967), 1);
    mp.keys.bind(0x71, false, () =>
    {
    if(mp.game.system.vdist(mp.players.local.position.x, mp.players.local.position.y, mp.players.local.position.z, marker.position.x, marker.position.y, marker.position.z) < 2.5)
    {
    mp.world.requestIpl("Coroner_Int_On");
    mp.events.callRemote("teleportInterior");
    }
    });