Beiträge von alva

    Also am besten machst du es so:
    Du erstellst eine Variable, bspw. Skinid.
    Skinid = dini_Get(Spielerdatei,"skin"); bzw. mysql oder welches Filesystem/Speichersystem du benutzt.
    Nachdem du das geschafft hast, schreibst du unter OnPlayerRequestClass bzw unter deinem "Ladenstock":


    SetSpawnInfo(playerid, team, Skinid, Float:x, Float:y, Float:z, Float:Angle, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo);
    SpawnPlayer(playerid);


    Ich hoffe du kannst verstehen was ich meine :)


    Gruß,

    Edit:


    Ich habe es nun hinbekommen, ich hatte bei Passwort dieses komische dingens an ( dieser Schlüssel ), wobei nun jeder Spieler nur 1 einzigartiges Passwort haben kann, ich habe bei jedem Account dasselbe benutzt, daher ging es nicht.
    Ich habe nun den Schlüssel beim Namen gemacht, also das es halt nur 1 einzigartigen Namen gibt.


    Gruß,


    vielen Dank für eure Hilfe.


    Zitat von Blackace: ( http://forum.sa-mp.de/san-andr…stellt-keine-neuen-zeilen )


    Mach mal dein AUTO_INCREMENT an,
    du kannst keine Pirmärschlüssel nicht 2x den gleichen Wert zuweisen lassen

    public OnPlayerConnect(playerid)
    {
    if(IsPlayerNPC(playerid))return 1;
    if(GetPVarInt(playerid,"loggedin") == 0)
    {
    if(mysql_CheckAccount(playerid) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Es wurde noch kein Account in der Datenbank gefunden.\nBitte registriere dich mit deinem gewünschten Passwort.","Register","Exit");
    }
    else if(mysql_CheckAccount(playerid) == 1)
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde in der Datenbank von City-Gangfight gefunden.\nBitte gebe dein Passwort ein.","Login","Abbrechen");
    }
    }
    return 1;
    }


    stock mysql_CheckAccount(playerid)
    {
    new Query[128],Name[MAX_PLAYER_NAME],count;
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    mysql_real_escape_string(Name, Name);
    format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", Name);
    mysql_query(Query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    return count;
    }


    Ich finde keinen Fehler, ihr eventuell?

    Hey,
    seitdem ich mit MySQL arbeite, kann bei der Registrierung nur Maximal 1 Account erstellt werden, mehr geht nicht.
    Ich Registriere mich, logge mich aus, wieder ein -> "Es existiert kein Account."
    Sobald ich aber den 1 Account lösche, erstellt er einen neuen Account und speichert auch alles.
    Hier mein Stock um einen Account zu erstellen.


    stock CreateAccount(playerid, pass[])
    {
    new query[256],Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    mysql_real_escape_string(Name,Name);
    mysql_real_escape_string(pass,pass);
    format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, pass);
    mysql_query(query);
    SetPVarInt(playerid,"skin",45);
    return true;
    }

    Du siehst ja wie es aufgebaut ist, den Rest kannste selber, niemand wird dir hier irgendwelche Copy&Paste Dinge schreiben, die direkt zu deinem Script passen, das musst du selbst anpassen.

    ocmd:unban(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,COLOR_GREY,"Du bist kein Admin Rang 4!");
    new name[MAX_PLAYER_NAME];
    new grund[64];
    new SpielerDatei[128];
    if(sscanf(params,"ss",name,grund)) return SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /unban [Name][Grund]");
    new string[128];
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",name);
    (!dini_Exists(SpielerDatei))return SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler existiert nicht!");
    format(string,sizeof(string),"[Unban]: %s hat den Spieler %s entsperrt. Grund: %s",PlayerName(playerid),name,grund);
    dini_IntSet(SpielerDatei,"Baned",0); // HIER WIRD DER VERDAMMTE BAN AUF 0 GESETZT
    SendAdminMessage(string);
    return 1;
    }

    Du musst den "BANN" in der Spielerdatei auf 0 setzen, wie oft noch -.-


    dini_IntSet(Spielerdatei,"Baned",0);

    ocmd:unban(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,4))return SendClientMessage(playerid,COLOR_GREY,"Du bist kein Admin Rang 4!");
    new name[MAX_PLAYER_NAME];
    new grund[64];
    new SpielerDatei[128];
    if(sscanf(params,"ss",name,grund)) return SendClientMessage(playerid,COLOR_WHITE,"Benutzung: /unban [Name][Grund]");
    new string[128];
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",name);
    (!dini_Exists(SpielerDatei))return SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler existiert nicht!");
    format(string,sizeof(string),"[Unban]: %s hat den Spieler %s entsperrt. Grund: %s",PlayerName(playerid),name,grund);
    dini_IntSet(SpielerDatei,"Baned",0);
    SendAdminMessage(string);
    return 1;
    }


    Ich weiß nicht warum man eine Servervariable auf 0 setzt, wenn der Spieler höchstwarscheinlich nichtmal Online ist..


    Bro, das ist kein Copy & Paste Forum, Das Scripting Base Forum ist für die Hilfe von erstellen von Gamemode's und ich denke das solltest du schon selbst schaffen.

    SQLite und MySQL sind eigentlich meiner Meinung nach gleich.
    Bei MySQL greift der Server auf eine "externe" Datenbank zu, das ist ein wenig sicherer, falls mal was geklaut wird, glaube ich zumindest.