[Ajuda] Ajuda com profissгo caminhoneiro
#1

Olб galera, tudo bem ? Bom, eu preciso fazer um sistema para o caminhoneiro poder trabalhar, mas nгo estou conseguindo. O que quero й o seguinte: O player escreve o comando /mcarga e marca uma carga(com checkpoint) em algum lugar. Quando o player chegar la, a carga vai para as costas dele e o chackpoint desaparece e deve aparecer outro la na HQ dele. Eu tenho os seguintes cуdigos:

Comando -
Код:
//COMANDO CAMINHONEIRO
	if(strcmp(cmdtext, "/mcarga", true) == 0)
	{
	
		if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, VERMELHO, "Por favor, logue no servidor para utilizar este comando.");
	    if(Player[playerid][Emprego] != 2) return SendClientMessage(playerid, LARANJA, "Vocк nгo й um caminhoneiro.");
	    if(IsPlayerInVehicle(playerid, CARROSCAMINHONEIRO[0]) ) {}
		
	    new rand = random(sizeof(Cargas));
	    DestroyPickup(Caixa);
		SetPlayerCheckpoint(playerid, Cargas[rand][0], Cargas[rand][1], Cargas[rand][2], 3.0);
  		Caixa = CreatePickup(1220, 1, Cargas[rand][0], Cargas[rand][1], Cargas[rand][2], -1);
		Carga = true;
	    return 1;
	}
OnPlayerEnterCheckpoint -
Код:
if(Carga == true)
	{
        SetPlayerHoldingObject(playerid, 1220, 1, 0, -0.4595, 0, 0, 0, 0);
        SendClientMessage(playerid, Cor_Caminhoneiro, "Leve a carga atй a sua HQ para receber o adicional em seu salбrio.");
        DestroyPickup(Caixa);
	    Carga = false;
	    ComCarga = true;
	    DisablePlayerCheckpoint(playerid);
	    
	    return 1;
	}
	if(ComCarga == true)
	{
	    SetPlayerCheckpoint(playerid, -1876.1937,-1670.3932,21.7500, 3.0);
	    ComCarga = false;
	    
	    return 1;
	}
Explicando: A variбvel "Carga" testa se o player entrou no checkpoint para pegar uma carga. E a variбvel "ComCarga" testa se o player jб estб com uma carga e pode chegar no checkpoint para receber seu dinheiro.

Essa foi a minha lуgica para esse sistema, mas se alguйm tiver outra sugestгo, eu agradeзo.


----------------||-----------------------
Outra dъvida: Para o player digitar o comando ele precisa estar dentro de um veнculo...
Код:
if(IsPlayerInVehicle(playerid, CARROSCAMINHONEIRO[0]) )
Para eu nгo precisar usar o || "OU":
Код:
if(IsPlayerInVehicle(playerid, CARROSCAMINHONEIRO[0]) || IsPlayerInVehicle(playerid, CARROSCAMINHONEIRO[1])
300 mil vezes, existe alguma funзгo para eu determinar todos os "CARROSCAMINHONEIRO" ?
Reply
#2

Код:
a carga vai para as costas dele
AttachObjectToPlayer

Код:
existe alguma funзгo para eu determinar todos os "CARROSCAMINHONEIRO" ?
Acho que tu pode usar o switch
Reply
#3

Faz um Loop pros CARROSCAMINHONEIROS
tem esse tutorial https://sampforum.blast.hk/showthread.php?tid=290735 ou esse https://sampforum.blast.hk/showthread.php?tid=195395
Reply
#4

Com loops, sгo melhores.
Supondo que os carros de caminhoneiros sejam 10 veнculos.

pawn Код:
for(new veiculo; veiculo < 11; veiculo++) {
    if(IsPlayerInVehicle(playerid, CARROSCAMINHONEIRO[veiculo])) {
        //codigo
    }
}
Reply
#5

Eu havia esquecido dos loops, provavelmente deve ser uma boa quantidade de veiculos que ele estб usando..
Reply
#6

Duas coisas.
1°: a ordem de criaзгo dos meu carros й essa :
Код:
// MOTOS SPAWN //
	AddStaticVehicleEx(522,1099.8241,-1775.7777,13.3443,90.0,133,133,120);//1
	AddStaticVehicleEx(471,1099.8241,-1772.7777,13.3443,90.0,133,133,120);//2
	AddStaticVehicleEx(471,1099.8241,-1769.7777,13.3443,90.0,133,133,120);//3
	AddStaticVehicleEx(471,1099.8241,-1766.7777,13.3443,90.0,133,133,120);//4
	AddStaticVehicleEx(471,1099.8241,-1763.7777,13.3443,90.0,133,133,120);//5
	AddStaticVehicleEx(471,1099.8241,-1760.7777,13.3443,90.0,133,133,120);//6
	// MOTOS SPAWN //
	
	//CAMINHOES HQ CAMINHONEIROS
 	CARROSCAMINHONEIRO[0] = CreateVehicle(455,-1912.9666,-1677.1665,23.0156, -90.0, 0x000000FF, 0x000000FF, 180);
	CARROSCAMINHONEIRO[1] = CreateVehicle(455,-1912.9666,-1664.9316,23.0156, -90.0, 0x000000FF, 0x000000FF, 180);
	
	CARROSCAMINHONEIRO[2] = CreateVehicle(573,-1866.1930,-1609.9489,21.7578, 180.0, 0x000000FF, 0x000000FF, 180);
	CARROSCAMINHONEIRO[3] = CreateVehicle(573,-1859.1538,-1609.9489,21.7641, 180.0, 0x000000FF, 0x000000FF, 180);
	CARROSCAMINHONEIRO[4] = CreateVehicle(573,-1849.8392,-1609.9489,21.7578, 180.0, 0x000000FF, 0x000000FF, 180);
	
	CARROSCAMINHONEIRO[5] = CreateVehicle(578,-1828.1279,-1607.4879,23.0156, 180.0, 0x000000FF, 0x000000FF, 180);
	CARROSCAMINHONEIRO[6] = CreateVehicle(578,-1820.9944,-1607.4879,23.0156, 180.0, 0x000000FF, 0x000000FF, 180);
	CARROSCAMINHONEIRO[7] = CreateVehicle(578,-1811.1589,-1607.4879,23.0156, 180.0, 0x000000FF, 0x000000FF, 180);
	
	CARROSCAMINHONEIRO[8] = CreateVehicle(573,-1882.2360,-1682.0188,21.7509, -90.0, 0x000000FF, 0x000000FF, 180);
	CARROSCAMINHONEIRO[9] = CreateVehicle(578,-1882.2360,-1661.7048,21.7500, -90.0, 0x000000FF, 0x000000FF, 180);//16
	//CAMINHOES HQ CAMINHONEIROS
O que eu coloco no loop ? menor ou igual a 9, ou menor ou igual a 16 E maior ou igual a 7 ?

Segunda duvida: Se eu tiver que colocar "menor ou igual a 16 E maior ou igual a 7", como eu faзo isso ?
Desse jeito nгo da..
Код:
for(new veiculo; veiculo >= 7 && <= 16; veiculo ++)
tem outra forma ?
Reply
#7

Na contagem vocк coloca "< 11" (Menor a 11 ) , pois vocк possui 10 carros.
Reply
#8

Quote:
Originally Posted by DiegoLeo
Посмотреть сообщение
Na contagem vocк coloca "< 11" (Menor a 11 ) , pois vocк possui 10 carros.
Ele tem 16 no total, 6 < veiculo < 17 .
Reply
#9

Eu usando esse loop, ainda nгo resolvi meu problema
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)