24.04.2014, 13:16
Galera, eu to com um probleminha aqui no meu sistema de carretas, estou tentando fazer um sistema bбsico, porйm complexo de caminhoneiros no meu servidor, mas eu to tendo conflitos com id's de trailers de carretas, pois eu nгo sei muito bem trabalhar com trailerattached, entгo venho aqui pedir ajuda de vocкs para alguma ideia de como arrumar isso.









se alguem puder me ajudar eu agradeзo desde jб









pawn Код:
//aqui estб a funзгo na qual carregarб a carreta no caso sу o trailer
if(newkeys == KEY_YES && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) // Tecla Y
{
new trailer = GetVehicleTrailer(veh);
if(CarregarCarretaCombustivel(playerid) && InfoJogador[playerid][iEmprego] == eCaminhoneiro && CarrosDeCaminhoneiros(veh))
{
if(GetVehicleModel(trailer) != 584) //Verifica se o modelo do trailer do veiculo em questгo й 584 (tanque de combustivel)
{
MP(playerid, cinza, "Vocк nгo estб com uma carreta de tanque de combustнvel engatada!");
return 1;
}
else if(GetVehicleModel(trailer) == 584)
{
if(CarregamentoNasCarretasC[trailer] < 500)
{
if(JaEstaCarregando[playerid] == 1)
{
MP(playerid, cinza, "Vocк jб estб fazendo o carregamento da carreta, pode cancelar pressionando 'N'!");
}
else
{
MP(playerid, cinza, "Vocк iniciou o carregamento, para cancelar pressione 'N'!");
JaEstaCarregando[playerid] = 1;
TogglePlayerControllable(playerid, false);
GameTextForPlayer(playerid, "~n~~n~~w~Sua carreta esta sendo carregada!~n~Aguarde!~n~Para cancelar pressione 'N'", 5000, 3);
timerCarregamento = SetTimerEx("CarregandoCarretaCombustivel", 1000, true, "ii", playerid, trailer);
return 1;
}
}
else if(CarregamentoNasCarretasC[trailer] == 500)
{
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~y~Sua carreta ja esta~n~~w~100% ~g~carregada!", 10000, 3);
return 1;
}
}
}
}
forward CarregandoCarretaCombustivel(playerid, idcarreta);
public CarregandoCarretaCombustivel(playerid, idcarreta)
{
new engatada = GetVehicleTrailer(GetPlayerVehicleID(playerid));
if(engatada == idcarreta)
{
if(CarregamentoNasCarretasC[idcarreta] < 1000)
{
CarregamentoNasCarretasC[idcarreta]+= 5;
DinheiroPelaCargaCombustivel[playerid] += 25;
UltimoCarregamento[playerid] = CarregamentoNasCarretasC[idcarreta];
// MFP(playerid, -1, "Carregando trailer de combustivel %d com %d valor total a pagar R$%.2d!", idcarreta, CarregamentoNasCarretasC[idcarreta], DinheiroPelaCargaCombustivel[playerid]);
}
else if(CarregamentoNasCarretasC[idcarreta] == 1000)
{
TogglePlayerControllable(playerid, true);
GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~y~Sua carreta esta~n~~w~100% ~g~carregada!", 10000, 3);
KillTimer(timerCarregamento);
}
}
return 1;
}
//aqui estб a funзгo na qual serб chamada a atualizaзгo do textdraw conforme o id da carreta(trailer) porйm se eu desengato uma e engato outra, a outra fica com a mesma quantia de carga que a antiga...
forward AtualizarCargas(playerid, idcarreta);
public AtualizarCargas(playerid, idcarreta)
{
new str[245];
// MFP(playerid, -1, "teste id carreta %d", idcaminhao);
new cavalinho = GetPlayerVehicleID(playerid);
if(IsTrailerAttachedToVehicle(cavalinho) == 1)
{
if(GetVehicleModel(GetVehicleTrailer(cavalinho)) == 584)
{
TipoCarregamento[idcarreta] = tcCombustivel;
if(CarregamentoNasCarretasC[idcarreta] == 0)
{
TextDrawSetString(textTipoCarga[idcarreta], "Carga: ~y~Combustivel");
TextDrawSetString(textQuantiaCarga[idcarreta], "Quantia: ~y~0/1000L");
TextDrawSetString(textValorCarga[idcarreta], "Valor carga: ~y~Nada");
UltimoCarregamento[playerid] = 0;
}
else if(CarregamentoNasCarretasC[idcarreta] >= 1)
{
TextDrawSetString(textTipoCarga[idcarreta], "Carga: ~y~Combustivel");
format(str, 256, "Quantia: ~y~%d/1000", CarregamentoNasCarretasC[idcarreta]);
TextDrawSetString(textQuantiaCarga[idcarreta], str);
format(str, 256, "Valor da carga: ~y~R$%.2d", DinheiroPelaCargaCombustivel[playerid]);
TextDrawSetString(textValorCarga[idcarreta], str);
UltimoCarregamento[playerid] = CarregamentoNasCarretasC[idcarreta];
}
TextDrawShowForPlayer(playerid,textTipoCarga[idcarreta]);
TextDrawShowForPlayer(playerid,textQuantiaCarga[idcarreta]);
TextDrawShowForPlayer(playerid,textValorCarga[idcarreta]);
TextDrawShowForPlayer(playerid,textBordaCargas);
TextDrawShowForPlayer(playerid,textFundoCargas);
TextDrawShowForPlayer(playerid,textInfosCarga);
}
}
else
{
TextDrawHideForPlayer(playerid,textTipoCarga[idcarreta]);
TextDrawHideForPlayer(playerid,textQuantiaCarga[idcarreta]);
TextDrawHideForPlayer(playerid,textValorCarga[idcarreta]);
TextDrawHideForPlayer(playerid,textBordaCargas);
TextDrawHideForPlayer(playerid,textFundoCargas);
TextDrawHideForPlayer(playerid,textInfosCarga);
}
return 1;
}
forward VerificarCarretas(playerid, cavalinho);
public VerificarCarretas(playerid, cavalinho)
{
if(IsTrailerAttachedToVehicle(cavalinho) == 1)
{
new trailer = GetVehicleTrailer(cavalinho);
timerCargas = SetTimerEx("AtualizarCargas", true, 1000, "ii", playerid, trailer);
}
else
{
KillTimer(timerCargas);
}
return 1;
}