Beiträge von Acrio

    Hi, bei meinem Reportsystem wird ein einzelner Dialog nicht angezeigt.
    So sieht die Funktion aus die ihn anzeigen soll.


    if(listitem == 2)
    {
    new query[250], str[1024];
    for(new i = 0; i < 50; i++)
    {
    format(query, sizeof(query), "SELECT * FROM reports WHERE Typ = 2 AND finished = 0 AND ID = %i", i);
    mysql_query(query);
    mysql_store_result();
    if(mysql_fetch_row(query))
    {
    sscanf(query, "p<|>{i}s[31]s[128]ii", rpInfo[i][rpMelder],
    rpInfo[i][rpText],
    rpInfo[i][rpTyp],
    rpInfo[i][rpFinished]);
    }
    mysql_free_result();
    format(str, sizeof(str), "%s\n%s", str, rpInfo[i][rpMelder]);
    }
    ShowPlayerDialog(playerid, DIALOG_ADMIN_RP_HILFE, DIALOG_STYLE_LIST, "**REPORTS**", str, "Auswählen", "Abbrechen");
    }


    Ich verstehe nicht warum mir nichts angezeigt wird. Ich meine, selbst wenn es am query liegen würde, würde mir doch der lehre Dialog angezeigt werden oder nicht?


    Habt ihr eine Idee?


    MFG

    Guten Abend,
    Leider konnte keiner der gemeldeten Mapper uns überzeugen.
    Wir suchen deshalb immer noch einen Server-Mapper, der sauber und einzigartig mappen kann.


    Schönen Abend noch.
    Mit freundlichen Grüßen
    Acrio

    ElDiabolo: So... Habe den Fehler gefunden. Es war nicht das Erstell quer, sondern das Speicher query welches direkt danach ausgeführt wurde. Das passwort wurde nicht an die Speicher variable übergebn und somit nicht ans query. Klappt aber nun. Trotzdem danke für eure Hilfe.

    ElDiablo: Der Log sagt:


    Zitat

    [16:01:41] INSERT INTO accounts (Name, Passwort, Admin, Health, Money, Fraktion, Frakrang) VALUES ('Acrio', 'test123', 0, 0, 0, 0, 0)


    Also stimmt alles. Ich habe das Gefühl es liegt an der Tabelle. Aber ich habe bei Passwort genau das Selbe eingetragen wie bei Name.

    LeijaT: Damit funktioniert es. Also das Query direct in Navicat auszuführen. Muss also an der pass variable liegen. Bzw ehr gesagt an dem Format, dass das die Variable nicht an %s übergibt.
    Habe ich da irgendeinen Fehler gemacht?

    Der sagt mir gar nichts ^^


    [Mon May 26 21:34:19 2014] -------------------------
    [Mon May 26 21:34:19 2014] Logging Started
    [Mon May 26 21:34:19 2014] -------------------------
    [Mon May 26 21:34:19 2014] Connected (0) to root @ 127.0.0.1 via TCP/IP.
    [Mon May 26 21:34:19 2014] MySQL Server Version 5.6.14.

    Es muss an meinem Query liegen, finde den Fehler aber nicht.


    stock CreateAccount(playerid, pass[])
    {
    new query[350];
    format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`, `Admin`, `Health`, `Money`, `Fraktion`, `Frakrang`) VALUES ('%s', '%s', 0, 0, 0, 0, 0)", pInfo[playerid][pName], pass);
    mysql_query(query);
    mysql_free_result();
    printf("Spieler %s erfolgreich erstellt!", pInfo[playerid][pName]);
    printf("Pw: %s", pass);
    SendClientMessage(playerid, COLOR_SYSTEM, "Erfolgreich registriert!");
    SpawnPlayer(playerid);
    return 1;
    }


    Das Passwort wird richtig in die Konsole übergeben weshalb es an dem Query liegen muss. Es steht einfach gar nichts in der Navicat Tabelle.


    Weis jemand von euch die Lösung bzw wo mein Problem genau liegt? Der Name wird übrigens auch eingetragen.

    Hi, mein Tacho ändert ein einziges Mal die Geschwindigkeit. Bzw zeigt etwas neues dort an. Aber wenn ich fahre dann ändert sich dort überhaupt nichts. Ich habe mich an das Tutorial von Robdeflop gehalten.


    public TachoTimer(playerid)
    {
    new Float:Pos1[MAX_PLAYERS][3], Float:Pos2[MAX_PLAYERS][3], Float:Geschwindigkeit[MAX_PLAYERS], str[25];
    GetPlayerVelocity(playerid, Pos1[playerid][0], Pos2[playerid][1], Pos2[playerid][2]);


    TextDrawShowForPlayer(playerid, Tacho[playerid][3]);
    Geschwindigkeit[playerid] = floatround(floatsqroot(Pos1[playerid][0]*Pos2[playerid][0] + Pos1[playerid][1]+Pos2[playerid][1] + Pos1[playerid][2]*Pos2[playerid][2]) * 100 * 2);
    format(str, sizeof(str), "%.0f Km/H", Geschwindigkeit[playerid]);
    TextDrawSetString(Tacho[playerid][3], str);
    TextDrawShowForPlayer(playerid, Tacho[playerid][3]);

    GetPlayerVelocity(playerid, Pos2[playerid][0], Pos2[playerid][1], Pos2[playerid][2]);
    return 1;
    }


    Sieht jemand schon den Fehler? So rufe ich das Tacho auf.


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER && !IsPlayerNPC(playerid))
    {
    SetTimerEx("TachoTimer", 500, true, "i", playerid);
    new vehicleID = GetPlayerVehicleID(playerid);
    new vehicleModel = GetVehicleModel(vehicleID)-400;
    TextDrawSetString(Tacho[playerid][1], VehicleName[vehicleModel]);
    for(new i = 0; i < 4; i++)
    {
    TextDrawShowForPlayer(playerid, Tacho[playerid][i]);
    }
    }
    else
    {
    for(new i = 0; i < 4; i++)
    {
    TextDrawHideForPlayer(playerid, Tacho[playerid][i]);
    }
    }
    return 1;
    }


    Ich hoffe ich habe mein Problem verständlich erklärt und freue mich wenn ihr mir helfen könnt.
    MFG Acrio

    Das ich nur 25km/h fahren darf, ist mir eigentlich egal, teils sogar sicherer.


    Falsch nicht sicherer. Du kannst zwar nicht zu schnell fahren aber genau da liegt das Problem. Aus Erfahrung kann ich dir sagen das die Autos dich teilweise mit weniger als 30 cm Abstand überholen werden und Hupen usw. So das du dir absolut keinen Fehler leisten kannst, sonst wirst du einfach umgefahren. Und Auto gegen Roller verlierst du eindeutig.

    Habe es mal mit der Cache funktion von mysql tquery versucht. Klappt immer noch nicht.


    Edit: So habe ich es nun. Klappt nicht :(


    public LoadVehicle(vehID)
    {
    vInfo[vehID][vID] = cache_get_field_content_int(0, "ID");
    vInfo[vehID][vPosX] = cache_get_field_content_float(0, "PosX");
    vInfo[vehID][vPosY] = cache_get_field_content_float(0, "PosY");
    vInfo[vehID][vPosZ] = cache_get_field_content_float(0, "PosZ");
    vInfo[vehID][vPosR] = cache_get_field_content_float(0, "PosR");
    vInfo[vehID][vColor1] = cache_get_field_content_int(0, "Color1");
    vInfo[vehID][vColor2] = cache_get_field_content_int(0, "Color2");
    vInfo[vehID][vModel] = cache_get_field_content_int(0, "Model");
    cache_get_field_content(0, "Besitzer", vInfo[vehID][vBesitzer]);


    AddStaticVehicle(vInfo[vehID][vModel], vInfo[vehID][vPosX], vInfo[vehID][vPosY], vInfo[vehID][vPosZ], vInfo[vehID][vPosR], vInfo[vehID][vColor1], vInfo[vehID][vColor2]);
    return 1;
    }


    stock LoadVeh(vehID)
    {
    new query[500];
    format(query, sizeof(query), "SELECT * FROM `vehicle` WHERE `ID` = %i", vInfo[vehID][vID]);
    mysql_tquery(MyCon, query, "LoadVehicle", "i", vehID);
    return 1;
    }

    Das hat leider auch nichts gebracht. Die Autos werden nicht erstellt. Ich könnte dir sagen was der Log sagt. Aber da sind zu viele Warnings noch wegen meinem anderen Problem. Finde den Log dazwischen nicht. nur das da was mit (null) irgendwo hinter stand.

    Hi, habe neben meinem Anderen Problem noch eines mit den Autos. Sie werden nicht richtig geladen oder erstellt. Der MySQL Log sagt gar nichts dazu.
    for(new i = 0; i < MAX_VEHICLES; i++)
    {
    LoadVeh(i);
    vInfo[i][vID] = i;
    }


    Und:


    stock LoadVeh(vehID)
    {
    new query[500];
    format(query, sizeof(query), "SELECT `ID` FROM `vehicle` WHERE `ID` = %i", vInfo[vehID][vID]);
    mysql_tquery(MyCon, query, "", "");

    mysql_store_result();
    new resultline[350];

    if(mysql_fetch_row_format(resultline))
    {
    sscanf(resultline, "p<|>{d}ffffiiis[32]", vInfo[vehID][vPosX], vInfo[vehID][vPosY], vInfo[vehID][vPosZ], vInfo[vehID][vPosR], vInfo[vehID][vColor1], vInfo[vehID][vColor2], vInfo[vehID][vModel], vInfo[vehID][vBesitzer]);
    }
    AddStaticVehicle(vInfo[vehID][vModel], vInfo[vehID][vPosX], vInfo[vehID][vPosY], vInfo[vehID][vPosZ], vInfo[vehID][vPosR], vInfo[vehID][vColor1], vInfo[vehID][vColor2]);
    mysql_free_result();
    return 1;
    }


    Erstellt werden sie. Nur irgendwie nicht geladen oder erstellt. Wenn ich die Konsole starte sagt mir der Server das 0 Fahrzeuge geladen werden. Ich habe nur keine Ahnung warum. Wisst ihr einen Tipp?


    MFG Acrio