[Problem] mit Haussystem | An die Profies |

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 Morgen,


    Ich habe folgendes Problem:


    Wenn man mein Haus betritt und verlässt, ist funktioniert alles, jedoch, wenn man darin Spawnt landet man iwo im Nevada :/


    Ein Beispiel:


    Ich habe hier ein Haus:


    Betrete es:

    okay auch das normale verlassen funktioniert, deswegen habe ich da kein Screen von gemacht ;)


    Allerdings wenn ich nach dem Reconnecten oder sterben im Haus spawnen und es verlasse, lande ich nach dem fallen hier:


    Der /henter /hexit befehl:


    ocmd:hexit(playerid,params[])
    {
    if(inHaus[playerid] == -1)return SendClientMessage(playerid,COLOR_GRAU,"Du bist in keinem Haus!");
    {
    new haus = inHaus[playerid];
    new innenraum = HausInfo[haus][haus_innenraum];
    if(!IsPlayerInRangeOfPoint(playerid,5,HausInnenraum[innenraum][innen_x],HausInnenraum[innenraum][innen_y],HausInnenraum[innenraum][innen_z]))return SendClientMessage(playerid,0x00FF00,"Du bist nicht am Ausgang!");
    SetPlayerPos(playerid,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SendClientMessage(playerid,COLOR_WEISS,"Du hast das Haus verlassen!");
    inHaus[playerid] = -1;
    }
    return 1;
    }


    ocmd:henter(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)
    if(strcmp(HausInfo[haus][haus_mieter],name,false) == 0)
    {
    new innenraum = HausInfo[haus][haus_innenraum];
    SetPlayerPos(playerid,HausInnenraum[innenraum][innen_x],HausInnenraum[innenraum][innen_y],HausInnenraum[innenraum][innen_z]); // dann Spieler zu den Innenraum-Koordinaten teleportieren
    SetPlayerInterior(playerid,HausInnenraum[innenraum][innen_interior]);
    SetPlayerVirtualWorld(playerid,HausInnenraum[innenraum][innen_virtualworld]);
    inHaus[playerid] = haus;
    }
    else SendClientMessage(playerid,0x00FF00,"Du bist nicht der Besitzer! Du darfst hier nicht rein!");
    }
    }
    return 1;
    }


    Und bei onplayerspawn habe ich dies:
    if(GetPVarInt(playerid,"Spawn")==2)
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)
    {
    new innenraum = HausInfo[haus][haus_innenraum];
    SetPlayerPos(playerid,HausInnenraum[innenraum][innen_x],HausInnenraum[innenraum][innen_y],HausInnenraum[innenraum][innen_z]);
    SetPlayerInterior(playerid,HausInnenraum[innenraum][innen_interior]);
    inHaus[playerid] = haus;
    }
    }
    }
    return 1;
    }


    Ich habe das Haussystem nach diesem Tutorial aufgebaut.


    Wäre nett wenn mir jemand helfen könnte :)


    MFG

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco

  • Er kommt bis zu Du hast das Haus verlassen


    Zitat

    Okay mein Fail.. Fragst du ab ob er ein Haus hat? Also ich sehe nix.


    Ich denke auch nicht das es am Dpawn liegt, sondern am exit befehl..

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco

  • ocmd:hexit(playerid,params[])
    {
    if(inHaus[playerid] == -1)return SendClientMessage(playerid,COLOR_GRAU,"Du bist in keinem Haus!");
    {
    new haus = inHaus[playerid];
    new innenraum = HausInfo[haus][haus_innenraum];
    if(!IsPlayerInRangeOfPoint(playerid,5,HausInnenraum[innenraum][innen_x],HausInnenraum[innenraum][innen_y],HausInnenraum[innenraum][innen_z]))return
    SendClientMessage(playerid,0x00FF00,"Du bist nicht am Ausgang!");
    SetPlayerPos(playerid,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);
    printf("%f,%f,%f",HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);//<<<<------
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SendClientMessage(playerid,COLOR_WEISS,"Du hast das Haus verlassen!");
    inHaus[playerid] = -1;
    }
    return 1;
    }

  • Beim normalen verlassen funktioniert es aber...


    Beim normalen verlassen mit /hexit wenn man vorher das Haus betreten hat:


    Nach dem Reconnecten mit /hexit verlassen:

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco

  • Also ich geh mal davon aus das der fehler aus der variabel liegt
    new haus = inHaus[playerid];


    und beim setzen wenn der spieler disconnectet.


    Was mir dazu spontan einfällt wäre das du auch im exit command
    eine for schleife benutzt genau so wie im enter command

  • okay,


    so in etwa?
    ocmd:hexit(playerid,params[])
    {
    for(new haus=haus;haus<MAX_HAUS;haus++)
    {
    if(inHaus[playerid] == -1)return SendClientMessage(playerid,COLOR_GRAU,"Du bist in keinem Haus!");
    {
    new innenraum = HausInfo[haus][haus_innenraum];
    if(!IsPlayerInRangeOfPoint(playerid,5,HausInnenraum[innenraum][innen_x],HausInnenraum[innenraum][innen_y],HausInnenraum[innenraum][innen_z]))return SendClientMessage(playerid,0x00FF00,"Du bist nicht am Ausgang!");
    SetPlayerPos(playerid,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    SendClientMessage(playerid,COLOR_WEISS,"Du hast das Haus verlassen!");
    inHaus[playerid] = -1;
    }
    }
    return 1;
    }


    Ich weiß jetzt nicht ob das mit der Schleife richtig ist... oder ob ich dich richtig verstanden habe... aber so funktioniert das leider auch nicht...

    Mein Selfmade:

    1.Haussytem [99/100%]
    2.Handysystem [95/100%]
    3.Payday [95/100%]
    4.Autosystem [100/100%]
    5. kleinigkeiten, wo ich noch bugs habe^^ [75/100%]
    Wer mir helfen möchte und vorallem Lust oder Zeit hat, darf sich natürlich bei mir melden. :D


    >> ¡Einfach PN an mich! <<

    Marco