Beiträge von barney™

    hey ich habe nun ein bus job das heisst die checkpoints über ein public laufen und dafür brauche ich ja ein timer wie mache ich den ? ich habe ein aber irwie funkt damit nix.


    hier mal alles was ich dafür gemacht habe also bus.-



    if(strcmp(cmd, "/linie", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(Spieler[playerid][Job] == 2)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new veh = GetPlayerVehicleID(playerid);
    for(new i = 0;i<sizeof(buscars);i++)
    {
    if(veh == buscars[i])
    {
    ShowPlayerDialog(playerid, DIALOG_LINIE, DIALOG_STYLE_LIST, "Busfahrer - Linie auswählen", "Linie 1\nLinie 2-In Arbeit\nLinie 3 LS-SF-In Arbeit\nLinie 4 SF-LS-In Arbeit", "Auswählen", "Abbrechen");
    return 1;
    }
    }
    SendClientMessage(playerid, ROT, "Du bist in keinem Bus.");
    return 1;
    }
    }
    else return SendClientMessage(playerid, ROT, "Du bist kein Busfahrer.");
    }
    return 1;
    }



    das der dialog wo mit ich meine linie aussuchen kan.




    forward BusCountdown(playerid);



    SetTimer("BusCountdown", 1000, 1);





    public BusCountdown(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    new string[128];
    if(Spieler[playerid][Job] == 2)
    {
    for(new i=0;i<sizeof(buscars);i++)
    {
    new vID = GetPlayerVehicleID(playerid);
    if(vID == buscars[i])
    {
    if(IsPlayerInCheckpoint(playerid))
    {
    if(buscd[playerid] == 10)
    {
    buscd[playerid] = 9;
    GameTextForPlayer(playerid, "~w~Warten ...~n~~b~9", 500, 1);
    }
    else if(buscd[playerid] == 9)
    {
    buscd[playerid] = 8;
    GameTextForPlayer(playerid, "~w~Warten ...~n~~b~8", 500, 1);
    }
    else if(buscd[playerid] == 8)
    {
    buscd[playerid] = 7;
    GameTextForPlayer(playerid, "~w~Warten ...~n~~b~7", 500, 1);
    }
    else if(buscd[playerid] == 7)
    {
    buscd[playerid] = 6;
    GameTextForPlayer(playerid, "~w~Warten ...~n~~b~6", 500, 1);
    }
    else if(buscd[playerid] == 6)
    {
    buscd[playerid] = 5;
    GameTextForPlayer(playerid, "~w~Warten ...~n~~b~5", 500, 1);
    }
    else if(buscd[playerid] == 5)
    {
    buscd[playerid] = 4;
    GameTextForPlayer(playerid, "~w~Warten ...~n~~b~4", 500, 1);
    }
    else if(buscd[playerid] == 4)
    {
    buscd[playerid] = 3;
    GameTextForPlayer(playerid, "~w~Warten ...~n~~b~3", 500, 1);
    }
    else if(buscd[playerid] == 3)
    {
    buscd[playerid] = 2;
    GameTextForPlayer(playerid, "~w~Warten ...~n~~b~2", 500, 1);
    }
    else if(buscd[playerid] == 1)
    {
    buscd[playerid] = 11;
    GameTextForPlayer(playerid, "~w~Warten ...~n~~b~1", 500, 1);
    if(pCP[playerid] == CHECKPOINT_BUSSTART)
    {
    SetPlayerCheckpoint(playerid, 794.1573,-1096.1975,23.5284, 5.0);
    pCP[playerid] = CHECKPOINT_BUSCP1;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Vinewood.");
    }
    else if(pCP[playerid] == CHECKPOINT_BUSCP1)
    {
    SetPlayerCheckpoint(playerid, 742.7133,-1393.4297,13.0455, 5.0);
    pCP[playerid] = CHECKPOINT_BUSCP2;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Vinewood - Intercars.");
    }
    else if(pCP[playerid] == CHECKPOINT_BUSCP2)
    {
    SetPlayerCheckpoint(playerid, 301.2852,-1397.0028,13.5145, 5.0);
    pCP[playerid] = CHECKPOINT_BUSCP3;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Rodeo.");
    }
    else if(pCP[playerid] == CHECKPOINT_BUSCP3)
    {
    SetPlayerCheckpoint(playerid, 354.8143,-1648.1133,32.4861, 5.0);
    pCP[playerid] = CHECKPOINT_BUSCP4;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Rodeo.");
    }
    else if(pCP[playerid] == CHECKPOINT_BUSCP4)
    {
    SetPlayerCheckpoint(playerid, 678.2159,-1760.6434,12.9662, 5.0);
    pCP[playerid] = CHECKPOINT_BUSCP5;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Marina.");
    }
    else if(pCP[playerid] == CHECKPOINT_BUSCP5)
    {
    SetPlayerCheckpoint(playerid, 1153.5178,-1714.3553,13.4061, 5.0);
    pCP[playerid] = CHECKPOINT_BUSCP6;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Conference Center.");
    }
    else if(pCP[playerid] == CHECKPOINT_BUSCP6)
    {
    SetPlayerCheckpoint(playerid, 1479.6708,-1735.2942,13.0075, 5.0);
    pCP[playerid] = CHECKPOINT_BUSCP7;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Commerce.");
    }
    else if(pCP[playerid] == CHECKPOINT_BUSCP7)
    {
    SetPlayerCheckpoint(playerid, 1442.5582,-1524.2251,13.0075, 5.0);
    pCP[playerid] = CHECKPOINT_BUSCP8;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Commerce.");
    }
    else if(pCP[playerid] == CHECKPOINT_BUSCP8)
    {
    SetPlayerCheckpoint(playerid, 1483.9996,-1065.5348,23.2813, 5.0);
    pCP[playerid] = CHECKPOINT_BUSCPENDE;
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nächste Haltestelle: Mulholland Intersection.");
    }
    else if(pCP[playerid] == CHECKPOINT_BUSCPENDE)
    {
    new rand = 3000 + random(5000);
    Spieler[playerid][PayDayGeld] += rand;
    format(string, sizeof(string), "Die Fahrt ist nun zuende. Du hast $%d verdient und erhälst es am nächsten Zahltag.", rand);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Bus-Erfahrungspunkte sind um 5 aufgestiegen.");
    Spieler[playerid][BusExp] += 5;
    }
    }
    }
    }
    return 1;
    }
    SendClientMessage(playerid, COLOR_GRAD2, "Du bist in keinem Bus.");
    buscd[playerid] = 10;
    KillTimer(bustimer[playerid]);
    return 1;
    }
    }
    return 1;
    }


    ist das so richtig ih möchte halt wen ich linie 1 nehme das halt automatisch die checkpoints kommen.


    hoffe mir kan jemand helfen bei dem problem


    ich denke es klappt nicht weil was mit dem timer nicht stimmt

    PAWN Quelltext
    1


    forward payday();






    PAWN Quelltext
    1
    2
    3
    4
    5


    public OnPlayerConnect(playerid)
    {
    SetTimer("payday",1800000,1); // startet einen Timer füt 1 Stunde und die 1 bedeuted, dass er sich wieder holt.
    return 1;
    }






    PAWN Quelltext
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10


    public payday()
    {


    SendClientMessage(playerid,0x19FF00FF,"-----------Payday-----------"); /// Die Farbe ist Grün.
    SendClientMessage(playerid,0x19FF00FF,"-----------Du hast 5000$ bekommen-----------");
    SendClientMessage(playerid,0x19FF00FF,"-----------PaydayEnde-----------");
    GivePlayerMoney(playerid,5000); //für die 5000 Kannst alles einsetze, also, wie viel er bekommen soll
    }
    return 1;
    }





    aber wie mache ich das im befehl /stats ?

    unzwar habe ich zwar schon payday sachen.


    aber ich möchte halt das man alle 60 minuten einmal geld bekommt.


    und ich habe schon im dialog_stats


    auch angezeigt wird bei payday 1/60 minuten.


    .hier alle sachen die ich schon habe.




    //einmal unter meinem enum


    Payday,


    PayDayGeld



    onplayerconnect


    Spieler[playerid][Payday] = 0;


    Spieler[playerid][PayDayGeld] = 0;



    onplayerdissconect.


    dini_IntSet(accFormat, "Payday", Spieler[playerid][Payday]);


    dini_IntSet(accFormat, "PayDayGeld", Spieler[playerid][PayDayGeld]);



    dialog_login


    Spieler[playerid][PayDayGeld] = dini_Int(accFormat, "PayDayGeld");


    Spieler[playerid][Payday] = dini_Int(accFormat, "Payday");



    dialog_reg


    Spieler[playerid][Payday] = 0;



    Spieler[playerid][PayDayGeld] = 0;



    im dialog /stats


    %d/%d\n\t\tPayday: %d/60 Minuten


    Spieler[playerid][Payday],




    falls jemand mehr sachen braucht schreibt einfach hier drunter.


    //noch mal was ich möchte.


    das alle 60 minuten payday ist.


    das es im /stats angezeigt wird also 1/60 minuten


    MFG justin

    if(dialogid==DIALOG_LINIE)
    {
    if(response)
    {
    if(listitem==0)
    {
    buscd[playerid] = 10;
    bustimer[playerid] = SetTimerEx("BusCountdown", 1000, 1, "i", playerid);
    pCP[playerid] = CHECKPOINT_BUSSTART;
    SetPlayerCheckpoint(playerid, 1203.0599,-934.3010,42.3596, 5.0);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Dienst gestartet! Linie: 1");
    }
    }
    }
    else
    {
    return 1;
    }
    }





    Das ist die Zeile mein problem



    Wie mache ich das wen ich jetzt durch die vorhandenen checkpont fahre ein neues kommt ?

    wie mache ich das zb bei busfahrer.


    ich habe ein befehl /linie


    dan kommt ein dialog mit


    linie 1
    linie 2
    linie 3


    so .


    und bei dialogrespownse ist das so



    if(dialogid==DIALOG_LINIE)
    {
    if(response)
    {
    if(listitem==0)
    {
    buscd[playerid] = 10;
    bustimer[playerid] = SetTimerEx("BusCountdown", 1000, 1, "i", playerid);
    pCP[playerid] = CHECKPOINT_BUSSTART;
    SetPlayerCheckpoint(playerid, 1203.0599,-934.3010,42.3596, 5.0);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Dienst gestartet! Linie: 1");
    }
    }
    }
    else
    {
    return 1;
    }
    }



    wie mache ich das nun


    also nun ist ja der checkpoint in bsn


    so wie mache ich das wen ich da rein fahre ein neues kommt ?

    hey leute unzwar habe ich für den busfahrer job einen /linie gemacht nur ich habe zurzeit folgendes problem.


    wen ich /linie machen und beim dialog linie 1 nehme ist sie am bsn wen ich zum checkpoint rein fahre passiert nix der checkpoint bleeibt




    wichtige zeilen


    bei onplayerentercheckpoint



    else if(pCP[playerid] == CHECKPOINT_BUSSTART)
    {
    buscd[playerid] = 10;
    bustimer[playerid] = SetTimerEx("BusCountdown", 1000, 1, "i", playerid);
    pCP[playerid] = CHECKPOINT_BUSSTART;
    SetPlayerCheckpoint(playerid, 1203.0599,-934.3010,42.3596, 5.0);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Dienst gestartet! Linie: 1");
    }
    else if(pCP[playerid] == CHECKPOINT_BUSCP1)
    {
    SetPlayerCheckpoint(playerid, 677.6726,-1762.2816,13.3424, 5.0);
    pCP[playerid] = CHECKPOINT_BUSCP2;
    }
    else if(pCP[playerid] == CHECKPOINT_BUSCP2)
    {
    SetPlayerCheckpoint(playerid, 1153.2599,-1716.7952,13.7813, 5.0);
    pCP[playerid] = CHECKPOINT_BUSCP3;
    }




    und bei dialogresponse



    if(dialogid==DIALOG_LINIE)
    {
    if(response)
    {
    if(listitem==0)
    {
    buscd[playerid] = 10;
    bustimer[playerid] = SetTimerEx("BusCountdown", 1000, 1, "i", playerid);
    pCP[playerid] = CHECKPOINT_BUSSTART;
    SetPlayerCheckpoint(playerid, 1203.0599,-934.3010,42.3596, 5.0);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Dienst gestartet! Linie: 1");
    }
    }
    else
    {
    return 1;
    }
    }




    und der befehl /linie



    if(strcmp(cmd, "/linie", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(Spieler[playerid][Job] == 2)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new veh = GetPlayerVehicleID(playerid);
    for(new i = 0;i<sizeof(buscars);i++)
    {
    if(veh == buscars[i])
    {
    ShowPlayerDialog(playerid, DIALOG_LINIE, DIALOG_STYLE_LIST, "Busfahrer - Linie auswählen", "Linie 1\nLinie 2-In Arbeit\nLinie 3 LS-SF-In Arbeit\nLinie 4 SF-LS-In Arbeit", "Auswählen", "Abbrechen");
    return 1;
    }
    }
    SendClientMessage(playerid, ROT, "Du bist in keinem Bus.");
    return 1;
    }
    }
    else return SendClientMessage(playerid, ROT, "Du bist kein Busfahrer.");
    }
    return 1;
    }</sizeof(buscars);i++)