Beiträge von d0ma

    was wurde aus dem alten Thema ??


    new racestart; //oben im script


    //Dort wo das rennen gestartet wird
    racestart = GetTickCount();


    // Funktion zu Zeitwiedergabe
    GetRaceTime()
    {
    new string3[64];
    new timeMs = ( GetTickCount() - racestart );
    //timeMs(millisekunden) in Min:Sek.Ms umrechnen
    new minuten = (timeMs/60000);
    timeMs -= (minuten * 60000);
    new sekunden = (timeMs/1000);
    format(string3, sizeof(string),"0%d/%d!",minuten,sekunden);
    return string3;
    }


    hier jetzt noch einfacher für dich mit Funktion...
    nur noch
    GetRaceTime(); dort wo du die zeit haben willst und fertig


    new beispiel[50];
    format(beispiel, sizeof(beispiel), "Zeit: %s", GetRaceTime());
    SendClientMessageToAll(0xFF0000FF, beispiel);


    Der Code mit GetTickCount() ist genauer da er die aktuelle Zeit beim racestart Speichert und dann bei der Wiedergabe einfach die Differenz aus aktueller und vorher in "racestart" gespeicherter Zeit nimmt. Zeitmessungen mit i-welchen Timern geht nie wirklich richtig gut

    die grünen kommentare und http://wiki.sa-mp.com/wiki/GetTickCount sollten alles erklären
    new racestart;



    //start
    racestart = GetTickCount();



    //zu einem späteren Zeitpunkt die Zeit berechnen:
    new timeMs = ( GetTickCount() - racestart );
    //timeMs(millisekunden) in Min:Sek.Ms umrechnen
    new minuten = (timeMs/60000);
    timeMs -= (minuten * 60000);
    new sekunden = (timeMs/1000);
    format(str,sizeof(str), "%d:%d.%d", minuten, sekunden, (timeMs%1000)); // Format Minuten:Sekunden.millisekunden

    PHP
    $sql2 = mysql_query("SELECT * FROM accounts WHERE nickname = '".$name."' OR mail = '".$name."' AND Passwort = MD5('".$pw."')") or die ("Fehler :".mysql_error());


    MD5(passwort) ;)

    warum nicht gleich so: (keine extra Datum variable notwendig)
    format(SpielerInfo[playerid][pRegDate], DieLaengeHier, "%d.%d.%d um %d:%d", Tag, Monat, Jahr, Stunde, Minute);


    die länge musst du Manuell einfügen bei enums


    WHERE Name = '%s'
    und nicht
    WHERE Name = '%'


    Zusätzlich kann der Code dazu benutzt werden die Datenbank zu hacken ;)
    Stell dir mal vor: Für inputtext wird folgendes eingegeben:

    Zitat

    ', Password = 'Hallo' WHERE Name = 'Adminname' --


    Dann sieht deine Abfrage so aus:

    SQL
    UPDATE 'spieler' SET Email='', Password = 'Hallo' WHERE Name = 'Adminname' --' WHERE Name='%'


    das "--" bewirkt das der Rest(grün) nurnoch ein Kommentar ist und nichtmehr zu der Abfrage dazu gehört
    So einfach könnte dann jemand das Passwort von "Adminname" zu "Hallo" ändern(vll noch mit Verschlüsslungsmethode in MySQL) ;)


    Schau dir mysql_real_escape_string an, das bewrikt das die Abfrage nicht mehr verändert werden kann falls der Text zwischen ' symbolen steht

    In Timestamp rechnet man doch in Sekunden oder?
    Sprich ich habe den Timestamp von jetzt sage +120 dann ist er doch 2 Minuten im Vorraus oder?


    genau, gettime() dafür in SA-MP



    gettime() + (x) // x sekunden
    gettime() + (x*60) // x minuten
    gettime() + (x*60*60) // x stunden
    gettime() + (x*60*60*24) // x tage
    gettime() + (x*60*60*24*30) // x monate(monat = 30 tage)
    gettime() + (x*60*60*24*30*12) // x jahre(jahr = 360 tage in diesem beispiel)

    ich versteh nicht ganz wie Kaliber den string da aufbaut, ergibt für mich keinen Sinn
    schau dir mal das hier an:


    So nun zum problem ich möchte das jedesmal wenn ich SpielerInfo[playerid][sEP] = +anzahl; mache das sich oben in Textdraw ein "I"
    du meinst wohl
    SpielerInfo[playerid][sEP] += anzahl;
    und nicht SpielerInfo[playerid][sEP] = +anzahl;
    unter
    SpielerInfo[playerid][sEP] += anzahl;
    fügst du einfach immer das hier ein(dann ist auch kein nervender timer notwendig)

    new str[101];
    for(new i = 0; i < SpielerInfo[playerid][sEP]; i++)
    {
    if(i == 100)break;
    str[i] = "I";
    }
    TextDrawSetString(EPText3, str);
    wenn in SpielerInfo[playerid][sEP] 10 steht dann werden 10 "I"'s angezeigt bei 20 dann 20 usw ;)

    stock aRP_Datenbank_Erstellen()
    {
    new AddDatabase[750];
    strcat(AddDatabase,"CREATE TABLE IF NOT EXISTS `Accounts` (`Name` varchar(24) NOT NULL,`Passwort` varchar(34) NOT NULL,`Admin` int(2) NOT NULL DEFAULT '0',`Warns` int(2) NOT NULL DEFAULT '0',`Leader` int(2) NOT NULL,`Fraktion` int(2) NOT NULL,`Rang` int(2) NOT NULL,");
    strcat(AddDatabase,"`Job` int(3) NOT NULL,");
    strcat(AddDatabase,"`Geschlecht` int(4) NOT NULL,`Geschlecht` int(1) NOT NULL,`Level` int(4) NOT NULL,`Geld` int(10) NOT NULL,");
    strcat(AddDatabase,"`Wantedlevel` int(3) NOT NULL,");
    strcat(AddDatabase,"`Fightstyle` int(2) NOT NULL,`Handy` int(2) NOT NULL, `Nummer` int(8) NOT NULL,");
    strcat(AddDatabase,"`Biz` int(3) NOT NULL,`Haus` int(3) NOT NULL,");
    strcat(AddDatabase,"`Living` int(1) NOT NULL,`Kills` int(5) NOT NULL,`Deaths` int(5) NOT NULL, `Partner` varchar(24) NOT NULL)");
    mysql_query(AddDatabase);
    return 1;
    }


    hinter:
    `Rang` int(2) NOT NULL
    hat ein komma gefehlt