Beiträge von SkrilLinux

    Hey,
    ich habe Probleme mit der Fraktionskasse, alles funktioniert bis auf das sie bei einem Neustart wieder auf 0 ist.
    Das Speichern funktioniert nicht...
    Weiss einer wieso?


    new fkassegroove;


    OnGameModeInit:
    GrooveLaden();


    public OnGameModeExit()
    {
    GrooveSpeichern();
    return 1;
    }


    ocmd:auszahlen(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,3))return SCM(playerid,ROT,"Du bist kein Mitglied der Groove-Street!");
    new money,string[44];
    if(sscanf(params,"i",money)) return SCM(playerid,ROT,"VERWENDUNG: /auszahlen [Betrag]");
    if(fkassegroove <= money)return SCM(playerid,ROT,"Soviel Geld ist nicht in der Kasse!");//Abfrage ob das geld oder mehr in der Kasse
    fkassegroove -= money;//Wir ziehen aus der Staatskasse das geldraus
    GivePlayerMoney(playerid,money);
    GrooveSpeichern(); // das Geld auch gespeichert wird.
    format(string,sizeof(string),"Du hast %d aus der Kasse genommen",money);
    SendClientMessage(playerid,ROT,string);
    return 1;
    }


    ocmd:einzahlen(playerid,params[])
    {
    if(isPlayerInFrakt(playerid,3)) // anpassen
    {
    new money,string[44];
    if(sscanf(params,"i",money)) return SCM(playerid,ROT,"VERWENDUNG: /einzahlen [Betrag]");
    if(GetPlayerMoney(playerid) < money) return SCM(playerid,ROT,"So viel Geld hast du nicht!");
    fkassegroove += money;
    GivePlayerMoney(playerid,-money);
    GrooveSpeichern();
    format(string,sizeof(string),"Du hast %i in die Fraktionkasse eingezahlt!",money);
    SCM(playerid,ROT,string);
    }
    return 1;
    }
    ocmd:fkasse(playerid,params[])
    {
    if(isPlayerInFrakt(playerid,3)) // anpassen!
    {
    #pragma unused params
    new string[66];
    format(string,sizeof(string),"Aktueller Kassenstand: %i",fkassegroove);
    SendClientMessage(playerid,ROT,string);
    }
    return 1;
    }


    Und die Stocks:


    stock GrooveSpeichern()
    {
    new pfad[18]; // wieder der Pfad
    format(pfad,sizeof(pfad),"Fraktionskassen/Groove.txt"); // wo es gespeichert werden sollte
    dini_IntSet(pfad,"KassenstandGroove",fkassegroove); // hier speichern wir das Geld, in unserem Fall wäre es jetzt 0 :)
    }


    stock GrooveLaden()
    {
    new pfad[44]; // wieder der Pfad
    format(pfad,sizeof(pfad),"Fraktionskassen/Groove.txt");
    dini_IntSet(pfad,"KassenstandGroove",fkassegroove);
    }

    Das mit dem new Query[500];
    Habe ich schon probiert kommt das gleiche bei raus -.-
    Also ich habe jetzt:
    #define mysql_host "localhost"
    #define mysql_user "zensiert"
    #define mysql_password "zensiert"
    #define mysql_database "samp1756_25"


    Und:
    mysql_connect(mysql_host,mysql_user,mysql_database ,mysql_password);


    Wie mache ich jetzt ein Login und Register System darüber, das von oben bringt mir nur Errors...
    Ich möchte gerne ein einfaches haben :)

    Hey,
    ich habe Probleme bei der INstallation von mysql, besser gesagt beim Register und Login System...
    Hier mein Error:


    Das habe ich oben:
    #include <a_mysql>


    C:\Users\Robin\Desktop\SAMP-Server\gamemodes\funserver2012.pwn(8107) : error 017: undefined symbol "Query"
    C:\Users\Robin\Desktop\SAMP-Server\gamemodes\funserver2012.pwn(8107) : error 017: undefined symbol "Query"
    C:\Users\Robin\Desktop\SAMP-Server\gamemodes\funserver2012.pwn(8107) : error 029: invalid expression, assumed zero
    C:\Users\Robin\Desktop\SAMP-Server\gamemodes\funserver2012.pwn(8107) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    Und hier die Zeilen:
    if(dialogid == MYSQL_DIALOG_REGISTER)
    {
    if(strlen(inputtext) == 0)
    {
    ShowPlayerDialog(playerid,MYSQL_DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Register - Enter your password","You are about to register a new account! Please choose the password for it!","Register!","");
    }
    else
    {
    new EscapedText[60];
    mysql_real_escape_string(inputtext, EscapedText);
    format(Query,sizeof(Query),"INSERT INTO `Users` (Username,Password,Money) VALUES ('%s','%s,'0')",Spielername(playerid),EscapedText);
    mysql_query(Query);
    SendClientMessage(playerid,FARBE_GRÜN,"You have been successfully registered!");
    GivePlayerMoney(playerid,5000);
    SetPlayerScore(playerid,100);
    }
    }
    if(dialogid == MYSQL_DIALOG_LOGIN)
    {
    if(strlen(inputtext) == 0)
    {
    ShowPlayerDialog(playerid,MYSQL_DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register - Enter your password","You are about to register a new account! \nPlease choose the password for it! \n","Register!","");
    }
    else
    {
    LoginPlayer(playerid,inputtext);
    }
    }


    Vieleicht kann mir ja jemand Helfen :)
    Ich gucke bei diesem Tutorial, aber da hat er es auch so -.-
    http://forum.sa-mp.com/showthread.php?t=305994

    Und bitte sei nicht so untätig und speichere Passwörter im Klartext (Dafür sollte man dich schlagen). Möglichkeiten hier:



    Ansonsten stellste eine wandelnde Gefahr für alle dar.


    Gruss


    Schick mal deinen DIALOG_LOGIN


    Steht oben noch versteckt aber hier:


    if(dialogid == LOGIN_DIALOG)//Login
    {
    if(response==0)
    {
    SendClientMessage(playerid,FARBE_ROT,"Du hast den Vorgang Abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,FARBE_ROT,"Das gewünschte Passwort war zu kurz!");
    new string[128];
    format(string, sizeof(string), "{FFFF00}Willkommen zurück %s gib bitte dein Passwort ein:", Spielername(playerid));
    ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"{0076FF}Einloggen",string,"Login","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }


    if(dialogid == REGISTER_DIALOG)//Register
    {
    if(response==0)
    {
    SendClientMessage(playerid,FARBE_ROT,"Du hast den Vorgang Abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,FARBE_ROT,"Das gewünschte Passwort ist zu kurz!");
    ShowPlayerDialog(playerid,REGISTER_DIALOG,DIALOG_STYLE_INPUT,"{0076FF}Registrieren","{FFFF00}Willkommen, gib bitte das gewünschte Passwort ein:","Registrieren","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    SetPlayerColor(playerid,FARBE_GELB);
    return 1;
    }
    }
    }

    Brauche immernoch hilfe :(
    Das muss an dem hier liegen:


    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(gettime()<dini_Int(Spielerdatei,"timeban"))
    {
    SendClientMessage(playerid,FARBE_ROT,"Du bist noch gebannt!");
    Kick(playerid);
    return 1;
    }
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,FARBE_GRÜN,"Du hast dich Erfolgreich Eingeloggt!");
    new pName[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "{0000FF}***{00C1FF}---%s %s--- {0000FF}hat den Server betreten.***",Admintextname(playerid), pName);
    SendClientMessageToAll(FARBE_HELLBLAU, string);
    }
    else
    {
    SendClientMessage(playerid,FARBE_ROT,"Falsches Passwort!");
    new string[128];
    format(string, sizeof(string), "{FFFF00}Willkommen zurück %s gib bitte dein Passwort ein:", Spielername(playerid));
    ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"{0076FF}Einloggen",string,"Login","Abbrechen");
    return 1;
    }
    return 1;
    }


    @ Dudalus Ich will das erstmal fixxen :D
    Dann kann ich mich darum kümmern ^^

    OnDialogResponse für den Fall dialogid==LOGIN_DIALOG wäre hier am interessantesten, glaube ich.


    Spoiler anzeigen
    if(dialogid == LOGIN_DIALOG)//Login
    {
    if(response==0)
    {
    SendClientMessage(playerid,FARBE_ROT,"Du hast den Vorgang Abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,FARBE_ROT,"Das gewünschte Passwort war zu kurz!");
    new string[128];
    format(string, sizeof(string), "{FFFF00}Willkommen zurück %s gib bitte dein Passwort ein:", Spielername(playerid));
    ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"{0076FF}Einloggen",string,"Login","Abbrechen");
    return 1;
    }
    else
    {
    Login(playerid,inputtext);
    return 1;
    }
    }
    }

    Spoiler anzeigen
    if(dialogid == REGISTER_DIALOG)//Register
    {
    if(response==0)
    {
    SendClientMessage(playerid,FARBE_ROT,"Du hast den Vorgang Abgebrochen.");
    Kick(playerid);
    return 1;
    }
    if(response==1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,FARBE_ROT,"Das gewünschte Passwort ist zu kurz!");
    ShowPlayerDialog(playerid,REGISTER_DIALOG,DIALOG_STYLE_INPUT,"{0076FF}Registrieren","{FFFF00}Willkommen, gib bitte das gewünschte Passwort ein:","Registrieren","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,inputtext);
    SetPlayerColor(playerid,FARBE_GELB);
    return 1;
    }
    }
    }

    Hallo,
    ich habe heute festgestellt das ich wenn ich mich einlogge irgendein Passwort eingeben kann und dann ist man auf dem server, das sollte natürlich nicht sein :D
    Ich finde den Fehler nicht, vieleicht könnt ihr ihn ja finden:


    Spoiler anzeigen
    OnPlayerConnect:

    Spoiler anzeigen
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    new string[128];
    format(string, sizeof(string), "{FFFF00}Willkommen zurück %s gib bitte dein Passwort ein:", Spielername(playerid));
    ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"{0076FF}Einloggen",string,"Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,REGISTER_DIALOG,DIALOG_STYLE_INPUT,"{0076FF}Registrieren","{FFFF00}Willkommen, gib bitte das gewünschte Passwort ein:","Registrieren","Abbrechen");
    }

    Spoiler anzeigen
    Die Stocks:

    Spoiler anzeigen
    stock Register(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",key);
    SendClientMessage(playerid,FARBE_GRÜN,"Du hast dich Erfolgreich Registriert!");
    new pName[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "{0000FF}***{00C1FF}---%s %s--- {0000FF}hat den Server betreten.***",Admintextname(playerid), pName);
    SendClientMessageToAll(FARBE_HELLBLAU, string);
    SetPlayerScore(playerid,0);
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }

    Spoiler anzeigen
    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(gettime()<dini_Int(Spielerdatei,"timeban"))
    {
    SendClientMessage(playerid,FARBE_ROT,"Du bist noch gebannt!");
    Kick(playerid);
    return 1;
    }
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,FARBE_GRÜN,"Du hast dich Erfolgreich Eingeloggt!");
    new pName[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "{0000FF}***{00C1FF}---%s %s--- {0000FF}hat den Server betreten.***",Admintextname(playerid), pName);
    SendClientMessageToAll(FARBE_HELLBLAU, string);
    }
    else
    {
    SendClientMessage(playerid,FARBE_ROT,"Falsches Passwort!");
    new string[128];
    format(string, sizeof(string), "{FFFF00}Willkommen zurück %s gib bitte dein Passwort ein:", Spielername(playerid));
    ShowPlayerDialog(playerid,LOGIN_DIALOG,DIALOG_STYLE_PASSWORD,"{0076FF}Einloggen",string,"Login","Abbrechen");
    return 1;
    }
    return 1;
    }

    Spoiler anzeigen
    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPlayerSkin(playerid,dini_Int(Spielerdatei,"Skin"));
    SetPlayerColor(playerid,dini_Int(Spielerdatei,"Namenfarbe"));
    SetPlayerWantedLevel(playerid,dini_Int(Spielerdatei,"Wanted"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Waffenschein",dini_Int(Spielerdatei,"Waffenschein"));
    SetPVarInt(playerid,"Job",dini_Int(Spielerdatei,"Job"));
    SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
    SetPVarInt(playerid,"paytime",dini_Int(Spielerdatei,"paytime"));
    SetPVarInt(playerid,"PlayHours",dini_Int(Spielerdatei,"PlayHours"));
    SetPVarInt(playerid,"PlayMinutes",dini_Int(Spielerdatei,"PlayMinutes"));
    SetPVarInt(playerid,"Tode",dini_Int(Spielerdatei,"Tode"));
    SetPVarInt(playerid,"Kills",dini_Int(Spielerdatei,"Kills"));
    SetPVarInt(playerid,"loggedin",1);
    if(GetPVarInt(playerid,"Baned")== 1)
    {
    SendClientMessage(playerid,FARBE_ROT,"Du bist vom Server gebannt!");
    Kick(playerid);
    }
    SetPVarInt(playerid,"Führerschein",dini_Int(Spielerdatei,"Führerschein"));
    SetPVarInt(playerid,"Bootschein",dini_Int(Spielerdatei,"Bootschein"));
    SetPVarInt(playerid,"LKW Schein",dini_Int(Spielerdatei,"LKW Schein"));
    SetPVarInt(playerid,"Flugschein",dini_Int(Spielerdatei,"Flugschein"));
    SetPVarInt(playerid,"Motorradschein",dini_Int(Spielerdatei,"Motorradschein"));
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }

    Spoiler anzeigen
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")== 1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    new pstunde, pminute, psekunde;
    new pjahr, pmonat, ptag;
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Uhrzeit",gettime(pstunde,pminute,psekunde));
    dini_IntSet(Spielerdatei,"Datum",getdate(pjahr,pmonat,ptag));
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Wanted",GetPlayerWantedLevel(playerid));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Waffenschein",GetPVarInt(playerid,"Waffenschein"));
    dini_IntSet(Spielerdatei,"Job",GetPVarInt(playerid,"Job"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    dini_IntSet(Spielerdatei,"timeban",GetPVarInt(playerid,"timeban"));
    dini_IntSet(Spielerdatei,"Skin",GetPlayerSkin(playerid));
    dini_IntSet(Spielerdatei,"Namenfarbe",GetPlayerColor(playerid));
    dini_IntSet(Spielerdatei,"Führerschein",GetPVarInt(playerid,"Führerschein"));
    dini_IntSet(Spielerdatei,"Bootschein",GetPVarInt(playerid,"Bootschein"));
    dini_IntSet(Spielerdatei,"LKW Schein",GetPVarInt(playerid,"LKW Schein"));
    dini_IntSet(Spielerdatei,"Flugschein",GetPVarInt(playerid,"Flugschein"));
    dini_IntSet(Spielerdatei,"Motorradschein",GetPVarInt(playerid,"Motorradschein"));
    dini_IntSet(Spielerdatei,"paytime",GetPVarInt(playerid,"paytime"));
    dini_IntSet(Spielerdatei,"PlayHours",GetPVarInt(playerid,"PlayHours"));
    dini_IntSet(Spielerdatei,"PlayMinutes",GetPVarInt(playerid,"PlayMinutes"));
    dini_IntSet(Spielerdatei,"Tode",GetPVarInt(playerid,"Tode"));
    dini_IntSet(Spielerdatei,"Kills",GetPVarInt(playerid,"Kills"));
    }
    return 1;
    }