Beiträge von varrez

    Schon klar, aber wie kommst du zu dem Dialog. Der Teil fehlt.
    Ich muss wissen wie du das machst, sonst kann ich es dir nicht verbinden.



    ocmd:usegutschein(playerid, params[])
    {
    new gutscheinid, string[256];
    if(sscanf(params, "d", gutscheinid)) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Benutze: /usegutschein [GutscheinCode]");
    for(new g = 0; g <MAX_GUTSCHEINE; g++)
    {
    if(gutscheinid != Gutschein[g][gCode]) continue;
    if(Gutschein[g][gUsed] == 1) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Dieser Code wurde bereits aktiviert.");
    if(Gutschein[g][gAktion] == 1)
    {
    ShowPlayerDialog(playerid, DIALOG_GNAMECHANGE, DIALOG_STYLE_INPUT, "Gutschein einlösen: Namenschange", "Bitte gib deinen neuen Wunschnamen ein:", "Change", "Abbrechen");
    /*Gutschein[g][gUsed] = 1;
    SendClientMessage(playerid, COLOR_WHITE, "Namensänderung");
    format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s' WHERE gCode = '%d'", SpielerName(playerid), Gutschein[g][gCode]);
    self_mysql_query(string);*/
    }
    return 1;
    }
    return SendClientMessage(playerid, COLOR_ERRORTEXT, "Dieser Code existiert nicht!");
    }

    In welchem Zusammenhang greifst du denn auf den Gutschein zu?
    Du startest zwar die Schleife, aber die endet in jedem Fall im ersten Durchlauf, es findest keine Prüfung auf irgendwas statt.


    Dem Code fehlt der Zusammenhang zum restlichen System, deshalb geht es nicht. Den Zusammenhang kann ich dir auch nicht herstellen, da ich nicht weiß was du vor hast.
    Poste mal den Codezusammenhang (von Anfang der Prozedur (Befehl?) bis hierhin.


    Dialog wird aufgerufen (INPUT):


    if(dialogid == DIALOG_GNAMECHANGE)
    {
    if(strlen(inputtext) > 24) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Der Name darf nicht mehr als 24 Zeichen und nur Zeichen von A-Z, 0-9 besitzen!");
    if(mysql_CheckAccount(inputtext) == 1) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Der Name ist bereits in der Datenbank vorhanden!");
    for(new g = 0; g <MAX_GUTSCHEINE; g++)
    {
    if(strcmp(PlayerInfo[playerid][pOldName], "Niemand", true) == 0) return strmid(PlayerInfo[playerid][pOldName], giveplayer, 0, strlen(giveplayer), 255);
    Gutschein[g][gUsed] = 1;
    SetPlayerName(playerid, inputtext);
    format(string, sizeof(string), "Du hast deinen Namen von %s auf %s geändert.", giveplayer, SpielerName(playerid));
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    SendClientMessage(playerid, COLOR_WHITE, "Wichtig: Ändere nach dem Logout deinen Namen im Multiplayer Clienten zu deinem neuen Namen.");
    format(string, sizeof(string), "UPDATE `users` SET `Name`='%s' WHERE `Name`='%s'", SpielerName(playerid), giveplayer);
    self_mysql_query(string);
    format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s' WHERE gCode = '%d'", SpielerName(playerid), Gutschein[g][gCode]);
    self_mysql_query(string);
    return 1;
    }
    }

    Nächstes Problem wäre das er mit nachfolgendem Code, manchmal gUsed, sowie gUsedBy speichert, manchmal aber auch einfach nicht.


    for(new g = 0; g <MAX_GUTSCHEINE; g++)
    {
    if(strcmp(PlayerInfo[playerid][pOldName], "Niemand", true) == 0) return strmid(PlayerInfo[playerid][pOldName], giveplayer, 0, strlen(giveplayer), 255);
    Gutschein[g][gUsed] = 1;
    SetPlayerName(playerid, inputtext);
    format(string, sizeof(string), "Du hast deinen Namen von %s auf %s geändert.", giveplayer, SpielerName(playerid));
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    SendClientMessage(playerid, COLOR_WHITE, "Wichtig: Ändere nach dem Logout deinen Namen im Multiplayer Clienten zu deinem neuen Namen.");
    format(string, sizeof(string), "UPDATE `users` SET `Name`='%s' WHERE `Name`='%s'", SpielerName(playerid), giveplayer);
    self_mysql_query(string);
    format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s' WHERE gCode = '%d'", SpielerName(playerid), Gutschein[g][gCode]);
    self_mysql_query(string);
    return 1;
    }


    Vielleicht eine Idee?


    Gruß :)

    format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s'", SpielerName(playerid));
    zu:
    format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s' WHERE gCode = '%d'", SpielerName(playerid),Gutschein[g][gCode]);

    Super, danke dir für deine Zeit und deine Hilfe - klappt wunderbar! :)
    Jetzt nur noch eine Abfrage, wenn der Code bereits genutzt wurde, das es nicht geht - ich hab echt keinen Durchblick heute :D
    Sollte doch eig so funktionieren ?(
    if(gutscheinid == Gutschein[g][gCode] && Gutschein[g][gUsed] == 1) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Dieser Code wurde bereits aktiviert.");

    Jetzt funktionierts, aber wenn ich einen Gutschein Aktiviere, werden in der Datenbank alle auf Used = 1 gesellt ?(


    ocmd:usegutschein(playerid, params[])
    {
    new gutscheinid, string[256];
    if(sscanf(params, "d", gutscheinid)) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Benutze: /usegutschein [GutscheinCode]");
    for(new g = 0; g <MAX_GUTSCHEINE; g++)
    {
    if(gutscheinid != Gutschein[g][gCode]) continue;
    format(string, sizeof(string), "Gutschein Aktiviert - von %s", SpielerName(playerid));
    SendClientMessage(playerid, COLOR_WHITE, string);
    format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s'", SpielerName(playerid));
    self_mysql_query(string);
    return 1;
    }
    return SendClientMessage(playerid, COLOR_ERRORTEXT, "Dieser Code existiert nicht!");
    }

    Poste bitte mal diesen Befehl, wahrscheinlich klappt deine Zuweisung nicht. ;)


    if(dialogid == DIALOG_GUTSCHEIN) // Gutscheinsystem
    {
    if(response)
    {
    if(listitem == 0) // Namenschange
    {
    new rand = random(999999);
    format(string, sizeof(string), "Du hast ein Gutschen für eine Namensänderung gekauft - der Gutscheincode ist: %d", rand);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    SendClientMessage(playerid, COLOR_WHITE, "Wichtig: Schreibe dir diesen Code auf, falls du ihn an einen Spieler weiter geben möchtest.");
    format(string, sizeof(string), "INSERT INTO `gutscheine` (`gOwner`, `gCode`, `gUsed`, `gAktion`) VALUES ('%s', '%d', '0', '1')", SpielerName(playerid), rand);
    self_mysql_query(string);
    }
    }
    }

    Wenn alle gCode's 0 sind (sind wirklich alle 500 auf 0?), dann hast du dem "Gutschein[g][gCode]" keinen Wert zugewiesen.
    Wo gibst du dieser Variable denn einen Wert, also wo gibst du "Gutschein[g][gCode]" den Wert "375567"?


    Ja sind alle 500 auf 0. Ich erstelle einen Gutschein mit /buygutschein, dort wird dann ein Code per random(999999) in die Datenbank gespeichert und der /usegutschein Befehl soll ja eigentlich alle Gutscheine (Gutschein[g][gCode]) durchgehen und den eingegebenen Code überprüfen ob er existiert.



    Liegt aufjedenfall an MAX_GUTSCHEINE, läuft 500x


    am ende sieht eigentlich alles so aus:


    Code
    g: 499 | gutscheinid: 375567 == 0 gCode


    Gibt leider weiterhin die Nachricht das der Code nicht existiert :/

    Guten Abend, ich glaub ich habe irgendwo einen Denkfehler.. Wenn ich mir einen Gutschein kaufe, wird ein Code generiert und auch in die Datenbank gespeichert, alles problemlos, aber wenn ich den Gutschein Code dann nutzen möchte, bekomme ich die Nachricht, das der Code nicht existiert - kann mir da vielleicht jemand helfen?


    #define DIALOG_GUTSCHEIN 499


    #define MAX_GUTSCHEINE 500
    enum GutscheinSystem
    {
    gID,
    gOwner[24],
    gCode,
    gUsed,
    gUsedBy[24],
    gAktion
    }
    new Gutschein[MAX_GUTSCHEINE][GutscheinSystem];


    ocmd:usegutschein(playerid, params[])
    {
    new gutscheinid, string[256];
    if(sscanf(params, "d", gutscheinid)) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Benutze: /usegutschein [GutscheinCode]");
    for(new g = 0; g <MAX_GUTSCHEINE; g++)
    {
    if(gutscheinid != Gutschein[g][gCode]) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Dieser Code existiert nicht!");
    format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s'", SpielerName(playerid));
    self_mysql_query(string);
    }
    return 1;
    }


    Vielen Dank im voraus und Liebe Grüße! :)

    Hallöchen, jetzt ist es bei mir an der Zeit auch mal mit Textdraw Boxen zu arbeiten - dazu hab ich natürlich gleich eine Frage. Beim rumprobieren und nach sehen hab ich "meinen" Fehler nicht gefunden. Was genau legt die Textdraw Box Position (x, y) fest und was legt die Höhe und Breite der Box fest? Würde mich freuen wenn mich jemand aufklärt.

    Öffne mal Notepad++ (wenn nicht vorhanden downloaden), füg dein komplettes Script dann da ein und drück STRG+F, dann suchst du nach "(", ")", "{", "}", bzw. gibt es ein Button der "Zählen" heißt und vergleichst ob es von ( und ) gleich viel gibt und ob es von { und } gleich viel gibt. Sollte es von einem weniger geben, nimmst du dir immer 5-10k Zeilen und wiederholst dieses Verfahren, solang bis du ein Teil findet, wo es weniger werden, und wenn du einen Teil gefunden hast, machst das das selbe mit ihm bis du letztendlich die Zeile mit der Fehlenden Klammer gefunden hast.


    Ist vielleicht etwas Zeitaufwendig, aber hat mir auch schon oft den Allerwertesten gerettet^^

    Meinte damit eher, es so zu fixen, das es garnicht erst zu der Verschiebung kommt - wenn ich die .cfg lösche wird sie ja wieder falsch erstellt.


    #define MaxBiz 18
    new Text3D:Biz[MaxBiz];
    new BizPickup[MaxBiz];
    enum bInfo
    {
    bOwned,
    bOwner[MAX_PLAYER_NAME],
    bMessage[128],
    bExtortion[MAX_PLAYER_NAME],
    Float:bEntranceX,
    Float:bEntranceY,
    Float:bEntranceZ,
    Float:bExitX,
    Float:bExitY,
    Float:bExitZ,
    bLevelNeeded,
    bBuyPrice,
    bEntranceCost,
    bTill,
    bLocked,
    bInterior,
    bProducts,
    bMaxProducts,
    bPriceProd,
    bWorld,
    bExtortionTill,
    };
    new BizInfo[MaxBiz][bInfo] =
    {
    {1,"Staat","Gun Shop SF","Niemand",-2626.4827,209.3238,4.6004,285.6058,-86.0131,1001.5229,5,5000000,0,0,1,4,100000,100000,100,1,0},
    {1,"Staat","Gun Shop LS","Niemand",1791.5143,-1164.1787,23.8281,2169.461181,1618.798339,999.976562,5,5000000,0,0,1,1,100000,100000,100,2,0},
    {0,"Staat","Restaurant","Niemand",1420.1936,-1623.8427,13.5469,-794.936218,490.632385,1376.195312,5,5000000,0,0,1,1,100,500,100,3,0},
    {1,"Staat","LS Polizei Waffenkammer","Niemand",1568.625122,-1690.535766,5.890600,246.376007,109.246002,1003.218811,5,5000000,0,0,0,10,100000,1000000,100,1,0},
    {1,"Staat","Bank LS","Niemand",1462.395751,-1012.391174,26.843799,389.3555,173.8684,1008.3828,5,5000000,0,0,0,3,99999,100000,1,1,0},
    {1,"Staat","SF Polizei Waffenkammer","Niemand",-1593.8340,716.2302,-5.2422,226.7151,110.9211,1010.2188,5,5000000,0,0,1,10,100000,1000000,100,2,0},
    {1,"Staat","LV Polizei Waffenkammer","Niemand",611.0042,-583.9974,17.9763,227.3422,122.0904,1010.2188,5,5000000,0,0,0,10,100000,1000000,100,3,0},
    {1,"Staat","Bank SF","Niemand",-1749.3010,867.1620,25.0859,389.3555,173.8684,1008.3828,5,5000000,0,0,0,3,99999,100000,1,2,0},
    {1,"Staat","Rentbike","Niemand",1312.5642,-873.9422,39.5781,1312.5642,-873.9422,39.5781,5,5000000,0,0,0,0,99999,100000,1,0,0},
    {1,"Staat","Ammu Nation","Niemand",1367.9816,-1279.9513,13.5469,286.148986,-40.644397,1001.515625,5,5000000,0,0,1,1,100000,100000,100,4,0},
    {1,"Staat","Gun Shop LV","Niemand",2158.5098,943.0615,10.8203,296.919982,-108.071998,1001.515625,5,5000000,0,0,1,6,100000,100000,100,5,0},
    {0,"Staat","Alhambra","Niemand",1834.9247,-1682.5403,13.4112,493.2791,-24.2553,1000.6797,5,5000000,0,0,1,17,500,500,100,2,0},
    {0,"Staat","Jizzy","Niemand",-2624.2668,1411.7013,7.0938,-2636.5610,1403.2194,906.4609,5,5000000,0,0,1,3,500,500,100,2,0},
    {0,"Staat","Donator Autohaus","Niemand",2200.5083,1394.3988,11.0625,2200.5083,1394.3988,11.0625,5,5000000,0,0,1,0,500,500,100,0,0},
    {0,"Staat","Telefon GmbH","Niemand",1382.1464,-1088.7307,28.2098,-2240.3855,137.1735,1035.4141,5,10000000,0,0,1,6,500,500,100,2,0},
    {1,"Staat","Ammu Nation Angle Pine","Niemand",-2093.2163,-2464.3862,30.6250,316.524993,-167.706985,999.593750,5,5000000,0,0,1,6,100000,100000,100,8,0},
    {1,"Staat","Bank LV","Niemand",938.7953,1733.1140,8.8516,389.3555,173.8684,1008.3828,5,5000000,0,0,0,3,99999,100000,1,3,0},
    {0,"Staat","Restauant 2","Niemand",279.2695,-1434.8055,13.9603,-794.936218,490.632385,1376.195312,5,210000,0,0,1,1,100,500,100,3,0}
    };


    while (idx < sizeof(BizInfo))//Normale Speicherung
    {
    new coordsstring[256];
    format(coordsstring, sizeof(coordsstring), "%d|%s|%s|%s|%d|%d|%d|%d|%d|%d|%d|%d|%d\n",
    BizInfo[idx][bOwned],
    BizInfo[idx][bOwner],
    BizInfo[idx][bMessage],
    BizInfo[idx][bExtortion],
    BizInfo[idx][bLevelNeeded],
    BizInfo[idx][bBuyPrice],
    BizInfo[idx][bEntranceCost],
    BizInfo[idx][bTill],
    BizInfo[idx][bLocked],
    BizInfo[idx][bProducts],
    BizInfo[idx][bMaxProducts],
    BizInfo[idx][bPriceProd],
    BizInfo[idx][bExtortionTill]);
    if(idx == 0)
    {
    file2 = fopen("Configs/Biz.cfg", io_write);
    }
    else
    {
    file2 = fopen("Configs/Biz.cfg", io_append);
    }
    fwrite(file2, coordsstring);
    idx++;
    fclose(file2);
    }

    Wie löst man es, das die BIZ's wieder richtig angezeigt werden? Problem ist, das sich die BIZ's verschieben, z.b LSPD Waffenkammer ist an der Bank LS. Ist ein IR/RGR Script - problem sollte bekannt sein. Sollte jemand auch schon damit zutun gehabt haben, würde ich mich über hilfe freuen - vielen Dank im voraus!

    Guten Abend,


    möchte einen PC verbessern, der dieses Mainboard enthält. Da ich aber nicht wirklich Ahnung habe, setze ich auf eure Hilfe. Würde gerne diesen Prozessor darauf verbauen, passt der? Außerdem, möchte ich darauf noch eine passende, günstige aber gute Grafikkarte, hierzu bräuchte ich Ratschläge, welche sich passend eignen würde.


    Edit: Netzteil ist von beQuite, 350W - falls ein neues her müsste, kann auch gerne ein Link gepostet werden. MAX Budget für CPU, Graka & ggf. Netzteil: ~250-300€


    Freu mich über eure Hilfe
    Grüße