[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Hallo!


    Ich habe ein Problem mit einer MySQL Query. Kann jemand helfen?



    format(query, sizeof(query), "INSERT INTO "#DB_PRE"frakcars (modelID, X, Y, Z, R, C1, C2, siren, Faction, vHP, Fuel) VALUES ('%i', '%f', '%f', '%f', '%f', '%i', '%i', '%i', '%i', 1000.0, '%i')", m, p[0], p[1], p[2], p[3], c1, c2, siren, faction, getMaxFuel(m));


    SQL
    [12:59:22] [ERROR] CMySQLQuery::Execute[OnFrakCarCreated(i)] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
  • Warum rutscht die Tabellen Einträge immer eins nach Oben also:
    Tabelle 1 Wert: 2500
    Tabelle 2 Wert: 4000
    Tabelle 3 Wert: 500
    Danach ist es so:
    Tabelle 1 Wert: 4000
    Tabelle 2 Wert: :500
    Tabelle 3 Wert: 500
    Hier wird alles gespeichert:
    stock SaveFraktion()
    {
    new query[275],
    frak = 0;
    for(;frak<MAX_FRAKTIONEN;frak++)
    {
    format(query,sizeof(query),"UPDATE "#DATENBANK"_fraktionen SET frakmaterial = '%d', frakgeld = '%d', marihuana = '%d', koks = '%d', crystle = '%d', lsd = '%d', gras = '%d' WHERE frakid = '%d'",FrakInfo[frak][frakmaterial],FrakInfo[frak][frakgeld],FrakInfo[frak][fMarihuana],FrakInfo[frak][fKoks],FrakInfo[frak][fCrystle],FrakInfo[frak][fLSD],FrakInfo[frak][fGras],frak);
    mysql_function_query(MYSQLVerbindung,query,false,"","");
    }
    return 1;
    }


    Und hier geladen:
    mysql_function_query(MYSQLVerbindung,"SELECT * FROM "#DATENBANK"_fraktionen",true,"OnQueryFinish","siii","SELECT * FROM "#DATENBANK"_fraktionen",_SQL_FRAKTION_LOAD,0,MYSQLVerbindung);
    case _SQL_FRAKTION_LOAD:
    {
    cache_get_data(rows,fields);
    new frakstring[500],frakname[75];
    new frak = 0;
    if(rows)
    {
    while(frak<rows)
    {
    cache_get_field_content(frak,"id",result);
    FrakInfo[frak][fid] = strval(result);
    printf("ID: %d",FrakInfo[frak][fid]);


    cache_get_field_content(frak,"interior",result);
    FrakInfo[frak][fInteriorID] = strval(result);


    cache_get_field_content(frak,"vwelt",result);
    FrakInfo[frak][fVirtuelleWelt] = strval(result);


    cache_get_field_content(frak,"frakgeld",result);
    FrakInfo[frak][frakgeld] = strval(result);
    printf("geldf: %d",FrakInfo[frak][frakgeld]);


    cache_get_field_content(frak,"mp5rank",result);
    FrakInfo[frak][fMP5Rank] = strval(result);


    cache_get_field_content(frak,"m4rank",result);
    FrakInfo[frak][fM4Rank] = strval(result);


    cache_get_field_content(frak,"deaglerank",result);
    FrakInfo[frak][fDeagleRank] = strval(result);


    cache_get_field_content(frak,"ak47rank",result);
    FrakInfo[frak][fAK47Rank] = strval(result);


    cache_get_field_content(frak,"riflerank",result);
    FrakInfo[frak][fRifleRank] = strval(result);


    cache_get_field_content(frak,"pistolerank",result);
    FrakInfo[frak][fPistoleRank] = strval(result);


    cache_get_field_content(frak,"shotgunrank",result);
    FrakInfo[frak][fShotgunRank] = strval(result);


    cache_get_field_content(frak,"baseballrank",result);
    FrakInfo[frak][fBaseballRank] = strval(result);


    cache_get_field_content(frak,"schlagringrank",result);
    FrakInfo[frak][fSchlagringRank] = strval(result);


    cache_get_field_content(frak,"schwacheR",result);
    FrakInfo[frak][fSRustung] = strval(result);


    cache_get_field_content(frak,"mittelR",result);
    FrakInfo[frak][fMRustung] = strval(result);


    cache_get_field_content(frak,"starkeR",result);
    FrakInfo[frak][fStarkRustung] = strval(result);


    cache_get_field_content(frak,"frakmaterial",result);
    FrakInfo[frak][frakmaterial] = strval(result);


    cache_get_field_content(frak,"marihuana",result);
    FrakInfo[frak][fMarihuana] = strval(result);


    cache_get_field_content(frak,"koks",result);
    FrakInfo[frak][fKoks] = strval(result);


    cache_get_field_content(frak,"crystle",result);
    FrakInfo[frak][fCrystle] = strval(result);


    cache_get_field_content(frak,"lsd",result);
    FrakInfo[frak][fLSD] = strval(result);


    cache_get_field_content(frak,"gras",result);
    FrakInfo[frak][fGras] = strval(result);


    FrakInfo[frak][fPosX] = cache_get_row_float(frak,29,MYSQLVerbindung);
    FrakInfo[frak][fPosY] = cache_get_row_float(frak,30,MYSQLVerbindung);
    FrakInfo[frak][fPosZ] = cache_get_row_float(frak,31,MYSQLVerbindung);


    cache_get_field_content(frak,"frakrank1",result);
    format(FrakRank0[frak],26,"%s",result);


    cache_get_field_content(frak,"frakrank2",result);
    format(FrakRank1[frak],26,"%s",result);


    cache_get_field_content(frak,"frakrank3",result);
    format(FrakRank2[frak],26,"%s",result);


    cache_get_field_content(frak,"frakrank4",result);
    format(FrakRank3[frak],26,"%s",result);


    cache_get_field_content(frak,"frakrank5",result);
    format(FrakRank4[frak],26,"%s",result);


    cache_get_field_content(frak,"frakrank6",result);
    format(FrakRank5[frak],26,"%s",result);


    cache_get_field_content(frak,"fraklohn1",result);
    FrakInfo[frak][fraklohn1] = strval(result);


    cache_get_field_content(frak,"fraklohn2",result);
    FrakInfo[frak][fraklohn2] = strval(result);


    cache_get_field_content(frak,"fraklohn3",result);
    FrakInfo[frak][fraklohn3] = strval(result);


    cache_get_field_content(frak,"fraklohn4",result);
    FrakInfo[frak][fraklohn4] = strval(result);


    cache_get_field_content(frak,"fraklohn5",result);
    FrakInfo[frak][fraklohn5] = strval(result);


    cache_get_field_content(frak,"fraklohn6",result);
    FrakInfo[frak][fraklohn6] = strval(result);


    cache_get_field_content(frak,"wtposX",result);
    FrakInfo[frak][WTPos][0] = floatstr(result);


    cache_get_field_content(frak,"wtposY",result);
    FrakInfo[frak][WTPos][1] = floatstr(result);


    cache_get_field_content(frak,"wtposZ",result);
    FrakInfo[frak][WTPos][2] = floatstr(result);


    Danke im vorraus

  • Versuche ob es so schon hilft.
    format(query,sizeof(query),"UPDATE "#DATENBANK"_fraktionen SET frakmaterial = '%d', frakgeld = '%d', marihuana = '%d', koks = '%d', crystle = '%d', lsd = '%d', gras = '%d' WHERE frakid = '%d'",FrakInfo[frak][frakmaterial],FrakInfo[frak][frakgeld],FrakInfo[frak][fMarihuana],FrakInfo[frak][fKoks],FrakInfo[frak][fCrystle],FrakInfo[frak][fLSD],FrakInfo[frak][fGras],frak);
    zu:
    format(query,sizeof(query),"UPDATE "#DATENBANK"_fraktionen SET frakmaterial = '%d', frakgeld = '%d', marihuana = '%d', koks = '%d', crystle = '%d', lsd = '%d', gras = '%d' WHERE frakid = '%d'",FrakInfo[frak][frakmaterial],FrakInfo[frak][frakgeld],FrakInfo[frak][fMarihuana],FrakInfo[frak][fKoks],FrakInfo[frak][fCrystle],FrakInfo[frak][fLSD],FrakInfo[frak][fGras],frak+1);


    PS: Dieser Thread ist für kleine Fragen, nicht für solche großen Codes, gedacht.

  • Warum wird man nicht in den Editor gesetzt?
    case DIALOG_INVENTAR:
    {
    if(!response)return true;
    if(Inventar[playerid][listitem][0] == -1)return SendClientMessage(playerid,GRAU,"Dieser Inventarslot ist leer");
    new Float:x,Float:y,Float:z, vworld = GetPlayerVirtualWorld(playerid), vint = GetPlayerInterior(playerid);
    GetPlayerPos(playerid,x,y,z);
    Inventar[playerid][listitem][2] = CreateDynamicObject(Inventar[playerid][listitem][0],x+3,y,z, 0.0, 0.0,0.0, vworld, vint, -1, 100.0);
    EditDynamicObject(playerid, Inventar[playerid][listitem][2]);
    }

  • Warum wird der textlabel und die Pflanze nicht gelöscht?
    if(DrogenInfo[drug][drugart] == 1) {
    DrogenInfo[drug][geerntet] = 1;
    Spieler[playerid][pMarihuana] += DrogenInfo[drug][drugausbeute];
    format(string,sizeof(string),""#HTML_RED"Info: "#HTML_WHITE"Du hast %i Droge (Marihuana) abgeerntet!",DrogenInfo[drug][drugausbeute]);
    format(query,sizeof(query),"DELETE FROM "#DATENBANK"_drogen WHERE drogenid = '%d'",DrogenInfo[drug][drogenid]);
    Delete3DTextLabel(DrugText[drug]);
    DestroyObject(DrogenInfo[drug][drugobjekt]);
    SendClientMessage(playerid,GRAU,string);
    return true;
    }

  • Wie kann man abfragen ob ein string leer ist?


    hier mit
    #define isnull(%1) ((%1[0] == 0) || (%1[0] == 1 && %1[1] == 0))


    Nutzung:
    if(isnull(string))
    {
    // was tun wenn der string leer ist
    }

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski


  • enum fraktionInfo {
    Float:SpawnX,
    Float:SpawnY,
    Float:SpawnZ,
    fIName[70],
    fIColor
    }
    new frakt[MAX_FRAKS][fraktionInfo] = {
    {0.000, 0.000, 0.000, "Hitmen Agency", 0x743A3AFF},
    {0.000, 0.000, 0.000, "San Fierro Police Department", 0x0385AFFF},
    {0.000, 0.000, 0.000, "Las Venturas Police Department", 0x0385AFFF},
    {0.000, 0.000, 0.000, "San Andreas Medical Department", 0xB30000FF},
    {0.000, 0.000, 0.000, "San Andreas Vehicle Controll", 0xD26900FF}, // Abschlepp Dienst
    {0.000, 0.000, 0.000, "Yakuza", 0xFF82C0FF}
    };


    Compiler sagt:

    Spoiler anzeigen
    error 052: multi-dimensional arrays must be fully initialized
    Zeile 15

  • Warum folgende Errors:
    case _SQL_FVERWALTUNG_INSERT:
    {
    cache_get_data(rows,fields);
    if(!rows)
    { //zeile 44645
    format(query,sizeof(query),"INSERT INTO fraktionen (id,frakid,frakrank1,frakrank2,frakrank3,frakrank4,frakrank5,frakrank6,mp5rank,m4rank,deaglerank,ak47rank,rifelrank,pistolerank,shotgunrank,baseballrank,schlagringrank,schwacheR,mittelR,starkerR,interior,vwelt,frakgeld,frakmaterial,marihuana,koks,crystle,lsd,gras,posx,posy,posz,fraklohn1,fraklohn2,fraklohn3,fraklohn4,fraklohn5,fraklohn6,wtposX,wtposY,wtposZ,mlimit) VALUES ('%d','%d','NA','NA','NA','NA','NA','NA','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'",id,frakid);//Zeile 44646
    mysql_function_query(MySQLVerbidung,query,false,"","");
    printf("- Fraktionsvewaltung für die Fraktion %i erstellt -",frakid);
    }
    return 1;
    }
    (44645) : error 075: input line too long (after substitutions)
    (44646) : error 037: invalid string (possibly non-terminated string)
    (44646) : error 017: undefined symbol "INSERT"
    (44646) : error 017: undefined symbol "INTO"

  • Schreibe es so:


    case _SQL_FVERWALTUNG_INSERT:
    {
    cache_get_data(rows,fields);
    if(!rows)
    {
    query = "INSERT INTO fraktionen (id,frakid,frakrank1,frakrank2,frakrank3,frakrank4,frakrank5,frakrank6,mp5rank,m4rank,deaglerank,ak47rank,rifelrank,pistolerank,shotgunrank,baseballrank,schlagringrank,schwacheR,mittelR,starkerR,interior,vwelt,frakgeld,frakmaterial,marihuana,koks,crystle,lsd,gras,posx,posy,posz,fraklohn1,fraklohn2,fraklohn3,fraklohn4,fraklohn5,fraklohn6,wtposX,wtposY,wtposZ,mlimit) VALUES";
    format(query,sizeof(query),"%s('%d','%d','NA','NA','NA','NA','NA','NA','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'",query,id,frakid);
    mysql_function_query(MySQLVerbidung,query,false,"","");
    printf("- Fraktionsvewaltung für die Fraktion %i erstellt -",frakid);
    }
    return 1;
    }

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward