Beiträge von Jeffry

    Ja.


    Dort wo du "Dialog" geschrieben hast kommt dann eben das hin was du machen willst. Pauschal kann ich dir das nicht vorhersagen.
    Am besten du probierst es einfach mal aus und sagst bei Problemen Bescheid. ;)

    IPrototypeI:
    Der Inhalt der Schleife würde bei dir nie ausgeführt werden.



    for(new i=1; i<sizeof(tank); i++)
    {
    if(!IsValidVehicle(i))continue;
    new vModel = GetVehicleModel(i);
    tank[i]=VehicleName[vModel-400][carinfo_tankvolumen];
    }


    So.


    Es können 1999 Fahrzeuge erstellt werden, von 1 bis MAX_VEHICLES-1 (=1999).

    Was?
    Lass alles so wie es ist.


    Du willst doch nur abfragen, wer in das Haus darf. Das machst du genau gleich wie beim PayDay.


    Und abfragen ob der Spieler das Haus besitzt: Ebenso gleich wie beim PayDay, nur ohne die Mieter-Abfragen.

    An der Virtual World Abfrage.


    Du machst ebenfalls wieder eine Schleife, prüfst welches Haus dem Spieler gehört und zeigst dafür die entsprechenden Dinge an.


    Zwecks dem Lock: Gleiches Prinzip wie bei dem PayDay.

    Und was ist wenn ein NPC in diesem Fahrzeug ist? Falls man es löschen will, dann hätte der NPC keins mehr.


    Du kannst es viel einfacher so schreiben:
    stock EmptyVehicle(vID)
    {
    for(new i=0, j=GetMaxPlayer(); i<j; i++) if(IsPlayerInVehicle(i, vID)) return 0;
    return 1;
    }

    Das erklärt es.


    ocmd:exit(playerid, params[])
    {
    for(new i=0; i<MAX_HOUSE; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 3.0, hInfo[i][IntX],hInfo[i][IntY],hInfo[i][IntZ]) && GetPlayerVirtualWorld(playerid) == hInfo[i][VID])
    {
    SetPlayerPos(playerid, hInfo[i][PosX],hInfo[i][PosY],hInfo[i][PosZ]);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    return 1;
    }
    }
    return SendClientMessage(playerid, error, "Du bist nicht in der Nähe eines Hauses!");
    }

    Ja, das stimmt so.
    Du darfst es allerdings erst nach dieser Abfrage auf 0 setzen, aber ich denke das ist klar.


    Hättest du mir den Link noch? Danke :)



    EDIT:
    Manniac: Ach ja, natürlich. Danke.
    if(SpielerInfo[playerid][pEingeloggt] == 0)return 1;

    format(query, sizeof(query), "SELECT * FROM script_accounts WHERE Name = '%s' AND Passwort = '%s'", Spielername(playerid), key);
    zu:
    format(query, sizeof(query), "SELECT * FROM script_accounts WHERE Name = '%s' AND Passwort = MD5('%s')", Spielername(playerid), key);

    Schreibe den Enter Befehl so:
    ocmd:enter(playerid, params[])
    {
    for(new i=0; i<MAX_HOUSE; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 3.0, hInfo[i][PosX],hInfo[i][PosY],hInfo[i][PosZ]))
    {
    if(hInfo[i][Gekauft] != 1) return SendClientMessage(playerid, error, "Dieses Haus kannst du nicht betreten!");
    SetPlayerPos(playerid, hInfo[i][IntX],hInfo[i][IntY],hInfo[i][IntZ]);
    SetPlayerInterior(playerid, hInfo[i][IntID]);
    SetPlayerVirtualWorld(playerid, hInfo[i][VID]);
    return 1;
    }
    }
    return SendClientMessage(playerid, error, "Du bist nicht in der Nähe deines Hauses!");
    }


    Zwecks dem Problem:
    Laut Code kann das nicht sein, außer du hast Haus 1 und Haus 2 dieselben Koordinaten im Interior gegeben.

    format(query, sizeof(query), "INSERT INTO script_accounts (Name, Passwort) VALUES ('%s',MD5('%s'))", Spielername(playerid), key);


    Dann stimmt es aber. :D
    Hast du das aus einem Tutorial? Wenn ja, kannst du mir den Link schicken? Oder wo hast du den Code her? Den habe ich schon ein paar mal gesehen, mit genau den gleichen Fehlern. Da fehlt der Tabellenname und eine Klammer am Ende.

    format(query, sizeof(query), "INSERT INTO (Name, Passwort) VALUES ('%s',MD5('%s')", Spielername(playerid), key);
    zu:
    format(query, sizeof(query), "INSERT INTO script_accounts (Name, Passwort) VALUES ('%s',MD5('%s'))", Spielername(playerid), key);

    format(query, sizeof(query), "%s `Admin` int(2) NOT NULL DEFAULT '0',", query);
    zu:
    format(query, sizeof(query), "%s `Admin` int(2) NOT NULL DEFAULT '0'", query);
    Das Komma am Ende war da zu viel.