Fehler bei Pickup mit Tasten Aktivierung

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
  • Moin,


    ich habe soeben bei mir in meinem Script einen bug gefunden nur frage ich mich, wie ich hin raus bekomme und zwar wenn ich nicht in der nähe von einem Pickup bin komme ich aufeinmal bei den Kords 0,000 , 0,000 , 0,000 raus.



    Der Code:
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if (PRESSED( KEY_WALK ))
    {
    for(new t = 1; t < MAX_HOUSES; t++)
    {
    if(IsPlayerInRangeOfPoint(playerid,1,haus[t][hX], haus[t][hY], haus[t][hZ]))
    {
    SetPlayerInterior(playerid,haus[t][hInt]);
    SetPlayerVirtualWorld(playerid, haus[t][hID]+1);
    SetPlayerPos(playerid, haus[t][hX2],haus[t][hY2],haus[t][hZ2]);
    }
    else if(IsPlayerInRangeOfPoint(playerid,1,haus[t][hX3],haus[t][hY3],haus[t][hZ3]))
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid, haus[t][hX]+2,haus[t][hY],haus[t][hZ]);
    }
    else{}
    for(new i = 1; i < MAX_TANKEN; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,1,tanke[i][tPX], tanke[i][tPY], tanke[i][tPZ]) && tanke[i][tBetrieb] == 1)
    {
    SetPlayerInterior(playerid,tanke[i][tInt]);
    SetPlayerVirtualWorld(playerid, tanke[i][tID]+1);
    SetPlayerPos(playerid, tanke[i][tIX],tanke[i][tIY],tanke[i][tIZ]);
    TankeCP[i] = SetPlayerCheckpoint(playerid,tanke[i][tCPX],tanke[i][tCPY],tanke[i][tCPZ],2);
    }
    else if(IsPlayerInRangeOfPoint(playerid,1,tanke[i][tPX], tanke[i][tPY], tanke[i][tPZ]) && tanke[i][tBetrieb] == 0){SendClientMessage(playerid,COLOR_RED,"Diese Tankstelle ist InAktiv!");}
    else if(IsPlayerInRangeOfPoint(playerid,1,tanke[i][tILX], tanke[i][tILY], tanke[i][tILZ]))
    {
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid, tanke[i][tPX]+2,tanke[i][tPY],tanke[i][tPZ]);
    DisablePlayerCheckpoint(playerid);
    }
    }
    }


    hoffe auf eine schnelle Lösung.


    MfG: Apoolecu

  • Versuch's mal so:


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if (PRESSED( KEY_WALK ))
    {
    for(new t = 1; t < MAX_HOUSES; t++)
    {
    if(IsPlayerInRangeOfPoint(playerid,1,haus[t][hX], haus[t][hY], haus[t][hZ]))
    {
    SetPlayerInterior(playerid,haus[t][hInt]);
    SetPlayerVirtualWorld(playerid, haus[t][hID]+1);
    SetPlayerPos(playerid, haus[t][hX2],haus[t][hY2],haus[t][hZ2]);
    }
    else if(IsPlayerInRangeOfPoint(playerid,1,haus[t][hX3],haus[t][hY3],haus[t][hZ3]))
    {
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid, haus[t][hX]+2,haus[t][hY],haus[t][hZ]);
    }
    }
    for(new i = 1; i < MAX_TANKEN; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,1,tanke[i][tPX], tanke[i][tPY], tanke[i][tPZ]) && tanke[i][tBetrieb] == 1)
    {
    SetPlayerInterior(playerid,tanke[i][tInt]);
    SetPlayerVirtualWorld(playerid, tanke[i][tID]+1);
    SetPlayerPos(playerid, tanke[i][tIX],tanke[i][tIY],tanke[i][tIZ]);
    TankeCP[i] = SetPlayerCheckpoint(playerid,tanke[i][tCPX],tanke[i][tCPY],tanke[i][tCPZ],2);
    }
    else if(IsPlayerInRangeOfPoint(playerid,1,tanke[i][tPX], tanke[i][tPY], tanke[i][tPZ]) && tanke[i][tBetrieb] == 0){SendClientMessage(playerid,COLOR_RED,"Diese Tankstelle ist InAktiv!");}
    else if(IsPlayerInRangeOfPoint(playerid,1,tanke[i][tILX], tanke[i][tILY], tanke[i][tILZ]))
    {
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid, tanke[i][tPX]+2,tanke[i][tPY],tanke[i][tPZ]);
    DisablePlayerCheckpoint(playerid);
    }
    }
    }
    return 0;
    }

  • Moin,


    habe das System jetzt geändert


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    for(new t = 1; t < MAX_HOUSES; t++)
    {
    if(pickupid == haus[t][hIDP] && WillRein == 1 && WillRaus == 0)
    {
    SetPlayerInterior(playerid,haus[t][hInt]);
    SetPlayerVirtualWorld(playerid, haus[t][hID]+1);
    SetPlayerPos(playerid, haus[t][hX2],haus[t][hY2],haus[t][hZ2]);
    }
    else if(pickupid == haus[t][hIDP2] && WillRaus == 1 && WillRein == 0)
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid, haus[t][hX]+2,haus[t][hY],haus[t][hZ]);
    }
    for(new i = 1; i < MAX_TANKEN; i++)
    {
    if(pickupid == tanke[i][tIDP] && tanke[i][tBetrieb] == 1 && WillRein == 1 && WillRaus == 0)
    {
    SetPlayerInterior(playerid,tanke[i][tInt]);
    SetPlayerVirtualWorld(playerid, tanke[i][tID]+1);
    SetPlayerPos(playerid, tanke[i][tIX],tanke[i][tIY],tanke[i][tIZ]);
    TankeCP[i] = SetPlayerCheckpoint(playerid,tanke[i][tCPX],tanke[i][tCPY],tanke[i][tCPZ],2);
    }
    else if(pickupid == tanke[i][tIDP] && tanke[i][tBetrieb] == 0 && WillRein == 1 && WillRaus == 0){SendClientMessage(playerid,COLOR_RED,"Diese Tankstelle ist InAktiv!"); WillRein = 0;}
    else if(pickupid == tanke[i][tIDP2] && WillRaus == 1 && WillRein == 0)
    {
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid, tanke[i][tPX]+2,tanke[i][tPY],tanke[i][tPZ]);
    DisablePlayerCheckpoint(playerid);
    }
    }
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if (PRESSED( KEY_WALK ))
    {
    if((WillRein == 0) && (WillRaus == 0))
    {WillRein = 1; SendClientMessage(playerid,COLOR_GREEN,"WillRein An");}
    else if((WillRein == 0) && (WillRaus == 1))
    {WillRein = 1; WillRaus = 0;SendClientMessage(playerid,COLOR_GREEN,"WillRein An Mth 2");}
    else if((WillRein == 1) && (WillRaus == 0))
    {WillRaus = 1; WillRein = 0;SendClientMessage(playerid,COLOR_GREEN,"WillRaus An");}
    }


    so wenn WillRein 1 erfordert wird und ich nun WillRaus 1 drinnen habe dann Aktiviert sich das pickup trotzdem und ich komme wieder bei dem gleiche raus, gibt es keine möglichkeit diesen Fehler zubeheben?


    MfG: Apoolecu

  • public OnPlayerPickUpPickup(playerid, pickupid)
    {
    for(new t = 1; t < MAX_HOUSES; t++)
    {
    if(pickupid == haus[t][hIDP] && WillRein == 1 && WillRaus == 0)
    {
    SetPlayerInterior(playerid,haus[t][hInt]);
    SetPlayerVirtualWorld(playerid, haus[t][hID]+1);
    SetPlayerPos(playerid, haus[t][hX2],haus[t][hY2],haus[t][hZ2]);
    }
    else if(pickupid == haus[t][hIDP2] && WillRaus == 1 && WillRein == 0)
    {
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid, haus[t][hX]+2,haus[t][hY],haus[t][hZ]);
    }
    }
    for(new i = 1; i < MAX_TANKEN; i++)
    {
    if(pickupid == tanke[i][tIDP] && tanke[i][tBetrieb] == 1 && WillRein == 1 && WillRaus == 0)
    {
    SetPlayerInterior(playerid,tanke[i][tInt]);
    SetPlayerVirtualWorld(playerid, tanke[i][tID]+1);
    SetPlayerPos(playerid, tanke[i][tIX],tanke[i][tIY],tanke[i][tIZ]);
    TankeCP[i] = SetPlayerCheckpoint(playerid,tanke[i][tCPX],tanke[i][tCPY],tanke[i][tCPZ],2);
    }
    else if(pickupid == tanke[i][tIDP] && tanke[i][tBetrieb] == 0 && WillRein == 1 && WillRaus == 0)
    {
    SendClientMessage(playerid,COLOR_RED,"Diese Tankstelle ist InAktiv!");
    WillRein = 0;
    }
    else if(pickupid == tanke[i][tIDP2] && WillRaus == 1 && WillRein == 0)
    {
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerPos(playerid, tanke[i][tPX]+2,tanke[i][tPY],tanke[i][tPZ]);
    DisablePlayerCheckpoint(playerid);
    }
    }
    return 1;
    }

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!