Haussystem von dini auf mysql

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
  • Hei
    Ich würde gern dieses Hausscript von der Dini auf mysql umschreiben. Komm aber bei ein paar Abfragen nicht zurecht, weil ich mich selbst noch nicht so gut mit mysql auskenn.


    Hier der Script mit dini:
    #define MAX_HAUS 100
    enum hausEnum
    {
    Float:AussenX, Float:AussenY, Float:AussenZ,
    Float:InnenX, Float:InnenY, Float:InnenZ,
    Kaufpreis, Interior, Text3DHausLabel, Hauspick,
    Besitzer[24]
    };
    new Haus[MAX_HAUS][hausEnum];
    new hstring[64];
    new unusedstring[64];

    OnFilterScriptInt()
    {
    new h;
    for(;h!=MAX_HAUS;h++)
    {
    format(hstring,64,"%s/Haus_%d.ini",ORDNERNAME,h);
    if(dini_Exists(hstring))
    {
    Haus[h][AussenX] = mysql_Float(hstring,"Aussen_X");
    Haus[h][AussenY] = dini_Float(hstring,"Aussen_Y");
    Haus[h][AussenZ] = dini_Float(hstring,"Aussen_Z");


    Haus[h][InnenX] = dini_Float(hstring,"Innen_X");
    Haus[h][InnenY] = dini_Float(hstring,"Innen_Y");
    Haus[h][InnenZ] = dini_Float(hstring,"Innen_Z");


    Haus[h][Kaufpreis] = dini_Int(hstring,"Kaufpreis");
    Haus[h][Interior] = dini_Int(hstring,"Interior");


    format(Haus[h][Besitzer],24,"%s",dini_Get(hstring,"Besitzer"));
    if(!strcmp(Haus[h][Besitzer],"Niemand",true))
    {
    format(unusedstring,64,"Haus zu verkaufen.\nKaufpreis: %d$",Haus[h][Kaufpreis]);
    Haus[h][HausPickup]= CreatePickup(1273,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);
    Haus[h][HausLabel] = Create3DTextLabel(unusedstring, 0xFFFFFFFF, Haus[h][AussenX], Haus[h][AussenY], Haus[h][AussenZ], 20.0, -1);
    }
    else
    {
    format(unusedstring,64,"Dieses Haus gehört: %s",Haus[h][Besitzer]);
    Haus[h][HausPickup]= CreatePickup(1272,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);
    Haus[h][HausLabel] = Create3DTextLabel(unusedstring, 0xFFFFFFFF, Haus[h][AussenX], Haus[h][AussenY], Haus[h][AussenZ], 20.0, -1);
    }
    }
    }
    return 1;
    }
    stock HausErstellen(Float:Aussen_X,Float:Aussen_Y,Float:Aussen_Z,Float:Innen_X,Float:Innen_Y,Float:Innen_Z,Kaufpreis_,Interior_)
    {
    new h;
    for(;h!=MAX_HAUS;h++)
    if(Haus[h][Interior] != 0)
    {
    Haus[h][AussenX] = Aussen_X;
    Haus[h][AussenY] = Aussen_Y;
    Haus[h][AussenZ] = Aussen_Z;
    Haus[h][InnenX] = Innen_X;
    Haus[h][InnenY] = Innen_Y;
    Haus[h][InnenZ] = Innen_Z;


    Haus[h][Kaufpreis] = Kaufpreis_;
    Haus[h][Interior] = Interior_;


    format(hstring,64,"Haus zu verkaufen.\nKaufpreis: %d$",Haus[h][Kaufpreis]);
    Haus[h][HausLabel] = Create3DTextLabel(hstring,0xFFFFFFFF,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ]+1.7,20.0,-1);
    Haus[h][HausPickup]= CreatePickup(1273,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);
    format(hstring,64,"%s/Haus_%d.ini",ORDNERNAME,h);
    dini_Create(hstring);
    dini_IntSet(hstring,"Aussen_X",Aussen_X);
    dini_IntSet(hstring,"Aussen_Y",Aussen_Y);
    dini_IntSet(hstring,"Aussen_Z",Aussen_Z);


    dini_IntSet(hstring,"Innen_X",Innen_X);
    dini_IntSet(hstring,"Innen_Y",Innen_Y);
    dini_IntSet(hstring,"Innen_Z",Innen_Z);


    dini_IntSet(hstring,"Kaufpreis",Kaufpreis_);
    dini_IntSet(hstring,"Interior",Interior_);
    return 1;
    }
    return 0;
    }


    stock RemoveHaus(playerid)
    {
    if(IsPlayerInRangeOfAnyHaus(playerid))
    {
    new h = IsPlayerInRangeOfAnyHaus(playerid);
    Haus[h][AussenX] = 0;
    Haus[h][AussenY] = 0;
    Haus[h][AussenZ] = 0;
    Haus[h][InnenX] = 0;
    Haus[h][InnenY] = 0;
    Haus[h][InnenZ] = 0;
    Haus[h][Kaufpreis] = 0;
    Haus[h][Interior] = 0;


    format(hstring,64,"%s/Haus_%d.ini",ORDNERNAME,h);
    dini_Remove(hstring);
    return 1;
    }
    return 0;
    }


    stock HausKaufen(playerid)
    {
    new CurrMoney = Mau5_GetPlayerMoney(playerid);
    if(IsPlayerInRangeOfAnyHaus(playerid))
    {
    new h = IsPlayerInRangeOfAnyHaus(playerid);
    if(!strcmp(Haus[h][Besitzer],"Niemand",true))
    {
    if(CurrMoney >= Haus[h][Kaufpreis])
    {
    new name[24];
    GetPlayerName(playerid,name,24);
    format(Haus[h][Besitzer],64,"%s",name);
    format(hstring,64,"%s/Haus_%d.ini",ORDNERNAME,h);
    dini_Set(hstring,"Besitzer",name);


    format(unusedstring,64,"Dieses Haus gehört: %s",Haus[h][Besitzer]);
    DestroyPickup(Haus[h][HausPickup]);
    Update3DTextLabelText(Haus[h][HausLabel],0xFFFFFFFF,unusedstring);
    Haus[h][HausPickup]= CreatePickup(1272,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);
    return 1;
    }
    }
    }
    return 0;
    }


    stock HausVerkaufen(playerid)
    {
    new h;
    for(;h!=MAX_HAUS;h++)
    if(Haus[h][Interior] != 0)
    {
    if(!strcmp(Haus[h][Besitzer],name,true))
    {
    format(unusedstring,64,"Dieses Haus ist zu verkaufen.\nKaufpreis: %d$",Haus[h][Kaufpreis]);
    DestroyPickup(Haus[h][HausPickup]);
    Update3DTextLabelText(Haus[h][HausLabel],0xFFFFFFFF,unusedstring);
    Haus[h][HausPickup]= CreatePickup(1273,1,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ],-1);


    format(Haus[h][Besitzer],64,"Niemand");
    return 1;
    }
    }
    return 0;
    }


    stock IsPlayerInRangeOfAnyHaus(playerid)
    {
    new h;
    for(;h!=MAX_HAUS;h++)
    if(Haus[h][Interior] != 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,2.5,Haus[h][AussenX],Haus[h][AussenY],Haus[h][AussenZ]))
    {
    return h;
    }
    }
    return -1;
    }


    Nun zu meinem Problem:
    1. Hier wird bei dei "OnFilterScriptInt()" abgefragt ob die dini existiert und ich weiß nicht ob bzw wie ich die Abfrage bei mysql mach.
    2. Bei dem Script wird mit "dini_Float" gearbeitet. Ich hab es so versucht:


    Haus[h][AussenX] = mysql_Float(hstring,"Aussen_X");//Zeile 61
    Haus[h][AussenY] = mysql_Float(hstring,"Aussen_Y");//Zeile 62
    Haus[h][AussenZ] = mysql_Float(hstring,"Aussen_Z");//Zeile 63


    da kommt die Fehlermeldung J:\gta\0.3d\filterscripts\haustest.pwn(89) : warning 208: function with tag result used before definition, forcing reparse
    J:\gta\0.3d\filterscripts\haustest.pwn(61) : warning 202: number of arguments does not match definition
    J:\gta\0.3d\filterscripts\haustest.pwn(61) : warning 202: number of arguments does not match definition
    J:\gta\0.3d\filterscripts\haustest.pwn(62) : warning 202: number of arguments does not match definition
    J:\gta\0.3d\filterscripts\haustest.pwn(62) : warning 202: number of arguments does not match definition
    J:\gta\0.3d\filterscripts\haustest.pwn(63) : warning 202: number of arguments does not match definition
    J:\gta\0.3d\filterscripts\haustest.pwn(63) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    7 Warnings.
    der stock von mysql_Float:
    stock Float:mysql_Float(Table[], Field[], Where[], Is[])//Zeile 89
    {
    new query[128], Float:sqlfloat;
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_float(sqlfloat);
    mysql_free_result();
    return sqlfloat;
    }


    Ich hoffe mir kann einer von euch helfen!


    MfG

  • Zitat

    J:\gta\0.3d\filterscripts\haustest.pwn(89) : warning 208: function with tag result used before definition, forcing reparse


    Funktionen mit einem Tag ( "Float:" ) als Rückgabewert müssen definiert sein BEVOR sie benutzt werden.Sonst funktioniert das Tag ("Float:") nicht.


    Zitat

    J:\gta\0.3d\filterscripts\haustest.pwn(61) : warning 202: number of arguments does not match definition


    Mal gelesen was dort steht ?
    Ist wohl mehr als eindeutig. Anzahl der Argumente / Paramter stimmt nicht mit dem Funktionskopf überein.
    stock Float:mysql_Float(Table[], Field[], Where[], Is[])//Zeile 89
    4 Parameter
    aus[h][AussenX] = mysql_Float(hstring,"Aussen_X");//Zeile 61
    2 Parameter.


    2 ist nicht 4.

  • Das ist ja mein Haussystem, krass ^^


    @B2T:
    Ich füge bei v1.2 sowieso noch MySQL hinzu ;) (Gstylezz und Strickenkid)
    Das dauert vl. noch bis Sonntag ;)

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Das ist ja mein Haussystem, krass ^^


    @B2T:
    Ich füge bei v1.2 sowieso noch MySQL hinzu ;) (Gstylezz und Strickenkid)
    Das dauert vl. noch bis Sonntag ;)

    kann schon sein ^^.. habs von einem Freund bekommen.. hab net nachgefragt wo er es her hat ;) aba hast du nicht schlecht hin bekommen ;)



    /Edit:
    Godliker das ich beim stock 4 Paramter angegeben hab und bei der Abfrage nur 2 ist mir jetz auch aufgefallen^^ dafür schon mal danke aber ich weiß nicht was ich beim stock für eine Parameterabfrage machen muss
    damit es funktioniert ;( ;(


    Einmal editiert, zuletzt von nehli ()