SetPlayerPos beim fallen tötet Spieler

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
  • Guten Abend liebe Brotfische ;)


    Ich habe mal wieder eine Frage an die hellen Köpfe unter euch.
    Mir ist eben folgendes Problem untergekommen. Ich möchte einen Spieler, welcher mit einem Fallschirm "bewaffnet" richtung Boden saust (fällt), an einem bestimmten Zeitpunkt an eine andere Stelle in der Luft teleportieren. Mein Problem ist aber, dass sobald ich den Spieler, welcher grade am fallen ist, teleportiere (aus der Luft in die Luft), dieser sofort stirbt, und dann "Tot" weiter runterfällt. Ich weiss nicht ob ihr hierfür Code braucht, ich kann es mir kaum vorstellen, da es relativ unwichtig ist, was im Code steht, es ist halt bloß eine Abfrage vorhanden, wie weit man vom "Sprung-Punkt" entfernt ist, wenn eine gewisse Distanz erreicht ist, wird man (noch während des Fallens) teleportiert - und zwar in die Luft, aber an eine andere Stelle.


    Wieso stirbt man, wenn man sich doch nur in der Luft teleportiert? Wie kann ich das umgehen?


    Entschuldigt das doppelt-gemoppelle, aber das macht es hoffentlich irgendwo verständlicher, bzw anschaulicher.


    Ich hoffe stark, ihr könnt mir helfen.
    Vielen Dank schonmal im Voraus :D


    Mit freundlichen Grüßen


    Madretsma



    EDIT: Es werden ebenfalls die Virtual World und das Interior verändert, liegts vllt daran?


    IM AUFBAU!

  • Nimm dem Spieler, bevor du die Position setzt, den Fallschirm weg.


    Dafür hat Jeffry schon einmal eine nützliche Funktion erstellt / veröffentlicht:

    Spoiler anzeigen
    stock RemovePlayerWeapon(playerid, weaponid, ammo = 0) //©Jeffry
    {
    new w = GetPlayerWeapon(playerid), plyWeapons[13], plyAmmo[13];
    for(new slot = 0; slot <= 12; slot++)
    {
    GetPlayerWeaponData(playerid, slot, plyWeapons[slot], plyAmmo[slot]);
    if(plyWeapons[slot] == weaponid)
    {
    if(ammo == 0 || plyAmmo[slot] <= ammo)
    {
    if(w == plyWeapons[slot]) w = 0;
    plyAmmo[slot] = 0;
    plyWeapons[slot] = 0;
    }
    else
    {
    plyAmmo[slot]-=ammo;
    }
    }
    }
    ResetPlayerWeapons(playerid);
    for(new slot = 0; slot <= 12; slot++)
    {
    GivePlayerWeapon(playerid, plyWeapons[slot], plyAmmo[slot]);
    }
    SetPlayerArmedWeapon(playerid, w);
    return 1;
    }

  • EDIT: Es werden ebenfalls die Virtual World und das Interior verändert, liegts vllt daran?


    Nein, es liegt an der Fallschirm-Zu-Animation. Wenn du daraus ein SetPlayerPos machst, dann stirbt der Spieler.


    Lösung:
    Fallschirm entfernen (mit der Funktion von mir).
    Ggf. kurzen Timer setzen (soviel ich weiß braucht es einen kurzen Timer (100ms dürften reichen, das merkt keiner), SetTimerEx)
    SetPlayerPos

  • Vielen vielen Dank an alle für die schnellen und kompetenten Antworten. Ich bin grade am testen, und editiere gleich hier herein, ob es denn geholfen hat. Ohne Timer klappt's nicht, mit Timer ist jetzt grade am hochladen :D


    Dankeschön, dankeschön :D


    MfG


    Madretsma



    EDIT: Ihr seid einfach die besten. Wenn man mal nicht weiter weiß, einfach zu den Brotfischen und die werden dir auf die Sprünge helfen. Vielen Dank nochmals an alle von euch, ausdrückliches Dank an Jeffrey, der Timer ist sehr wichtig, ohne klappt es nicht. Danke danke danke :P