Beiträge von Privat

    Schreibe zukünftlich deine Codes / Zeilen bitte im !


    Dann ist das übersichtlicher und man sieht es besser.


    Damit du den /unlock Befehl nicht mehr benötigst, musst du mit Variablen arbeiten!


    Grüße,
    TheBester

    Also grundsätzlich, wenn du ein Code / Zeilen postest, dann bitte nur im  


    Ich sehe da auf dem ersten Blick kein Klammerfehler, aber welche Errors / Warnings bekommst du denn?
    Zeig die mal bitte.
    Muss ja nicht immer heißen, dass es gleich ein Klammerfehler ist! :)


    Grüße,
    TheBester

    Ja testen will ich es wohl, aber wenn es klappt, will ich das auch wohl so lassen. Sollten dann später Probleme damit aufkommen, werde ich das sofort wieder rückgängig machen :)


    Also, weiß nun einer, außer OnPlayerUpdate, da ich dies gerne meiden möchte ^^

    Hab es nun so:
    public UpdateTacho() //Tacho Public
    {
    for(new i = 0;i<MAX_PLAYERS;i++) //Forschleife
    {
    if(IsPlayerConnected(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER && !IsPlayerNPC(i)) //Abfrgae ob Spieler in Car sitzt
    {
    new Float:Strecke,Float:Geschwindigkeit,Float:health;//Neue Variablen
    GetVehicleHealth(GetPlayerVehicleID(i),health);
    GetVehiclePos(GetPlayerVehicleID(i),X1[i],Y1[i],Z1[i]); //Geben dem Auto die erste Position
    Strecke = floatsqroot(floatpower(floatabs(floatsub(X1[i],X2[i])),2)+floatpower(floatabs(floatsub(Y1[i],Y2[i])),2)+floatpower(floatabs(floatsub(Z1[i],Z2[i])),2));//Rechnen die Geschwindigkeit aus
    Geschwindigkeit = (Strecke / (TACHOTIMER /100)) * 3.6; //Teilen das durch unseren TACHOTIMER define. Danach durch 1000 und dann mal 3,6. Damit es in Killometer ausgegeben wird.
    new string[750]; //definen unseren String
    format(string,750," ~b~%s~n~~r~Geschw. ~w~%d km/h~n~~r~Tank: ~w~%i Liter~n~~r~Zustand: ~w~%.2f%",Fahrzeugname[GetVehicleModel(GetPlayerVehicleID(i))-400],floatround(Geschwindigkeit),Tank[GetPlayerVehicleID(i)],health); //Geben unseren TextDraw aus
    TextDrawSetString(Tacho[i],string); //Updaten unseren Tacho
    GetVehiclePos(GetPlayerVehicleID(i),X2[i],Y2[i],Z2[i]); //Geben dem Auto die zweite Position
    TextDrawShowForPlayer(i,Tacho[i]); //Zeigen unserem Player den Tacho
    }
    else //Wenn er kein Fahrer ist oder in keinem Auto sitzt oder er NPC ist, passiert folgendes
    {
    TextDrawHideForPlayer(i,Tacho[i]); //TextDraw wird nicht angezeigt
    }
    }
    return 1;
    }


    #define TACHOTIMER 100
    timer = SetTimer("UpdateTacho",100,true);


    Aber er zeigt nur bis 10km/h an

    Ich habe es nun so:


    stock SpielerSpeichern(playerid)
    {
    new Spielerdatei[500];
    format(Spielerdatei,sizeof(Spielerdatei),"/User/%s.txt",SpielerName(playerid));
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    GetPlayerMoney(playerid),GetPVarInt(playerid,"Geld");
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    return 1;
    }
    stock SpielerLaden(playerid)
    {
    new Spielerdatei[64];
    format(Spielerdatei,sizeof(Spielerdatei),"/User/%s.txt",SpielerName(playerid));
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    return 1;
    }


    Wenn ich dann einen Restart aus der Konsole mache, steht mein Adminlevel bei 0


    Grüße,
    TheBester

    Guten Tag,
    Ich logge mich mit dem Adminrang 6 ein, und wenn ich offline gehe, steht im Scriptfiles Ordner alles auf 0. Also Adminrang = 0, Geschlecht = 0, usw.


    Das Passwort wird aber nicht resettet.
    stock SpielerSpeichern(playerid)
    {
    new Spielerdatei[128],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Test/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Wanteds",GetPlayerWantedLevel(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Herkunft",GetPVarInt(playerid,"Herkunft"));
    dini_IntSet(Spielerdatei,"Geschlecht",GetPVarInt(playerid,"Geschlecht"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Skin",GetPlayerSkin(playerid));
    dini_IntSet(Spielerdatei,"tban",GetPVarInt(playerid,"tban"));
    return 1;
    }
    stock SpielerLaden(playerid)
    {
    new Spielerdatei[128],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Test/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    SetPlayerWantedLevel(playerid,dini_Int(Spielerdatei,"Wanteds"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Herkunft",dini_Int(Spielerdatei,"Herkunft"));
    SetPVarInt(playerid,"Geschlecht",dini_Int(Spielerdatei,"Geschlecht"));
    SetPlayerSkin(playerid,dini_Int(Spielerdatei,"Skin"));
    SetPVarInt(playerid,"tban",dini_Int(Spielerdatei,"tban"));
    return 1;
    }


    Ich bitte um Hilfe.


    Grüße,
    TheBester

    Ich glaube, auch wenn er das noch nicht kann, brauchen wir ihn den Befehl nicht scripten.
    Wenn er Probleme mit dem Scripten haben sollte, dann soll er es entweder lassen, oder üben.
    Wenn er dann immer noch Schwierigkeiten haben sollte, kann er ja immer noch hier nach fragen!


    Grüße,
    TheBester

    Das klappt immernoch nicht, kann wenn einer dazu bereit ist, mir einen guten Tban Befehl hier schreiben? Wäre echt nett, oder mir mit dem Befehl weiter helfen

    Gutne Tag,
    Ich habe gerade in der SuFu ein Tban Tutorial gefunden, aber der klappt nicht:


    stock Tban(playerid,const string[],dauer,bannerid)
    {
    new timestamp,str[128],pfad[128];
    timestamp = gettime();
    new sekunden = dauer * 60;
    timestamp += sekunden;
    new name[MAX_PLAYER_NAME],bannername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerName(bannerid,bannername,sizeof(bannername));
    format(str,sizeof(str),"AdmMsg: %s wurde von %s für %d Minuten gebannt",name,bannername,dauer);
    SendClientMessageToAll(ROT,str);
    format(str,sizeof(str),"Grund: %s",string);
    SendClientMessageToAll(ROT,str);
    Kick(playerid);
    dini_IntSet(pfad,"tbans/%s.txt",timestamp);
    return 1;
    }
    dcmd_tban(playerid,params[])
    {
    new pID,grund[64],dauer;
    if(sscanf(params, "usi", pID, grund,dauer))return SendClientMessage(playerid,GRAU,"VERWENDE: /tban [ID] [Grund] [Dauer]");
    Tban(pID,grund,dauer,playerid);
    return 1;
    }
    public OnPlayerConnect(playerid)
    {
    SpielerLaden(playerid);
    new string[300],string1[300],name[MAX_PLAYER_NAME],Spielerdatei[128],pfad[128];
    GetPlayerName(playerid,name,sizeof(name));
    new timestamp = gettime();
    new bisgebannt = dini_Int(pfad,"tbans");
    if(timestamp < bisgebannt) //wenn der gerade genommene Timestamp kleiner als bisgebannt ist, liegt das entbannungsdatum in der Zukunft.
    {
    new differenz = bisgebannt - timestamp; //wir subtrahieren bisgebannt von timestamp, wir erhalten also die Zeit in Sekunden wie lange der Spieler noch gebannt ist.
    new minuten = differenz / 60; //wir machen aus den Sekunden Minuten....
    new str[64]; //neuer String wird deklariert....
    format(str,sizeof(str),"Du bist noch %i Minuten gebannt!",minuten); //So bekommt der Spieler sogar noch angezeigt, wie langer er noch genau gebannt ist.
    SendClientMessage(playerid,ROT,str); //String wird dem Spieler ausgegeben
    Kick(playerid);//Kick erfolgt
    }
    format(Spielerdatei,sizeof(Spielerdatei),"/Test/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    format(string1,sizeof(string1),"{FAFAFA} Herzlich Willkommen zurück!\n Dein Benutzername: %s\n\nLogge dich nun mit deinen Daten(Passwort) ein!",name);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{DF7401}[SoA]: {FAFAFA}Login",string1,"Login","Abbrechen");
    }
    else
    {
    format(string,sizeof(string),"{FAFAFA} Herzlich Willkommen, Neuling %s!\n\n Damit du hier in der nächsten Zeit weiter hin spielen kannst,\n musst du dir als aller erstes ein Account anlegen!",name);
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"{DF7401}[SoA]: {FAFAFA}Registrierung",string,"Register","Abbrechen");
    }
    return 1;
    }


    Es wird nichts in dem Ordner "tbans" erstellt, und ich kann mich nach dem tban sofort wieder einloggen!


    Bitte helft mir.
    Grüße,
    TheBester

    Du müsstest bei dein Timeban auch bei OnPlayerConnect abfragen, ob der noch ein Timeban hat, wenn ja => Kicken, wenn nein => connecten!


    Grüße,
    TheBester