Knast - Relogg - schlechte Kombi ;(

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
  • wieder das gleiche, er bleibt im Knast drinnen.


    Brauchst du noch welche dateien ?


    überraschend ist in seiner Datei nach relogg, der knast auf 1:



    regards

  • new KnastTimerx;
    new MinTimerx;


    OnPlayerDisconnect:


    KillTimer(KnastTimerx);
    SpielerInfo[playerid][pKnast] = 2;
    SpielerInfo[playerid][pZeit] = 0;
    SpielerInfo[playerid][pDifferenzZeit] = SpielerInfo[playerid][pZeit] - SpielerInfo[playerid][pMinZeit];


    OnPlayerSpawn:


    if(SpielerInfo[playerid][pKnast] == 1)
    {
    SetPlayerPos(playerid, 215.4654,110.5644,999.0156 );
    SetPlayerInterior(playerid, 10);
    SendClientMessage(playerid, FARBE_ROT, "Du hast deine Knastzeit noch nicht abgesessen !");
    return 1;
    }

    if(SpielerInfo[playerid][pKnast] == 2)
    {
    SetPlayerPos(playerid, 215.4654,110.5644,999.0156 );
    SetPlayerInterior(playerid,10);
    SetTimerEx("KnastTimer2", SpielerInfo[playerid][pDifferenzZeit]*60*1000, false, "d",playerid);
    return 1;
    }


    OnPlayerDeath:


    if(SpielerInfo[playerid][pKnast] == 1)
    {
    SetPlayerPos(playerid, 215.4654,110.5644,999.0156 );
    SetPlayerInterior(playerid, 10);
    SendClientMessage(playerid, FARBE_ROT, "Du hast deine Knastzeit noch nicht abgesessen !");
    return 1;
    }

    if(SpielerInfo[playerid][pKnast] == 2)
    {
    SetPlayerPos(playerid, 215.4654,110.5644,999.0156 );
    SetPlayerInterior(playerid, 10);
    SendClientMessage(playerid, FARBE_ROT, "Du hast deine Knastzeit noch nicht abgesessen !");
    return 1;
    }


    ocmd:einsperren:


    ocmd:einsperren(playerid,params[])
    {
    new pID,Time,MSG[150],MSGToAll[225];
    if(SpielerInfo[playerid][pFraktion] != 6)return SendClientMessage(playerid,FARBE_ROT,"Du bist kein Polizist !");
    if(!IsPlayerInRangeOfPoint(playerid,2.0,221.9013,121.0338,999.0294))return SendClientMessage(playerid,FARBE_ROT, "Du bist nicht am Arrest-Point !");
    if(sscanf(params,"ui", pID,Time))return SendClientMessage(playerid, FARBE_GRAU, "Fehler: /einsperren [Username/ID] [Zeit in MIN]");
    if(GetPlayerWantedLevel(pID == 0))return SendClientMessage(playerid,FARBE_ROT,"Error: Du kannst nur Wanteds einsperren!");
    if(!GetDistanceBetweenPlayers(playerid,pID,25))return SendClientMessage(playerid,FARBE_ROT,"Error: Der Spieler ist nicht in deiner Nähe !");
    format(MSG,sizeof(MSG),"Du wurdest von Officer %s für %i Minuten in den Knast gesteckt!", SpielerName(playerid), Time);
    SendClientMessage(pID,FARBE_HELLBLAU, MSG);
    format(MSGToAll,sizeof(MSGToAll), "** %s wurde von Officer %s in den Knast gesteckt **",SpielerName(pID),SpielerName(playerid));
    SendClientMessageToAll(FARBE_ROT, MSGToAll);
    KnastTimerx = SetTimerEx("KnastTimer", Time*1000*60, false,"d",pID);
    SetPlayerPos(pID,215.4654,110.5644,999.0156);
    SetPlayerWantedLevel(pID,0);
    SpielerInfo[pID][pKnast] = 1;
    SpielerInfo[pID][pZeit] = Time;
    MinTimerx = SetTimerEx("MinTimer",1000*60, false, "d", pID);
    return 1;
    }


    publics:


    forward KnastTimer(pID);
    public KnastTimer(pID)
    {
    SetPlayerPos(pID,221.9013,121.0338,999.0294);
    SendClientMessage(pID,FARBE_HELLBLAU, "Du wurdest aus dem Knast entlassen !");
    SpielerInfo[pID][pKnast] = 0;
    return 1;
    }


    forward KnastTimer2(playerid);
    public KnastTimer2(playerid)
    {
    SetPlayerPos(playerid,221.9013,121.0338,999.0294);
    SendClientMessage(playerid, FARBE_HELLBLAU, "Du wurdest aus dem Knast entlassen !");
    SpielerInfo[playerid][pKnast] = 0;
    return 1;
    }


    forward MinTimer(pID);
    public MinTimer(pID)
    {
    SpielerInfo[pID][pMinZeit] += 1;
    if(SpielerInfo[pID][pZeit] == SpielerInfo[pID][pMinZeit])
    {
    KillTimer(MinTimerx);
    }
    return 1;
    }


    regards, und vielen Dank für deine Mühe. :)

  • KillTimer(KnastTimerx);
    SpielerInfo[playerid][pKnast] = 2;
    SpielerInfo[playerid][pDifferenzZeit] = SpielerInfo[playerid][pZeit] - SpielerInfo[playerid][pMinZeit];
    SpielerInfo[playerid][pZeit] = 0;
    SpielerInfo[playerid][pMinZeit]=0;


    So sieht es schon besser aus.
    Denn die Variable pZeit wird ja nach dem löschen ja noch verwendet.. Logischer Fehler^^

  • Funkt net.


    Aus der datei:


    SQL
    Knast=1Zeit=2


    Obwhol er reloggt hat. :(


    regards

  • stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    new Name[MAX_PLAYER_NAME],path[64];
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    format(path, sizeof(path),"/Spieler/%s.ini", Name);
    SpielerInfo[playerid][pScore] = dini_Int(path, "Level");
    SpielerInfo[playerid][pAdmin] = dini_Int(path, "Admin");
    SpielerInfo[playerid][pKnast] = dini_Int(path, "Knast");
    SpielerInfo[playerid][pMinZeit] = dini_Int(path, "MinZeit");
    SpielerInfo[playerid][pZeit] = dini_Int(path, "Zeit");
    SpielerInfo[playerid][pDifferenzZeit] = dini_Int(path, "DifferenzZeit");
    SpielerInfo[playerid][pTutorial] = dini_Int(path, "Tutorial");
    SpielerInfo[playerid][pFraktion] = dini_Int(path, "Fraktion");
    SpielerInfo[playerid][pGeld] = dini_Int(path, "Geld");
    SpielerInfo[playerid][pLeader] = dini_Int(path, "Leader");
    SpielerInfo[playerid][pRang] = dini_Int(path, "Rang");
    SpielerInfo[playerid][pContract] = dini_Int(path, "Contract");
    SpielerInfo[playerid][pContractGeld] = dini_Int(path, "ContractGeld");
    SpielerInfo[playerid][pTazed] = dini_Int(path, "Tazed");
    SpielerInfo[playerid][pHaus] = dini_Int(path, "Haus");
    }
    return 1;
    }


    stock SavePlayer(playerid)
    {
    if(GetPVarInt(playerid, "Eingeloggt") == 1)
    {
    new Name[MAX_PLAYER_NAME],path[64];
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    format(path, sizeof(path),"/Spieler/%s.ini", Name);
    dini_IntSet(path,"Level", SpielerInfo[playerid][pScore]);
    dini_IntSet(path,"Admin", SpielerInfo[playerid][pAdmin]);
    dini_IntSet(path,"Knast",SpielerInfo[playerid][pKnast]);
    dini_IntSet(path, "MinZeit", SpielerInfo[playerid][pMinZeit]);
    dini_IntSet(path, "Zeit", SpielerInfo[playerid][pZeit]);
    dini_IntSet(path, "DifferenzZeit", SpielerInfo[playerid][pDifferenzZeit]);
    dini_IntSet(path, "Tutorial", SpielerInfo[playerid][pTutorial]);
    dini_IntSet(path, "Fraktion",SpielerInfo[playerid][pFraktion]);
    dini_IntSet(path, "Contract", SpielerInfo[playerid][pContract]);
    dini_IntSet(path, "ContractGeld", SpielerInfo[playerid][pContractGeld]);
    dini_IntSet(path,"Geld", SpielerInfo[playerid][pGeld]);
    dini_IntSet(path,"Leader", SpielerInfo[playerid][pLeader]);
    dini_IntSet(path,"Rang", SpielerInfo[playerid][pRang]);
    dini_IntSet(path,"Tazed", SpielerInfo[playerid][pTazed]);
    dini_IntSet(path,"Haus", SpielerInfo[playerid][pHaus]);
    }
    return 1;
    }


    enum SpielerDaten
    {
    pScore,
    pAdmin,
    pTutorial,
    pGeld,
    pKnast,
    pMinZeit,
    pZeit,
    pDifferenzZeit,
    pFraktion,
    pLeader,
    pRang,
    pTazed,
    pContract,
    pContractGeld,
    pHaus


    }


    regards

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • public OnPlayerDisconnect(playerid, reason)
    {
    SavePlayer(playerid);
    DeletePVar(playerid,"Eingeloggt");

    KillTimer(KnastTimerx);
    SpielerInfo[playerid][pKnast] = 2;
    SpielerInfo[playerid][pDifferenzZeit] = SpielerInfo[playerid][pZeit] - SpielerInfo[playerid][pMinZeit];
    SpielerInfo[playerid][pZeit] = 0;
    SpielerInfo[playerid][pMinZeit]=0;

    return 1;
    }

  • public OnPlayerDisconnect(playerid, reason)
    {
    DeletePVar(playerid,"Eingeloggt");

    KillTimer(KnastTimerx);
    SpielerInfo[playerid][pKnast] = 2;
    SpielerInfo[playerid][pDifferenzZeit] = SpielerInfo[playerid][pZeit] - SpielerInfo[playerid][pMinZeit];
    SpielerInfo[playerid][pZeit] = 0;
    SpielerInfo[playerid][pMinZeit]=0;
    SavePlayer(playerid);

    return 1;
    }
    Du speicherst die Variablen zu früh, da wo sie noch keinen Wert haben :)
    Versuch es so

  • melde mcih sobald ich eine testperson finde X(


    regards


    //edit - Jetzt ist silvester time, ich geh fort -> werde es erst morgen testen, melde mich dann


    /eedit2 - spieler spawnt ganz normal am spawn ;(


    /edit 3 - hier die datei:



    3 Mal editiert, zuletzt von iAIR ()