Beiträge von Hagi

    new countdown = 60;
    forward countmedown();


    SetTimer("countmedown",1000,0);


    public countmedown()
    {
    if(countdown > 1)
    {
    new string[128];
    format(string,sizeof(string),"Countdown: %d",countdown);
    GameTextForAll(string,1000,3);
    SetTimer("countmedown",1000,0);
    countdown --;
    }
    else
    {
    GameTextForAll("Der Countdown ist abgelaufen",1000,3);
    countdown = 0;
    }
    }
    {

    Zeig mal die Zeilen dadrüber auch noch.


    Weil in deinem Code ist eigentlich nichts falsch, wenn msg als Farbe definiert wurde und die Zeichen von samp verarbeitet werden können.

    Ehm ja nur kann ja sein, dass er außerhalb von OnPlayerstateChange, genauer gesagt unter OnPlayerKeyStateChange in einem anderen Codeschnipsel, welcher nicht gepostet wurde, den State abfragt. Ansonsten hätte er ja keine Error bekommen wenn er es nicht verwendete .

    Warum wird das hier nicht in die Tabelle geschrieben. Alles, also alte Datei löschen; Texte ausgeben, funktioniert. Nur die MYSQL Abfragen nicht.


    Die Verbindungsdaten sind auf jeden fall richtig, denn eine Verbindung zu MYSQL wird aufgebaut.


    new query[128],data[128],laenge,string[128];
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    laenge = strlen(inputtext);


    format(string,sizeof(string),"%s.dini",playername);


    if(strcmp(dini_Get(string,"Password"),inputtext,false)==0 && laenge != 0)
    {
    mysql_connect("host","user","passwort","datenbank",1);

    format(query,sizeof(query),"INSERT INTO `User` (`Name`, `Password`, `Admin`, `Kills`, `Tode`, `Warn`, `Ban`) VALUES ('%s', '%s', '%d', '%d', '%d', '%d', '%d')", playername, dini_Get(string,"Password"),dini_Int(string,"Admin"),dini_Int(string,"Kills"),dini_Int(string,"Tode"),dini_Int(string,"Warn"),dini_Int(string,"Ban"));
    mysql_query(query);


    format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Prison` = '%d' WHERE `User`.`Name` = '%s'",dini_Int(string,"Prison"),playername);
    mysql_query(query);


    format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Premium` = '%d' WHERE `User`.`Name` = '%s'",dini_Int(string,"Premium"),playername);
    mysql_query(query);


    format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Rank` = '%d' WHERE `User`.`Name` = '%s'",dini_Int(string,"Rank"),playername);
    mysql_query(query);


    format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Punkte` = '%d' WHERE `User`.`Name` = '%s'",dini_Int(string,"Punkte"),playername);
    mysql_query(query);


    format(query,sizeof(query),"SELECT * FROM User WHERE Name = '%s'", playername);
    mysql_query(query);


    mysql_fetch_field("Admin",data);
    SetPVarInt(playerid,ADMIN_KEY,strval(data));


    mysql_fetch_field("Kills",data);
    SetPVarInt(playerid,KILLS_KEY,strval(data));


    mysql_fetch_field("Tode",data);
    SetPVarInt(playerid,TODE_KEY,strval(data));


    mysql_fetch_field("Warn",data);
    SetPVarInt(playerid,WARN_KEY,strval(data));


    mysql_fetch_field("Prison",data);
    SetPVarInt(playerid,PRISON_KEY,strval(data));


    mysql_fetch_field("Ban",data);
    SetPVarInt(playerid,BAN_KEY,strval(data));


    mysql_fetch_field("Premium",data);
    SetPVarInt(playerid,PREMIUM_KEY,strval(data));


    mysql_fetch_field("Rank",data);
    SetPVarInt(playerid,RANK_KEY,strval(data));


    mysql_fetch_field("Punkte",data);
    SetPVarInt(playerid,PUNKTE_KEY,strval(data));


    format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Lastlogin` = '%s' WHERE `User`.`Name` = '%s'",GetTime(),playername);
    mysql_query(query);


    mysql_close();

    dini_Remove(string);


    SetPVarInt(playerid,ISTEINGELOGGT_KEY,1);
    SendClientMessage(playerid,weiß,"Einloggen erfolgreich. Bereit zum Spielen");
    SendClientMessage(playerid,weiß,"Dein Account wurde auf MYSQL umgestellt. Bei Problemen kontaktieren bitte einen Admin");


    new string3[128];
    format(string3,sizeof(string3),"Spieler %s hat sich eingeloggt",playername);


    print("-----");
    print(string3);
    }

    So hab noch ne Frage bezüglich MYSQL.


    Wenn ich ne Tabelle hab, Spalte "ID" mit Auto Increment und Primary Key, dann wird ja beim Anlegen eines neuen Users die "ID" automatisch um Eins erhöht um eine Zuweisung möglich zu machen.


    Jetzt meine Frage :
    Ich habe 3 User


    ID 0 User 0
    ID 1 User 1
    ID 2 User 2


    Wenn ich jetzt aber User 1 lösche also es so aussieht:


    ID 0 User 0
    ID 2 User 2


    Und dann einen neuen User mache heißt dieser


    ID 3 User 3.


    Und meine Tabelle sieht so aus


    ID 0 User 0
    ID 3 User 3
    ID 2 User 2
    (Sortierung nach ID)


    Kann ich das auch irgentwie machen, dass dann die Lücke zwischen 0 und 2 gefüllt wird ? Möglichst Automatisch. Also dass der neue User dann die ID 2 bekommt.

    Ich denke mal das Passwort ein String ist. Also einfach die neue Variable in nen String verändern


    new pw[128];
    pw = ...


    Wenns schon nen String ist einfach mal die Byte zahl erhöhen oder dem Maximum von PlayerInfo gleich setzten.

    Da ich grad sowieso Zeit hab, bin ich mal 20 Minuten mit einem Turismo durch San Andreas geheizt und hab 19 Tankstellen gefunden.


    Allen habe ich einen Namen zugewisen. Dieser hängt entweder vom Standort ab oder ich ich den Namen genommen, den die Tankstelle auf einem RL Server hat.
    Bei einer Tankstelle ist mir der Name nicht mehr eingefallen.




    Download: Hier das Ganze (Koords + Karte) nochmal als .rar zum downloaden

    Die ist mit Sicherheit von einem Server, denn weder aufm Flughafen nocht in Bayside Marina gibts Tankstellen.


    Es gibt auch keine Karte für Tankstellen, musst wohl im Raster über die Städte fliegen und per /save eigenhändig rausschreiben.


    Oder du hast Glück und jemand hat für nen Rl schonmal alle Tankstellenkoordinaten rausgesucht.

    A) Der Command zum einfärben von Namen kann auch SetPlayerColor sein.


    B) Um Marker anzuzeigen und zu entfernen ShowPlayerMarkers(true) . Wenn du das im Script hast machs weg.
    B.b) Um Marker für bestimmte Spieler anzuzeigen gibts auch ein Befehl, aber ohne englisches Wiki weiß ich den grad nicht. Und im Deutschen findet man ja wieder nix.

    Das machst du am besten mit sscanf da du dort die Parameter direkt angeben kannst oder du überprüfst die Länge des Grund String


    if(strlen(grund) == 0)
    {
    SendClientMessage(id,farbe,"Du musst einen Grund angeben");
    return 1;
    }

    Du kannst als ID aber nur 0-99 nehmen, 100 ist zu groß. Und beachte auch, dass kein Map Object die gleiche ID eines anderen Map Object haben sollte.

    Du kannst das nur für dich selber ändern und auch nur immer einmal, nicht währen des Spiels. Und zwar einfach die png Dateien bearbeiten. Aber wenn das bei anderen Spielern auch sein soll, müssen die das bei sich selber auch machen.


    PS: Mehr Knöpfe bekommste dadurch aber auch nicht.