new VeiculoVIP; //Variavel
public OnPlayerCommandText
if(strcmp("/vcar",cmdtext,true,11) == 0)
{
if(GetVipLevel(playerid) == 0) // se o VIP do jogador for 0 returna a scm
return SendClientMessage(playerid, -1, "{B4FC0A}[ INFO ] {FFFFFF}Vocк nгo й vip!");
ShowPlayerDialog(playerid,Principal,DIALOG_STYLE_LIST,"Concessionaria VIP","Veiculo 1","Selecionar", "Cancelar");
return 1;
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == Principal)
{
if(response)
{
if(listitem == 0)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
VeiculoVIP = CreateVehicle(411, x+3, y+3, z+2, 0, 1, -1, 9999999);
GameTextForPlayer(playerid, "~y~]~w~Criado com sucesso~y~]", 3000, 5);
for(new i=1; i<MAX_VEHICLES; i++)
{
SetVehicleNumberPlate(i, "*** VIP ***");
}
}
}
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
for(new i; i < MAX_VEHICLE_VIP; i++) {
if(GetVipLevel(playerid) == 1) continue; //Chamada de callback dos vips. 1= True vip
if(vehicleid == VeiculoVIP) { //Variavel do veiculo
if(GetVipLevel(playerid) == 1) { //Chamada de callback dos vips. 1= True vip
SendClientMessage(playerid,-1,"Bem vindo"); // msg ao vip
}
else {
SendClientMessage(playerid,-1,"#Este veiculo nгo й autorizado para seu uso! Apenas Vips!"); //Msg para o player nгo vip
TogglePlayerControllable(playerid,false);
TogglePlayerControllable(playerid,true);
}
}
return 1;
}
|
new VeiculoVIP[MAX_VEHICLES];
e em verificaзхes: VeiculoVIP[vehicleid] tente e diga se funciona. |
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(VeiculoVIP[vehicleid]{
if(!SuaVarDeVIP[playerid]){
SendClientMessage(playerid, -1, "Vocк nгo й VIP!");
RemovePlayerFromVehicle(playerid);
}
}
return 1;
}
|
Isto me parece ser um erro de verificaзгo.
Tente o seguinte: pawn Код:
|
new valor;
new variavel[valor];
variavel[valor] = // Funзгo que irб ser chamada por este valor.
/*
Exemplo:
variavel[valor] = playerid;
se o valor da variavel valor ainda for 0 pode pegar o id do jogador dessa forma:
variavel[0];
Exemplo2:
if(IsPlayerAdmin(variavel[0]))
*/
valor++; // aumenta o valor da variavel valor para a proxima vez que for utilizada.
// comeзo do script:
new valor_;
new veiculo_vip[valor_];
// Onde cria o carro:
veiculo_vip[valor_] = CreateVehicle(411, x+3, y+3, z+2, 0, 1, -1, 9999999);
valor_++;
// Onde verifica se o veнculo й vip:
for(new v; v < sizeof valor_; v ++)
{
if(veiculo_vip[v] == vehicleid)
{
// funзгo caso o veнculo for vip.
}
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
if (GetVipLevel(playerid) == 0)
{
SendClientMessage(playerid, 0xFF0000FF, "[ ERRO ] {FFFFFF}Vocк nгo pode usar este veнculo! Apenas Vips!");
RemovePlayerFromVehicle(playerid);
}
}
return true;
}