Veiculos pra profissгo -
Cauezin - 24.04.2018
Estou fazendo um sistema de profissгo para o meu servidor. Uma das profissхes seria Caminhoneiro. Ela precisa de veнculos para funcionar. Mas nгo estou conseguindo que apenas quem й da profissгo entrar no veiculo. E tambйm os veнculos eu gostaria de repetir entre as profissхes.
EX:
Caminhoneiro usa o DFT-30. Mas tambйm queria que o outra Profissгo usasse o mesmo veнculo mas vou apenas mudar a cor e adicionar uns objetos emcima(Essa parte й outra historia).
Estou tentanto mas nгo estб dando certo.
Se alguйm puder ajudar. Agradeзo muito
Base que usei pra fazer o sistema de profissгo.
https://sampforum.blast.hk/showthread.php?tid=617051
Re: Veiculos pra profissгo -
tonisantolia - 24.04.2018
pawn Код:
new vehicle[2]; // variavel para armazenar veiculos. (2 > nъmero de carros).
// OnGameModeInit:
vehicle[0] = AddStaticVehicle...
vehicle[1] = AddStaticVehicle...
// OnPlayerStateChange:
if(newstate == PLAYER_STATE_DRIVER) // Verifica se esta dirigindo
{
for(new i; i < sizeof(vehicle); i++) // Loop.
{
if(GetPlayerVehicleID(playerid) == vehicle[i]) // Se o jogador tiver no veiculo desejado.
{
if(variavelprofissao != idprofissao) // Verificar se nгo й da profissao do veiculo.
return RemovePlayerFromVehicle(playerid); // Se nгo for remove o jogador do carro.
}
}
}
Expliquei muito nгo mas dб para compreender.
Re: Veiculos pra profissгo -
Cauezin - 24.04.2018
Quote:
Originally Posted by tonisantolia
pawn Код:
new vehicle[2]; // variavel para armazenar veiculos. (2 > nъmero de carros).
// OnGameModeInit: vehicle[0] = AddStaticVehicle... vehicle[1] = AddStaticVehicle...
// OnPlayerStateChange: if(newstate == PLAYER_STATE_DRIVER) // Verifica se esta dirigindo { for(new i; i < sizeof(vehicle); i++) // Loop. { if(GetPlayerVehicleID(playerid) == vehicle[i]) // Se o jogador tiver no veiculo desejado. { if(variavelprofissao != idprofissao) // Verificar se nгo й da profissao do veiculo. return RemovePlayerFromVehicle(playerid); // Se nгo for remove o jogador do carro. } } }
Expliquei muito nгo mas dб para compreender.
|
Entendi, acho que agora vai funcionar, eu estava colocando no OnPlayerEnterVehicle ;-;
Se funcionar , +REP
Re: Veiculos pra profissгo -
1sbedx - 24.04.2018
Certamente hб muitas coisas erradas, eu fiz аs pressas e nгo testei, mas...
tambйm nгo й a melhor forma de se fazer.
PHP код:
new jobVehicle[10];
new vehJob[MAX_VEHICLES];
jobVehicle[0] = AddStaticVehicle(modelid, ...);
jobVehicle[1] = AddStaticVehicle(modelid, ...);
jobVehicle[2] = AddStaticVehicle(modelid, ...);
jobVehicle[3] = AddStaticVehicle(modelid, ...);
for (new i; i < 4; i ++)
vehJob[jobVehicle[i]] = PROF_TAXISTA;
jobVehicle[4] = AddStaticVehicle(modelid, ...);
jobVehicle[5] = AddStaticVehicle(modelid, ...);
jobVehicle[6] = AddStaticVehicle(modelid, ...);
jobVehicle[7] = AddStaticVehicle(modelid, ...);
jobVehicle[8] = AddStaticVehicle(modelid, ...);
jobVehicle[9] = AddStaticVehicle(modelid, ...);
for (new i = 4; i < 10; i ++)
vehJob[jobVehicle[i]] = PROF_...;
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
for (new i; i < sizeof(jobVehicle); i ++) if (!ispassenger && vehicleid != INVALID_VEHICLE_ID && vehJob[jobVehicle[i]] == PROF_TAXISTA && pInfo[playerid][pProfissao] != PROF_TAXISTA)
{
ClearAnimations(playerid);
return SendClientMessage(playerid, -1, "Vocк nгo tem as chaves deste veнculo.");
}
for (new i; i < sizeof(jobVehicle); i ++) if (!ispassenger && vehicleid != INVALID_VEHICLE_ID && vehJob[jobVehicle[i]] == PROF_... && pInfo[playerid][pProfissao] != PROF_...)
{
ClearAnimations(playerid);
return SendClientMessage(playerid, -1, "Vocк nгo tem as chaves deste veнculo.");
}
return 1;
}
Re: Veiculos pra profissгo -
Cauezin - 24.04.2018
Quote:
Originally Posted by 1sbedx
Certamente hб muitas coisas erradas, eu fiz аs pressas e nгo testei, mas...
tambйm nгo й a melhor forma de se fazer.
PHP код:
new jobVehicle[10];
new vehJob[MAX_VEHICLES];
jobVehicle[0] = AddStaticVehicle(modelid, ...);
jobVehicle[1] = AddStaticVehicle(modelid, ...);
jobVehicle[2] = AddStaticVehicle(modelid, ...);
jobVehicle[3] = AddStaticVehicle(modelid, ...);
for (new i; i < 4; i ++)
vehJob[jobVehicle[i]] = PROF_TAXISTA;
jobVehicle[4] = AddStaticVehicle(modelid, ...);
jobVehicle[5] = AddStaticVehicle(modelid, ...);
jobVehicle[6] = AddStaticVehicle(modelid, ...);
jobVehicle[7] = AddStaticVehicle(modelid, ...);
jobVehicle[8] = AddStaticVehicle(modelid, ...);
jobVehicle[9] = AddStaticVehicle(modelid, ...);
for (new i = 4; i < 10; i ++)
vehJob[jobVehicle[i]] = PROF_...;
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
for (new i; i < sizeof(jobVehicle); i ++) if (!ispassenger && vehicleid != INVALID_VEHICLE_ID && vehJob[jobVehicle[i]] == PROF_TAXISTA && pInfo[playerid][pProfissao] != PROF_TAXISTA)
{
ClearAnimations(playerid);
return SendClientMessage(playerid, -1, "Vocк nгo tem as chaves deste veнculo.");
}
for (new i; i < sizeof(jobVehicle); i ++) if (!ispassenger && vehicleid != INVALID_VEHICLE_ID && vehJob[jobVehicle[i]] == PROF_... && pInfo[playerid][pProfissao] != PROF_...)
{
ClearAnimations(playerid);
return SendClientMessage(playerid, -1, "Vocк nгo tem as chaves deste veнculo.");
}
return 1;
}
|
Esse daqui й basicamente igual ao outro , porйm mais detalhado e mais explicado.
+REP Para os dois quando passar o tempo pra dar mais rep ;-;
Re: Veiculos pra profissгo -
Cauezin - 24.04.2018
Quote:
Originally Posted by 1sbedx
Certamente hб muitas coisas erradas, eu fiz аs pressas e nгo testei, mas...
tambйm nгo й a melhor forma de se fazer.
PHP код:
new jobVehicle[10];
new vehJob[MAX_VEHICLES];
jobVehicle[0] = AddStaticVehicle(modelid, ...);
jobVehicle[1] = AddStaticVehicle(modelid, ...);
jobVehicle[2] = AddStaticVehicle(modelid, ...);
jobVehicle[3] = AddStaticVehicle(modelid, ...);
for (new i; i < 4; i ++)
vehJob[jobVehicle[i]] = PROF_TAXISTA;
jobVehicle[4] = AddStaticVehicle(modelid, ...);
jobVehicle[5] = AddStaticVehicle(modelid, ...);
jobVehicle[6] = AddStaticVehicle(modelid, ...);
jobVehicle[7] = AddStaticVehicle(modelid, ...);
jobVehicle[8] = AddStaticVehicle(modelid, ...);
jobVehicle[9] = AddStaticVehicle(modelid, ...);
for (new i = 4; i < 10; i ++)
vehJob[jobVehicle[i]] = PROF_...;
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
for (new i; i < sizeof(jobVehicle); i ++) if (!ispassenger && vehicleid != INVALID_VEHICLE_ID && vehJob[jobVehicle[i]] == PROF_TAXISTA && pInfo[playerid][pProfissao] != PROF_TAXISTA)
{
ClearAnimations(playerid);
return SendClientMessage(playerid, -1, "Vocк nгo tem as chaves deste veнculo.");
}
for (new i; i < sizeof(jobVehicle); i ++) if (!ispassenger && vehicleid != INVALID_VEHICLE_ID && vehJob[jobVehicle[i]] == PROF_... && pInfo[playerid][pProfissao] != PROF_...)
{
ClearAnimations(playerid);
return SendClientMessage(playerid, -1, "Vocк nгo tem as chaves deste veнculo.");
}
return 1;
}
|
Isso daqui nгo funcionou nгo. Eu nгo uso defines para os empregos.
Re: Veiculos pra profissгo -
FerrariL - 24.04.2018
Entгo mude para a variбvel de profissгo.
Re: Veiculos pra profissгo -
Cauezin - 24.04.2018
Fiz assim
PHP код:
new Eveiculo[5];
new Emotoboy[4];
PHP код:
public OnGameModeInit()
{
UsePlayerPedAnims(); // Andar normalmente
Eveiculo[0] = AddStaticVehicle(578,-148.1839,-322.7406,2.0453,180.2084,1,1); // v1
Eveiculo[1] = AddStaticVehicle(578,-141.2557,-322.8502,2.0457,178.6352,1,1); // v2
Eveiculo[2] = AddStaticVehicle(578,-133.7400,-322.4712,2.0464,180.6215,1,1); // v3
Eveiculo[3] = AddStaticVehicle(578,-125.7944,-322.5229,2.0460,178.9929,1,1); // v4
Eveiculo[4] = AddStaticVehicle(578,-116.7708,-322.5246,2.0518,177.9242,1,1); // v5
// --
Emotoboy[0] = AddStaticVehicle(448,2097.9995,-1812.6289,12.9820,90.5790,3,6); // pizza1
Emotoboy[1] = AddStaticVehicle(448,2097.5234,-1814.4313,12.9817,89.5149,3,6); // pizza2
Emotoboy[2] = AddStaticVehicle(448,2097.7832,-1801.9897,12.9825,91.2709,3,6); // pizza3
Emotoboy[3] = AddStaticVehicle(448,2098.0776,-1800.4216,12.9854,91.9463,3,6); // pizza4
return 1;
}
PHP код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new arquivo[40], name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(arquivo, sizeof(arquivo),"Contas/%sInfos.ini", name);
Player[playerid][pEmprego] = DOF2_GetInt(arquivo, "Emprego");
if(newstate == PLAYER_STATE_DRIVER)
{
for(new i; i < sizeof(Eveiculo); i++)
{
if(GetPlayerVehicleID(playerid) == Eveiculo[i])
{
if(Player[playerid][pEmprego] == 1)
{
SendClientMessage(playerid, -1, "[CLS]Digite /t para comeзar a trabalhar");
}else{
SendClientMessage(playerid, -1, "[CLS]Esse veнculo й apenas para Caminhoneiros");
RemovePlayerFromVehicle(playerid);
}
}
}
for(new p; p < sizeof(Emotoboy); p++)
{
if(GetPlayerVehicleID(playerid) == Emotoboy[p])
{
if(Player[playerid][pEmprego] != 2)
{
SendClientMessage(playerid, -1, "[CLS]Esse veнculo й apenas para MotoBoys");
RemovePlayerFromVehicle(playerid);
ClearAnimations(playerid);
}else{
SendClientMessage(playerid, -1, "[CLS]Digite /t para comeзar a trabalhar");
}
}
}
}
return 1;
}
Ficou grande e eu acho que estou desperdiзando espaзo. Mas estб funcionado.
Re: Veiculos pra profissгo -
FerrariL - 24.04.2018
Dava pra economizar looping aн...
Re: Veiculos pra profissгo -
Cauezin - 24.04.2018
Quote:
Originally Posted by FerrariL
Dava pra economizar looping aн...
|
Eu sei que da , sу nгo sei como ;-;
Se quiser ensinar <3
Re: Veiculos pra profissгo -
AutoMatic2 - 24.04.2018
if(newstate == PLAYER_STATE_DRIVER)
{
new VeiculoID;
VeiculoID = GetPlayerVehicleID(playerid);
if(VeiculoID == Eveiculo[0] || VeiculoID == Eveiculo[1] || VeiculoID == Eveiculo[2]
|| VeiculoID == Eveiculo[3] || VeiculoID == Eveiculo[4])
{
if(Player[playerid][pEmprego] == 1)
{
SendClientMessage(playerid, -1, "[CLS]Digite /t para comeзar a trabalhar");
}
else
{
SendClientMessage(playerid, -1, "[CLS]Esse veнculo й apenas para Caminhoneiros");
RemovePlayerFromVehicle(playerid);
}
}
return 1;
}
Re: Veiculos pra profissгo -
Cauezin - 24.04.2018
Quote:
Originally Posted by AutoMatic2
if(newstate == PLAYER_STATE_DRIVER)
{
new VeiculoID;
VeiculoID = GetPlayerVehicleID(playerid);
if(VeiculoID == Eveiculo[0] || VeiculoID == Eveiculo[1] || VeiculoID == Eveiculo[2]
|| VeiculoID == Eveiculo[3] || VeiculoID == Eveiculo[4])
{
if(Player[playerid][pEmprego] == 1)
{
SendClientMessage(playerid, -1, "[CLS]Digite /t para comeзar a trabalhar");
}
else
{
SendClientMessage(playerid, -1, "[CLS]Esse veнculo й apenas para Caminhoneiros");
RemovePlayerFromVehicle(playerid);
}
}
return 1;
}
|
Й a mesma de um Loop, mas vocк fez sem usar ele .-.
Re: Veiculos pra profissгo -
Cleyson - 25.04.2018
Dessa maneira vocк fara uma verificaзгo na conta de cada player toda vez que entrar em um veiculo.
Tente fazer isso somente quando logar e armazenar os valores nas variбveis. Assim evita de ficar gastando processamento atoa.
Re: Veiculos pra profissгo -
Cauezin - 25.04.2018
Quote:
Originally Posted by Cleyson
Dessa maneira vocк fara uma verificaзгo na conta de cada player toda vez que entrar em um veiculo.
Tente fazer isso somente quando logar e armazenar os valores nas variбveis. Assim evita de ficar gastando processamento atoa.
|
Exemplo?