24/7 - Eingang per Variable & Ausgang per zuvor gesetzten PVar.

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 ihr lieben, ich hab seit neustem ein Problem was ich einfach nicht von selbst beheben kann. Vielleicht liegt es auch daran das ich Tage nur noch am Scripten bin und einen zu viel hab :D


    Ich wollte gerne mehrere 24/7 Eingangs-Coords in einem Enum speichern und bei OnPlayerKeyStateChange abfragen ob ein User in der nähe ist, und ihn dann in ein 24/7 porten.
    Dann fiel mir auf: "Shit, ich muss ja den Spieler beim verlassen des 24/7's an die Stelle wo er es betreten hat hinporten." ....
    Also dachte ich mir ich speicher vor dem Betreten (SetPlayerPos) die aktuellen Koordinaten in ein PVarFloat und wenn er es wieder verlassen will porte ich ihn zu diesen Koords.


    Auf nem anderem Script hatte ich das schon mal gemacht, aber hier geht es einfach nicht mehr. Ich kann sie betreten, so wie es sein soll außer das verlassen, es geht komplett nicht.
    Es passiert keim Drücken der Entertaste, gar nichts.


    Hier die Codes:


    Eingänge (Enum)
    enum eShop
    {
    Float:enterx,
    Float:entery,
    Float:enterz,
    vworld
    }


    new Shop[][eShop] = {
    {2194.4937,1991.1366,12.2969,721},
    {1693.0635,2208.5046,11.0692,782},
    {1600.0396,2222.0349,11.0625,724}
    };


    OnPlayerKeyStateChange (Eingang & Ausgang abfragen)
    //Betreten
    for(new i=0; i<sizeof(Shop); i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,7.2,Shop[i][enterx],Shop[i][entery],Shop[i][enterz]))
    {
    if(newkeys & KEY_SECONDARY_ATTACK)
    {
    new Float:ppx,Float:ppy,Float:ppz;
    GetPlayerPos(playerid,ppx,ppy,ppz);
    SetPVarFloat(playerid,"ShopX",ppx);
    SetPVarFloat(playerid,"ShopY",ppy);
    SetPVarFloat(playerid,"ShopZ",ppz);
    SetPlayerPos(playerid,-25.132598,-139.066986,1003.546875);
    SetPlayerInterior(playerid,16);
    SetPlayerVirtualWorld(playerid,Shop[i][vworld]);
    SendClientMessage(playerid,blau,"Willkommen im Supermarkt! /sellfish - Verlassen mit /exit");
    }
    }
    }

    //Verlassen
    if(IsPlayerInRangeOfPoint(playerid,6.7,25.132598,-139.066986,1003.546875))
    {
    if(newkeys & KEY_SECONDARY_ATTACK)
    {
    SetPlayerPos(playerid,GetPVarFloat(playerid,"ShopX"),GetPVarFloat(playerid,"ShopY"),GetPVarFloat(playerid,"ShopZ"));
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    }


    Kann mir da vielleicht jemand helfen?


    Mfg, Michi.

  • //Verlassen
    if(IsPlayerInRangeOfPoint(playerid,6.7,25.132598,-139.066986,1003.546875))
    {
    print("IsPlayerInRangeOfPoint");
    if(newkeys & KEY_SECONDARY_ATTACK)
    {
    printf("X: %f - Y: %f - Z: %f",GetPVarFloat(playerid,"ShopX"),GetPVarFloat(playerid,"ShopY"),GetPVarFloat(playerid,"ShopZ"));
    SetPlayerPos(playerid,GetPVarFloat(playerid,"ShopX"),GetPVarFloat(playerid,"ShopY"),GetPVarFloat(playerid,"ShopZ"));
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    }
    }
    Du kannst dir das doch so auch mal printen lassen.