/exit SetPlayerPos portet zu Coordinate 0.0, 0.0, 0.0

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,
    mein /exit Befehl Teleportiert den Spieler nicht wie er soll zum HausPickup sondern zur Farm (0.0, 0.0, 0.0 Koordinate).


    Hier erstmal der Befehl:
    ocmd:exit(playerid, params[])
    {
    new Float:HausX, Float:HausY, Float:HausZ;
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 244.4221, 305.0592, 999.1484))
    {
    HausX = HausInfo[GetPlayerVirtualWorld(playerid)][hX];
    HausY = HausInfo[GetPlayerVirtualWorld(playerid)][hY];
    HausZ = HausInfo[GetPlayerVirtualWorld(playerid)][hZ];
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, HausX, HausY, HausZ);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 266.7091, 305.0197, 999.1484))
    {
    HausX = HausInfo[GetPlayerVirtualWorld(playerid)][hX];
    HausY = HausInfo[GetPlayerVirtualWorld(playerid)][hY];
    HausZ = HausInfo[GetPlayerVirtualWorld(playerid)][hZ];
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, HausX, HausY, HausZ);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 2324.4587, -1148.8004, 1050.7101))
    {
    HausX = HausInfo[GetPlayerVirtualWorld(playerid)][hX];
    HausY = HausInfo[GetPlayerVirtualWorld(playerid)][hY];
    HausZ = HausInfo[GetPlayerVirtualWorld(playerid)][hZ];
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, HausX, HausY, HausZ);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 235.3885, 1187.0400, 1080.2578))
    {
    HausX = HausInfo[GetPlayerVirtualWorld(playerid)][hX];
    HausY = HausInfo[GetPlayerVirtualWorld(playerid)][hY];
    HausZ = HausInfo[GetPlayerVirtualWorld(playerid)][hZ];
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, HausX, HausY, HausZ);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 225.7580, 1239.9197, 1082.1406))
    {
    HausX = HausInfo[GetPlayerVirtualWorld(playerid)][hX];
    HausY = HausInfo[GetPlayerVirtualWorld(playerid)][hY];
    HausZ = HausInfo[GetPlayerVirtualWorld(playerid)][hZ];
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, HausX, HausY, HausZ);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 223.1530, 1287.4996, 1082.1406))
    {
    HausX = HausInfo[GetPlayerVirtualWorld(playerid)][hX];
    HausY = HausInfo[GetPlayerVirtualWorld(playerid)][hY];
    HausZ = HausInfo[GetPlayerVirtualWorld(playerid)][hZ];
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, HausX, HausY, HausZ);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 225.7527, 1021.9715, 1084.0162))
    {
    HausX = HausInfo[GetPlayerVirtualWorld(playerid)][hX];
    HausY = HausInfo[GetPlayerVirtualWorld(playerid)][hY];
    HausZ = HausInfo[GetPlayerVirtualWorld(playerid)][hZ];
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, HausX, HausY, HausZ);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 295.0053, 1472.9153, 1080.2578))
    {
    HausX = HausInfo[GetPlayerVirtualWorld(playerid)][hX];
    HausY = HausInfo[GetPlayerVirtualWorld(playerid)][hY];
    HausZ = HausInfo[GetPlayerVirtualWorld(playerid)][hZ];
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, HausX, HausY, HausZ);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 328.0984, 1478.0658, 1084.4375))
    {
    HausX = HausInfo[GetPlayerVirtualWorld(playerid)][hX];
    HausY = HausInfo[GetPlayerVirtualWorld(playerid)][hY];
    HausZ = HausInfo[GetPlayerVirtualWorld(playerid)][hZ];
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, HausX, HausY, HausZ);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 386.7174, 1471.7593, 1080.1875))
    {
    HausX = HausInfo[GetPlayerVirtualWorld(playerid)][hX];
    HausY = HausInfo[GetPlayerVirtualWorld(playerid)][hY];
    HausZ = HausInfo[GetPlayerVirtualWorld(playerid)][hZ];
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, HausX, HausY, HausZ);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 2269.7668, -1210.4520, 1047.5625))
    {
    HausX = HausInfo[GetPlayerVirtualWorld(playerid)][hX];
    HausY = HausInfo[GetPlayerVirtualWorld(playerid)][hY];
    HausZ = HausInfo[GetPlayerVirtualWorld(playerid)][hZ];
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, HausX, HausY, HausZ);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(playerid, 7.0, 2365.2903, -1135.0590, 1050.8750))
    {
    HausX = HausInfo[GetPlayerVirtualWorld(playerid)][hX];
    HausY = HausInfo[GetPlayerVirtualWorld(playerid)][hY];
    HausZ = HausInfo[GetPlayerVirtualWorld(playerid)][hZ];
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, HausX, HausY, HausZ);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    return 1;
    }


    Seltsam ist das die Coordinaten in den Variablen HausInfo[GetPlayerVirtualWorld(playerid)][hX/hY/hZ] stimmen, zumindest werden sie bei einem printf richtig ausgegeben.
    Jemand eine Idee?

    05eb03de-9fda-461c-9dfc-834ae5b64e65.png << Server | Home >> 13462590508.png

  • Warum zur Hölle so kompliziert? :huh:


    Machs einfach nur so:


    stock const Float:H_W[][3] = {
    {244.4221, 305.0592, 999.1484},
    {266.7091, 305.0197, 999.1484},
    {2324.4587, -1148.8004, 1050.7101},
    {235.3885, 1187.0400, 1080.2578},
    {225.7580, 1239.9197, 1082.1406},
    {223.1530, 1287.4996, 1082.1406},
    {225.7527, 1021.9715, 1084.0162},
    {295.0053, 1472.9153, 1080.2578},
    {328.0984, 1478.0658, 1084.4375},
    {386.7174, 1471.7593, 1080.1875},
    {2269.7668, -1210.4520, 1047.5625},
    {2365.2903, -1135.0590, 1050.8750}
    };


    ocmd:exit(playerid)
    {
    for(new i; i<sizeof(H_W); i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid, 7.0, H_W[i][0], H_W[i][1], H_W[i][2])) continue;
    new v=GetPlayerVirtualWorld(playerid);
    printf("Welt: %d | %.02f | %.02f | %.2f",v,HausInfo[v][hX],HausInfo[v][hY],HausInfo[v][hZ]);
    SetPlayerInterior(playerid, 0),SetPlayerVirtualWorld(playerid, 0);
    return SetPlayerPos(playerid, HausInfo[v][hX],HausInfo[v][hY],HausInfo[v][hZ]),1;
    }
    return SendClientMessage(playerid,-1,!"Sie befinden sich an keinem Haus!");
    }


    Schau mal was dir geprintet wird...wenn da 0|0|0 in den Koordinaten rauskommt, stimmt die VirtuelleWelt nicht mit dem index von HausInfo überein...


    Du solltest dir vielleicht überlegen, dass alles in ein Array zu schreiben ^^


    mfg. :thumbup:

    ast2ufdyxkb1.png


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


  • Danke erstmal für die Antwort :D


    Bekomme als Print folgendes:
    Welt: 1 | 0.00 | 0.00 | 0.00


    Die Welt stimmt mit der HausID überein, hier eine Printausgabe wenn das Haus geladen wurde:
    Haus 1 geladen!


    Die 1 ist in diesem fall die ID

    05eb03de-9fda-461c-9dfc-834ae5b64e65.png << Server | Home >> 13462590508.png

  • Beitrag von Manuel ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Naja...setz da mal n print-debug rein, welchen Wert da die Variablen haben...


    Wenn da 0.0 steht...zeig mal deine Datenbank einträge.. ^^

    ast2ufdyxkb1.png


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

  • Du fängst aber bei row 0 an...und nicht bei 1...


    Sprich schreib den Command mal so:


    ocmd:exit(playerid)
    {
    for(new i; i<sizeof(H_W); i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid, 7.0, H_W[i][0], H_W[i][1], H_W[i][2])) continue;
    new v=GetPlayerVirtualWorld(playerid)-1;
    SetPlayerInterior(playerid, 0),SetPlayerVirtualWorld(playerid, 0);
    return SetPlayerPos(playerid, HausInfo[v][hX],HausInfo[v][hY],HausInfo[v][hZ]),1;
    }
    return SendClientMessage(playerid,-1,!"Sie befinden sich an keinem Haus!");
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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


  • Es funktioniert jetzt :D


    Danke :thumbup:

    05eb03de-9fda-461c-9dfc-834ae5b64e65.png << Server | Home >> 13462590508.png