Beiträge von SoulMan

    Weiß ich nicht. Das ist ja das komische an der ganzen Sache.
    Beim ersten Restart nachm Uploaden des Scripts werden alle Pickups erstellt und man kann "Hausname" einspeichern.
    Laut Tabelle stimmen die Namen auch.
    Nach dem nächsten gmx-restart fehlen HausID 1 & 2 und nur 0 ist noch mit dem richtigen Namen vorhanden.


    // Die Tabelle behält aber alle Namen bei. Da wird auch nichts gelöscht.

    Brauchst mir die Kleinigkeiten (auch wenns nett gemeint ist :) ) nicht zu erklären, kannst sowas ruhig außer Acht lassen. Spart Zeit für uns Beide :P


    Und ja, nur HausID 0 (also erstes Haus :D ) wird erstellt.
    Per printf kam auch nicht so viel Info, da dies mir nur gezeigt hat, dass
    die Pickups nicht gesetzt werden.


    Also selbst wenn der stock zum Laden nicht funken würde (tut er aber, da bei HausID 0 der Name noch stimmt als anfangs alle geladen wurden), müssten die Pickups ja erstellt werden.


    Komischer Bug. :S

    Ändert nichts.
    Wie gesagt, Ammunation System basiert auf dem selben Prinzip. Hab hier nur kopiert
    und neue Werte eingesetzt für's Haussystem.


    //Edit:
    Okey, doch nicht gelöst.
    1x nachm restart funktioniert alles perfekt und man kann die namen ändern (sie werden auch gespeichert) etc. , aber wenn man
    dann restartet lädt wieder nur das Pickup von HausID 0.
    Ich versteh es nicht, hat vllt jmd. Erfahrung mit ID Verschiebungen etc?
    //Edit2:
    Hier noch die Speicher und Laden Funktion.
    stock SaveHouses()
    {
    new Query[128];
    for(new i;i<MAX_HAUS;i++)
    {
    if(!CheckHaus(i))
    {
    format(Query,128,"INSERT INTO Häuser (HausID, Besitzer, Hausname) VALUES ('%d', '%s', '%s')",HausInfo[i][h_ID],HausInfo[i][h_Besitzer],HausInfo[i][h_Name]);
    mysql_query(Query);
    }
    else
    {
    mysql_SetString("Häuser", "Besitzer", HausInfo[i][h_Besitzer], "HausID", HausInfo[i][h_ID]);
    mysql_SetString("Häuser", "Hausname", HausInfo[i][h_Name], "HausID", HausInfo[i][h_ID]);
    }
    }
    return 1;
    }
    stock LoadHouses()
    {
    for(new i;i<MAX_HAUS;i++)
    {
    if(CheckHaus(i))
    {
    format(HausInfo[i][h_Besitzer],MAX_PLAYER_NAME,"%s",mysql_GetString("Häuser", "Besitzer", "HausID", HausInfo[i][h_ID]));
    format(HausInfo[i][h_Name],32,"%s",mysql_GetString("Häuser", "Hausname", "HausID", HausInfo[i][h_ID]));
    }
    }
    return 1;
    }

    new Variable[];
    Das ist eine Variable. In den Klammern könnte z.B.
    MAX_PLAYERS stehen, dann wäre diese nicht mehr global, sondern könnte für jeden Spieler anders definiert werden.
    Im Moment würde sie bei printf(Wert: %i,Variable) 0 ausgeben.


    Die Variable kann man dann beispielsweise addieren, substrahieren,teilen etc.

    Guten Tag, liebe Mitscripter!


    Ich hab gestern n Haussystem angefangen und wollte mir eig. nur n paar Pickups per Array erstellen lassen, aber
    irgendwo ist ein Haken, denn es wird nur das Pickup des ersten Hauses erstellt. (HausID 0)


    Vielleicht findet ja einer von euch den Fehler.
    Habe übrigens ein Ammunation-Shop-System, welches genauso arbeitet/funktioniert. :D


    enum p_HausDaten
    {
    h_ID,
    Float:h_x,
    Float:h_y,
    Float:h_z,
    h_interior,
    h_vworld,
    Float:h_px,
    Float:h_py,
    Float:h_pz,
    h_Preis,
    h_locked,
    h_Name[32],
    h_Besitzer[MAX_PLAYER_NAME]
    }
    new HausInfo[MAX_HAUS][p_HausDaten] = {
    {0,2527.654052,-1679.388305,1015.498596,1,300,2459.5750,-1690.8630,13.5434,1250},
    {1,2454.717041,-1700.871582,1013.515197,2,300,2523.7327,-1658.7029,15.4935,1230},
    {2,2807.619873,-1171.899902,1025.570312,8,300,2512.8721,-1651.3833,13.9735,1240}
    };
    new HausPickups[MAX_HAUS];
    new Text3D:HausLabels[MAX_HAUS];

    stock CreateHouses()
    {
    new str[128];
    for(new i;i<MAX_HAUS;i++)
    {
    HausPickups[i] = CreatePickup(1239,23,HausInfo[i][h_px],HausInfo[i][h_py],HausInfo[i][h_pz],0);
    format(str,sizeof(str),"%s\nHausID: %d\nBesitzer: %s\nPreis: $%d",HausInfo[i][h_Name],HausInfo[i][h_ID],HausInfo[i][h_Besitzer],HausInfo[i][h_Preis]);
    HausLabels[i] = Create3DTextLabel(str,0xFFFFFFFF,HausInfo[i][h_px],HausInfo[i][h_py],HausInfo[i][h_pz],10,0,0);
    }
    return 1;
    }
    stock KillHouses()
    {
    for(new i;i<MAX_HAUS;i++)
    {
    DestroyPickup(HausPickups[i]);
    Delete3DTextLabel(HausLabels[i]);
    }
    return 1;
    }


    //Gelöst.

    OMG checkt ihr nicht was er meint?
    Ein Scripts (Gamemode), kein Befehl. Hauptsache schnell zuspammen, um sich
    Kommentare zu sichern, ob es hilfreich war ist ja egal..


    Fertige Script findest du hier.
    Ob es dort etwas derartiges gibt, bezweifel ich, zudem du ja kaum Informationen über solch ein Script gegeben hast (Aufgabe,Teams etc.)

    Ich find den zur Abwechlung mal richtig gut.
    Normalerweise mag ich diese ganzen Möchtegern Tuning-Karren nicht, aber
    hier sieht es mal sehr gelungen aus. ;)

    Also soweit ich das jetzt sehe, fragst du nur die Länge des inputtextes ab, daher kann es auch garnicht funktionieren..
    Was benutzt du denn zum Speichern? Also welches Dateisystem?