Wie kann ich das umschreiben 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
  • Da ich seit neusten versuche mit MySQL zu arbeiten und nun mein Script auch auf MySQL umschreiben möchte bzw. das was noch auf Dini ist brauche ich hilfe.


    Hier einmal der Code


    Ich benutze das MySQL Plugin von BlueG

    public LoadSafeboxes(){
    for(new Faction=1;Faction<sizeof(Factions);Faction++){
    if(Faction){
    new Filetext[64];
    format(Filetext,sizeof(Filetext),"factions/safeboxes/%s.safebox",Factions[Faction]);
    if(fexist(Filetext)){
    new File:sbFile=fopen(Filetext,io_read),Content[256];
    fread(sbFile,Content);
    sscanf(Content,"ddddddddddddd",
    Safebox[Faction][sbMoney],
    Safebox[Faction][sbDrugs],
    Safebox[Faction][sbDrugs],
    Safebox[Faction][sbWeapon][0],
    Safebox[Faction][sbWeapon][1],
    Safebox[Faction][sbWeapon][2],
    Safebox[Faction][sbWeapon][3],
    Safebox[Faction][sbWeapon][4],
    Safebox[Faction][sbWeapon][5],
    Safebox[Faction][sbWeapon][6],
    Safebox[Faction][sbWeapon][7],
    Safebox[Faction][sbWeapon][8],
    Safebox[Faction][sbWeapon][9]);
    fclose(sbFile);
    }
    }
    }return 1;
    }
    public SaveSafeboxes(){
    for(new Faction=1;Faction<sizeof(Factions);Faction++){
    if(Faction){
    new Filetext[64];
    format(Filetext,sizeof(Filetext),"factions/safeboxes/%s.safebox",Factions[Faction]);
    new File:sbFile=fopen(Filetext,io_write),Content[256];
    format(Content,sizeof(Content),"%d %d %d %d %d %d %d %d %d %d %d %d %d",
    Safebox[Faction][sbMoney],
    Safebox[Faction][sbDrugs],
    Safebox[Faction][sbMats],
    Safebox[Faction][sbWeapon][0],
    Safebox[Faction][sbWeapon][1],
    Safebox[Faction][sbWeapon][2],
    Safebox[Faction][sbWeapon][3],
    Safebox[Faction][sbWeapon][4],
    Safebox[Faction][sbWeapon][5],
    Safebox[Faction][sbWeapon][6],
    Safebox[Faction][sbWeapon][7],
    Safebox[Faction][sbWeapon][8],
    Safebox[Faction][sbWeapon][9]);
    fwrite(sbFile,Content);
    fclose(sbFile);
    }
    }return 1;
    }
    public LoadHouses(){
    if(!fexist("Houses.cfg")){
    for(new Haus;Haus<sizeof(HouseInfo);Haus++)
    format(HouseInfo[Haus][hOwner],MAX_PLAYER_NAME,"!Unknown?Unknown!");
    return true;
    }
    new File:hFile=fopen("Houses.cfg",io_read),Content[1024],Haus;
    while(fread(hFile,Content) && Haus<sizeof(HouseInfo)){
    StripNewLine(Content);
    sscanf(Content,"ddds[24]dfffffffffffddd",
    HouseInfo[Haus][hCreated],
    HouseInfo[Haus][hBuyed],
    HouseInfo[Haus][hPrice],
    HouseInfo[Haus][hOwner],
    HouseInfo[Haus][hInt],
    HouseInfo[Haus][hEnter][0],
    HouseInfo[Haus][hEnter][1],
    HouseInfo[Haus][hEnter][2],
    HouseInfo[Haus][hEnter][3],
    HouseInfo[Haus][hExit][0],
    HouseInfo[Haus][hExit][1],
    HouseInfo[Haus][hExit][2],
    HouseInfo[Haus][hExit][3],
    HouseInfo[Haus][hHealth][0],
    HouseInfo[Haus][hHealth][1],
    HouseInfo[Haus][hHealth][2],
    HouseInfo[Haus][hLocked],
    HouseInfo[Haus][hRent],
    HouseInfo[Haus][hCash]);
    if(HouseInfo[Haus][hCreated]){
    HouseInfo[Haus][hHealthPickup] = CreatePickup(1240,3,HouseInfo[Haus][hHealth][0],HouseInfo[Haus][hHealth][1],HouseInfo[Haus][hHealth][2],Haus);
    new hText[128];
    if(HouseInfo[Haus][hBuyed]){
    if(HouseInfo[Haus][hRent]){
    HouseInfo[Haus][hPickup] = CreatePickup(1274,1,HouseInfo[Haus][hEnter][0],HouseInfo[Haus][hEnter][1],HouseInfo[Haus][hEnter][2],Virtuelle_Welt);
    format(hText,sizeof(hText),">>> Dieses Haus gehört %s <<<\nMiete: $%d\nBenutze: '/Rentroom' um dich einzumieten.",HouseInfo[Haus][hOwner],HouseInfo[Haus][hRent]);
    HouseInfo[Haus][hLabel] = Create3DTextLabel(hText,0x00CF00FF,HouseInfo[Haus][hEnter][0],HouseInfo[Haus][hEnter][1],HouseInfo[Haus][hEnter][2],25.0,Virtuelle_Welt,true);
    }else{
    HouseInfo[Haus][hPickup] = CreatePickup(1239,1,HouseInfo[Haus][hEnter][0],HouseInfo[Haus][hEnter][1],HouseInfo[Haus][hEnter][2],Virtuelle_Welt);
    format(hText,sizeof(hText),">>> Dieses Haus gehört %s <<<\nBenutze: '/Enter' um es zu betreten.",HouseInfo[Haus][hOwner]);
    HouseInfo[Haus][hLabel] = Create3DTextLabel(hText,0x00CF00FF,HouseInfo[Haus][hEnter][0],HouseInfo[Haus][hEnter][1],HouseInfo[Haus][hEnter][2],25.0,Virtuelle_Welt,true);
    }
    }else{
    HouseInfo[Haus][hPickup] = CreatePickup(1273,1,HouseInfo[Haus][hEnter][0],HouseInfo[Haus][hEnter][1],HouseInfo[Haus][hEnter][2],Virtuelle_Welt);
    format(hText,sizeof(hText),">>> Haus zu Verkaufen <<<\nPreis: $%d\nBenutze: '/Buyhouse' um es zu kaufen.",HouseInfo[Haus][hPrice]);
    HouseInfo[Haus][hLabel] = Create3DTextLabel(hText,0x00CF00FF,HouseInfo[Haus][hEnter][0],HouseInfo[Haus][hEnter][1],HouseInfo[Haus][hEnter][2],25.0,Virtuelle_Welt,true);
    }
    }Haus++;
    }
    fclose(hFile);
    return 1;
    }
    public SaveHouses(){
    new File:hFile=fopen("Houses.cfg",io_write),Content[1024];
    new Haus; while(Haus<sizeof(HouseInfo)){
    format(Content,sizeof(Content),"%d %d %d %s %d %.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f %.3f %d %d %d\r\n",
    HouseInfo[Haus][hCreated],
    HouseInfo[Haus][hBuyed],
    HouseInfo[Haus][hPrice],
    HouseInfo[Haus][hOwner],
    HouseInfo[Haus][hInt],
    HouseInfo[Haus][hEnter][0],
    HouseInfo[Haus][hEnter][1],
    HouseInfo[Haus][hEnter][2],
    HouseInfo[Haus][hEnter][3],
    HouseInfo[Haus][hExit][0],
    HouseInfo[Haus][hExit][1],
    HouseInfo[Haus][hExit][2],
    HouseInfo[Haus][hExit][3],
    HouseInfo[Haus][hHealth][0],
    HouseInfo[Haus][hHealth][1],
    HouseInfo[Haus][hHealth][2],
    HouseInfo[Haus][hLocked],
    HouseInfo[Haus][hRent],
    HouseInfo[Haus][hCash]);
    fwrite(hFile,Content);
    Haus++;
    }fclose(hFile);
    return 1;
    }

  • Müsstes du alles neu machen ;) bleib lieber so da mysql sehr aufwendig ist und man damit lieber von 0 anfängt
    zb bei ein selfmade ;)

  • Schau es dir an

    Spoiler anzeigen

    stock LoadPlayer(playerid)
    {
    GetPlayerName(playerid, uInfo[playerid][pName], MAX_PLAYER_NAME);
    uInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", uInfo[playerid][pName]);
    uInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", uInfo[playerid][pName]);
    uInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", uInfo[playerid][pName]);
    uInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", uInfo[playerid][pName]);
    uInfo[playerid][pLeader] = mysql_GetInt("accounts", "Chef", "Name", uInfo[playerid][pName]);
    uInfo[playerid][pMember] = mysql_GetInt("accounts", "Arbeiter", "Name", uInfo[playerid][pName]);
    uInfo[playerid][pAdmin] = mysql_GetInt("accounts", "AdminLevel", "Name", uInfo[playerid][pName]);
    return 1;
    }

    Spoiler anzeigen
    stock SavePlayer(playerid)
    {
    GetPlayerName(playerid, uInfo[playerid][pName], MAX_PLAYER_NAME);
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    mysql_SetInt("accounts", "Level", uInfo[playerid][pLevel], "Name", uInfo[playerid][pName]);
    mysql_SetInt("accounts", "Geld", uInfo[playerid][pGeld], "Name", uInfo[playerid][pName]);
    mysql_SetInt("accounts", "Kills", uInfo[playerid][pKills], "Name", uInfo[playerid][pName]);
    mysql_SetInt("accounts", "Tode", uInfo[playerid][pTode], "Name", uInfo[playerid][pName]);
    mysql_SetInt("accounts", "Chef", uInfo[playerid][pLeader], "Name", uInfo[playerid][pName]);
    mysql_SetInt("accounts", "Arbeiter", uInfo[playerid][pMember], "Name", uInfo[playerid][pName]);
    mysql_SetInt("accounts", "AdminLevel", uInfo[playerid][pAdmin], "Name", uInfo[playerid][pName]);
    }
    return 1;
    }
    stock mysql_GetString(Table[], Field[], Where[], Is[])
    {
    new query[128], Get[128];
    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_row(Get);
    mysql_free_result();
    return Get;
    }
    stock mysql_GetInt(Table[], Field[], Where[], Is[])
    {
    new query[128];
    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();
    new sqlint = mysql_fetch_int();
    mysql_free_result();
    return sqlint;
    }
    stock mysql_GetFloat(Table[], Field[], Where[], Is[])
    {
    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;
    }
    stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }
    stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(To, To);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }
    stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Where2, Where2);
    format(query, 128, "UPDATE `%s` SET `%s` = '%f' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
    mysql_query(query);
    return true;
    }


    Müsstes du alles neu machen ;) bleib lieber so da mysql sehr aufwendig ist und man damit lieber von 0 anfängt
    zb bei ein selfmade ;)


    XD aufwendig ? haha

  • Müsstes du alles neu machen ;) bleib lieber so da mysql sehr aufwendig ist und man damit lieber von 0 anfängt
    zb bei ein selfmade ;)


    Du weiß ja welches Script ich benutze ne? ;)


    Ja schon aber möchte halt alles auf MySQL haben und nicht von ganz vorne anfangen möchte mit einen Script

  • Müsstes du alles neu machen ;) bleib lieber so da mysql sehr aufwendig ist und man damit lieber von 0 anfängt
    zb bei ein selfmade ;)


    Schwachsinn aufwendig wäre das nicht du kannst sscanf auch ganz leicht verwenden mit mysql .


    Ein Beispiel aus meinem alten carsystem zeigt das


    stock Autosladen()
    {
    new Query[1024], id, i = 0;
    format(Query, sizeof(Query), "SELECT * FROM autos4");
    mysql_query(Query);
    mysql_store_result();
    while(mysql_fetch_row_format(Query))
    {
    id = i;
    sscanf(Query, "p<|>e<is[25]iiiffff>", VehicleInfo[id]);
    new Color1 = random(126); new Color2 = random(126);
    CreateVehicle(VehicleInfo[id][Model],VehicleInfo[id][Pos][X],VehicleInfo[id][Pos][Y],VehicleInfo[id][Pos][Z],VehicleInfo[id][Pos][R],Color1,Color2, 60*10000);
    i++;
    printf("%d",VehicleInfo[id][Model]);
    }
    }


    ich hätte dir ein beispiel posten können mit dem laden von deiner Box jedoch weiß ich nicht ob du ein die Variabeln in einem enum hast
    obwohl das nichts groß zur Sache tut nur erspart das einem viele unnötige Zeilen


    sscanf(Query, "p<|>e<is[25]iiiffff>", VehicleInfo[id]);

  • Das ist mein Enum



    enum sbInfo{
    sbMoney,
    sbDrugs,
    sbMats,
    sbWeapon[10]
    };
    new Safebox[sizeof(Factions)][sbInfo];
    enum sbwi{
    sbwiSlot,
    sbwiId,
    sbwiName[32]
    };
    new SafeboxWeapons[10][sbwi] = {
    {2,24,"Deagle"},
    {4,29,"MP5"},
    {5,31,"M4"},
    {5,30,"AK-47"},
    {3,25,"Shotgun"},
    {1,4,"Messer"},
    {1,5,"Baseball-Schläger"},
    {6,34,"Scharfschützengewehr"},
    {6,33,"Gewehr"},
    {11,46,"Fallschirm"}
    };


    Leider kann ich nicht so wirklich mit MySQL bzw. etwas von Dini umschreiben....

  • es unterscheidet sich nicht viel der sscanf code bei mysql würde so aussehen



    sscanf(Query, "p<|>e<ddddddddddddd>", Safebox[id]);




    stock LoadSafeboxes()
    {
    new Query[1024], i = 0;
    format(Query, sizeof(Query), "SELECT * FROM safebox");
    mysql_query(Query);
    mysql_store_result();
    while(mysql_fetch_row_format(Query))
    {
    sscanf(Query, "p<|>e<ddddddddddddd>", Safebox[i]);
    i++;
    }
    }


    was ist hier jetzt so umständlich

  • D:\Pawno\Script\gamemodes\Script.pwn(16057) : error 017: undefined symbol "mysql_fetch_row_format"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen