Mehrere Probleme auf einmal

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, da ich kein bock habe 100 Threads nochmal zu öffnen schildere ich jetzt alle Probleme immer hier.
    Bin gerade dabei richtig scripten zu lernen und mache ein Selfmade. Klappt schonmal ganz gut bis auf paar kleinigkeiten.
    Nr 1.
    MySQL speichert mein Alter nicht, man kann es durch ein Dialog eingeben.
    So sieht der Code aus:
    //___________________Alter______________________________________________________
    if(dialogid == Alter)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,Color_Red,"Du hast die Regestrierung abgebrochen.");
    SetPVarInt(playerid, "Regestriert", 0);
    Kick(playerid);
    }
    if(response == 1)
    {
    new age = strval(inputtext);
    SendClientMessage(playerid,COLOR_GREY,"Du bist also %d Jahre alt",age);
    ShowPlayerDialog(playerid, Bundesland, DIALOG_STYLE_LIST, "Aus welchem Bundesland kommen sie ?", "Baden-Württemberg\nBayern\nBerlin\nBrandenburg\nBremen\nHamburg\nHessen\nMecklenburg-Vorpommern\nNiedersachsen\nNordrhein-Westfalen\nRheinland-Pfalz\nSaarland\nSachsen\nSachsen-Anhalt\nSchleswig-Holstein\nThüringen", "Weiter", "Abbruch");
    SetPVarInt(playerid, "Alter", age);
    }
    }
    In der Datenbank hat es den Wert "int"


    gut, Problem 2.
    Ich habe 18 mal die gleiche Warnung bei dem gleichen Code.. hier mal einen auskopiert
    TutTimer[playerid] = SetTimerEx("Tut",1000,1,"i",playerid);// Warnung -> warning 213: tag mismatch


    Problem nummer 3.
    Ich möchte bestimmte Cars fpr bestimmte Teams zuweisen, habe es auch geschafft aber habe einen Error:
    //___________________Teamwagen__________________________________________________
    public IstFahrschulAuto(playerid)//Error -> error 025: function heading differs from prototype
    {
    new carid = GetPlayerVehicleID(playerid);
    if(carid == Fahrschulauto[0] || carid == Fahrschulauto[1] || carid == Fahrschulauto[2] || carid == Fahrschulauto[3] || carid == Fahrschulauto[4] || carid == Fahrschulauto[5] || carid == Fahrschulauto[6] || carid == Fahrschulauto[7] || carid == Fahrschulauto[8] || carid == Fahrschulauto[9])
    { return 1; }
    else { return 0; }
    }
    Hoffe auf Hilfe, möchte endlich weiter machen:p



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Zu Nummer eins, mein Script läuft über MySQL und
    SetPVarInt(playerid, "Regestriert", 0);
    Speichert eigentlich das Alter in einer MySQL Datenbank, alles geht nur am ende steht kein Alter drin.


    Zu nummer 2, So sieht das alles aus:
    new bool:TutTimer[MAX_PLAYERS],TutTime[MAX_PLAYERS];
    bsp
    if(listitem == 0)
    {
    SendClientMessage(playerid,COLOR_GREY,"Du kommst also aus Baden - Württemberg");
    SetPVarInt(playerid, "Herkunft", 1);
    TutTime[playerid] = 1;
    TutTimer[playerid] = SetTimerEx("Tut",1000,1,"i",playerid);
    return 1;
    }
    und dann wird mein tutorial gestartet.


    Nummer 3:
    forward IstFahrschulAuto();



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Problem 1:
    Es heißt Registriert, nicht Regestriert, nur mal so nebenbei. ;)
    Ich kann aber noch immer nichts MySQL-mäßiges sehen. Wo speicherst du denn das Alter in die Datenbank?


    Problem 2:
    "bool:" weg machen.


    Problem 3:
    In die Klammern "playerid" schreiben.

  • Vielen dank, also 2 Probleme sind nun aus der Welt.
    Einmal Hier:
    public OnPlayerDisconnect(playerid, reason)
    {
    if(GetPVarInt(playerid, "Eingeloggt") == 1)
    {
    mysql_SetInt("spieler", "Geld", GetPlayerMoney(playerid), "Name", PlayerName[playerid]);
    mysql_SetInt("spieler", "Morde", GetPVarInt(playerid, "Morde"), "Name", PlayerName[playerid]);
    mysql_SetInt("spieler", "Tode", GetPVarInt(playerid, "Tode"), "Name", PlayerName[playerid]);
    mysql_SetInt("spieler", "Admin", GetPVarInt(playerid, "Admin"), "Name", PlayerName[playerid]);
    mysql_SetInt("spieler", "Tutorial", GetPVarInt(playerid, "Tutorial"), "Name", PlayerName[playerid]);
    mysql_SetInt("spieler", "Herkunft", GetPVarInt(playerid, "Herkunft"), "Name", PlayerName[playerid]);
    mysql_SetInt("spieler", "Geschlecht", GetPVarInt(playerid, "Geschlecht"), "Name", PlayerName[playerid]);
    mysql_SetInt("spieler", "Alter", GetPVarInt(playerid, "Alter"), "Name", PlayerName[playerid]);
    mysql_SetInt("spieler", "Premium", GetPVarInt(playerid, "Premium"), "Name", PlayerName[playerid]);
    mysql_SetInt("spieler", "Spielzeit", GetPVarInt(playerid, "Spielzeit"), "Name", PlayerName[playerid]);
    mysql_SetInt("spieler", "Knast", GetPVarInt(playerid, "Knast"), "Name", PlayerName[playerid]);
    mysql_SetInt("spieler", "Team", GetPVarInt(playerid, "Team"), "Name", PlayerName[playerid]);
    mysql_SetInt("spieler", "Leader", GetPVarInt(playerid, "Leader"), "Name", PlayerName[playerid]);
    mysql_SetInt("spieler", "Rang", GetPVarInt(playerid, "Rang"), "Name", PlayerName[playerid]);
    mysql_SetInt("spieler", "Regestriert", GetPVarInt(playerid, "Regestriert"), "Name", PlayerName[playerid]);

    }
    ......


    und Hier
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    switch(dialogid)
    {


    case 0:
    {
    if(!inputtext[0])
    {
    SendClientMessage(playerid, Color_White, "Info: Bitte gebe ein Passwort ein");
    ShowPlayerDialog(playerid, 0, DIALOG_STYLE_INPUT, "Anmelden", "Wilkommen auf Real Secondlife.\nDu kannst dich nun anmelden", "Anmelden", "Abrechen");
    return true;
    }
    if(strcmp(inputtext, mysql_GetString("spieler", "Passwort", "Name", PlayerName[playerid]), true) == 0)
    {
    SetPVarInt(playerid, "Eingeloggt", 1);
    GivePlayerMoney(playerid, mysql_GetInt("spieler", "Geld", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Morde", mysql_GetInt("spieler", "Morde", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Tode", mysql_GetInt("spieler", "Tode", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Admin", mysql_GetInt("spieler", "Admin", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Tutorial", mysql_GetInt("spieler", "Tutorial", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Herkunft", mysql_GetInt("spieler", "Herkunft", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Geschlecht", mysql_GetInt("spieler", "Geschlecht", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Alter", mysql_GetInt("spieler", "Alter", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Premium", mysql_GetInt("spieler", "Premium", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Spielzeit", mysql_GetInt("spieler", "Spielzeit", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Knast", mysql_GetInt("spieler", "Knast", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Team", mysql_GetInt("spieler", "Team", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Leader", mysql_GetInt("spieler", "Leader", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Rang", mysql_GetInt("spieler", "Rang", "Name", PlayerName[playerid]));
    SetPVarInt(playerid, "Regestriert", mysql_GetInt("spieler", "Regestriert", "Name", PlayerName[playerid]));
    SendClientMessage(playerid, Color_Green, "Info: Wilkommen auf Real Secondlife");
    SpawnPlayer(playerid);
    return true;
    }
    .....



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Sieht ganz gut aus. Da kann ich nichts falsches sehen.
    Bringt wohl nichts, aber ein Versuch ist es wert:
    Setze mal das SetPVarInt über die SendClientMessage, und probiers dann. Wenn es immer noch nicht tut, dann setze anstatt "age" im string doch mal GetPVarInt ein, ob es dir das Alter richtig anzeigt.
    Hat du eigentlich SendClientMessage verändert? So wie ich die Funktion kenne, hat die keine parameter für variablen.


    Und ich will ja nicht nörgeln, aber deine Rechtschreibung lässt zu wünschen übrig. Das sind Details auf die du achten solltest. Willkommen schreibt man mit 2 L's.

  • Jetzt verstehe ich auch, warum mein Compiler eine Warnung ausschlägt.
    Sorry wegen der Rechtschreibung, ich beeile mich nur immer beim schreiben und da kann es auch mal sein das ich etwas vergesse... :x
    Also wie könnte ich dem Spieler dann eine Nachricht schreiben wie z.B, dein Account ist nun 17 Jahre oder so?
    Es Speichert immer noch nicht :(



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • new string[144];
    format(string, sizeof(string), "Du bist %d Jahre alt!", age);
    SendClientMessage(playerid, COLOR_RED, string);


    Hast du die Tabelle überprüft? Alles richtig gesetzt und keine Schreibfehler? ^^


    Wenn da alles stimmt, setze mal SetPVarInt direkt unter das new age = ... und ersetze oben im format das "age" mit dem GetPVarInt, und schau mal was dir angezeigt wird.

  • Naja du musst den Datensatz in der Relation ja erstmal erstellen


    Also die Zeile des Spielers in die Tabelle eintragen

    SQL
    INSERT INTO tabelle (spalte1, spalte2) VALUES (inhalt_spalte1, inhalt_spalte2)


    Gruß

    ik bin der vito c:

  • Also wenn du den Spieler erstellst musst du mit mysql_query datensätze eintragen
    Du nutzt anscheinend das Tutorial von maddin


    Dort wird es mit mysql_CreateUser gemacht
    Wird diese Funktion bei dir aufgerufen?


    Kurze erklärung:
    Du speicherst ins nirgendwo
    Du hast ein Regal ok ?
    Dort willst du die Spieler speichern.
    Hast jetzt die Daten in der rechten Hand und willst sie in eine Kiste tun. Wenn aber keine Kiste die du haben willst in dem Regal ist.. tja dann wirfste die Sachen weg.


    Wenn du also weißt das du irgendwann da irgendwas rein packen willst erstellst / baust du dir die Kiste. (mit insert)
    Packst da ein paar Sachen rein und kannst später alles andere dazu packen.


    Das ist doch mal gut erklärt oder? Und das um die Uhrzeit :D


    Gruß

    ik bin der vito c:

  • Top erklärt :D Ich habe aber das MySQL Login/Register Script von RFT und alles wird gespeichert außer die Packung Alter.
    Also warum kann meine Hand alles in die Kiste tun nur diese dumme Packung Alter nicht :( :D



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Achso dachte das ... bei PHPMyAdmin zeigt er automatisch die Struktur wenn nichts drin ist
    Das was du gezeigt hast ist aber schon die Struktur aber Daten sind drin


    -> Kästen sind da


    Jetzt weiß er nur nicht in welches Fach beim Kasten
    Das Fach (Spalte "Alter") ist aber 50 zeichen lang.. Viel zu lang ^^ (Hat nichts mit dem Prob zu tun eigl nur an der Perfomance)


    Gib dir mal jede Sekunde oder einfach beim speichern per printf das Alter aus


    printf("Name: %s, Alter: %i",PlayerName[playerid], GetPVarInt(playerid, "Alter"));

    ik bin der vito c:

  • Also wenn ich es zu "main()" mache bekomm ich diese Errors:
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(147) : error 017: undefined symbol "playerid"
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(147) : error 001: expected token: ",", but found ";"
    und bei OnGamemodeinit diese
    C:\Users\Nico-PC\Desktop\GTA Server\samp03x_svr_R1-2_win32\gamemodes\R2L.pwn(151) : error 017: undefined symbol "playerid"



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

  • Da hätten wir das Problem


    SQL
    [00:47:05] CMySQLHandler::Query(UPDATE spieler SET Alter = '20' WHERE Name = 'teddy2') - An error has occured. (Error ID: 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 'Alter = '20' WHERE Name = 'teddy2'' at line 1)


    Was heißt das nun?
    Edit: Schon wieder ein neues Problem -.-
    Also ich habe jetzt Fraktionscars hinzugefügt, und wenn ich jetzt ein auto per /veh spawne, mich reinsetzten möchte kommt die nachricht das ich den schlüssel dazu nicht habe?
    ich hab es doch gar nicht als fraktionscar definiert?
    also so definiere ich meine Autos:
    new Polizeiauto[16];
    forward IstPolizeiAuto(playerid);
    Polizeiauto[0] = AddStaticVehicle(523,-1572.4834,743.0745,-5.6737,88.6446,3,3); // Polizeibike
    Polizeiauto[1] = AddStaticVehicle(523,-1572.5189,738.7443,-5.6749,90.6218,2,2); // Polizeibike
    Polizeiauto[2] = AddStaticVehicle(523,-1572.5111,735.0104,-5.6743,87.3776,2,2); // Polizeibike
    Polizeiauto[3] = AddStaticVehicle(523,-1572.6046,730.9388,-5.6740,90.5538,3,3); // Polizeibike
    Polizeiauto[4] = AddStaticVehicle(523,-1572.3353,726.6046,-5.6736,90.5139,0,155); // Polizeibike
    Polizeiauto[5] = AddStaticVehicle(597,-1572.7570,722.3436,-5.4723,90.3439,0,155); // Polizeicar
    Polizeiauto[6] = AddStaticVehicle(597,-1572.7958,718.2508,-5.4788,90.6500,0,155); // Polizeicar
    Polizeiauto[7] = AddStaticVehicle(597,-1572.7048,714.1620,-5.4732,90.5114,0,155); // Polizeicar
    Polizeiauto[8] = AddStaticVehicle(597,-1572.7141,709.9823,-5.4839,90.4805,0,155); // Polizeicar
    Polizeiauto[9] = AddStaticVehicle(597,-1572.6423,705.9331,-5.4711,90.5550,0,155); // Polizeicar
    Polizeiauto[10] = AddStaticVehicle(562,-1640.6082,665.8201,-5.5833,269.4931,0,0); // Polizeiundercover
    Polizeiauto[11] = AddStaticVehicle(562,-1640.6256,670.0011,-5.5825,269.7540,0,0); // Polizeiundercover
    Polizeiauto[12] = AddStaticVehicle(560,-1640.5031,673.9039,-5.5361,269.6678,0,0); // Polizeiundercover
    Polizeiauto[13] = AddStaticVehicle(560,-1640.4725,678.1206,-5.5559,270.8239,0,0); // Polizeiundercover
    Polizeiauto[14] = AddStaticVehicle(589,-1640.5277,682.1851,-5.5832,269.4197,0,0); // Polizeiundercover
    Polizeiauto[15] = AddStaticVehicle(589,-1640.5514,686.3823,-5.5832,269.8899,0,0); // Polizeiundercover
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == 2)
    {
    if(IstFahrschulAuto(playerid))
    {
    if(GetPVarInt(playerid, "Team") == 2){ return 1; }
    else { SendClientMessage(playerid, COLOR_RED, "Du hast keinen Schlüssel."); RemovePlayerFromVehicle(playerid); return 1; }
    }
    else if(IstPolizeiAuto(playerid))
    {
    if(GetPVarInt(playerid, "Team") == 1){ return 1; }
    else { SendClientMessage(playerid, COLOR_RED, "Du hast keinen Schlüssel."); RemovePlayerFromVehicle(playerid); return 1; }
    }
    }
    return 1;
    }
    public IstPolizeiAuto(playerid)
    {
    new carid = GetPlayerVehicleID(playerid);
    if(carid == Polizeiauto[0] || carid == Polizeiauto[1] || carid == Polizeiauto[2] || carid == Polizeiauto[3] || carid == Polizeiauto[4] || carid == Polizeiauto[5] || carid == Polizeiauto[6] || carid == Polizeiauto[7] || carid == Polizeiauto[8] || carid == Polizeiauto[9] || Polizeiauto[10] || Polizeiauto[11] || Polizeiauto[12] || Polizeiauto[13] || Polizeiauto[14] || Polizeiauto[15])
    { return 1; }
    else { return 0; }
    }
    hoffe auf hilfe.



    Die heutigen Noobs, sind die Profis von morgen! :thumbup:


    Danke an Jeffry für seine ständige Hilfsbereitschaft und freundliche Art. 8)

    2 Mal editiert, zuletzt von ENEF ()

  • Problem 1:
    Es scheint als hast du doch einen Fehler in deiner Datenbank. Hast du Name und Alter wirklich so geschrieben? Groß/Kleinschreibung beachtet?
    //EDIT: Hab das Bild grade erst gesehen.
    Setz mal die Größe von Alter in deiner Datenbank auch zu 11 wie die anderen. Du brauchst kein Integer mit einer länge von 50. Es ist ja keiner 1.000.000.000.000.000.000.000.000.000.... Jahre alt.


    Problem 2:
    public IstPolizeiAuto(playerid)
    {
    new carid = GetPlayerVehicleID(playerid);
    for(new i=0; i < sizeof(Polizeiauto); i++) if(carid == Polizeiauto[i]) return 1;
    return 0;
    }