Transição de desenvolvedores, documentação e teste do 2.13 para correções finais para lançamento.
Repositório de complementos VSH2
AVISO: Este leia-me será atualizado em breve. Obrigado pela sua paciência!
VSH2 é uma reescrita de VSH1. VSH1 e FF2 tinham uma estrutura de modo de jogo muito ruim, usando codificação hackeada e de má qualidade. Eu poderia até dizer que eles provavelmente não tinham nenhuma estrutura nem nenhuma estrutura real em seu código.
Na verdade, o VSH2 possui uma estrutura estruturada e baseada em eventos que combina os melhores recursos de FF2 e VSH1, não apenas tendo suporte para chefes multijogador, mas também para tornar mais fácil adicionar novos chefes e dar-lhes habilidades e mecânicas verdadeiramente únicas, dando ao desenvolvedor completo , controle desinibido por código, em vez de arquivos estritamente de configuração.
O objetivo do FF2 era ser muito fácil de adicionar chefes de uma maneira genérica e padronizada. É claro que há uma compensação: FF2 é muito mais difícil, senão impossível, de personalizar verdadeiramente a mecânica e as habilidades do chefe sem ter que recodificar partes do próprio FF2. VSH2, uma vez que requer pelo menos alguma experiência com SourcePawn, é um pouco mais difícil para um novato criar novos chefes do que se eles usassem FF2, mas escolher as recompensas VSH2 seguindo o caminho mais difícil, permitindo que você controle quase todos os comportamentos individuais dos chefes e lógica.
Se você precisar de ajuda para configurar os chefes ou pelo menos precisar de alguma informação sobre a API para construção de chefes, aproveite a vasta API do VSH2 dando uma olhada no wiki do VSH2
NB: O VSH2 funcionará perfeitamente bem como está pronto para uso como um substituto do VSH1, mas foi projetado com desenvolvedores SourcePawn capazes em mente para tirar o máximo proveito da estrutura codificada do zero!
addons/sourcemod/configs
. Certifique-se de manter a estrutura de pastas que está nas configurações.Use a nova sintaxe sourcepawn (sourcemod 1.7+).
Instruções que requerem parênteses (como instruções 'if') devem ter cada lado dos parênteses espaçados com os parênteses iniciais tocando a palavra-chave construct, por exemplo, construct( code/expression )
.
Comentários de linha única que transmitem uma mensagem devem ter três barras: ///
.
Comentários de várias linhas que transmitem uma mensagem devem ter uma estrela inicial extra: /**
.
Propriedades, funções e métodos menores que 30 linhas de código devem ter o início {
chave no estilo K&R C, por exemplo: ret func() {
.
Os nomes das variáveis locais devem estar em Snake_case.
Os nomes de propriedades devem ter um prefixo de uma única letra do seu tipo.
Funções, métodos, mapas de métodos, enums, valores enum devem ser nomeados em PascalCase. Pascal_Case também é aceitável.
Os valores enum usados como sinalizadores podem estar em letras maiúsculas.
Regras de constantes nomeadas:
1.0
) devem ser constantes enum que são adicionadas com 0.0
em seus locais de uso.3.14
) devem ser definidas pelo pré-processador. As instruções if
encadeadas não são ruins, mas se os dados forem apenas uma coisa de cada vez, use instruções if-else if
.
if-else if
em um único dado, use uma instrução switch
.Campos/sinalizadores de bits permitem usar um único int como 32 bools. Útil se um elemento puder ter vários aspectos ao mesmo tempo.
1 << n
onde n
é de 0 a 31.IntLog2
em int_log.inc
: n == IntLog2(1 << n)
Sem pré-incrementos ++i, i--
, Pós-incrementos apenas i++, i--