Correções e Outros
- Todos os loopings globais utilizando o
GetVehiclePoolSize
foram alterados para oforeach 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ão1.0.2
, as definiçõesNON_GLOBAL_VEHICLES
eGLOBAL_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
oufalse
;true
significa global, enquantofalse
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
chamadaVFI_vehicle_destroy
foi criada para substituir a callbackDestroyVehicle
. 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 doattach
permanecer no id do veículo destruído. - Agora não é mais obrigatório utilizar o
include
e oplugin
streamer. Se oinclude
não estiver ativo no seu Gamemode, o objeto será criado comoCreateObject
invés deCreateDynamicObject
. - Agora não é mais obrigatório utilizar o
include
foreach nem o YSI. Se você optar por não usar nenhum dos doisincludes
, os loops manterão a forma comofor(new
. No entanto, ao usar um dos dois includes, os loops manterão a formaforeach
.
- Agora, não é mais necessário definir o
playerid
antes dovehicleid
. Oplayerid
passou a ser a última opção, uma vez que sua função é enviar mensagens ao jogador com um veículo específico, determinado pelovehicleid
. Além disso, não faz sentido definir oplayerid
em uma callback que não o inclui e não tem nenhuma relação com esse parâmetro. Por exemplo, noOnGameModeInit
, se o usuário criar um código para criar um veículo e adicionar uma sirene usandoVeiculo_Sirene
, não faria sentido definir oplayerid
, 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
emensagem
parece desnecessária, uma vez queVeiculo_Sirene
está sendo utilizada em uma callback que não possui relação alguma com oplayerid
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 doinclude
em inglês foram substituídos porstocks
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 comonew
. - Um
Hook
chamadoVFI_print_gamemodeinit
foi adicionado apublic
OnGamemodeInit
. NesteHook
, foi incluído umprint
para registrar nos logs, a inclusão doinclude
no Gamemode. Além disso, o usuário agora poderá visualizar a versão doinclude
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 esteinclude
oferece apenas umiterator
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úmero111
.
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 oNeon
do lado esquerdo era destruído, enquanto o do lado direito não era, embora ambos devessem ser destruídos.