Frage zu Mysql

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 Zusammen


    Ich habe, Mein script heute in Mysql Umgeschrieben.


    Und da wollte, ich euch Fragen wenn ich Z.b ein Fraktion-System Einbaue. Das Z.b Team,Leader,Skin Gespeichert werden.


    Momentan sehen meine Befehle so aus:


    Stock LoadPlayer:
    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))//Wir fragen ab ob der angegebene Spieler auch Online ist, und kein NPC ist (nur zur sicherhheit)
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME); //Wir Speichern den Namen des Spielers in der Variable [i]SpielerInfo[playerid][pName][/i]
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Level" eingetragen ist und Speichern ihn in unserer Variable.
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Geld" eingetragen ist und Speichern ihn in unserer Variable.
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Kills" eingetragen ist und Speichern ihn in unserer Variable.
    SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Tode" eingetragen ist und Speichern ihn in unserer Variable.
    SpielerInfo[playerid][pLeader] = mysql_GetInt("accounts", "Leader", "Name",SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pTeam] = mysql_GetInt("accounts", "Team", "Name", SpielerInfo[playerid][pName]);
    }
    return 1;
    }


    Stock SavePlayer:
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1) //Und hier ob er noch eingeloggt ist.
    {
    //Nun speichern wir die Daten in der Datenbank.
    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts","Leader", SpielerInfo[playerid][pLeader], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("account","Skin", SpielerInfo[playerid][pSkin], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts","Team", SpielerInfo[playerid][pTeam], "Name", SpielerInfo[playerid][pName]);
    }
    }
    return 1;
    }


    Muss ich dies, auch Noch beim DIALOG_REGISTER reinschreiben?
    Also meine es So: Das wenn, man sich auf dem Server Regestriert. Das der Spieler Folgende dinge , in Die Mysql Datenbank bekommt:

    Code
    Skin 0Leader 0Team 0


    Mein DialogResponse:
    switch(dialogid)
    {
    case DIALOG_REGISTER:
    {
    if(response)
    {
    if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Das angegebene Passwort war zu Kurz...\nBitte Registrier dich jetzt mit einem Passwort:","Register","Abbrechen");
    return 1;
    }
    else
    {
    CreateAccount(playerid, inputtext); //Account wird erstellt
    SetPVarInt(playerid,"Eingeloggt",1); //Die variable wird auf 1 gesetzt, damit wir nun die Skin Auswahl benutzen können ohne wieder nach unserem Passwort gefragt zu werden.
    SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen
    return 1;
    }
    }
    else
    {
    Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.
    }
    }
    case DIALOG_LOGIN:
    {
    if(response)
    {
    if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
    return 1;
    }
    else
    {
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, SpielerName, MAX_PLAYER_NAME);
    if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), true)) // Wir holen uns das Passwort aus der MySQL Datenbank und überprüfen es mit dem angegebenen passwort.
    {
    SetPVarInt(playerid,"Eingeloggt",1); //Falls beide passwörter übereinstimmen wird die Variable auf 1 gesetzt damit wir die Skin auswahl benutzen können.
    LoadPlayer(playerid); //Der Spieler wird "geladen", speich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden.
    SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen
    return 1;
    }
    else
    {
    //Wenn das Passwort falsch war, lassen wir erneut das Login fenster erscheinen damit der Spieler das Richtige Passwort eingibt.
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Das war das Falsche Passwort.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
    return 1;
    }
    }
    }
    else
    {
    Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.
    }
    }
    }
    return 1;
    }


    Jetz is meine Fragen, wie ich es am Besten machen Kann. Das Mysql diese Dinge, auch erkennt? Das sie Ingame Angezgeigt werden.


    Mit Freundlichen Grüßen
    Dome331

  • Also ich habe, momentan noch keine Datenbank Aufgespielt.


    So sieht, momentna meine Myslq-Querry;

    Code
    ROP TABLE IF EXISTS `accounts`;CREATE TABLE `accounts` (  `id` INT(11) NOT NULL AUTO_INCREMENT,  `Name` VARCHAR(24) NOT NULL,  `Passwort` VARCHAR(128) NOT NULL,  `Level` INT(11) NOT NULL DEFAULT '1',  `Geld` INT(11) NOT NULL DEFAULT '0',  `Kills` INT(11) NOT NULL DEFAULT '0',  `Tode` INT(11) NOT NULL DEFAULT '0',  `Health` FLOAT NOT NULL DEFAULT '100', `Team` FLOAT NOT NULL DEFAULT '100', `Skin` FLOAT NOT NULL DEFAULT '100', `Leader` FLOAT NOT NULL DEFAULT '100',  PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;


    Hoffe dies is richtig ;)


    Nun will halt, das Diese Dinge Ingame Anzeigt werden b.z.w Das Mysql diese Funktioneren Herauslesen kann


    Noch eine Frage!
    Wie kann ich Diesen, Befehl am besten für Mysql Scripten?:
    public OnPlayerSpawn(playerid)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    SetPlayerSkin(playerid, dini_Int(accFormat,"skin"));
    if(Spieler[playerid][team] == 1) //team polizei
    {
    SetPlayerPos(playerid, 199.4538,168.0576,1003.0234 );
    SetPlayerInterior(playerid, 3);
    }
    return 1;
    }


    Leider weiß ich grade nicht, Wie ich dies Hinbekommen Soll.


    MFG
    Dome331


    //edit Neue Frage Hinzugefügt

    Einmal editiert, zuletzt von Dome331 ()