Bloquear -
FabioGTP - 23.09.2016
como faзo para bloquear o trem apenas para uma suposta organizaзгo?, pois eu estou fazendo o gamemode do ctrl +n e tem o trem q fica em sf e em lv se nгo me engano, tem como fazer para apenas uma organizaзгo entrar nele para dirigir?
Re: Bloquear -
LockedLucas - 23.09.2016
й sу fazer uma simples verificaзгo...
Re: Bloquear -
FabioGTP - 23.09.2016
Quote:
Originally Posted by LockedLucas
й sу fazer uma simples verificaзгo...
|
Eu sei, mais a minha dъvida й em que parte, pois nгo fui eu que criei o trem, ele jб veio no gamemode...
Re: Bloquear - Whoo - 23.09.2016
no momento em que ele
entrar no veiculo
Re: Bloquear -
FabioGTP - 23.09.2016
Quote:
Originally Posted by Whoo
no momento em que ele entrar no veiculo
|
como eu faria para identificar o trem??, teria q fazer um format igual estб no exemplo?
Re: Bloquear -
JPedro - 23.09.2016
Й algo assim, eu fiz no onplayerstatechange, mas vocк pode fazer na callback OnPlayerEnterVehicle sу que se o jogador for teleportado/puxado pra dentro do trem sem fazer a animaзгo de entrar nгo vai ter a checagem, recomendo usar o onplayerstatechange
PHP код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER) // Player entered a vehicle as a driver
{
new vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid, vehicleid) && GetVehicleModel(vehicleid) == id do trem)
{
if(pInfo[playerid][pOrg] != id da org)
{
SendClientMessage(playerid, -1, "vc nao й da org e nao pode dirigir este veiculo");
RemovePlayerFromVehicle(playerid);
}
}
}
return 1;
}
Re: Bloquear - Whoo - 23.09.2016
Код:
if(GetVehicleModel(vehicleid) == 538 && PLAYER_FACЗГO)
{
//...
}
else RemovePlayerFromVehicle(playerid);
Re: Bloquear -
FabioGTP - 23.09.2016
Quote:
Originally Posted by JPedro
Й algo assim, eu fiz no onplayerstatechange, mas vocк pode fazer na callback OnPlayerEnterVehicle sу que se o jogador for teleportado/puxado pra dentro do trem sem fazer a animaзгo de entrar nгo vai ter a checagem, recomendo usar o onplayerstatechange
PHP код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER) // Player entered a vehicle as a driver
{
new vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid, vehicleid) && GetVehicleModel(vehicleid) == id do trem)
{
if(pInfo[playerid][pOrg] != id da org)
{
SendClientMessage(playerid, -1, "vc nao й da org e nao pode dirigir este veiculo");
RemovePlayerFromVehicle(playerid);
}
}
}
return 1;
}
|
Cara obrigado, ainda com esse cуdigo vc me deu uma ideia mt melhor rsrs, vlw.
Re: Bloquear -
JPedro - 23.09.2016
Quote:
Originally Posted by Whoo
Код:
if(GetVehicleModel(vehicleid) == 538 && PLAYER_FACЗГO)
{
//...
}
else RemovePlayerFromVehicle(playerid);
|
Nгo precisa fazer esse tipo de coisa pra ejetar o jogador, vocк simplesmente pode fazer a checagem do modelo do veнculo e se o jogador pertence a uma org diferente da qual й permitida
PHP код:
if(GetVehicleModel(vehicleid) == 538 && Organizacao[playerid] != ORGANIZAO_PERTMIDA)
{
RemovePlayerFromVehicle(playerid);
}
Re: Bloquear -
FabioGTP - 23.09.2016
Quote:
Originally Posted by JPedro
Nгo precisa fazer esse tipo de coisa pra ejetar o jogador, vocк simplesmente pode fazer a checagem do modelo do veнculo e se o jogador pertence a uma org diferente da qual й permitida
PHP код:
if(GetVehicleModel(vehicleid) == 538 && Organizacao[playerid] != ORGANIZAO_PERTMIDA)
{
RemovePlayerFromVehicle(playerid);
}
|
Eu peguei uma base do seu e executei esse cуdigo
PHP код:
if(newstate == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid, vehicleid) && GetVehicleModel(vehicleid) == 538)
{
if(Player[playerid][pBallas] >= 4)
{
}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COR_ERRO, "Vocк nгo pode pegar esse veнculo!");
}
}
}
nгo sei se vai funcionar, irei testar rsrsrs
Re: Bloquear -
JPedro - 23.09.2016
Quote:
Originally Posted by FabioGTP
Eu peguei uma base do seu e executei esse cуdigo
PHP код:
if(newstate == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid, vehicleid) && GetVehicleModel(vehicleid) == 538)
{
if(Player[playerid][pBallas] >= 4)
{
}
else
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COR_ERRO, "Vocк nгo pode pegar esse veнculo!");
}
}
}
nгo sei se vai funcionar, irei testar rsrsrs
|
Vc pode fazer assim:
PHP код:
if(newstate == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
if(IsPlayerInVehicle(playerid, vehicleid) && GetVehicleModel(vehicleid) == 538)
{
if(Player[playerid][pBallas] < 4)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, COR_ERRO, "Vocк nгo pode pegar esse veнculo!");
}
}
}
Vai lhe poupar algumas linhas e aliбs recomendo que leia este tуpico
https://sampforum.blast.hk/showthread.php?tid=493276
Leia a parte de "Lуgicas, sem lуgica"
Re: Bloquear - Whoo - 23.09.2016
nгo faz diferenзa.. no caso do seu cуdigo vocк pega o id do veiculo em que o player esta e armazena do vehicleid, e depois faz a verificaзгo novamente se ele esta no veiculo em que ele esta nгo entendi..
Re: Bloquear -
JPedro - 23.09.2016
Quote:
Originally Posted by Whoo
nгo faz diferenзa.. no caso do seu cуdigo vocк pega o id do veiculo em que o player esta e armazena do vehicleid, e depois faz a verificaзгo novamente se ele esta no veiculo em que ele esta nгo entendi..
|
Eu armazeno o ID do veнculo no vehicleid e depois verifico se ele estб neste veнculo e tambйm faзo a checagem do modelo.
Re: Bloquear - Whoo - 23.09.2016
tudo bem rs, sу quis dizer que quando usamos GetPlayerVehicleID o player tem que estar dentro do veiculo se nгo retorna falso, com isso nгo seria necessбrio verificar se ele esta no mesmo veiculo em que pegamos o ID, neste caso poderia utilizar IsPlayerInAnyVehicle que retorna verdadeiro se o player esta em um veiculo antes de pegar o ID do mesmo.
Re: Bloquear -
JPedro - 23.09.2016
Quote:
Originally Posted by Whoo
tudo bem rs, sу quis dizer que quando usamos GetPlayerVehicleID o player tem que estar dentro do veiculo se nгo retorna falso, com isso nгo seria necessбrio verificar se ele esta no mesmo veiculo em que pegamos o ID, neste caso poderia utilizar IsPlayerInAnyVehicle que retorna verdadeiro se o player esta em um veiculo antes de pegar o ID do mesmo.
|
Ah sim, nгo sabia disto