bug -_- [Ich war zu faul, mir die Forenregeln durchzulesen]

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
  • hey @ all ich habihm mein script i -wie ein bug und zwar ganz am anfang kom
    wie ich sehe bist du neu bitte registriere dich mit /register pw
    bis hier hin alles gut
    doch wen ich dan mich registriren reagirt er nicht mehr also hier ist der register +loginscript
    if(strcmp(strget(cmdtext,0), "/register", true) == 0)
    {
    new save[40]; // Erstelle einen neuen String "save", wobei 40 Wörter verwendet werden können.
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save, sizeof(save),"Spieler/%s.ini",spieler);
    if(!dini_Exists(save)) // wenn der Spieler sich regestriert und es noch keine .ini Datei mit seinem Namen gibt
    {
    dini_Create(save); // Erstelle eine Neue .ini Datei
    dini_IntSet(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegebne hat)
    SendClientMessage(playerid, COLOR_GREEN, "***Dein Account wurde erfolgreich registriert***");
    SendClientMessage(playerid, COLOR_GREEN, "***Nutze /login [Passwort] um dich einzuloggen***");
    }
    else
    {
    if(dini_Exists(save)) // Wenn beim regestrieren die Datei schon besteht
    {
    SendClientMessage(playerid, COLOR_RED, "Der Account ist bereits registriert");
    Kick(playerid); // Kick den Spieler
    }}
    return 1;
    }


    if(strcmp(strget(cmdtext,0), "/login", true) == 0)
    {
    new save[40], s2[256];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save,sizeof(save),"Spieler/%s.ini",spieler);
    if(dini_Exists(save))
    {
    s2=dini_Get(save,"passwort");
    if(strval(s2)==udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort übereinstimmt
    {
    loggedin[playerid] = true;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "***Du hast dich erfolgreich eingeloggt***");
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Passwort Falsch!");
    }}
    return 1;
    }
    ist des anfänger script von oktabius ^^

  • In dieser Zeile sehe ich den Fehler:
    if(strval(s2)==udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort übereinstimmt


    Probiers so:
    if(strcmp(s2,udb_hash(strget(cmdtext,1)),false) == 0) // wenn die Eingabe nach /login mit dem Passwort übereinstimmt


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • dan sagt er mir deisen eroor
    D:\eigener server neue version R4\gamemodes\Reallife.pwn(266) : error 035: argument type mismatch (argument 2)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.
    aber normal müsste das doch beim register i was sein weil nachderm er die nchricht gezeigt hat stürzt meine server.cfg ab

  • Ahhh, jetzt seh ich das. Brauchst dich nicht für den Fehler zu schämen, hab ihm grade bei 4. Mal drüberlesen gesehn ;)
    Ändere
    dini_IntSet(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegebne hat)
    zu
    dini_Set(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegebne hat)


    Schließlich ist das Passwort eine Zeichenkette und keine Zahl.


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • naja thx ^^ aber jetztsagt er mir 2 erorrs -_-
    hier der quelltext
    if(strcmp(strget(cmdtext,0), "/register", true) == 0)
    {
    new save[40]; // Erstelle einen neuen String "save", wobei 40 Wörter verwendet werden können.
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save, sizeof(save),"Spieler/%s.ini",spieler);
    if(!dini_Exists(save)) // wenn der Spieler sich regestriert und es noch keine .ini Datei mit seinem Namen gibt
    {
    dini_Create(save); // Erstelle eine Neue .ini Datei
    dini_Set(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegebne hat)
    SendClientMessage(playerid, COLOR_GREEN, "***Dein Account wurde erfolgreich registriert***");
    SendClientMessage(playerid, COLOR_GREEN, "***Nutze /login [Passwort] um dich einzuloggen***");
    }
    else
    {
    if(dini_Exists(save)) // Wenn beim regestrieren die Datei schon besteht
    {
    SendClientMessage(playerid, COLOR_RED, "Der Account ist bereits registriert");
    Kick(playerid); // Kick den Spieler
    }}
    return 1;
    }


    if(strcmp(strget(cmdtext,0), "/login", true) == 0)
    {
    new save[40], s2[256];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save,sizeof(save),"Spieler/%s.ini",spieler);
    if(dini_Exists(save))
    {
    s2=dini_Get(save,"passwort");
    if(strcmp(s2,udb_hash(strget(cmdtext,1)),false) == 0) // wenn die Eingabe nach /login mit dem Passwort übereinstimmt
    {
    loggedin[playerid] = true;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "***Du hast dich erfolgreich eingeloggt***");
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Passwort Falsch!");
    }}
    return 1;
    }
    und hier die error
    D:\eigener server neue version R4\gamemodes\Reallife.pwn(244) : error 035: argument type mismatch (argument 3)
    D:\eigener server neue version R4\gamemodes\Reallife.pwn(266) : error 035: argument type mismatch (argument 2)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.

    wa hab ich jetzt falsch gemacht ?? ^^

  • Sorry, ich muss mich entschuldigen. Ich habe udb_hash mit einer anderen Verschlüsselung verwechselt. udb_hash verschlüsselt Strings in eine Zahl, und nicht etwa in einen String.


    Also muss es so lauten:
    if(strcmp(strget(cmdtext,0), "/register", true) == 0)
    {
    new save[40]; // Erstelle einen neuen String "save", wobei 40 Wörter verwendet werden können.
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save, sizeof(save),"Spieler/%s.ini",spieler);
    if(!dini_Exists(save)) // wenn der Spieler sich regestriert und es noch keine .ini Datei mit seinem Namen gibt
    {
    dini_Create(save); // Erstelle eine Neue .ini Datei
    dini_IntSet(save,"passwort",udb_hash(strget(cmdtext,1))); // Setze in die .ini Datei(save,"dass passwort", welches er eingegebne hat)
    SendClientMessage(playerid, COLOR_GREEN, "***Dein Account wurde erfolgreich registriert***");
    SendClientMessage(playerid, COLOR_GREEN, "***Nutze /login [Passwort] um dich einzuloggen***");
    }
    else if(dini_Exists(save)) // Wenn beim regestrieren die Datei schon besteht
    {
    SendClientMessage(playerid, COLOR_RED, "Der Account ist bereits registriert");
    Kick(playerid); // Kickt den Spieler
    }
    return 1;
    }


    if(strcmp(strget(cmdtext,0), "/login", true) == 0)
    {
    new save[40];
    GetPlayerName(playerid,spieler,sizeof(spieler));
    format(save,sizeof(save),"Spieler/%s.ini",spieler);
    if(dini_Exists(save))
    {
    if(dini_IntGet(save,"passwort") == udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort übereinstimmt
    {
    loggedin[playerid] = true;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "***Du hast dich erfolgreich eingeloggt***");
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Passwort Falsch!");
    }
    }
    return 1;
    }


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • fast geschafft ^^
    jetzt sagt er nur noch D:\eigener server neue version R4\gamemodes\Reallife.pwn(263) : error 017: undefined symbol "dini_IntGet"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • Ok, jetzt haben wirs fast ;)
    if(dini_IntGet(save,"passwort") == udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort übereinstimmt
    zu
    if(dini_Int(save,"passwort") == udb_hash(strget(cmdtext,1))) // wenn die Eingabe nach /login mit dem Passwort übereinstimmt


    Mein Fehler xD (schon wieder :D )


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • Dazu brauchst du den /save-Command. Erklärung:

    Zitat

    Bei Teleports wird man immer zu einer Position teleportiert, die eindeutig durch 3 Koordinaten bestimmbar ist. Man erhält diese Koordinaten ganz einfach, indem man sich auf einem Server an eine Stelle stellt und dort den Command /save [Kommentar] eingibt. Nun müsst ihr in euer Rockstar Games/GTA San Andreas-Verzeichnis schauen, dort sollte eine Datei namens savedpositions.txt sein. In dieser Datei werden alle eure gespeicherten Positionen aufbewahrt. Ihr könnt dort beispielsweise so etwas vorfinden:


    AddPlayerClass(212,-1061.8599,1562.4587,33.2313,32.5994,0,0,0,0,0,0); // Kommentar -1061.8599,1562.4587,33.2313 sind die X, Y und Z Koordinaten. Direkt dahinter könnt ihr die Drehung sehen, in der ihr in dem Moment gestanden seid, hier 32.5994. Die restlichen Variablen in dieser Zeile interessieren uns nicht.

    Quelle: [ SCRIPTING ] Teleport-Tutorial (Am besten mal durchlesen)


    So könnte dann dein Teleport aussehen, du musst nur die Koordinaten aus der Zeile aus savedpositions.txt richtig einfügen.
    if(strcmp("/teleport",cmdtext,true) == 0)
    {
    SetPlayerPos(playerid,1864.5662,-1383.5651,13.4896);
    SetPlayerFacingAngle(playerid,233.7254);
    SendClientMessage(playerid,COLOR_YELLOW," Du wurdest zu dem Ort blabla teleportiert!");
    return 1;
    }


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!