Portal SAMP
[Ajuda] ajuda a corrigir meu codigo - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] ajuda a corrigir meu codigo (/showthread.php?tid=4734)



ajuda a corrigir meu codigo - André Santos - 29/04/2024

oi galera criei um sistema de entregador de jornal ainda ta bem basico pois estou estudando para criar coisas mais avançadas em pawno samp , bem minha duvida e porq nao esta indo para os proximos checkpoints ? pois quando uso o comando /ej o primeiro checkpoint aparece chegando la nao acontece mais nada que eu programei no codigo queria saber onde errei 
Código:
//criado por andré santos

#include <a_samp>
#include <zcmd>

new empregojornal[MAX_PLAYERS];
new JornalCar[6]; // sempre +1
new pegouemprego[MAX_PLAYERS];

public OnGameModeInit()
{
    JornalCar[0] = CreateVehicle(509, 1564.0996,-1872.2502,12.8984,353.0930, -1, -1, 100);
    JornalCar[1] = CreateVehicle(509, 1563.7847,-1874.8416,12.9066,353.0930, -1, -1, 100);
    JornalCar[2] = CreateVehicle(509, 1562.0336,-1872.9491,12.8908,60.1465, -1, -1, 100);
    JornalCar[3] = CreateVehicle(509, 1559.1564,-1871.2976,12.8929,60.1452, -1, -1, 100);
    JornalCar[4] = CreateVehicle(509, 1556.7076,-1869.8922,12.8930,60.1452, -1, -1, 100);
    JornalCar[5] = CreateVehicle(509, 1556.7125,-1869.8950,12.8898,60.1452, -1, -1, 100);
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if (!IsPlayerConnected(playerid)) return 0;
    if (newstate == PLAYER_STATE_DRIVER)
    {
        new veiculo = GetPlayerVehicleID(playerid);
        if (veiculo >= JornalCar[0] && veiculo <= JornalCar[5])
        { 
            if(!pegouemprego[playerid])
            {
                SendClientMessage(playerid, -1, "voce nao e um entregador de jornal por isso nao pode usar esse veiculo!");
                RemovePlayerFromVehicle(playerid);
                return 1;
            }
        }
    }
    return 1;
}

//comandos do emprego
CMD:ajudaemp(playerid, params[])
{
    new string[250];
    if(!pegouemprego[playerid])return SendClientMessage(playerid, -1, "ERRO: voce nao e um entregador de jornal por isso nao pode usar esse comando!");
    if(pegouemprego[playerid])
    {
strcat(string, "voce agora e um entregador de jornal use /ej\n");
strcat(string, "para iniciar seu trabalho! para voce parar seu trabalho\n");
strcat(string, "use /pjornal para parar seu trabalho\n");
strcat(string, "voce ganhar dinheiro a cada entrega realizada\n");
strcat(string, "voce tambem pode usar /hq para ir ao local do seu trabalho\n");
strcat(string, "boa sorte e divirta se\n");
    }
    ShowPlayerDialog(playerid, 1000, DIALOG_STYLE_LIST, "ajuda entregador de jornal", string, "OK","OK");
    return 1;
}

CMD:serentregador(playerid)
{
pegouemprego[playerid] = true;
SendClientMessage(playerid, -1, "voce agora e um entregador de jornal use /ej!");
return 1;
}

CMD:ej(playerid)
{
    if (!IsPlayerConnected(playerid)) return 0;
    new vehicleid = GetPlayerVehicleID(playerid);
    if(!pegouemprego[playerid])return SendClientMessage(playerid, -1, "ERRO: voce nao e um entregador de jornal /serentregador!");
    if (vehicleid < JornalCar[0] || vehicleid > JornalCar[5]) return SendClientMessage(playerid, -1, "ERRO: Você não está no veículo de entrega!");
    if (empregojornal[playerid] > 1 && empregojornal[playerid] < 5) return SendClientMessage(playerid, -1, "ERRO: Termine de Entregar Seus Jornais Antes de Pegar Outros!");
    //if (!IsPlayerInRangeOfPoint(playerid, 2.0, 734.6573, -1341.5311, 13.5249)) return SendClientMessage(playerid, -1, "ERRO: Você não está no local de pegar jornal!");
    empregojornal[playerid] = 1;
    SetPlayerCheckpoint(playerid, 787.6259,-1543.4647,13.0615, 1.0);
    SendClientMessage(playerid, -1, "*Entregue Jornal, e você receberá dinheiro!");
    return 1;
}

CMD:pjornal(playerid)
{
    if (!IsPlayerConnected(playerid)) return 0;
    if (!pegouemprego[playerid]) return SendClientMessage(playerid, -1, "ERRO: Você não é Entregador De Jornal!");
    if (empregojornal[playerid] < 2) return SendClientMessage(playerid, -1, "ERRO: Termine Pelo Menos 2 Jornais Para Cancelar O Servico!!");
    if (empregojornal[playerid] < 1) return SendClientMessage(playerid, -1, "ERRO: Você não está trabalhando, use /entregarj para trabalhar");
    empregojornal[playerid] = 0;
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid, -1, "INFO: Entrega Cancelada!");
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    if (!IsPlayerConnected(playerid)) return 0;
    new vehicleid = GetPlayerVehicleID(playerid);

    if (vehicleid < JornalCar[0] || vehicleid > JornalCar[5]) return 0;
    if (empregojornal[playerid] == 1)
{
    empregojornal[playerid] = 2;
    SetTimerEx("Tempu", 5000, false, "d", playerid);
    TogglePlayerControllable(playerid,0);
    GameTextForPlayer(playerid, "entregando jornal....1/10", 10000, 4);
    SetPlayerCheckpoint(playerid,1964.9343,-2093.5779,13.4930,10);

}
    if(empregojornal[playerid] == 2)
{
    empregojornal[playerid] = 3;
    SetTimerEx("Tempu", 5000, false, "d", playerid);
    TogglePlayerControllable(playerid,0);
    GameTextForPlayer(playerid, "entregando jornal....2/10", 10000, 4);
    SetPlayerCheckpoint(playerid,1824.0347,-1842.7266,13.5143,10);

}
if(empregojornal[playerid] == 3)
{
    empregojornal[playerid] = 4;
    SetTimerEx("Tempu", 5000, false, "d", playerid);
    TogglePlayerControllable(playerid,0);
    GameTextForPlayer(playerid, "entregando jornal....3/10", 10000, 4);
    SetPlayerCheckpoint(playerid,1531.9675,-1674.4497,13.4812,10);

}
    if(empregojornal[playerid] == 4)
{
    empregojornal[playerid] = 5;
    SetTimerEx("Tempu", 5000, false, "d", playerid);
    TogglePlayerControllable(playerid,0);
    GameTextForPlayer(playerid, "entregando jornal....4/10", 10000, 4);
    SetPlayerCheckpoint(playerid,1360.4689,-1298.3595,13.4092,10);

}
if(empregojornal[playerid] == 5)
{
    empregojornal[playerid] = 6;
    SetTimerEx("Tempu", 5000, false, "d", playerid);
    TogglePlayerControllable(playerid,0);
    GameTextForPlayer(playerid, "entregando jornal....5/10", 10000, 4);
    SetPlayerCheckpoint(playerid,1192.8175,-1320.8759,13.4989,10);

}
if(empregojornal[playerid] == 6)
{
    empregojornal[playerid] = 7;
    SetTimerEx("Tempu", 5000, false, "d", playerid);
    TogglePlayerControllable(playerid,0);
    GameTextForPlayer(playerid, "entregando jornal....6/10", 10000, 4);
    SetPlayerCheckpoint(playerid,818.9773,-1392.3652,13.4928,10);

}
if(empregojornal[playerid] == 7)
{
    empregojornal[playerid] = 8;
    SetTimerEx("Tempu", 5000, false, "d", playerid);
    TogglePlayerControllable(playerid,0);
    GameTextForPlayer(playerid, "entregando jornal....7/10", 10000, 4);
    SetPlayerCheckpoint(playerid,797.4005,-1071.3063,24.4965,10);

}
if(empregojornal[playerid] == 8)
{
    empregojornal[playerid] = 9;
    SetTimerEx("Tempu", 5000, false, "d", playerid);
    TogglePlayerControllable(playerid,0);
    GameTextForPlayer(playerid, "entregando jornal....8/10", 10000, 4);
    SetPlayerCheckpoint(playerid,1354.9268,-979.9109,30.8619,10);

}
if(empregojornal[playerid] == 9)
{
    empregojornal[playerid] = 10;
    SetTimerEx("Tempu", 5000, false, "d", playerid);
    TogglePlayerControllable(playerid,0);
    GameTextForPlayer(playerid, "entregando jornal....9/10", 10000, 4);
    SetPlayerCheckpoint(playerid,1294.4608,-1789.3079,13.4850,10);

}
if(empregojornal[playerid] == 10)
{
    empregojornal[playerid] = 0;
    DisablePlayerCheckpoint(playerid);
    GameTextForPlayer(playerid, "~y~missao concluida~g~$600", 10000, 4);
    SendClientMessage(playerid,-1,"para continuar use /ej.");
    GivePlayerMoney(playerid,600);
}
return 1;
}

forward Tempu(playerid);
public Tempu(playerid)
{
TogglePlayerControllable(playerid, 1);
    return 1;
}



RE: ajuda a corrigir meu codigo - welmateus - 30/04/2024

Código:
//criado por andré santos

#include <a_samp>
#include <zcmd>

new empregojornal[MAX_PLAYERS];
new JornalCar[6]; // sempre +1
new pegouemprego[MAX_PLAYERS];

public OnGameModeInit()
{
    JornalCar[0] = CreateVehicle(509, 1564.0996,-1872.2502,12.8984,353.0930, -1, -1, 100);
    JornalCar[1] = CreateVehicle(509, 1563.7847,-1874.8416,12.9066,353.0930, -1, -1, 100);
    JornalCar[2] = CreateVehicle(509, 1562.0336,-1872.9491,12.8908,60.1465, -1, -1, 100);
    JornalCar[3] = CreateVehicle(509, 1559.1564,-1871.2976,12.8929,60.1452, -1, -1, 100);
    JornalCar[4] = CreateVehicle(509, 1556.7076,-1869.8922,12.8930,60.1452, -1, -1, 100);
    JornalCar[5] = CreateVehicle(509, 1556.7125,-1869.8950,12.8898,60.1452, -1, -1, 100);
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if (!IsPlayerConnected(playerid)) return 0;
    if (newstate == PLAYER_STATE_DRIVER)
    {
        new veiculo = GetPlayerVehicleID(playerid);
        if (veiculo >= JornalCar[0] && veiculo <= JornalCar[5])
        {
            if(!pegouemprego[playerid])
            {
                SendClientMessage(playerid, -1, "voce nao e um entregador de jornal por isso nao pode usar esse veiculo!");
                RemovePlayerFromVehicle(playerid);
                return 1;
            }
        }
    }
    return 1;
}

//comandos do emprego
CMD:ajudaemp(playerid, params[])
{
    new string[250];
    if(!pegouemprego[playerid])return SendClientMessage(playerid, -1, "ERRO: voce nao e um entregador de jornal por isso nao pode usar esse comando!");
    if(pegouemprego[playerid])
    {
        strcat(string, "voce agora e um entregador de jornal use /ej\n");
        strcat(string, "para iniciar seu trabalho! para voce parar seu trabalho\n");
        strcat(string, "use /pjornal para parar seu trabalho\n");
        strcat(string, "voce ganhar dinheiro a cada entrega realizada\n");
        strcat(string, "voce tambem pode usar /hq para ir ao local do seu trabalho\n");
        strcat(string, "boa sorte e divirta se\n");
    }
    ShowPlayerDialog(playerid, 1000, DIALOG_STYLE_LIST, "ajuda entregador de jornal", string, "OK","OK");
    return 1;
}

CMD:serentregador(playerid)
{
    pegouemprego[playerid] = true;
    SendClientMessage(playerid, -1, "voce agora e um entregador de jornal use /ej!");
    return 1;
}

CMD:ej(playerid)
{
    if (!IsPlayerConnected(playerid)) return 1;
    new vehicleid = GetPlayerVehicleID(playerid);
    if(!pegouemprego[playerid])return SendClientMessage(playerid, -1, "ERRO: voce nao e um entregador de jornal /serentregador!");
    if (vehicleid < JornalCar[0] || vehicleid > JornalCar[5]) return SendClientMessage(playerid, -1, "ERRO: Você não está no veículo de entrega!");
    if (empregojornal[playerid] > 1 && empregojornal[playerid] < 5) return SendClientMessage(playerid, -1, "ERRO: Termine de Entregar Seus Jornais Antes de Pegar Outros!");
    //if (!IsPlayerInRangeOfPoint(playerid, 2.0, 734.6573, -1341.5311, 13.5249)) return SendClientMessage(playerid, -1, "ERRO: Você não está no local de pegar jornal!");
    empregojornal[playerid] = 1;
    SetPlayerCheckpoint(playerid, 787.6259,-1543.4647,13.0615, 3.0);
    SendClientMessage(playerid, -1, "*Entregue Jornal, e você receberá dinheiro!");
    return 1;
}

CMD:pjornal(playerid)
{
    if (!IsPlayerConnected(playerid)) return 1;
    if (!pegouemprego[playerid]) return SendClientMessage(playerid, -1, "ERRO: Você não é Entregador De Jornal!");
    if (empregojornal[playerid] < 2) return SendClientMessage(playerid, -1, "ERRO: Termine Pelo Menos 2 Jornais Para Cancelar O Servico!!");
    if (empregojornal[playerid] < 1) return SendClientMessage(playerid, -1, "ERRO: Você não está trabalhando, use /entregarj para trabalhar");
    empregojornal[playerid] = 0;
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid, -1, "INFO: Entrega Cancelada!");
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    if (!IsPlayerConnected(playerid)) return 1;
    new vehicleid = GetPlayerVehicleID(playerid);

    if (vehicleid < JornalCar[0] || vehicleid > JornalCar[5]) return 0;
    switch(empregojornal[playerid])
    {
        case 1:
        {
            empregojornal[playerid] = 2;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....1/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,1964.9343,-2093.5779,13.4930,3.0);

        }
        case 2:
        {
            empregojornal[playerid] = 3;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....2/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,1824.0347,-1842.7266,13.5143,3.0);

        }
        case 3:
        {
            empregojornal[playerid] = 4;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....3/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,1531.9675,-1674.4497,13.4812,3.0);

        }
        case 4:
        {
            empregojornal[playerid] = 5;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....4/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,1360.4689,-1298.3595,13.4092,3.0);

        }
        case 5:
        {
            empregojornal[playerid] = 6;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....5/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,1192.8175,-1320.8759,13.4989,3.0);

        }
        case 6:
        {
            empregojornal[playerid] = 7;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....6/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,818.9773,-1392.3652,13.4928,3.0);

        }
        case 7:
        {
            empregojornal[playerid] = 8;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....7/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,797.4005,-1071.3063,24.4965,3.0);

        }
        case 8:
        {
            empregojornal[playerid] = 9;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....8/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,1354.9268,-979.9109,30.8619,3.0);

        }
        case 9:
        {
            empregojornal[playerid] = 10;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....9/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,1294.4608,-1789.3079,13.4850,3.0);

        }
        case 10:
        {
            empregojornal[playerid] = 0;
            DisablePlayerCheckpoint(playerid);
            GameTextForPlayer(playerid, "~y~missao concluida~g~$600", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SendClientMessage(playerid,-1,"para continuar use /ej.");
            GivePlayerMoney(playerid,600);
        }
    }
    return 1;
}

forward Tempu(playerid);
public Tempu(playerid)
{
    TogglePlayerControllable(playerid, 1);
    return 1;
}
Veja se funciona


RE: ajuda a corrigir meu codigo - André Santos - 30/04/2024

(30/04/2024 09:39)welmateus Escreveu:
Código:
//criado por andré santos

#include <a_samp>
#include <zcmd>

new empregojornal[MAX_PLAYERS];
new JornalCar[6]; // sempre +1
new pegouemprego[MAX_PLAYERS];

public OnGameModeInit()
{
    JornalCar[0] = CreateVehicle(509, 1564.0996,-1872.2502,12.8984,353.0930, -1, -1, 100);
    JornalCar[1] = CreateVehicle(509, 1563.7847,-1874.8416,12.9066,353.0930, -1, -1, 100);
    JornalCar[2] = CreateVehicle(509, 1562.0336,-1872.9491,12.8908,60.1465, -1, -1, 100);
    JornalCar[3] = CreateVehicle(509, 1559.1564,-1871.2976,12.8929,60.1452, -1, -1, 100);
    JornalCar[4] = CreateVehicle(509, 1556.7076,-1869.8922,12.8930,60.1452, -1, -1, 100);
    JornalCar[5] = CreateVehicle(509, 1556.7125,-1869.8950,12.8898,60.1452, -1, -1, 100);
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if (!IsPlayerConnected(playerid)) return 0;
    if (newstate == PLAYER_STATE_DRIVER)
    {
        new veiculo = GetPlayerVehicleID(playerid);
        if (veiculo >= JornalCar[0] && veiculo <= JornalCar[5])
        {
            if(!pegouemprego[playerid])
            {
                SendClientMessage(playerid, -1, "voce nao e um entregador de jornal por isso nao pode usar esse veiculo!");
                RemovePlayerFromVehicle(playerid);
                return 1;
            }
        }
    }
    return 1;
}

//comandos do emprego
CMD:ajudaemp(playerid, params[])
{
    new string[250];
    if(!pegouemprego[playerid])return SendClientMessage(playerid, -1, "ERRO: voce nao e um entregador de jornal por isso nao pode usar esse comando!");
    if(pegouemprego[playerid])
    {
        strcat(string, "voce agora e um entregador de jornal use /ej\n");
        strcat(string, "para iniciar seu trabalho! para voce parar seu trabalho\n");
        strcat(string, "use /pjornal para parar seu trabalho\n");
        strcat(string, "voce ganhar dinheiro a cada entrega realizada\n");
        strcat(string, "voce tambem pode usar /hq para ir ao local do seu trabalho\n");
        strcat(string, "boa sorte e divirta se\n");
    }
    ShowPlayerDialog(playerid, 1000, DIALOG_STYLE_LIST, "ajuda entregador de jornal", string, "OK","OK");
    return 1;
}

CMD:serentregador(playerid)
{
    pegouemprego[playerid] = true;
    SendClientMessage(playerid, -1, "voce agora e um entregador de jornal use /ej!");
    return 1;
}

CMD:ej(playerid)
{
    if (!IsPlayerConnected(playerid)) return 1;
    new vehicleid = GetPlayerVehicleID(playerid);
    if(!pegouemprego[playerid])return SendClientMessage(playerid, -1, "ERRO: voce nao e um entregador de jornal /serentregador!");
    if (vehicleid < JornalCar[0] || vehicleid > JornalCar[5]) return SendClientMessage(playerid, -1, "ERRO: Você não está no veículo de entrega!");
    if (empregojornal[playerid] > 1 && empregojornal[playerid] < 5) return SendClientMessage(playerid, -1, "ERRO: Termine de Entregar Seus Jornais Antes de Pegar Outros!");
    //if (!IsPlayerInRangeOfPoint(playerid, 2.0, 734.6573, -1341.5311, 13.5249)) return SendClientMessage(playerid, -1, "ERRO: Você não está no local de pegar jornal!");
    empregojornal[playerid] = 1;
    SetPlayerCheckpoint(playerid, 787.6259,-1543.4647,13.0615, 3.0);
    SendClientMessage(playerid, -1, "*Entregue Jornal, e você receberá dinheiro!");
    return 1;
}

CMD:pjornal(playerid)
{
    if (!IsPlayerConnected(playerid)) return 1;
    if (!pegouemprego[playerid]) return SendClientMessage(playerid, -1, "ERRO: Você não é Entregador De Jornal!");
    if (empregojornal[playerid] < 2) return SendClientMessage(playerid, -1, "ERRO: Termine Pelo Menos 2 Jornais Para Cancelar O Servico!!");
    if (empregojornal[playerid] < 1) return SendClientMessage(playerid, -1, "ERRO: Você não está trabalhando, use /entregarj para trabalhar");
    empregojornal[playerid] = 0;
    DisablePlayerCheckpoint(playerid);
    SendClientMessage(playerid, -1, "INFO: Entrega Cancelada!");
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    if (!IsPlayerConnected(playerid)) return 1;
    new vehicleid = GetPlayerVehicleID(playerid);

    if (vehicleid < JornalCar[0] || vehicleid > JornalCar[5]) return 0;
    switch(empregojornal[playerid])
    {
        case 1:
        {
            empregojornal[playerid] = 2;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....1/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,1964.9343,-2093.5779,13.4930,3.0);

        }
        case 2:
        {
            empregojornal[playerid] = 3;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....2/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,1824.0347,-1842.7266,13.5143,3.0);

        }
        case 3:
        {
            empregojornal[playerid] = 4;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....3/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,1531.9675,-1674.4497,13.4812,3.0);

        }
        case 4:
        {
            empregojornal[playerid] = 5;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....4/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,1360.4689,-1298.3595,13.4092,3.0);

        }
        case 5:
        {
            empregojornal[playerid] = 6;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....5/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,1192.8175,-1320.8759,13.4989,3.0);

        }
        case 6:
        {
            empregojornal[playerid] = 7;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....6/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,818.9773,-1392.3652,13.4928,3.0);

        }
        case 7:
        {
            empregojornal[playerid] = 8;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....7/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,797.4005,-1071.3063,24.4965,3.0);

        }
        case 8:
        {
            empregojornal[playerid] = 9;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....8/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,1354.9268,-979.9109,30.8619,3.0);

        }
        case 9:
        {
            empregojornal[playerid] = 10;
            SetTimerEx("Tempu", 5000, false, "d", playerid);
            TogglePlayerControllable(playerid,0);
            GameTextForPlayer(playerid, "entregando jornal....9/10", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SetPlayerCheckpoint(playerid,1294.4608,-1789.3079,13.4850,3.0);

        }
        case 10:
        {
            empregojornal[playerid] = 0;
            DisablePlayerCheckpoint(playerid);
            GameTextForPlayer(playerid, "~y~missao concluida~g~$600", 10000, 4);
            DisablePlayerCheckpoint(playerid);
            SendClientMessage(playerid,-1,"para continuar use /ej.");
            GivePlayerMoney(playerid,600);
        }
    }
    return 1;
}

forward Tempu(playerid);
public Tempu(playerid)
{
    TogglePlayerControllable(playerid, 1);
    return 1;
}
Veja se funciona
nao funcionou quando chego no checkpoint marcado estando no vehiculo o checkpoint some e nao aparece mais os proximos antes se eu nao passasse no checkpoint e estivesse a pe o proximos checkpoint aparecia , creio que o ha um erro de logica mas nao estou sabendo ajeitar agora com esse que vc mandou nem a ape nem no veiculo aparece os proximos check apartid do primeiro chegando la ele ja some e nao aparece mais nada  nao sei onde ta o erro , mas lhe agradeco a sua ajuda so que nao funcionou aq


RE: ajuda a corrigir meu codigo - k2bi_YT - 01/05/2024

Alterei apenas uma callback, além de ser possível de otimizar mais esse code, teste para ver se esta de acordo com oque imaginava.

Código PHP:
public OnPlayerEnterCheckpoint(playerid)
{
    if (!
IsPlayerConnected(playerid)) return 0;
    for(new 
i!= sizeof(JornalCar); ++i)
    {
        if(
IsPlayerInVehicle(playeridJornalCar[i]))
        {
            switch(
empregojornal[playerid])
            {
                case 
1:
                {
                    
GameTextForPlayer(playerid"entregando jornal....1/10"100004);
                    
SetPlayerCheckpoint(playerid,1964.9343,-2093.5779,13.4930,10);
                }
                case 
2:
                {
                    
GameTextForPlayer(playerid"entregando jornal....2/10"100004);
                    
SetPlayerCheckpoint(playerid,1824.0347,-1842.7266,13.5143,10);
                }
                case 
3:
                {
                    
GameTextForPlayer(playerid"entregando jornal....3/10"100004);
                    
SetPlayerCheckpoint(playerid,1531.9675,-1674.4497,13.4812,10);
                }
                case 
4:
                {
                    
GameTextForPlayer(playerid"entregando jornal....4/10"100004);
                    
SetPlayerCheckpoint(playerid,1360.4689,-1298.3595,13.4092,10);
                }
                case 
5:
                {
                    
GameTextForPlayer(playerid"entregando jornal....5/10"100004);
                    
SetPlayerCheckpoint(playerid,1192.8175,-1320.8759,13.4989,10);
                }
                case 
6:
                {
                    
GameTextForPlayer(playerid"entregando jornal....6/10"100004);
                    
SetPlayerCheckpoint(playerid,818.9773,-1392.3652,13.4928,10);
                }
                case 
7:
                {
                    
GameTextForPlayer(playerid"entregando jornal....7/10"100004);
                    
SetPlayerCheckpoint(playerid,797.4005,-1071.3063,24.4965,10);
                }
                case 
8:
                {
                    
GameTextForPlayer(playerid"entregando jornal....8/10"100004);
                    
SetPlayerCheckpoint(playerid,1354.9268,-979.9109,30.8619,10);
                }
                case 
9:
                {
                    
GameTextForPlayer(playerid"entregando jornal....9/10"100004);
                    
SetPlayerCheckpoint(playerid,1294.4608,-1789.3079,13.4850,10);
                }
                case 
10:
                {
                    
DisablePlayerCheckpoint(playerid);
                    
GameTextForPlayer(playerid"~y~missao concluida~g~$600"100004);
                    
SendClientMessage(playerid,-1,"para continuar use /ej.");
                    
GivePlayerMoney(playerid,600);
                    
empregojornal[playerid] = 0;
                    return 
true;
                }
            }
            
SetTimerEx("Tempu"5000false"d"playerid);
            
TogglePlayerControllable(playerid,0);
            
empregojornal[playerid]++;
            return 
true;
        }
    }