Haussystem falle durch das Haus

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 zusammen


    Ich habe ein Kleines problem mit meinen Haussystem
    Wenn ich in das haus reingehe, falle ich direkt wieder dadurch und ich verstehe nicht wiso
    Ich poste mal Teile wie ich es erstellt habe
    InteriorData[][HausIntEnum] =
    {// X, Y, Z, Interior
    {244.411987,305.032989,999.148437, 1},
    {271.884979,306.631988,999.148437, 2},
    {291.282989,310.031982,999.148437, 3},
    {302.180999,300.722991,999.148437, 4},
    {322.197998,302.497985,999.148437, 5},
    {346.870025,309.259033,999.155700, 6},
    {2496.049804,-1695.238159,1014.742187, 3}
    },
    erstellen:
    DT_Public CreateHaus(playerid)
    {
    new query[512],Float:ppppp[3];
    GetPlayerPos(playerid,ppppp[0],ppppp[1],ppppp[2]);
    for(new i = 0; i < MAX_HAUS; i++)
    {
    format(query,128,"SELECT * FROM `Haus` WHERE `id` = '%d'",i);
    mysql_query(query, (-1), (0), SQL);
    mysql_store_result(SQL);
    if(mysql_num_rows(SQL)==0)
    {
    new zufall = random(sizeof(InteriorData)),sucker=0;
    for(new d = 0; d < MAX_HAUS; d++)if(Haus[d][HInt]==InteriorData[zufall][hInt])sucker++;
    Haus[i][HX]=ppppp[0];
    Haus[i][HY]=ppppp[1];
    Haus[i][HZ]=ppppp[2];
    Haus[i][HMiete]=0;
    Haus[i][HKasse]=0;
    Haus[i][HOpen]=0;
    Haus[i][HRenter]=0;
    Haus[i][HClub]=false;
    Haus[i][HFirma]=false;
    Haus[i][HVw]=sucker;
    Haus[i][HInt]=InteriorData[zufall][hInt];
    Haus[i][HiX]=InteriorData[zufall][hiX];
    Haus[i][HiY]=InteriorData[zufall][hiY];
    Haus[i][HiZ]=InteriorData[zufall][hiZ];
    format(Haus[i][HOwner],MAX_PLAYER_NAME,"Niemand");
    Haus[i][HPick]= CreatePickup(1273,1,Haus[i][HX],Haus[i][HY],Haus[i][HZ],-1);
    Haus[i][HText] = Create3DTextLabel("Dieses Haus ist frei\n[Enter oder (/clubhouse)/(/firmenhaus) zum kaufen]", 0x0000FFAF, Haus[i][HX],Haus[i][HY],Haus[i][HZ],10.0,0,1);
    Haus[i][HiPick]= CreatePickup(1273,1,Haus[i][HiX],Haus[i][HiY],Haus[i][HiZ],-1);


    format(query,512,"INSERT INTO `Haus` (`id`,`X`,`Y`,`Z`,`iX`,`iY`,`iZ`,`int`,`vw`,`Owner`,`renter`,`open`,`miete`,`kasse`,`club`,`firma`) VALUES ('%d','%f','%f','%f','%f','%f','%f','%d','%d','%s','%d','%d','%d','%d','%d','%d')",
    i,Haus[i][HX],Haus[i][HY],Haus[i][HZ],Haus[i][HiX],Haus[i][HiY],Haus[i][HiZ],Haus[i][HInt],Haus[i][HVw],Haus[i][HOwner],Haus[i][HRenter],Haus[i][HOpen],Haus[i][HMiete],Haus[i][HKasse],Haus[i][HClub],Haus[i][HFirma]);
    mysql_query(query, (-1), (0), SQL);


    format(query,128,"Das Haus mit der ID: %d wurde erfolgreich erstellt",i);
    SendClientMessage(playerid,0x008000FF,query);
    return 1;
    }
    }
    return 0;
    }
    Das enter/exit
    stock GetNearHaus(playerid)
    {
    for(new i = 0; i < MAX_HAUS; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,2.5,Haus[i][HX],Haus[i][HY],Haus[i][HZ]))return i;
    }
    return -1;
    }


    stock GetHausAusgang(playerid)
    {
    for(new i = 0; i < MAX_HAUS; i++)
    {
    if((IsPlayerInRangeOfPoint(playerid,2.5,Haus[i][HiX],Haus[i][HiY],Haus[i][HiZ]))&&(GetPlayerVirtualWorld(playerid)==Haus[i][HVw]))return i;
    }
    return -1;
    }
    //onplayerkey
    chid=GetNearHaus(playerid);
    if(chid!=-1)
    {
    if(!strcmp(Haus[chid][HOwner],"Niemand",true))
    {
    return 1;
    }
    else
    {
    SetPlayerInterior(playerid,Haus[chid][HInt]);
    SetPlayerPos(playerid,Haus[chid][HiX],Haus[chid][HiY],Haus[chid][HiZ]);
    SetPlayerVirtualWorld(playerid,Haus[chid][HVw]);
    }
    return 1;
    }
    chid = GetHausAusgang(playerid);
    if(chid!=-1)
    {
    SetPlayerInterior(playerid,0);
    SetPlayerPos(playerid,Haus[chid][HX],Haus[chid][HY],Haus[chid][HZ]);
    SetPlayerVirtualWorld(playerid,0);
    return 1;
    }
    Wenn ich das Haus lade steht das im log:
    Function: mysql_fetch_row executed with result: "0|-227.524|2711.53|62.9766|271.885|306.632|999.148|2|0|Schnarre Transport|0|0|0|0|0|1".


    Wiso fall ich durch das Haus?
    Ich hoffe, das einer helfen kann

    All in all it's just another brick in the wall

  • Du könntest es möglicherweise so probieren, das du den Spieler für 1-2 Sekunden freezt wenn er ins Haus geht, dadurch hat die Map genügend Zeit "sich aufzubauen" und der Spieler dürfte nichtmehr durch das Gebäude fallen.


    Wärend er gefreezt ist kannst du gleich überprüfen ob du die Z Koordinate auch hoch genug gesetzt hast, daran kann es auch liegen.

  • Ich seh es kurz schwartz dann war es auch schon

    Meinst du damit das du Teile des Interiors kurz siehst, oder das dein Bildschirm komplett schwarz wird?


    Wie gesagt könntest du den Spieler beim hineintreten für kurze Zeit freezen, dabei erkennst du möglicherweise ein Problem wenn es danach trotzdem nicht geht.