Emprego Gari. -
Bom, quando o gari chega a um checkpoint ele digita o comando /recolherlixo e recolhe o lixo.. Atй ai tudo bem, mas quando vai para o proximo checkpoint o comando nгo funciona..
pawn Code:
// OnDialogResponse:
case DIALOG_ROTAS_GARI:
{
if(!response) return false;
if(response)
{
new stringx[50], stringy[50], stringz[50];
format(file, sizeof file, "Empregos/Gari/%d.ini", listitem);
RotaID[playerid] = listitem;
format(stringx, sizeof stringx, "Rota %d X", RotaID[playerid]);
format(stringy, sizeof stringy, "Rota %d Y", RotaID[playerid]);
format(stringz, sizeof stringz, "Rota %d Z", RotaID[playerid]);
SetPlayerCheckpoint(playerid, DOF2_GetFloat(file, stringx), DOF2_GetFloat(file, stringy), DOF2_GetFloat(file, stringz), 6.0);
SendClientMessage(playerid, Branco, "Complete os checkpoints para ganhar $80,00.");
SendClientMessage(playerid, Cinza, "Quando chegar no checkpoint use o comando /recolherlixo.");
}
}
// Comandos:
CMD:rotasgari(playerid)
{
new file[70];
new dialog[500];
for(new i; i < 1; i++)
{
format(file, sizeof file, "Empregos/Gari/%d.ini", i);
format(String, sizeof String, "{FFFFFF}[Rota %d]: Latas: %d | Pagamento: $%d,00.\n", i, DOF2_GetInt(file, "Total de Checkpoints"), DOF2_GetInt(file, "Valor"));
strcat(dialog, String);
}
ShowPlayerDialog(playerid, DIALOG_ROTAS_GARI, DIALOG_STYLE_LIST, "Rotas Dнsponiveis para Gari:", dialog, "Selecionar", "Fechar");
return true;
}
CMD:recolherlixo(playerid)
{
new stringx[50], stringy[50], stringz[50], file[70];
format(file, sizeof file, "Empregos/Gari/%d.ini", RotaID[playerid]);
format(stringx, sizeof stringx, "Rota %d X", RotaID[playerid]);
format(stringy, sizeof stringy, "Rota %d Y", RotaID[playerid]);
format(stringz, sizeof stringz, "Rota %d Z", RotaID[playerid]);
if(RotaID[playerid] == DOF2_GetInt(file, "Total de Checkpoints"))
{
DisablePlayerCheckpoint(playerid);
format(String, sizeof String, "Rota completada! Vocк recebeu a recompensa de ${FF4500}%d,00{FFFFFF}.", DOF2_GetInt(file, "Valor"));
SendClientMessage(playerid, Branco, String);
GivePlayerMoney(playerid, DOF2_GetInt(file, "Valor"));
pDados[playerid][Dinheiro] += DOF2_GetInt(file, "Valor");
}
else if(IsPlayerInRangeOfPoint(playerid, 6.0, DOF2_GetFloat(file, stringx), DOF2_GetFloat(file, stringy), DOF2_GetFloat(file, stringz)))
{
TogglePlayerControllable(playerid, false);
SetTimerEx("RecolherLixo", 2000, false, "i", playerid);
SendClientMessage(playerid, Cinza, "Recolhendo lixo, por favor aguarde..");
}
return true;
}
// Callback RecolherLixo:
public RecolherLixo(playerid)
{
new stringx[50], stringy[50], stringz[50], file[70];
format(file, sizeof file, "Empregos/Gari/%d.ini", RotaID[playerid]);
RotaID[playerid] = RotaID[playerid] + 1;
format(stringx, sizeof stringx, "Rota %d X", RotaID[playerid]);
format(stringy, sizeof stringy, "Rota %d Y", RotaID[playerid]);
format(stringz, sizeof stringz, "Rota %d Z", RotaID[playerid]);
SetPlayerCheckpoint(playerid, DOF2_GetFloat(file, stringx), DOF2_GetFloat(file, stringy), DOF2_GetFloat(file, stringz), 6.0);
SendClientMessage(playerid, Branco, "Lixo recolhido com {00FF00}sucesso{FFFFFF}, vб para o proximo {FF4500}checkpoint{FFFFFF}.");
TogglePlayerControllable(playerid, true);
return true;
}
Re: Emprego Gari. -
O que acontece exatamente? Parece estar tudo certo porйm muito "desoptimizado", difнcil compreensгo...