Skip to content

Include VeiculoFuncoes v1.0.3

Latest
Compare
Choose a tag to compare
@ocalasans ocalasans released this 28 Jan 01:24
· 23 commits to main since this release
c3c96d7

Correções e Outros

  • Todos os loopings globais utilizando o GetVehiclePoolSize foram alterados para o foreach vehicle.
  • A callback Veiculo_Sirene foi totalmente reconstruída, agora possibilitando sua utilização em todos os veículos, exceto aqueles que já possuem sirene ou que não são compatíveis.
  • Foi adicionada a callback Veiculo_Tunar. Confira as instruções de uso no README.
  • Foi adicionada a callback Veiculo_Neon. Confira as instruções de uso no README.
  • Foi adicionada a callback Veiculo_Xenon. Confira as instruções de uso no README.
  • Foi adicionada a callback Veiculo_Cor. Confira as instruções de uso no README.
  • Foi adicionada a callback Veiculo_Interior. Confira as instruções de uso no README.
  • A callback Veiculo_Mundo foi corrigida; anteriormente, estava associando o veículo duas vezes ao mundo escolhido, em vez de associar o jogador uma vez, caso ele estivesse dentro do veículo.
  • A callback Veiculo_Vida foi corrigida. Na versão 1.0.2, as definições NON_GLOBAL_VEHICLES e GLOBAL_VEHICLES tornaram-se booleanas; no entanto, esta foi a única callback que não possuía essa opção.
  • Agora é possível definir o modo global como true ou false; true significa global, enquanto false significa não global.
  • Foi adicionada a verificação IsValidVehicle para verificar se o veículo existe no servidor, evitando assim possíveis erros.
  • Todos os returns foram revisados e alguns foram corrigidos, evitando assim possíveis erros.
  • Uma nova Hook chamada VFI_vehicle_destroy foi criada para substituir a callback DestroyVehicle. Sua função consiste em verificar se o veículo possui sirene, neon ou xenon; caso positivo, ele será destruído antecipadamente, resolvendo assim o problema do attach permanecer no id do veículo destruído.
  • Agora não é mais obrigatório utilizar o include e o plugin streamer. Se o include não estiver ativo no seu Gamemode, o objeto será criado como CreateObject invés de CreateDynamicObject.
  • Agora não é mais obrigatório utilizar o include foreach nem o YSI. Se você optar por não usar nenhum dos dois includes, os loops manterão a forma como for(new. No entanto, ao usar um dos dois includes, os loops manterão a forma foreach.

  • Agora, não é mais necessário definir o playerid antes do vehicleid. O playerid passou a ser a última opção, uma vez que sua função é enviar mensagens ao jogador com um veículo específico, determinado pelo vehicleid. Além disso, não faz sentido definir o playerid em uma callback que não o inclui e não tem nenhuma relação com esse parâmetro. Por exemplo, no OnGameModeInit, se o usuário criar um código para criar um veículo e adicionar uma sirene usando Veiculo_Sirene, não faria sentido definir o playerid, pois a callback não possui e não está relacionada a esse parâmetro. Veja os exemplos abaixo:
public OnGamemodeInit()
{
    new vehicleid;
    //
    vehicleid = CreateVehicle(400, 0.0, 0.0, 0.0, 0.0, 1, 1, 0);
    Veiculo_Sirene(true, NON_GLOBAL_VEHICLES, 0xFFFFFFFF, "", vehicleid, playerid);
    //
    return true;
}
  • Viu? Qual seria o sentido de eu definir o playerid em uma callback que não o possui e não tem relação alguma com esse parâmetro?

  • Então vocês passarão a utilizar dessa forma:

public OnGamemodeInit()
{
    new vehicleid;
    //
    vehicleid = CreateVehicle(400, 0.0, 0.0, 0.0, 0.0, 1, 1, 0);
    Veiculo_Sirene(true, NON_GLOBAL_VEHICLES, 0xFFFFFFFF, "", vehicleid);
    //
    return true;
}
  • A definição de cor e mensagem parece desnecessária, uma vez que Veiculo_Sirene está sendo utilizada em uma callback que não possui relação alguma com o playerid nem com o global. No entanto, essa situação é inevitável, e é uma consequência que teremos que aceitar.

  • Todos os defines que forneciam suporte para o uso do include em inglês foram substituídos por stocks para oferecer um suporte mais eficiente para usuários das ferramentas Visual Studio Code, Sublime Text e outras ferramentas similares.
  • Todas as variáveis globais agora são declaradas como static; anteriormente, eram declaradas como new.
  • Um Hook chamado VFI_print_gamemodeinit foi adicionado a public OnGamemodeInit. Neste Hook, foi incluído um print para registrar nos logs, a inclusão do include no Gamemode. Além disso, o usuário agora poderá visualizar a versão do include que está sendo utilizado.
  • Foi criado um iterator para veículos, no entanto, este é exclusivo para usuários que utilizam o foreach, uma vez que este include oferece apenas um iterator para players.

Warning

Usuários que estão utilizando a versão 3.2.3664 do Pawn Compiler podem se deparar com o erro de número 075. A solução recomendada é atualizar o compilador para a versão mais recente, disponível em pawn-lang. Caso prefira não realizar a atualização, a alternativa é acessar o arquivo VeiculosFuncoes e remover as linhas da 26 à 35 e da 294 à 303.

  • A ativação da biblioteca a_samp foi removida do include. Em seu lugar, foi adicionada uma verificação !defined. Se o usuário não tiver a biblioteca ativada no Gamemode, ele receberá um erro de número 111.

Esclarecimentos

  • Alguns códigos foram desenvolvidos com base no exemplo do VSync. No entanto, percebi que o VSync estava incompleto, pois não incluía todos os componentes necessários para veículos. Dessa forma, foi necessário recriar tudo, incorporando todos os componentes necessários para cada veículo. Além disso, aprimorei o sistema de Neon; ao usar o VSync, percebi que apenas o Neon do lado esquerdo era destruído, enquanto o do lado direito não era, embora ambos devessem ser destruídos.