public OnPlayerEnterCheckpoint(playerid)
{
DisablePlayerCheckpoint(playerid);
return 1;
}
CMD:pegarencomendas(playerid, params[])
{
if(Player[playerid][pEmprego] != Motoboy) return SCM(playerid, -1,"voce nao e motoboy");
new vehid = GetPlayerVehicleID(playerid);
if( vehid < veh_motoboy[0] || vehid > veh_motoboy[7]) return SCM(playerid, -1, "voce nao esta no veiculo da profissao!");
if(IsPlayerInRangeOfPoint(playerid, 2.0, 1758.7290,-1683.9829,13.4583))
{
new rand = random(sizeof(Encomendas));
cp_motoboy1 = CreateDynamicCP(Encomendas[rand][0], Encomendas[rand][1], Encomendas[rand][2], 3.0,-1,-1,-1,100.0);
SetPlayerCheckpoint(playerid, Encomendas[rand][0], Encomendas[rand][1], Encomendas[rand][2],3.0);
SCM(playerid, -1, "Entregas iniciadas siga as marcas no mapa para entregar!");
}
else SCM(playerid, -1,"voce nao esta no local de coleta!");
return true;
}
if( checkpointid == cp_motoboy1)
{
new str[100], grana, vehid = GetPlayerVehicleID(playerid);
if( vehid < veh_motoboy[0] || vehid > veh_motoboy[7]) return SCM(playerid, -1, "voce nao esta no veiculo da profissao!");
grana = granamotoboyrandom();
GivePlayerMoney(playerid, grana);
format(str, 100, "Voce entregou a encomenda e ganhou %i", grana);
SCM(playerid, -1, str);
DestroyDynamicCP(cp_motoboy1);
new rand = random(sizeof(Encomendas));
cp_motoboy2 = CreateDynamicCP(Encomendas[rand][0],Encomendas[rand][1],Encomendas[rand][2], 3.0,-1,-1,-1,100.0);
SetPlayerCheckpoint(playerid, Encomendas[rand][0], Encomendas[rand][1], Encomendas[rand][2],3.0);
}
1°, o CreateDynamicCP, jб cria seu checkpoint, entгo nгo precisa desse SetPlayerCheckPoint.
2°, O CreateDynamicCP й da include streamer, entгo vocк tem que utilizar a callback da inc (OnPlayerEnterDynamicCP) Isso pode te ajudar. 3°, Quando vocк cria um checkpoint e coloca ele em uma variбvel, no caso ai й "cp_motoboy1", ele adere o valor 1 e quando vocк o destrуi, ele continua com o valor 1, entгo sempre que for destruir um checkpoint, logo depois coloque, "cp_motoboy1[playerid]= 0;" Caso vocк nгo faзa isso, sempre que vocк entrar no segundo checkpoint, vai contar como se tivesse no primeiro ou vai executar tudo no mesmo checkpoint. |
public OnPlayerEnterDynamicCP(playerid, checkpointid) {
public OnPlayerEnterCheckpoint(playerid) { DisablePlayerCheckpoint(playerid); return 1; }
new cp_motoboy[5][MAX_PLAYERS]; // essa variavel e global esta fora da callback
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
if( checkpointid == cp_motoboy[0][playerid])
{
new str[100], grana, vehid = GetPlayerVehicleID(playerid);
if( vehid < veh_motoboy[0] || vehid > veh_motoboy[7]) return SCM(playerid, -1, "voce nao esta no veiculo da profissao!");
grana = granamotoboyrandom();
GivePlayerMoney(playerid, grana);
format(str, 100, "Voce entregou a encomenda e ganhou %i", grana);
SCM(playerid, -1, str);
DestroyDynamicCP(cp_motoboy[0][playerid]);
cp_motoboy[0][playerid] = 0;
new rand = random(sizeof(Encomendas));
cp_motoboy[1][playerid] = CreateDynamicCP(Encomendas[rand][0],Encomendas[rand][1],Encomendas[rand][2], 3.0,-1,-1,-1,1000.0);
}
if( checkpointid == cp_motoboy[1][playerid])
{
new str[100], grana, vehid = GetPlayerVehicleID(playerid);
if( vehid < veh_motoboy[0] || vehid > veh_motoboy[7]) return SCM(playerid, -1, "voce nao esta no veiculo da profissao!");
grana = granamotoboyrandom();
GivePlayerMoney(playerid, grana);
format(str, 100, "Voce entregou a encomenda e ganhou %i", grana);
SCM(playerid, -1, str);
DestroyDynamicCP(cp_motoboy[1][playerid]);
cp_motoboy[1][playerid] = 0;
new rand = random(sizeof(Encomendas));
cp_motoboy[2][playerid] = CreateDynamicCP(Encomendas[rand][0],Encomendas[rand][1],Encomendas[rand][2], 3.0,-1,-1,-1,1000.0);
}
.... restante dos cp's