Beiträge von Jeffry

    Oh ja, kanns auch nicht.
    Du musst
    CreateObject(TorInfo[id][t_modelid],TorInfo[id][t_x],TorInfo[id][t_y],TorInfo[id][t_z],TorInfo[id][t_rx],TorInfo[id][t_ry],TorInfo[id][t_rz]);
    zu
    TorInfo[id][t_objectid] = CreateObject(TorInfo[id][t_modelid],TorInfo[id][t_x],TorInfo[id][t_y],TorInfo[id][t_z],TorInfo[id][t_rx],TorInfo[id][t_ry],TorInfo[id][t_rz]);
    ändern und
    MoveObject(TorInfo[i][t_modelid],TorInfo[i][t_x],TorInfo[i][t_y],TorInfo[i][t_z]-0.1,3.0);
    zu
    MoveObject(TorInfo[i][t_objectid],TorInfo[i][t_x],TorInfo[i][t_y],TorInfo[i][t_z]-0.1,3.0);

    ocmd:gate(playerid)
    {
    for(new i=0; i<sizeof(TorInfo); i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 10.0, TorInfo[i][t_x],TorInfo[i][t_y],TorInfo[i][t_z]))
    {
    new hid = -1;
    for(new h=0; h<sizeof(hInfo); h++)
    {
    if(hInfo[h][h_id] == TorInfo[i][t_hausid])
    {
    hid = h;
    }
    }
    if(hid == -1) return 0;
    if(!strcmp(getPlayerName(playerid), hInfo[hid][h_besitzer]))
    {
    MoveObject(TorInfo[i][t_modelid],TorInfo[i][t_x],TorInfo[i][t_y],TorInfo[i][t_z]-0.1,3.0);
    }
    }
    }
    return 1;
    }

    Hast du das posX (etc) mit "Float:" im enum deklariert? Wenn nicht, mach das.


    SetPlayerPos(playerid, SpielerInfo[playerid][posX], SpielerInfo[playerid][posY], SpielerInfo[playerid][posZ]);
    SetPlayerFacingAngle(playerid, SpielerInfo[playerid][posA]);
    Setze das mal an entsprechender Position bei OnPlayerSpawn ein. An der Stelle wo es momentan ist, ist es wahrscheinlich zu früh drin, sprich es wird von einem folgenden SetPlayerPos "überschrieben".

    Sind diese Warnungen weg?
    C:\Users\Trabuhot\Desktop\Zukunft Reallife\gamemodes\zrl.pwn(22423) : warning 213: tag mismatch
    C:\Users\Trabuhot\Desktop\Zukunft Reallife\gamemodes\zrl.pwn(22424) : warning 213: tag mismatch
    C:\Users\Trabuhot\Desktop\Zukunft Reallife\gamemodes\zrl.pwn(22425) : warning 213: tag mismatch
    C:\Users\Trabuhot\Desktop\Zukunft Reallife\gamemodes\zrl.pwn(22426) : warning 213: tag mismatch


    Hast du den Code beim Laden korrekt eingefügt?

    Du machst ganz einfach eine weitere Spalte in der Tabelle die hausID heißt, dort trägst du dann das Haus ein, zu dem das Tor gehört.
    Das lädst du dann auch, wie die Position.

    Schreibe das Speichern so (ist etwas verbessert):

    Spoiler anzeigen
    public SpielerSpeichern(playerid){
    if(!IsPlayerNPC(playerid) && SpielerInfo[playerid][sEingeloggt]){
    GetPlayerPos(playerid,SpielerInfo[playerid][sLogoutPos][0],SpielerInfo[playerid][sLogoutPos][1],SpielerInfo[playerid][sLogoutPos][2]);
    MySQLCheckConnection();
    new Float:lx,Float:ly,Float:lz,Float:la;
    GetPlayerPos(playerid,lx,ly,lz);
    GetPlayerFacingAngle(playerid,la);
    new Query[2048];
    format(Query,sizeof(Query),"UPDATE `accounts` SET `Ausgeloggt`='%d',`IpAdresse`='%s',`Adminlevel`='%d',`Verwarnungen`='%d',`Premium`='%d',`Spielzeit`='%d',`Geschlecht`='%d',`x`='%d',`y`='%d',`z`='%d',`Level`='%d',`Tutorial`='%d',`Aussehen`='%d',`Geld`='%d',`Bank`='%d',`Telefon`='%d',`Telefonnummer`='%d',`Telefonbuch`='%d',`Klingelton`='%d',`Personalausweis`='%d',`PersonalausweisAntrag`='%d',`Arbeitslos`='%d',`ArbeitslosAntrag`='%d',`Job`='%d',`Jobzeit`='%d',",
    gettime(),
    SpielerInfo[playerid][sIp],
    SpielerInfo[playerid][sAdminlevel],
    SpielerInfo[playerid][sWarns],
    SpielerInfo[playerid][sPremium],
    SpielerInfo[playerid][sSpielzeit],
    SpielerInfo[playerid][sGeschlecht],
    SpielerInfo[playerid][x],
    SpielerInfo[playerid][y],
    SpielerInfo[playerid][z],
    SpielerInfo[playerid][sLevel],
    SpielerInfo[playerid][sTutorial],
    SpielerInfo[playerid][sSkin],
    GetPlayerMoney(playerid),
    SpielerInfo[playerid][sBank],
    SpielerInfo[playerid][sTelefon],
    SpielerInfo[playerid][sTelefonnummer],
    SpielerInfo[playerid][sTelefonbuch],
    SpielerInfo[playerid][sKlingelton],
    SpielerInfo[playerid][sPerso],
    SpielerInfo[playerid][sPersoAntrag],
    SpielerInfo[playerid][sArbeitslos],
    SpielerInfo[playerid][sArbeitslosAntrag],
    SpielerInfo[playerid][sJob],
    SpielerInfo[playerid][sLastJob]);

    format(Query,sizeof(Query),"%s`Fahrlizenz`='%d',`Angellizenz`='%d',`FahrlizenzSperre`='%d',`Fluglizenz`='%d',`FluglizenzSperre`='%d',`Lastkraftwagenlizenz`='%d',`LastkraftwagenlizenzSperre`='%d',`Motorradlizenz`='%d',`MotorradlizenzSperre`='%d',`Schifffahrtslizenz`='%d',`SchifffahrtslizenzSperre`='%d',`Waffenlizenz`='%d',`WaffenlizenzSperre`='%d',",
    Query,
    SpielerInfo[playerid][sFahrlizenz],
    SpielerInfo[playerid][sAngellizenz],
    SpielerInfo[playerid][sFahrlizenzLock],
    SpielerInfo[playerid][sFlyLic],
    SpielerInfo[playerid][sFlyLicLock],
    SpielerInfo[playerid][sLKWLic],
    SpielerInfo[playerid][sLKWLicLock],
    SpielerInfo[playerid][sBikeLic],
    SpielerInfo[playerid][sBikeLicLock],
    SpielerInfo[playerid][sBoatLic],
    SpielerInfo[playerid][sBoatLicLock],
    SpielerInfo[playerid][sWeaponLic],
    SpielerInfo[playerid][sWeaponLicLock]);

    format(Query,sizeof(Query),"%s`Gehalt`='%d',`Fraktion`='%d',`Fraktionssperre`='%d',`Boss`='%d',`Rang`='%d',`Strafpunkte`='%d',`PaydayZeit`='%d',`Respektpunkte`='%d',`Fischskill`='%d',`SaveMats`='%d',`SaveDrogen`='%d',`Mats`='%d',`Bmod`='%d',`Coints`='%d',`Ticketsopen`='%d',`Drogen`='%d',",
    Query,
    SpielerInfo[playerid][sGehalt],
    SpielerInfo[playerid][sFraktion],
    SpielerInfo[playerid][sInviteLock],
    SpielerInfo[playerid][sBoss],
    SpielerInfo[playerid][sRang],
    SpielerInfo[playerid][sPunkte],
    SpielerInfo[playerid][sPaydayZeit],
    SpielerInfo[playerid][sRespektpunkte],
    SpielerInfo[playerid][sFishSkill],
    SpielerInfo[playerid][sSaveMats],
    SpielerInfo[playerid][sSaveDrogen],
    SpielerInfo[playerid][sMats],
    SpielerInfo[playerid][sBmod],
    SpielerInfo[playerid][sCoints],
    SpielerInfo[playerid][sTicketsopen],
    SpielerInfo[playerid][sDrogen]);

    format(Query,sizeof(Query),"%s`Krankenhaus`='%d',`Friedhof`='%d',`TotX`='%f',`TotY`='%f',`TotZ`='%f',`Tode`='%d',`LogoutX`='%f',`LogoutY`='%f',`LogoutZ`='%f',`Fische`='%d',`Haus`='%d',`Spawn`='%d',`Morde`='%d',`Kills`='%d',`Verbrechen`='%d',`Wantedlevel`='%d',`Knast`='%d',`KnastZeit`='%d',`posX`='%f',`posY`='%f',`posZ`='%f',`posA`='%f' WHERE `Spielername`='%s'",
    Query,
    SpielerInfo[playerid][sKrankenhaus],
    SpielerInfo[playerid][sFriedhof],
    SpielerInfo[playerid][sTx],
    SpielerInfo[playerid][sTy],
    SpielerInfo[playerid][sTz],
    SpielerInfo[playerid][sTode],
    SpielerInfo[playerid][sLogoutPos][0],
    SpielerInfo[playerid][sLogoutPos][1],
    SpielerInfo[playerid][sLogoutPos][2],
    SpielerInfo[playerid][sFishes],
    SpielerInfo[playerid][sHaus],
    SpielerInfo[playerid][sSpawn],
    SpielerInfo[playerid][sMorde],
    SpielerInfo[playerid][sKills],
    SpielerInfo[playerid][sVerbrechen],
    SpielerInfo[playerid][sWantedlevel],
    SpielerInfo[playerid][sGefangen],
    SpielerInfo[playerid][sGefangenZeit],
    lx,
    ly,
    lz,
    la,
    SpielerInfo[playerid][sName]);
    mysql_query(Query);
    return 1;
    }
    return 0;
    }


    Das hier fügst du beim Laden der Statistiken ein:

    mysql_fetch_field("posX",Query); SpielerInfo[playerid][posX] = floatstr(Query);
    mysql_fetch_field("posY",Query); SpielerInfo[playerid][posY] = floatstr(Query);
    mysql_fetch_field("posZ",Query); SpielerInfo[playerid][posZ] = floatstr(Query);
    mysql_fetch_field("posA",Query); SpielerInfo[playerid][posA] = floatstr(Query);


    Und bei OnPlayerSpawn, bzw. dort wo du den Spieler eben nach dem Spawn an die Position setzt:
    SetPlayerPos(playerid, SpielerInfo[playerid][posX], SpielerInfo[playerid][posY], SpielerInfo[playerid][posZ]);
    SetPlayerFacingAngle(playerid, SpielerInfo[playerid][posA]);


    Beachte, dass du in der Datenbank natürlich posX, posY, posZ und posA anlegen musst, sonst geht es nicht.

    Super, das hast du schon viel geschafft!


    Du musst dem Tor noch die ID des Hauses zuweisen, dann kannst du über das Tor das Haus herausfinden, und dann folgendes abfragen:
    if(!strcmp(SpielerName(playerid), HausInfo[TorInfo[i][t_hausid]][h_besitzer])
    {
    //Kann das Tor öffnen
    }

    Das heißt oft auch LoginPlayer oder so, das musst du schon finden, sonst kannst du da ja nichts hinzufügen.
    Schau mal ob du mit dem Code von Pascal schon klar kommst, wenn nicht, suche noch den Login-Code und poste den dann, ansonsten einfach mal das was nach dem Login passiert, genau.

    Ändere
    format(string,sizeof(string),"Heute ist die Gewinnernummer, {FF4000}%d"#COLOR_HEX_GREEN".",LottoZahl);
    SendClientMessageToAll(COLOR_GREEN,string);
    zu
    format(string,sizeof(string),"Heute ist die Gewinnernummer, {FF4000}%d"#COLOR_HEX_GREEN".",LottoZahl);
    SendClientMessage(playerid, COLOR_GREEN, string);