Beiträge von tdXkiller

    Hallo,
    ich habe ein kleines Problem wo ich nicht weiß wie ich es lösen kann.
    Als in der Ziele "return cache_get_row(0, 0, MySQLHandle);" wird MySQLHandle als
    "error 035: argument type mismatch" angezeigt


    //*****************< mysql_GetPlayerPassword >*****************//


    stock mysql_GetPlayerPassword(playerid)
    {
    new query[75];
    format(query, sizeof(query), "SELECT `Password` FROM `db_accounts` WHERE `pName` = '%s'", PlayerName(playerid));
    return mysql_function_query(MySQLHandle, query, true, "OnGetPlayerPassword", "d", playerid);
    }


    forward OnGetPlayerPassword(playerid);
    public OnGetPlayerPassword(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    new rows, fields;
    cache_get_data(rows, fields, MySQLHandle);
    if(rows) {
    return cache_get_row(0, 0, MySQLHandle);
    }
    }
    return 0;
    }


    mfg tdXkiller

    Ich werde es mal versuchen btw die "id" ist das AUTO_INCREMENT aus der Tabelle und ich habe es zur genauen Identifizierung benutzt ^^


    Ps: Ich habe schon was zu der Login Funktion hinzugefügt stock mysql_LoadAccount(playerid, hash[])
    {
    new query[1000];
    mysql_real_escape_string(PlayerName(playerid), PlayerName(playerid));
    mysql_real_escape_string(hash, hash);
    if(strcmp(mysql_GetPlayerPassword(playerid), hash, false))
    {
    SendClientMessage(playerid, COLOR_ERROR, "* Das eingegebene Passwort ist falsch!");
    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{28DC28}Login", "{FFFFFF}Der Account ist registriert.\nUm dich anzumelden,\ngib bitte dein Passwort ein", "Einloggen", "Abbrechen");
    }
    else
    {
    mysql_format(query, sizeof(query), "SELECT `Password`, `Level`, `RegisterDate`, `Experience`, `Health`, `Armour`, `Money`, `Kills`, `Deaths`, `KontoCard`, `VehicleSlot`, `MaxVehicles`, `Warnings`, `Banns`, `Hunger`, `Thirst`, `Desire`, `PremiumTime`, `PremiumPoints`, `AdminRank`, `SkinID`, `SkinID`, `Job`, `PaydayTime`, `Faction`, `FactionSkinID`, `Wanteds`, `Minutes`, `Hours`, `BikeLicense`, `BoatLicense`, `CarLicense`, `ChopperLicense`, `FishingLicense`, `PlaneLicense`, `TruckLicense`, `TollLicense`, `WeaponLicense` FROM `db_accounts` WHERE `pName` = '%s' AND `Password` = '%s'", PlayerName(playerid), hash);
    mysql_function_query(MySQLHandle, query, true, "OnPlayerLoad", "i", playerid);
    }
    return 1;
    }


    Er soll eben prüfen ob das Passwort übereinstimmt und wenn ja dann soll er den query erst ausführen hoffe ich habe das richtig gemacht muss halt später noch die GetPlayerPassword funktion umändern aber sonst ^^ joah


    forward OnPlayerLoad(playerid);
    public OnPlayerLoad(playerid)
    {
    new rows, fields;
    cache_get_data(rows, fields);
    if(rows)
    {
    new temp[12];
    cache_get_row(0, 0, temp);
    pInfo[playerid][Level] = strval(temp);
    cache_get_row(0, 1, temp);
    pInfo[playerid][Experience] = strval(temp);
    cache_get_row(0, 2, temp);
    pInfo[playerid][Health] = strval(temp);
    cache_get_row(0, 3, temp);
    pInfo[playerid][Armour] = strval(temp);
    cache_get_row(0, 4, temp);
    pInfo[playerid][Money] = strval(temp);
    cache_get_row(0, 5, temp);
    pInfo[playerid][Kills] = strval(temp);
    cache_get_row(0, 6, temp);
    pInfo[playerid][Deaths] = strval(temp);
    cache_get_row(0, 7, temp);
    pInfo[playerid][Kontocard] = strval(temp);
    cache_get_row(0, 8, temp);
    pInfo[playerid][Vehicleslot] = strval(temp);
    cache_get_row(0, 9, temp);
    pInfo[playerid][Maxvehicles] = strval(temp);
    cache_get_row(0, 10, temp);
    pInfo[playerid][Warnings] = strval(temp);
    cache_get_row(0, 11, temp);
    pInfo[playerid][Banns] = strval(temp);
    cache_get_row(0, 12, temp);
    pInfo[playerid][Hunger] = strval(temp);
    cache_get_row(0, 13, temp);
    pInfo[playerid][Thirst] = strval(temp);
    cache_get_row(0, 14, temp);
    pInfo[playerid][Desire] = strval(temp);
    cache_get_row(0, 15, temp);
    pInfo[playerid][Premiumtime] = strval(temp);
    cache_get_row(0, 16, temp);
    pInfo[playerid][Premiumpoints] = strval(temp);
    cache_get_row(0, 17, temp);
    pInfo[playerid][Adminrank] = strval(temp);
    cache_get_row(0, 18, temp);
    pInfo[playerid][SkinID] = strval(temp);
    cache_get_row(0, 19, temp);
    pInfo[playerid][Job] = strval(temp);
    cache_get_row(0, 20, temp);
    pInfo[playerid][Paydaytime] = strval(temp);
    cache_get_row(0, 21, temp);
    pInfo[playerid][Faction] = strval(temp);
    cache_get_row(0, 22, temp);
    pInfo[playerid][FactionskinID] = strval(temp);
    cache_get_row(0, 23, temp);
    pInfo[playerid][Wanteds] = strval(temp);
    cache_get_row(0, 24, temp);
    pInfo[playerid][Minutes] = strval(temp);
    cache_get_row(0, 25, temp);
    pInfo[playerid][Hours] = strval(temp);
    cache_get_row(0, 26, temp);
    pInfo[playerid][Bikelicense] = strval(temp);
    cache_get_row(0, 27, temp);
    pInfo[playerid][Boatlicense] = strval(temp);
    cache_get_row(0, 28, temp);
    pInfo[playerid][Carlicense] = strval(temp);
    cache_get_row(0, 29, temp);
    pInfo[playerid][Chopperlicense] = strval(temp);
    cache_get_row(0, 30, temp);
    pInfo[playerid][Fishinglicense] = strval(temp);
    cache_get_row(0, 31, temp);
    pInfo[playerid][Planelicense] = strval(temp);
    cache_get_row(0, 32, temp);
    pInfo[playerid][Trucklicense] = strval(temp);
    cache_get_row(0, 33, temp);
    pInfo[playerid][Tolllicense] = strval(temp);
    cache_get_row(0, 34, temp);
    pInfo[playerid][Weaponlicense] = strval(temp);
    }
    SetPlayerEuro(playerid, mysql_GetInt("db_accounts", "Money", "pName", PlayerName(playerid)));
    SetPlayerSkin(playerid, pInfo[playerid][SkinID]);
    SetPlayerScore(playerid, pInfo[playerid][Level]);
    SetTimerEx("UpdateProgressBar", 0, false, "d", playerid);
    vLoad(playerid, pInfo[playerid][VehicleSlot]);
    SetPVarInt(playerid, "Login", 1);
    SpawnPlayer(playerid);
    return 1;
    }


    Ich hoffe mal das das richtig ist 8|

    Ok danke erstmal werde mir alles man anschauen nur noch eine frage da ich wenn schon alles auf Threads umschreibe also
    mysql_format("SELECT `Level`, `Experience`, `Health`, `Armour`, `Money`, `Kills`, `Deaths`, `KontoCard`, `VehicleSlot`, `MaxVehicles`, `Warnings`, `Banns`, `Hunger`, `Thirst`, `Desire`, `PremiumTime`, `PremiumPoints`, `AdminRank`, `SkinID`, `SkinID`, `Job`, `PaydayTime`, `Faction`, `FactionSkinID`, `Wanteds`, `Minutes`, `Hours`, `BikeLicense`, `BoatLicense`, `CarLicense`, `ChopperLicense`, `FishingLicense`, `PlaneLicense`, `TruckLicense`, `TollLicense`, `WeaponLicense` FROM `db_accounts`");
    mysql_function_query(MySQLHandle, query, true, "OnPlayerLoad", "", "");


    kann ich mit der mysql_function_query auch Sachen übergeben ?


    also ich muss bei public OnPlayerLoad(playerid, key[]) den key auf das Public übergeben lassen der key stellt den Passwort hash da



    mfg tdXkiller


    Ps: sehe gerade das hast du schon geschrieben xDDD ok dann weiß ich's

    Meine frage ist jetzt nur noch ob es gar nicht möglich ist mit der mysql_retrieve_row() Funktion so etwas ab zu fragen ? weil ich das jetzt mit den Threads nicht ganz verstehe also was sie machen schon aber ich finde es wiederum einen weg komplizierter als vorher also sollte ich die for schleife verwenden ? und ja ich benutze das Mysql Plugin von BlueG ^^


    Ps: um ehrlich zu sein verstehe ich Garnichts ^^ also vonwegen das man 100.00 publics machen muss weil der cache da verwertet wird usw finde ich recht zeitaufreibend -.- also wenn du ein gutes englisches Tutorial kennst vllt dann kannst du es ja posten denn die Tutorials hier aus dem Forum helfen mir alle nicht wirklich weiter D:


    Pss: noch ein Problem an der ganzen Sache währe das wenn ich alles in einen Query schreibe das da immer stehen würde input line too long weil ich z.b. beim Account laden über 25 Werte ausgeben lasse


    mfg tdXkiller

    Hallo,
    mein problem besteht darin das


    while(mysql_retrieve_row())
    {
    mysql_fetch_field_row(kID, "id");
    print(kID);
    format(kIDStr, sizeof(kIDStr), "%d", kID);
    format(type, sizeof(type), mysql_GetString("db_bank", "Type", "id", kIDStr));
    format(number, sizeof(number), "%d", mysql_GetInt("db_bank", "Number", "id", kIDStr));
    format(nick, sizeof(nick), mysql_GetString("db_bank", "Nickname", "id", kIDStr));
    if(strcmp(nick, "none", false))
    {
    format(str, sizeof(str), "{007DFF}%s, {FFFFFF}%s\n", number, nick);
    strcat(allStr, str);
    print("STRCAT");
    }
    else
    {
    format(str, sizeof(str), "{007DFF}%s, {FFFFFF}%s\n", number, type);
    strcat(allStr, str);
    }
    }


    die Funktion halt die schleife durchgiebt aber nicht 1,2,3,4,5,6 sondern nur irgendwie 6 ausgiebt d.h. ja das er die schleife sogesehen garnicht durch geht 8| und im Game steht auch nur -1 .


    mfg tdXkiller

    Hallo,
    ich würde gerne wissen wie ich mein Bank Accoutn System schneller machen könnte esl gibt es andere möglich keiten als eine schleife zu benutzen um an die Ids zu gelangen da es 1 - 2 Sekunden dauert das Folgende aus zu führen und wenn es gespammt werden würde würde Warscheinlich der Server crashen
    new nameStr[18], type[18];
    new nick[18], kIDStr[4], number[11];
    new str[50], allStr[sizeof(str)*MAX_KONTOS/10], idStr[5];
    SendClientMessage(playerid, COLOR_INFOMSG, "* Die Kontoliste wird erstellt.");
    for(new kID; kID <= MAX_KONTOS; kID++)
    {
    format(idStr, sizeof(idStr), "%d", kID);
    format(nameStr, sizeof(nameStr), mysql_GetString("db_bank", "Owner1", "id", idStr));
    if(strcmp(nameStr, PlayerName(playerid), true))
    {
    format(kIDStr, sizeof(kIDStr), "%d", kID);
    format(type, sizeof(type), mysql_GetString("db_bank", "Type", "id", kIDStr));
    format(number, sizeof(number), "%d", mysql_GetInt("db_bank", "Number", "id", kIDStr));
    format(nick, sizeof(nick), mysql_GetString("db_bank", "Nickname", "id", kIDStr));
    if(strcmp(nick, "none", false))
    {
    format(str, sizeof(str), "{007DFF}%s, {FFFFFF}%s\n", number, nick);
    strcat(allStr, str);
    }
    else
    {
    format(str, sizeof(str), "{007DFF}%s, {FFFFFF}%s\n", number, type);
    strcat(allStr, str);
    }
    }
    }


    mfg tdXkiller

    Hallo,
    ich habe mal wieder ein Problem also ich will einen vorhandenne String in einen string rein Formatieren was auch eigentlich geht aber heute irgendwie mal nicht 8|


    new art[18];
    switch(listitem) {
    case 0:
    {
    format(art, sizeof(art), "Sparkonto");
    }
    case 1:
    {
    format(art, sizeof(art), "Girokonto");
    }
    case 2:
    {
    format(art, sizeof(art), "Mehrwertkonto");
    }
    case 3:
    {
    format(art, sizeof(art), "Fraktionskonto");
    }
    }
    format(string, sizeof(string), "{FFFFFF}Moechtest du wirklich ein {007DFF}%s, {FFFFFF}fuer {007DFF}%s Euro pro Payday {FFFFFF}erstellen?", art, GetEuroLabel(cost));


    wenn ich jetzt bei dem untersten format(string.... den String "art" reinformatieren möchte kommt ein


    error 035: argument type mismatch (argument 1)


    mfg tdXkiller

    Jo danke zeigt keine Fehler mehr an ich finde dann später raus ob es klappt ich denke mal schon ^^ da es ja in anderen Threads auch so steht


    Danke.


    mfg tdXkiller


    so habe nen neues Problem



    new nick[18];
    format(nick, 18, mysql_GetString("db_bank", "Nickname", "id", kIDStr));
    if(nick != "none")
    {
    if(pInfo[playerid][KontoCard] == kNumber)
    {
    format(string, sizeof(string), "*{007DFF}%s, {FFFFFF}%s\n", kNumber, nick);
    }
    else
    {
    format(string, sizeof(string), "{007DFF}%s, {FFFFFF}%s\n", kNumber, nick);
    }
    strcat(AllStr, string);
    }
    else


    und da kommt der Error " error 033: array must be indexed (variable "nick") " heißt das ich soll nick doppelt formatieren ? o.o

    Am Anfang war ich so voll der Noob aber nach öfterem nachfragen hier im Forum habe ich immer dazu gelernt und habe jetzt bisher alles viel besser hinbekommen als früher und alles was ich mache klappt so wie ich es mir vorstelle.
    Script: Selfmade
    Arbeitsstunden ungefähr 300-350 Stunden und ich bin bei ungefähr 6-7%


    mfg tdXkiller

    8| wie meinst du das also das sich das jedesmal halt zurück setzt wenn jemand sich das Auto angeguckt hat bzw sich reingesetzt hat das er es dann wieder auf die Standart Position setzt oder wie ? verstehe nicht ganz was das bringen soll