Problem bei OnPlayerKeyStateChange

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
  • Hey Leute ;)
    Ich habe ein kleines Problem, und zwar habe ich ein Haussystem und ein Bizzsystem.
    Ich möchte, dass sowohl die Häuser, also auch die Bizzes mit der Enter-Taste betretbar sind, und man sie so auch wieder verlassen kann.
    Hab mich da jetzt mal rangesetzt, allerdings stehe ich nun vor folgendem Problem:
    Wenn ich das Bizz betrete, passiert beim Versuch, das Bizz mit Enter zu verlassen garnix.
    Betrete ich allerdings zuerst das Haus, welches ich auch problemlos verlassen kann, kann ich auch das Bizz nach dem Betreten wieder ohne Komplikationen verlassen.
    Irgendwas muss da durcheinandergeraten sein, hier mal der Code..


    Danke schonmal für eure Hilfe :)


    //|----------Haus-Eingang-----------|//
    for(new i=1;i<MAX_HOUSES;i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,3,hInfo[i][PosX],hInfo[i][PosY],hInfo[i][PosZ]))
    {
    new inter=hInfo[i][Interior];
    SetPlayerPos(playerid,iInfo[inter][PosX],iInfo[inter][PosY],iInfo[inter][PosZ]);
    SetPlayerFacingAngle(playerid,iInfo[inter][PosA]);
    SetPlayerInterior(playerid,iInfo[inter][Interior]);
    SetPlayerVirtualWorld(playerid,hInfo[i][World]);
    InInterior[playerid]=hInfo[i][Interior];
    InHaus[playerid]=i;
    }
    }
    for(new b=1;b<MAX_BIZZ;b++)
    {
    //|----------Bizz Eingang-----------|//
    if(IsPlayerInRangeOfPoint(playerid,2,bInfo[b][PosX],bInfo[b][PosY],bInfo[b][PosZ]))
    {
    SetPlayerPos(playerid,bInfo[b][IntPosX],bInfo[b][IntPosY],bInfo[b][IntPosZ]);
    SetPlayerVirtualWorld(playerid,bInfo[b][World]);
    InBizz[playerid]=b;
    }
    }



    //|----------Haus-Ausgang-----------|//
    if(IsPlayerInRangeOfPoint(playerid,3,iInfo[InInterior[playerid]][PosX],iInfo[InInterior[playerid]][PosY],iInfo[InInterior[playerid]][PosZ]))
    {
    new haus=InHaus[playerid];
    SetPlayerPos(playerid,hInfo[haus][PosX],hInfo[haus][PosY],hInfo[haus][PosZ]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    InHaus[playerid]=-1;
    }
    //|----------Company Ausgang-----------|//
    if(IsPlayerInRangeOfPoint(playerid,2,bInfo[InBizz[playerid]][IntPosX],bInfo[InBizz[playerid]][IntPosY],bInfo[InBizz[playerid]][IntPosZ]))
    {
    SetPlayerPos(playerid,bInfo[InBizz[playerid]][PosX],bInfo[InBizz[playerid]][PosY],bInfo[InBizz[playerid]][PosZ]);
    InBizz[playerid]=-1;
    Exittimer[playerid]=0;
    TogglePlayerControllable(playerid,0);
    SetCameraBehindPlayer(playerid);
    }



    sry im Vorraus für die krummen Einrückungen, hat das pwn hier wohl nich so ganz auf die Reihe gebracht ^^

  • Also hab mal ein bisschen an der Reihenfolge im Bizzexit-Befehl rumgespielt, und lasse auch als erstes ein SendClientMessage ausführen, allerdings passiert rein garnix


    Muss wohl irgendwie in der if-Abfrage klemmen, wobei es mich halt nach wie vor wundert, dass wenn man zuerst das Haus betritt und verlässt, man auch auf einmal das Unternehmen wieder einfach so verlassen kann

  • Mach es z.b. so
    if(IsPlayerInRangeOfPoint(playerid,2,bInfo[InBizz[playerid]][IntPosX],bInfo[InBizz[playerid]][IntPosY],bInfo[InBizz[playerid]][IntPosZ]))
    {
    print("Der Print war erfolgreich");
    SetPlayerPos(playerid,bInfo[InBizz[playerid]][PosX],bInfo[InBizz[playerid]][PosY],bInfo[InBizz[playerid]][PosZ]);
    InBizz[playerid]=-1;
    Exittimer[playerid]=0;
    TogglePlayerControllable(playerid,0);
    SetCameraBehindPlayer(playerid);
    }
    Wen der dort nicht hinkommt weißt du das es daran liegt
    if(IsPlayerInRangeOfPoint(playerid,2,bInfo[InBizz[playerid]][IntPosX],bInfo[InBizz[playerid]][IntPosY],bInfo[InBizz[playerid]][IntPosZ]))

  • So, hab das alles mal in nen Befehl gepackt, da funktioniert es.
    Ich probier jetzt mal bisschen rum, scheint ja scheinbar echt an der Abfrage zu liegen, obwohl ich im Befehl die gleiche Abfrage verwende



    //EDIT
    So, jetzt klappts^^
    hab das ganze lediglich bei OnPlayerKeyStateChange ganz nach oben geschoben ;)
    Danke für deine Hilfe :)

    Einmal editiert, zuletzt von nhoJ ()