[AJUDA]Definir carros para um org
#3

Quote:
Originally Posted by Josma_cmd
Посмотреть сообщение
Criar veнculos para organizaзхes e impedindo que outros os peguem.


A criaзгo de veнculos exclusivos para organizaзхes й relativamente simples apesar de um tanto chato de se fazer, eu meu sistema uso um loop que carrega os veнculos da scriptfiles mas acho que nгo й uma boa pra este tutorial pois o tornaria um cуdigo ъtil, entгo vamos lб.
Primeiro passo, vocк deve criar as variбveis de cada organizaзгo com o numero de veнculos que as mesma terгo.
Exemplo:
pawn Код:
new VCivil[3];       //Os Civis tem 3 veнculos
new VAssassinos[5];  //Os Assassinos tem 5 veнculos.
new VAeronautica[7]; //A Aeronautica tem 7 veнculos.
new VDrifters[4];    //Os Drifters tem 4 veнculos.
new VPFederal[6];    //A Policia Federal tem 6 veнculos.
Й bom lembrar que й contado o caracter NULL, entгo se a org tem 3 veнculos vocк conta а partir do 0 mas sempre deixando 1 valor а sobra. 0, 1, 2 o 3 й NULL.

As variбveis estгo criadas, vamos aplicar agora os carros а elas.
Vocкs podem fazer isso no OnGameModeInit, ou em uma callback, fica а escolha de cada um.

pawn Код:
//**********************************[ Veнculos Civis]*************************************************
VCivil[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
VCivil[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
VCivil[2] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);

//******************************[ Veнculos dos Assassinos]*************************************************
VAssassinos[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
VAssassinos[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
VAssassinos[2] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
//E assim vai atй criar todos os veнculos pra completar as arrays da variбvel.

//******************************[ Veнculos da Aeronautica]*************************************************
VAeronautica[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
VAeronautica[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
VAeronautica[2] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
//E assim vai atй criar todos os veнculos pra completar as arrays da variбvel.

//******************************[ Veнculos dos Drifters]*************************************************
VDrifters[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
VDrifters[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
VDrifters[2] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
//E assim vai atй criar todos os veнculos pra completar as arrays da variбvel.

//***************************[ Veнculos da Policia Federal]**********************************************
VPFederal[0] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
VPFederal[1] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
VPFederal[2] = CreateVehicle(modelo, Float:X, Float:Y, Float:Z, Float:Rotaзгo, cor1, cor2, respawnDelay);
//E assim vai atй criar todos os veнculos pra completar as arrays da variбvel.
Nгo preenchi os parвmetros pra que possam compreender melhor, apesar de saber que vocкs conhecem os parвmetros do CreateVehicle.

Vamos ao passo seguinte, impedir que um membro de outra organizaзгo entre no veнculo de sua organizaзгo, para isso poderнamos usar loop, vбrios comparadores em um loop entre outras coisas, mas vamos utilizar de um macro que eu fiz.
pawn Код:
#define VDaOrg(%0,%1,%2) GetPlayerVehicleID(playerid) >= %0[%1] && GetPlayerVehicleID(playerid) <= %0[%2]
Com este macro verificaremos se o veнculo que o player estб й o mesmo veнculo de uma das arrays setadas na funзгo, veja o exemplo abaixo.
pawn Код:
public OnPlayerStateChange(playerid, newstate, oldstate) //Verificarб a mudanзa de estado do player
{
    if(newstate == PLAYER_STATE_DRIVER) //O novo estado do player й de motorista.
    {
        if(VDaOrg(VPCivil,0,2)) SendClientMessage(playerid, C_Civil, "Vocк entrou em um veнculo Civil");
        if(VDaOrg(VAssassinos,0,4)  && ProgressaoInfo[playerid][Membro] != 2) return RemovePlayerFromVehicle(playerid), SendClientMessage(playerid, C_Assassinos, "Vocк nгo й um Assassino");
        if(VDaOrg(VAeronautica,0,6) && ProgressaoInfo[playerid][Membro] != 3) return RemovePlayerFromVehicle(playerid), SendClientMessage(playerid, C_Aeronautica, "Vocк nгo й da Aeronautica");
        if(VDaOrg(VDrifters,0,3)    && ProgressaoInfo[playerid][Membro] != 4) return RemovePlayerFromVehicle(playerid), SendClientMessage(playerid, C_Drifters, "Vocк nгo й um Drifter");
        if(VDaOrg(VPFederal,0,5)    && ProgressaoInfo[playerid][Membro] != 5) return RemovePlayerFromVehicle(playerid), SendClientMessage(playerid, C_PFederal, "Vocк nгo й um Policial Federal");
    }
    return true;
}
No primeiro parвmetro desse macro vocк vai utilizar o nome da variбvel dos veнculos da org desejada, em seguida no segundo parвmetro o numero inicial de veнculos а ser comparado, no caso, 0, e no terceiro, o numero de veнculos que a organizaзгo tem, comeзando do 0 e sem o caracter NULL.
Como podem perceber, utilizamos as cores das organizaзхes que criamos com o const no inicio do tutorial.
Tуpico do tutorial sobre criaзгo de organizaзхes: https://sampforum.blast.hk/showthread.php?tid=288305
Reply


Messages In This Thread
[AJUDA]Definir carros para um org - by wevertonneves - 08.10.2011, 23:20
Re: [AJUDA]Definir carros para um org - by MatriXBorn - 08.10.2011, 23:44
Re: [AJUDA]Definir carros para um org - by Josma_cmd - 08.10.2011, 23:49
Re: [AJUDA]Definir carros para um org - by wevertonneves - 09.10.2011, 02:33

Forum Jump:


Users browsing this thread: 2 Guest(s)