Beiträge von Beavis

    ok


    Schreib mal im Enum das oben rein:
    HausDB
    dann das Laden so machen
    stock LoadHouses()
    {
    new query[64],string[128];
    mysql_query("SELECT * FROM `Houses`;");
    mysql_store_result();
    for(new i=0;i<mysql_num_rows();i++)
    {
    if(mysql_retrieve_row())
    {
    mysql_fetch_field_row(query,"Besitzer"); format(HausInfo[i][hBesitzer],64,"%s",query);
    mysql_fetch_field_row(query,"Kaufpreis"); HausInfo[i][hKaufpreis] = strval(query);
    mysql_fetch_field_row(query,"IconX"); HausInfo[i][hIconX] = floatstr(query);
    mysql_fetch_field_row(query,"IconY"); HausInfo[i][hIconY] = floatstr(query);
    mysql_fetch_field_row(query,"IconZ"); HausInfo[i][hIconZ] = floatstr(query);
    mysql_fetch_field_row(query,"IconID"); HausInfo[i][hIconID] = strval(query);
    mysql_fetch_field_row(query,"SpawnX"); HausInfo[i][hSpawnX] = floatstr(query);
    mysql_fetch_field_row(query,"SpawnY"); HausInfo[i][hSpawnY] = floatstr(query);
    mysql_fetch_field_row(query,"SpawnZ"); HausInfo[i][hSpawnZ] = floatstr(query);
    mysql_fetch_field_row(query,"InteriorID"); HausInfo[i][hInteriorID] = strval(query);
    mysql_fetch_field_row(query,"HausID"); HausInfo[i][HausDB] = strval(query);
    format(string,sizeof(string),"--== Freistehendes Haus ==--\nDieses Haus steht zum Verkauf\nBenutze: /buyhouse\nKaufpreis: {FFCC00}$%d",HausInfo[i][hKaufpreis]);
    Create3DTextLabel(string,COLOR_WHITE,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ],15,0,1);
    CreatePickup(HausInfo[i][hIconID],1,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ]);
    }
    }
    mysql_free_result();
    return 1;
    }
    löschen dann so:
    format(query,128,"DELETE FROM `Houses` WHERE `HausID` = '%d'",HausInfo[i][HausDB]);


    //nachtrag
    Alles was du beim haus updatest, musst du dann so mit der Hausid machen:
    format(query,128,"..... WHERE `HausID` = '%d'",HausInfo[i][HausDB]);
    Sonst updatet er dir nichts

    Ja ich habs auf die schnelle gemacht
    Da ich mit den Strickenkid plugin arbeite ist meine Vorgehensweise ja vollkommen anders
    Schleife für alle Einträge damit auch die HausInfo IDs gesetzt werden ;)
    bei ner While müsste ich nen Intger immer ++ nehmen das brauch ich bei der schleife nicht mehr :D

    Ja so löscht du es


    Aber zu den Laden das könntest du auch so machen
    stock LoadHouses()
    {
    new query[64],string[128];
    mysql_query("SELECT * FROM `Houses`;");
    mysql_store_result();
    for(new i=0;i<mysql_num_rows();i++)
    {
    if(mysql_retrieve_row())
    {
    mysql_fetch_field_row(query,"Besitzer"); format(HausInfo[i][hBesitzer],64,"%s",query);
    mysql_fetch_field_row(query,"Kaufpreis"); HausInfo[i][hKaufpreis] = strval(query);
    mysql_fetch_field_row(query,"IconX"); HausInfo[i][hIconX] = floatstr(query);
    mysql_fetch_field_row(query,"IconY"); HausInfo[i][hIconY] = floatstr(query);
    mysql_fetch_field_row(query,"IconZ"); HausInfo[i][hIconZ] = floatstr(query);
    mysql_fetch_field_row(query,"IconID"); HausInfo[i][hIconID] = strval(query);
    mysql_fetch_field_row(query,"SpawnX"); HausInfo[i][hSpawnX] = floatstr(query);
    mysql_fetch_field_row(query,"SpawnY"); HausInfo[i][hSpawnY] = floatstr(query);
    mysql_fetch_field_row(query,"SpawnZ"); HausInfo[i][hSpawnZ] = floatstr(query);
    mysql_fetch_field_row(query,"InteriorID"); HausInfo[i][hInteriorID] = strval(query);
    format(string,sizeof(string),"--== Freistehendes Haus ==--\nDieses Haus steht zum Verkauf\nBenutze: /buyhouse\nKaufpreis: {FFCC00}$%d",HausInfo[i][hKaufpreis]);
    Create3DTextLabel(string,COLOR_WHITE,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ],15,0,1);
    CreatePickup(HausInfo[i][hIconID],1,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ]);
    }
    }
    mysql_free_result();
    return 1;
    }

    das plugin von Blue G nutzt du oder?
    Dann schreib ich es dir mal eben um


    Teste mal das hier
    stock LoadHouses()
    {
    new query[512],string[128];
    mysql_query("SELECT Besitzer,Kaufpreis,IconX,IconY,IconZ,IconID,SpawnX,SpawnY,SpawnZ,InteriorID FROM `Houses`");
    mysql_store_result();
    for(new i=0;i<mysql_num_rows();i++)
    {
    mysql_fetch_row_format(query);
    sscanf(query,"p<|>s[24]ifffifffi",
    HausInfo[i][hBesitzer],
    HausInfo[i][hKaufpreis],
    HausInfo[i][hIconX],
    HausInfo[i][hIconY],
    HausInfo[i][hIconZ],
    HausInfo[i][hIconID],
    HausInfo[i][hSpawnX],
    HausInfo[i][hSpawnY],
    HausInfo[i][hSpawnZ],
    HausInfo[i][hInteriorID]);
    format(string,sizeof(string),"--== Freistehendes Haus ==--\nDieses Haus steht zum Verkauf\nBenutze: /buyhouse\nKaufpreis: {FFCC00}$%d",HausInfo[i][hKaufpreis]);
    Create3DTextLabel(string,COLOR_WHITE,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ],15,0,1);
    CreatePickup(HausInfo[i][hIconID],1,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ]);
    }
    mysql_free_result();
    return 1;
    }

    Ihr solltet euch mal das MySQL Referenzbuch durchlesen
    Was ihr hier für ein Müll reinpostet kann man nicht fassen


    Wozu 2 Querys?!


    Einer reicht
    stock LoadHouses()
    {
    new query[512],string[128];
    mysql_query("SELECT Besitzer,Kaufpreis,IconX,IconY,IconZ,IconID,SpawnX,SpawnY,SpawnZ,InteriorID FROM `Houses`");
    mysql_store_result();
    for(new i=0;i<mysql_num_rows();i++)
    {
    mysql_fetch_row(query);
    sscanf(query,"p<|>s[24]ifffifffi",
    HausInfo[i][hBesitzer],
    HausInfo[i][hKaufpreis],
    HausInfo[i][hIconX],
    HausInfo[i][hIconY],
    HausInfo[i][hIconZ],
    HausInfo[i][hIconID],
    HausInfo[i][hSpawnX],
    HausInfo[i][hSpawnY],
    HausInfo[i][hSpawnZ],
    HausInfo[i][hInteriorID]);
    format(string,sizeof(string),"--== Freistehendes Haus ==--\nDieses Haus steht zum Verkauf\nBenutze: /buyhouse\nKaufpreis: {FFCC00}$%d",HausInfo[i][hKaufpreis]);
    Create3DTextLabel(string,COLOR_WHITE,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ],15,0,1);
    CreatePickup(HausInfo[i][hIconID],1,HausInfo[i][hIconX],HausInfo[i][hIconY],HausInfo[i][hIconZ]);
    }
    mysql_free_result();
    return 1;
    }

    Enums sind immer besser


    PVar lohnt sich meist wenn du vom Gamemode in ein Filterscript anwendest denn das geht damit (auch umgekehrt)


    Wenn du es nicht benötigst dann nutz lieber Enums da die schneller sind

    SetTimerEx("TutorialTimer",20000,true,"i",playerid);
    durch den ersetzen
    SetTimerEx("TutorialTimer",20000,false,"i",playerid);
    Du startest immer wieder ein Timer dadurch spammt er dich zu
    mach die ganzen Timer statt true einfach aus false und das Problem ist nicht mehr vorhanden

    Du brichst die schleife immer ab
    Wenn es die nummer nicht gibt hast du ein return gesetzt
    Resultat ist das er den Code nicht weiter ausführt


    Ich hab ihn dir mal umgeschrieben
    ocmd:sms(playerid,params[])
    {
    if(mobiInfo[playerid][Handy]!=1) return SendClientMessage(playerid,Gelb,"Du besitzt kein Handy! Kaufe dir eins im 24/7!");
    new cnumber,smstext[128],stringtop[128],bool:numb = false;
    if(sscanf(params,"ds[128]",cnumber,smstext)) return SendClientMessage(playerid,Weiss,"Benutzung: /sms [Nummer] [Text]");
    for(new i=0; i< MAX_PLAYERS; i++)
    {
    if(mobiInfo[i][Handynummer]!=cnumber) continue;
    format(stringtop,sizeof(stringtop),"SMS an %d: %s",cnumber,smstext);
    SendClientMessage(playerid,Hellgruen,stringtop);
    format(stringtop,sizeof(stringtop),"SMS von %d: %s",mobiInfo[playerid][Handynummer],smstext);
    SendClientMessage(i,Hellgruen,stringtop);
    GivePlayerMoney(playerid,-15);
    numb = true;
    break;
    }
    if(!numb)SendClientMessage(playerid,Gelb,"Diese Nummer gibt es nicht!");
    return 1;
    }
    Sollte so gehen

    Dann teste das hier mal
    new query[128],bool:requireEmail = false,data[64],playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,MAX_PLAYER_NAME);
    format(query, sizeof(query), "SELECT * FROM `User` WHERE `Name` = '%s' LIMIT 1;", playername);
    mysql_query(query,-1,-1,connection);
    mysql_store_result(connection);
    if(mysql_num_rows(connection))
    {
    mysql_fetch_row_data(connection);
    mysql_fetch_field("ID",data,connection); SetPVarInt(playerid,DBID_KEY,strval(data));
    mysql_fetch_field("Admin",data,connection); SetPVarInt(playerid,ADMIN_KEY,strval(data));
    mysql_fetch_field("Email",data,connection); SetPVarString(playerid,EMAIL_KEY,data);
    if(!strcmp(data,"notset",true) && strlen(data) != 0){requireEmail = true;}
    mysql_fetch_field("Kills",data,connection); SetPVarInt(playerid,KILLS_KEY,strval(data));
    mysql_fetch_field("Tode",data,connection); SetPVarInt(playerid,TODE_KEY,strval(data));
    mysql_fetch_field("Warn",data,connection); SetPVarInt(playerid,WARN_KEY,strval(data));
    mysql_fetch_field("Prison",data,connection); SetPVarInt(playerid,PRISON_KEY,strval(data));
    }
    else
    {
    //Acc nicht vorhanden
    }
    mysql_free_result(connection);


    mysql_fetch_row_data(connection);
    Das bewirkt das die Select werte zwischengespeichert werden damit fetch field die sauber auslesen kann ;)

    Teste mal das hier
    Ich hab es mal etwas kürzer und übersichtlicher geschrieben^^
    LadeGangCars()
    {
    new path[60],count = 0;
    for(new c=0;c<24;c++)
    {
    if((c==5) || (c==6) || (c==8) || (c==11) || (c==12) || (c==13) || (c==14) || (c==15) || (c==16) || (c==17) || (c==18) || (c==19) || (c==20) || (c==21) || (c==23))//jenachdem Anpassen
    {
    for(new i=0;i<MAX_GANG_CARS;i++)
    {
    format(path, sizeof path, "/GangCars/%d/%d.ini",c,i);
    if(!fexist(path))continue;
    if(INI_Open(path))
    {
    gcInfo[code=c][i][gcID] = INI_ReadInt("ID");
    gcInfo[code=c][i][gcID] = INI_ReadInt("Model");
    gcInfo[code=c][i][gcID] = INI_ReadInt("Gang");
    gcInfo[code=c][i][gcX] = INI_ReadFloat("pX");
    gcInfo[code=c][i][gcY] = INI_ReadFloat("pY");
    gcInfo[code=c][i][gcZ] = INI_ReadFloat("pZ");
    gcInfo[code=c][i][gcA] = INI_ReadFloat("Angle");
    INI_Close();
    gcInfo[code=c][i][gcCarID] = AddStaticVehicle(gcInfo[code=c][i][gcModel],gcInfo[code=c][i][gcX],gcInfo[code=c][i][gcY],gcInfo[code=c][i][gcZ],gcInfo[code=c][i][gcA],GetFrakCarColor(gcInfo[code=c][i][gcGang]),GetFrakCarColor(gcInfo[code=c][i][gcGang]));
    count++;
    }
    }
    }
    }
    return printf("%d Fraktionsautos wurden geladen",count);
    }