Beiträge von Jeffry

    Die kannst du so errechnen:
    new days, hours, minutes, seconds, tmp;
    tmp = Spieler[playerid][DonatorBis] - gettime();
    days = tmp / 86400;
    tmp -= days * 86400;
    hours = tmp / 3600;
    tmp -= hours * 3600;
    minutes = tmp / 60;
    tmp -= minutes * 60;
    seconds = tmp;
    new str[145];
    format(str, sizeof(str), "Du hast noch %d Tage, %d Stunden, %d Minuten und %d Sekunden den Donator Status.", days, hours, minutes, seconds);
    SendClientMessage(playerid, 0xFF0000FF, str);

    Genau, über den Timestamp kannst du das machen.
    Geht ganz einfach:


    ocmd:tpremium(playerid, params[])
    {
    new pID, zeit, string[128];
    if(sscanf(params,"ui", pID, zeit))return SendClientMessage(playerid, fGREY, "Benutze: /premium [ID] [Zeit in Tagen]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid, fGREY, "Der Spieler ist nicht eingeloggt!");
    if(!isPlayerAnAdmin(playerid, 5)) return SendClientMessage(playerid, Grey,""#ADMINSATZ"");
    Spieler[pID][Donator] = 1;
    Spieler[pID][DonatorBis] = gettime() + zeit * 86400; //1 Tag = 86400 Sekunden
    format(string, sizeof(string), "%s hat deinen Accountstatus auf Premium gesetzt. Tage: %i", SpielerName(playerid),zeit);
    SendClientMessage(pID, COLOR_LIGHTBLUE, string);
    return 1;
    }


    Beim Login und bei einem Timer die Abfrage:
    if(Spieler[playerid][DonatorBis] < gettime())
    {
    //Donator-Status weg nehmen.
    }

    {
    case 1:
    {
    if(Spieler[playerid][pDuty] != 0)
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]),SetPlayerColor(playerid,SAPDDUTY);
    }
    }
    //[S]an [A]ndreas [P]olice [D]epartment
    case 2:
    {
    if(Spieler[playerid][pDuty] != 0)
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]),SetPlayerColor(playerid,FBIDUTY);
    }
    }
    //F.B.I
    case 3:
    {
    if(Spieler[playerid][pDuty] != 0)
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]),SetPlayerColor(playerid,MEDICDUTY);
    }
    }
    //San Andreas Rettungsdienst
    case 4:
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin];
    }
    //LSV
    case 5:
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
    }

    //GSF
    case 6:
    {
    if(Spieler[playerid][pDuty] != 0)
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]),SetPlayerColor(playerid,ARMYDUTY);
    }
    }
    //San Andreas ARMY
    case 7:
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
    }

    //BALLAS
    case 8:
    {
    if(Spieler[playerid][pHaveMaske] == 1)
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
    }
    }
    //TERRORS
    case 9:
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
    }

    //YAKUZA
    case 10:
    {
    if(Spieler[playerid][pDuty] != 0)
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
    }
    }
    //San Andreas News
    case 11:
    {
    if(Spieler[playerid][pDuty] != 0)
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
    }
    }
    //Ordnungsamt
    case 12:
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
    }
    //LCN
    case 13:
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
    }
    //Sons of Anarchy
    case 14:
    {
    if(Spieler[playerid][pDuty] != 0)
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]),SetPlayerColor(playerid,FAHRSCHULEDUTY);
    }
    }
    //faHRSCULE
    case 15:
    {
    if(Spieler[playerid][pDuty] != 0)
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]),SetPlayerColor(playerid,SAELEKTRONIKGmBhDUTY);
    }
    }
    //SA ELEKTRONIK GmBh
    case 16:
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]),Spieler[playerid][pDuty] = 1;
    }
    //Regierung
    case 17:
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
    }
    //Sureño Syndikat
    case 18:
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
    }
    //Die Sekte
    }

    case 4:
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);//LSV
    SetPlayerColor(playerid, FARBE);
    }
    case 5:
    {
    SetPlayerSkin(playerid,Spieler[playerid][pFraktSkin]);
    SetPlayerColor(playerid, FARBE);
    }//GSF


    @_iPit_: Du hast da zwei Klammern am Ende, da werden ein paar Errors kommen. ;)


    Und was meinst du mit Abfrage ob der Spieler spawnt? Du kannst es ja bei OnPlayerSpawn hinschreiben.

    Dann passt das || da aber nicht. ;)
    So:
    case 1://linie 2
    {
    if(isPlayerInJob(playerid,4) && IsVehicleAPostCar(GetPlayerVehicleID(playerid)))//postbote
    {
    Spieler[playerid][WorkInJob] = 1;
    SendClientMessage(playerid,GELB,"Du hast dich für die Postbotenroute 2 entschieden! Ein Checkpoint wurde gesetzt.(/stopjob um abzubrechen)");
    postjobgo2[playerid] = 1;
    SetPlayerCheckpoint(playerid,1295.4149,-1413.6486,13.0933,3.0);
    return 1;
    }
    if(isPlayerInJob(playerid,10) && IsVehicleATruck(GetPlayerVehicleID(playerid)))//truckerjob
    {
    Spieler[playerid][WorkInJob] = 1;
    SendClientMessage(playerid,GELB,"Fahre zuerst zum Anhängerstellplatz! Ein Checkpoint wurde gesetzt.(/stopjob um abzubrechen)");
    SendClientMessage(playerid,GELB,"Steige während der Fahrt nicht aus deinem Truck.");
    truckerjobgo2[playerid] = 1;
    new spawnrand = random(sizeof(TrailerSpawns2));
    truckertrailer[playerid] = CreateVehicleEx(591,TrailerSpawns2[spawnrand][0],TrailerSpawns2[spawnrand][1],TrailerSpawns2[spawnrand][2],TrailerSpawns2[spawnrand][3],-1,-1,-1,false);
    SetPlayerCheckpoint(playerid,TrailerSpawns2[spawnrand][0],TrailerSpawns2[spawnrand][1],TrailerSpawns2[spawnrand][2],12.5);
    return 1;
    }
    if(isPlayerInJob(playerid,11) && IsVehicleABus(GetPlayerVehicleID(playerid)))//busfahrerjob
    {
    if(Spieler[playerid][pBusfahrerEXP] < 100) return SendClientMessage(playerid,0x0069FFFF,"Du hast noch nicht 100EXP also kannst du diese Linie nicht fahren!");
    Spieler[playerid][WorkInJob] = 1;
    SetPlayerCheckpoint(playerid,buslinie2[0][Xcp],buslinie2[0][Ycp],buslinie2[0][Zcp],buslinie2[0][CPSize]);
    BusCheckpointStatus2[playerid] = 0;
    buslinieninfo[playerid] = 30;//für das textlabel
    format(string,sizeof(string),"Linie %i | Busfahrer %s ist nun im Dienst! Kosten: %i$",buslinieninfo[playerid],SpielerName(playerid),MAX_BUS_PRICE);
    SendClientMessageToAll(GRUEN,string);
    SendClientMessage(playerid,GELB,"Fahre nun einzeln die Haltestellen ab! Ein Checkpoint wurde gesetzt.(/stopjob um abzubrechen)");
    format(string,sizeof(string),"Linie %i\nNächster Halt: %s\nBusfahrer: %s\nKosten: %i$",buslinieninfo[playerid],buslinie1[BusCheckpointStatus1[playerid]][CheckPointText],SpielerName(playerid),MAX_BUS_PRICE);
    VehicleOnDuty[GetPlayerVehicleID(playerid)] = true;
    buspriceinfo[GetPlayerVehicleID(playerid)] = CreateDynamic3DTextLabel(string, BUSuTAXIDUTYFARBE, 0.0,0.0,0.0,50.0,INVALID_PLAYER_ID,GetPlayerVehicleID(playerid),1,0,-1,-1);
    return 1;
    }
    }

    Kommt drauf an. Wie willst du es denn haben?
    Muss der Busfahrer in dem Job 11 sein UND 100+ Experience haben? Dann müsste man es anders schreiben.
    Oder soll er in dem Job sein ODER 100+ Experience haben?

    Nein...
    So:
    case 1://linie 2
    {
    if(isPlayerInJob(playerid,4) && IsVehicleAPostCar(GetPlayerVehicleID(playerid)))//postbote
    {
    Spieler[playerid][WorkInJob] = 1;
    SendClientMessage(playerid,GELB,"Du hast dich für die Postbotenroute 2 entschieden! Ein Checkpoint wurde gesetzt.(/stopjob um abzubrechen)");
    postjobgo2[playerid] = 1;
    SetPlayerCheckpoint(playerid,1295.4149,-1413.6486,13.0933,3.0);
    return 1;
    }
    if(isPlayerInJob(playerid,10) && IsVehicleATruck(GetPlayerVehicleID(playerid)))//truckerjob
    {
    Spieler[playerid][WorkInJob] = 1;
    SendClientMessage(playerid,GELB,"Fahre zuerst zum Anhängerstellplatz! Ein Checkpoint wurde gesetzt.(/stopjob um abzubrechen)");
    SendClientMessage(playerid,GELB,"Steige während der Fahrt nicht aus deinem Truck.");
    truckerjobgo2[playerid] = 1;
    new spawnrand = random(sizeof(TrailerSpawns2));
    truckertrailer[playerid] = CreateVehicleEx(591,TrailerSpawns2[spawnrand][0],TrailerSpawns2[spawnrand][1],TrailerSpawns2[spawnrand][2],TrailerSpawns2[spawnrand][3],-1,-1,-1,false);
    SetPlayerCheckpoint(playerid,TrailerSpawns2[spawnrand][0],TrailerSpawns2[spawnrand][1],TrailerSpawns2[spawnrand][2],12.5);
    return 1;
    }
    if((isPlayerInJob(playerid,11) || Spieler[playerid][pBusfahrerEXP] >= 100) && IsVehicleABus(GetPlayerVehicleID(playerid)))//busfahrerjob
    {
    Spieler[playerid][WorkInJob] = 1;
    SetPlayerCheckpoint(playerid,buslinie2[0][Xcp],buslinie2[0][Ycp],buslinie2[0][Zcp],buslinie2[0][CPSize]);
    BusCheckpointStatus2[playerid] = 0;
    buslinieninfo[playerid] = 30;//für das textlabel
    format(string,sizeof(string),"Linie %i | Busfahrer %s ist nun im Dienst! Kosten: %i$",buslinieninfo[playerid],SpielerName(playerid),MAX_BUS_PRICE);
    SendClientMessageToAll(GRUEN,string);
    SendClientMessage(playerid,GELB,"Fahre nun einzeln die Haltestellen ab! Ein Checkpoint wurde gesetzt.(/stopjob um abzubrechen)");
    format(string,sizeof(string),"Linie %i\nNächster Halt: %s\nBusfahrer: %s\nKosten: %i$",buslinieninfo[playerid],buslinie1[BusCheckpointStatus1[playerid]][CheckPointText],SpielerName(playerid),MAX_BUS_PRICE);
    VehicleOnDuty[GetPlayerVehicleID(playerid)] = true;
    buspriceinfo[GetPlayerVehicleID(playerid)] = CreateDynamic3DTextLabel(string, BUSuTAXIDUTYFARBE, 0.0,0.0,0.0,50.0,INVALID_PLAYER_ID,GetPlayerVehicleID(playerid),1,0,-1,-1);
    return 1;
    }
    else if(Spieler[playerid][pBusfahrerEXP] < 100) return SendClientMessage(playerid,0x0069FFFF,"Du hast noch nicht 100EXP also kannst du diese Linie nicht fahren!");//DIEZEILE
    }