Beiträge von #else

    So, jetzt aber :D
    Habe gerade noch nen Fehler gefunden der das Speichern verhindert. ;)


    Mach Dein OnPlayerDisconnect mal so:



    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[24],accFormat[128];
    GetPlayerName(playerid,pname,24);
    format(accFormat,128,"/Accounts/%s.ini",pname);
    if(dini_Exists(accFormat) && Eingeloggt[playerid] == 1)
    {
    print("Datei gefunden");
    dini_IntSet(accFormat,"Score",GetPlayerScore(playerid));
    dini_IntSet(accFormat,"Admin",Spieler[playerid][Admin]);
    dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(accFormat,"Kills",Spieler[playerid][Kills]);
    dini_IntSet(accFormat,"Tode",Spieler[playerid][Tode]);
    }
    Eingeloggt[playerid] = 0;
    return 1;
    }


    Ich hoffe das es jetzt klappt.. :D
    Will so langsam pennen gehen :D


    Greetz
    #else

    Mach mal die ORdnerrechte vom Ordner "Accounts" auf 777 sofern Du Linux benutzt..
    Aber ich denke mal Du machst es auf nem Homeserver, oder?


    Aber eine Datei wird erstellt, richtig?
    Bekommst Du denn wenn Du das passwort bei /login falsch eingibst ne Fehlermeldung?

    Naja, Textdraws sind nicht grad meine stärken.


    Ich werde mal schauen, naja evtl. noch CTF-Stats mit einbauen, wie oft man die Flagge hatte, wie oft fallen gelassen etc.


    Wäre ja auch mal was anderes? ;)


    Richtig, das wäre noch ne Idee! :)
    Textdraws sind garnicht mal so schwer.. Gibt nen sehr guten Ingame Editor dafür..
    Arbeite selber auch damit und habe schon so einige geile Textdraws "gezaubert".. :D

    Dann schau doch einfach mal mit nem print nach ob die Datei überhaupt gefunden wird?


    Dazu einfach bei z.b OnPlayerDisconnect:

    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[24],accFormat[128];
    GetPlayerName(playerid,pname,24);
    format(accFormat,sizeof(accFormat),"/Accounts/%s.ini",pname);
    if(dini_Exists(accFormat) && Spieler[playerid][eingeloggt])
    {
    print("Datei gefunden");
    dini_IntSet(accFormat,"Score",GetPlayerScore(playerid));
    dini_IntSet(accFormat,"Admin",Spieler[playerid][Admin]);
    dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(accFormat,"Kills",Spieler[playerid][Kills]);
    dini_IntSet(accFormat,"Tode",Spieler[playerid][Tode]);
    }
    Eingeloggt[playerid] = 0;
    return 1;
    }


    So, compilern, server restarten, einloggen, ausloggen (/q) und in die server_log.txt schauen ob da irgendwo "Datei gefunden" steht.

    #else: Welche Box wurde denn noch nicht gesehen? :D :D :D


    Naja, mitlerweile sind Textdraws fast keine Grenzen mehr gesetzt...
    Man kann diese mitlerweile richtig krass ausbauen und auch mit Icons etc. schmücken. :)
    Es gibt 100% Boxen die noch nie gesehen worden sind. ;)


    Greetz
    #else

    also komisch ich habe ein cmd eingebaut mit dem ich 200$ abgezogen bekomme aber wenn ich disconncete und in die Playerdatei gucken steht da immer noch 10000


    Dann machste es so:



    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[24],accFormat[128];
    GetPlayerName(playerid,pname,24);
    format(accFormat,sizeof(accFormat),"/Accounts/%s.ini",pname);
    if(dini_Exists(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"Score",GetPlayerScore(playerid));
    dini_IntSet(accFormat,"Admin",Spieler[playerid][Admin]);
    dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(accFormat,"Kills",Spieler[playerid][Kills]);
    dini_IntSet(accFormat,"Tode",Spieler[playerid][Tode]);
    }
    Eingeloggt[playerid] = 0;
    return 1;
    }



    Greetz
    #else

    Bin derzeit am überlegen ob dies veröffentlicht wird.


    Eventuell noch Verbesserungsvorschläge, zum Textdraw / Map?


    Und Danke, für deine Bewertung der Vorstellung. :)


    Okay. ;)


    Verbessern könnte man evtl. das Textdraw gleichfarbig mit den jeweiligen Teams zu machen.. Sprich Rot = Rot Blau = Blau.. :)
    Evtl. noch mit einer stark durchsichtigen Box schmücken?
    Oder um das ganze so richtig gut darzustellen, eine noch nie gesehene Box kreieren..?
    Irgendwas ausgefallenes oder so ;)


    Greetz
    #else

    Klein aber fein, gut gemacht!


    Eine Bewertung kann ich leider nicht abgeben da kein Code zu sehen ist...




    Greetz
    #else
    P.s
    Wird es noch veröffentlicht?

    Moin ;)


    Ich finde es nicht so überragend...
    Da fehlt das gewisse "Etwas"... Irgendwie...


    Naja, dennoch gut gemacht, ist ja schlieslich nicht jedermans Sache das Designen.. :)
    Weiterhin viel Spaß dabei. ;)


    Greetz
    #else

    Bestimmt im Login Command, oder?
    Ist mir nämlich auch gerade aufgefallen.. :D



    ocmd:login(playerid,params[])
    {
    new pass[128],pw[128],accFormat[128],name[24];
    if(sscanf(params,"s",pass)) return SendClientMessage(playerid,Orange,"TIPP: /login [Passwort]");
    GetPlayerName(playerid,name,24);
    format(accFormat,128,"/Accounts/%s.ini",name);
    if(!dini_Exists(accFormat)) return SendClientMessage(playerid,Rot,"Du musst dich erst registrieren!");
    format(pw,sizeof(pw),"%s",dini_Get(accFormat,"Passwort"));
    if(strcmp(pass,pw) == 0)
    {
    SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
    Spieler[playerid][Admin] = dini_Int(accFormat,"Admin");
    GivePlayerMoney(playerid,dini_Int(accFormat,"Geld")-GetPlayerMoney(playerid));
    Spieler[playerid][Kills] = dini_Int(accFormat,"Kills");
    Spieler[playerid][Tode] = dini_Int(accFormat,"Tode");
    Eingeloggt[playerid] = 1;
    SpawnPlayer(playerid);
    SendClientMessage(playerid,Gruen2,"Du hast dich erfolgreich eingeloggt.");
    }
    else return SendClientMessage(playerid,Rot,"Falsches Passwort angegeben!");
    return 1;
    }

    Speichern tut er es immer noch nicht und den Score läd er auch nciht

    Dann schau mal ob das mit dem Code funktioniert:





    ocmd:register(playerid,params[])
    {
    new pass[200],accFormat[128],name[24];
    if(sscanf(params,"s",pass)) return SendClientMessage(playerid,Orange,"TIPP: /register [Passwort]");
    GetPlayerName(playerid,name,24);
    format(accFormat,128,"/Accounts/%s.ini",name);
    if(!dini_Exists(accFormat))
    {
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",pass);
    dini_IntSet(accFormat,"Score",0);
    dini_IntSet(accFormat,"Admin",0);
    dini_IntSet(accFormat,"Geld",0);
    dini_IntSet(accFormat,"Kills",0);
    dini_IntSet(accFormat,"Tode",0);
    SpawnPlayer(playerid);
    SendClientMessage(playerid,Gruen2,"Du hast dich erfolgreich registriert.");
    Eingeloggt[playerid] = 1;
    }
    else return SendClientMessage(playerid,Rot,"Du bist bereits registriert!");
    return 1;
    }


    ocmd:login(playerid,params[])
    {
    new pass[128],pw[128],accFormat[128],name[24];
    if(sscanf(params,"s",pass)) return SendClientMessage(playerid,Orange,"TIPP: /login [Passwort]");
    GetPlayerName(playerid,name,24);
    format(accFormat,128,"/Accounts/%s.ini",name);
    if(!dini_Exists(accFormat)) return SendClientMessage(playerid,Rot,"Du musst dich erst registrieren!");
    format(pw,sizeof(pw),"%s",dini_Get(s,"Passwort"));
    if(strcmp(pass,pw) == 0)
    {
    SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
    Spieler[playerid][Admin] = dini_Int(accFormat,"Admin");
    GivePlayerMoney(playerid,dini_Int(accFormat,"Geld")-GetPlayerMoney(playerid));
    Spieler[playerid][Kills] = dini_Int(accFormat,"Kills");
    Spieler[playerid][Tode] = dini_Int(accFormat,"Tode");
    Eingeloggt[playerid] = 1;
    SpawnPlayer(playerid);
    SendClientMessage(playerid,Gruen2,"Du hast dich erfolgreich eingeloggt.");
    }
    else return SendClientMessage(playerid,Rot,"Falsches Passwort angegeben!");
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[24],accFormat[128];
    GetPlayerName(playerid,pname,24);
    format(accFormat,sizeof(accFormat),"/Accounts/%s.ini",pname);
    if(dini_Exists(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"Score",Spieler[playerid][Score]);
    dini_IntSet(accFormat,"Admin",Spieler[playerid][Admin]);
    dini_IntSet(accFormat,"Geld",Spieler[playerid][Geld]);
    dini_IntSet(accFormat,"Kills",Spieler[playerid][Kills]);
    dini_IntSet(accFormat,"Tode",Spieler[playerid][Tode]);
    }
    Eingeloggt[playerid] = 0;
    return 1;
    }

    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[24],accFormat[128];
    GetPlayerName(playerid,pname,sizeof(pname)); // 90
    format(accFormat,sizeof(accFormat),Player_Folder,pname);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"Score",Spieler[playerid][Score]);
    dini_IntSet(accFormat,"Admin",Spieler[playerid][Admin]);
    dini_IntSet(accFormat,"Geld",Spieler[playerid][Geld]);
    dini_IntSet(accFormat,"Kills",Spieler[playerid][Kills]);
    dini_IntSet(accFormat,"Tode",Spieler[playerid][Tode]);
    }
    Eingeloggt[playerid] = 0;
    return 1;
    }


    ocmd:register(playerid,params[])
    {
    new pass[200],accFormat[128]; // 280
    if(sscanf(params,"s",pass)) return SendClientMessage(playerid,Orange,"TIPP: /register [Passwort]");
    format(accFormat,sizeof(accFormat),Player_Folder,SpielerName[playerid]);
    if(!dini_Exists(accFormat))
    {
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",pass);
    dini_IntSet(accFormat,"Score",0);
    dini_IntSet(accFormat,"Admin",0);
    dini_IntSet(accFormat,"Geld",0);
    dini_IntSet(accFormat,"Kills",0);
    dini_IntSet(accFormat,"Tode",0);
    SpawnPlayer(playerid);
    SendClientMessage(playerid,Gruen2,"Du hast dich erfolgreich registriert.");
    Eingeloggt[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du bist bereits registriert!");
    }
    return 1;
    }


    Bittesehr. ;)



    Greetz
    #else

    Ich würde es umgekehrt machen.
    s durch accFOrmat tauschen.


    Mit s definierst Du nämlich Dein Passwort...
    Und hast in manchen Abfragen auch s verwendet..
    Da wird es sicherlich noch Fehler geben da wie gesagt Du "Passwort" mit "s" definierst und auch das Eingegebene = s ist...


    Z.b im Register Befehl fragst Du ab:


    if(!dini_Exists(s))


    Gibst "s" aber vorher den Wert vom Passwort...
    Heist er fragt ab ob z.B die Datei "Passwort123.ini" vorhanden ist..
    Das solltest Du Dir nochmal genauer anschauen!




    Greetz
    #else

    Alles klar.


    Dann versuch es mal so:



    ocmd:register(playerid,params[])
    {
    new pass[200],s[128],accFormat[128];
    if(sscanf(params,"s",pass)) return SendClientMessage(playerid,Orange,"TIPP: /register [Passwort]");
    format(accFormat,sizeof(accFormat),Player_Folder,SpielerName[playerid]);
    if(!dini_Exists(accFormat))
    {
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",pass);
    dini_IntSet(accFormat,"Score",0);
    dini_IntSet(accFormat,"Admin",0);
    dini_IntSet(accFormat,"Geld",0);
    dini_IntSet(accFormat,"Kills",0);
    dini_IntSet(accFormat,"Tode",0);
    SpawnPlayer(playerid);
    SendClientMessage(playerid,Gruen2,"Du hast dich erfolgreich registriert.");
    Eingeloggt[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du bist bereits registriert!");
    }
    return 1;
    }


    ocmd:login(playerid,params[])
    {
    new pass[128],s[128],pw[128],accFormat[128];
    if(sscanf(params,"s",pass)) return SendClientMessage(playerid,Orange,"TIPP: /login [Passwort]");
    format(accFormat,sizeof(accFormat),Player_Folder,SpielerName[playerid]);
    if(!dini_Exists(accFormat)) return SendClientMessage(playerid,Rot,"Du musst dich erst registrieren!");
    format(pw,sizeof(pw),"%s",dini_Get(s,"Passwort"));
    if(strcmp(pass,pw) == 0)
    {
    SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
    Spieler[playerid][Admin] = dini_Int(accFormat,"Admin");
    GivePlayerMoney(playerid,dini_Int(accFormat,"Geld")-GetPlayerMoney(playerid));
    Spieler[playerid][Kills] = dini_Int(accFormat,"Kills");
    Spieler[playerid][Tode] = dini_Int(accFormat,"Tode");
    Eingeloggt[playerid] = 1;
    SpawnPlayer(playerid);
    SendClientMessage(playerid,Gruen2,"Du hast dich erfolgreich eingeloggt.");
    }
    else return SendClientMessage(playerid,Rot,"Falsches Passwort angegeben!");
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[24],accFormat[128];
    GetPlayerName(playerid,pname,sizeof(pname);
    format(accFormat,sizeof(accFormat),Player_Folder,pname);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"Score",Spieler[playerid][Score]);
    dini_IntSet(accFormat,"Admin",Spieler[playerid][Admin]);
    dini_IntSet(accFormat,"Geld",Spieler[playerid][Geld]);
    dini_IntSet(accFormat,"Kills",Spieler[playerid][Kills]);
    dini_IntSet(accFormat,"Tode",Spieler[playerid][Tode]);
    }
    Eingeloggt[playerid] = 0;
    return 1;
    }


    Sollte funktionieren denke ich.



    Greetz
    #else


    #e 2 Kleine Fehler im Code entfernt

    Im Grunde ganz leicht!


    Du hast die Variablen vertauscht!
    Bei register hast du blos beim Passwort "s" stehen, sonst überall "accFormat"
    Da accFormat nicht formatiert ist, kann auch nichts in die Datei geschrieben werden da kein Pfad existiert.


    Änder also accFormat in s um und es sollte klappen. ;)


    Und zeig mal bitte die Definition von Player_Folder



    Greetz
    #else