Um guia sobre como instalar e atualizar tanto o MetaMod quanto o SourceMod.
Requisitos
- Um servidor SRCDS a rodar em Windows, Linux ou Mac.
- Acesso ao sistema de ficheiros do SRCDS (por exemplo, FTP ou Explorador de Ficheiros).
- Se o seu cliente estiver a rodar Windows e o seu servidor estiver a rodar Linux/Mac, vai precisar de uma aplicação de arquivamento/extração de ficheiros como o 7-ZIP.
Como Instalar o MetaMod
O MetaMod é necessário para rodar o SourceMod. Por isso, normalmente instalo o MetaMod primeiro.
- Faça o download do pacote correto para o seu sistema operativo aqui.
- Extraia o ficheiro descarregado usando ZIP ou Tar/GZIP, por exemplo.
- Copie a pasta addons/ do seu ficheiro extraído para o diretório principal do jogo no servidor. Por exemplo, no Counter-Strike: Source, seria /path/to/server/cstrike/. No Team Fortress 2 seria /path/to/server/tf/.
Se for pedido para sobrescrever pastas ou ficheiros, selecione sim. Após a instalação, certifique-se de que tem um ficheiro metamod.vdf localizado na pasta addons/. Todas as versões recentes do MetaMod já devem incluir este ficheiro, mas se não houver um ficheiro metamod.vdf, pode gerar um aqui.
Atualizando
- Encerre o seu servidor de jogo (tecnicamente, no Linux não é necessário, mas o servidor pode falhar após a troca de mapa).
- Execute os passos 1 - 3 acima.
Confirmação
Para confirmar que o MetaMod está instalado no servidor de jogo, pode executar o comando meta version para verificar a versão instalada. Se receber um erro de "comando desconhecido", o MetaMod não foi instalado corretamente.
meta version
Metamod:Source Version Information
Metamod:Source version 1.12.0-dev+1165
Plugin interface version: 16:14
SourceHook version: 5:5
Loaded As: Valve Server Plugin
Compiled on: Dec 19 2022 17:29:31
Built from: https://github.com/alliedmodders/metamod-source/commit/63c5c15
Build ID: 1165:63c5c15
http://www.metamodsource.net/
Como Instalar o SourceMod
Para instalar o SourceMod, siga os passos abaixo.
- Faça o download do pacote correto para o seu sistema operativo aqui.
- Extraia o ficheiro descarregado usando ZIP ou Tar/GZIP, por exemplo.
- Copie as pastas addons/ e cfg/ do ficheiro extraído para o diretório principal do jogo no servidor. Por exemplo, no Counter-Strike: Source, seria /path/to/server/cstrike/. No Team Fortress 2 seria /path/to/server/tf/.
Atualizando
- Encerre o seu servidor de jogo (tecnicamente, no Linux não é necessário, mas o servidor pode falhar após a troca de mapa).
- Siga os passos 1 e 2 acima.
- Copie todas as pastas e ficheiros da pasta addons/sourcemod/ do ficheiro extraído, exceto a pasta configs/, para o diretório do SourceMod no seu servidor de jogo. Por exemplo, no Counter-Strike: Source, seria /path/to/server/cstrike/addons/sourcemod/.
A razão pela qual excluímos a pasta configs/ é para evitar sobrescrever qualquer configuração personalizada que você tenha, como o comum ficheiro databases.cfg.
Confirmação
Para confirmar que o SourceMod está instalado no servidor de jogo, pode executar o comando sm version para verificar a versão instalada. Se receber um erro de "comando desconhecido", o SourceMod não foi instalado corretamente.
sm version
SourceMod Version Information:
SourceMod Version: 1.11.0.6926
SourcePawn Engine: 1.11.0.6926, jit-x86 (build 1.11.0.6926)
SourcePawn API: v1 = 5, v2 = 16
Compiled on: Dec 20 2022 14:00:51
Built from: https://github.com/alliedmodders/sourcemod/commit/fd63fff8
Build ID: 6926:fd63fff8
http://www.sourcemod.net/
Jogos Que Utilizam MetaMod & SourceMod
Aqui está uma pequena lista de jogos onde servidores comunitários e modificados utilizam o MetaMod e o SourceMod. Tenha em mente que existem outros jogos fora desta lista também.
- Half Life 2
- Counter-Strike: Source
- Counter-Strike: Global Offensive
- Team Fortress 2
- Left 4 Dead 1/2
- Day of Defeat: Source
- Zombie Panic: Source
- Fistful of Frags
O Que É o MetaMod (MM)?
MetaMod é um plugin em C++ para o Half Life 2/Source Engine da Valve que permite que outros plugins/addons, como o SourceMod, funcionem. Aqui está a descrição completa da AlliedModders.
Citação
Metamod:Source é um ambiente de plugins em C++ para o Half-Life 2. Ele atua como um "metamod" que fica entre o Jogo e o Motor (Engine), e permite que plugins intercetem chamadas que fluem entre eles. Ele fornece um mecanismo chamado SourceHook, uma biblioteca muito poderosa para intercetar, sobrescrever e substituir chamadas de funções virtuais.
Embora a Valve forneça o seu próprio ambiente de plugins em C++, encontrámos duas razões principais para desenvolver o Metamod:Source:
Se plugins separados usarem os seus próprios mecanismos de hooking, surgirão conflitos. O ambiente centralizado do SourceHook resolve isso fornecendo um gateway unificado.
A camada da Valve tem idiossincrasias, como não descarregar totalmente da memória e um controlo fraco via consola e programaticamente. O Metamod:Source é explícito, flexível e open source.
É importante notar que o Metamod:Source não é o mesmo que o "Mani Admin Plugin", "SourceMod" ou "EventScripts". É um wrapper de biblioteca muito pequeno concebido para carregar e passar alguns ponteiros para plugins em C++. Ele fornece quase nenhuma funcionalidade desnecessária (como mods de jogabilidade ou suporte a MySQL) e não incorre em overhead por si só.
O Metamod:Source é licenciado sob uma licença open-source muito liberal. Não é necessário divulgar o código-fonte dos seus plugins, já que a licença permite uso comercial/proprietário. (Note que pode ter de seguir os acordos de licença de software de terceiros, como os SDKs da Valve ou outras bibliotecas.)
O Que É o SourceMod (SM)?
SourceMod é um addon para o MetaMod que permite que utilizadores e proprietários de servidores criem/desenvolvam plugins usando a sua própria linguagem de programação, o SourcePawn. Também vem com comandos e ferramentas que tornam a administração do servidor muito mais fácil. Aqui está a descrição completa da AlliedModders.
Quote
SourceMod é uma modificação de servidor para qualquer jogo que rode na engine Half-Life 2. É uma plataforma poderosa e altamente otimizada para criar scripts de plugins e gerenciar a administração de servidores. O pacote padrão vem com um conjunto base de plugins, mas existem mais de 2.500 plugins na comunidade.
Recursos Básicos (Usuários)
Um sistema de permissões fácil de usar e extremamente detalhado (compatível com SQL)
Um menu de administração altamente configurável
Slots reservados
Plugins flexíveis de gerenciamento de mapas (nomeações, rock the vote, etc)
Comandos básicos como expulsar/banir/dar tapa/silenciar jogadores, alterar cvars, etc
Diversos comandos de votação
Proteção contra spam no chat
Gatilhos de chat abrangentes tanto para usuários quanto para administradores
Facilmente traduzível
SourceMod é altamente otimizado e ideal para extrair o máximo de desempenho dos seus servidores Source, sem a complexidade de escrever código em C++.
Recursos de Script (Desenvolvedores)
Administration - API abrangente para desenvolver sistemas de administração.
Clients - Trabalhar com informações e callbacks de clientes em jogo.
Commands - Criação, hooking e sobreposição de comandos de console de cliente e servidor.
ConVars - Criação, hooking e recuperação de variáveis de console.
Database - Acesso abstraído a bancos de dados.
Engine - Acesso a diversos recursos da engine Half-Life 2, com mais sendo adicionados constantemente.
Entities - Alteração e recuperação de propriedades de entidades, tanto nomeadas quanto numeradas.
Events - Criação, disparo e hooking de GameEvents do Half-Life 2.
Files - Acesso ao sistema de arquivos.
IPC - Comunicação avançada entre plugins, similar ao AMX Mod X.
Menus - API de menus abstraída para criar menus uniformes entre mods
Messages - Envio e hooking de UserMessages.
Parsing - Análise de texto avançada e altamente otimizada.
Timers - Criação de eventos temporizados.
Translation - Busca de arquivos de frases multilíngues.
O que torna o SourceMod diferente? (Desenvolvedores)
- Velocidade - SourceMod é extremamente rápido, e isso não é uma afirmação vazia. Cada plugin é carregado na memória e convertido em código de CPU puro. Muito cuidado é tomado para garantir que cada área crítica do SourceMod seja tão rápida quanto deveria ser. A linguagem de script é estaticamente tipada e não requer coleta de lixo.
- API - A maior parte do trabalho no SourceMod ocorre em tornar a API a melhor possível. Ao adicionar qualquer interface ou função, fazemos as seguintes perguntas:
- Ela representa uma solução otimizada?
- Alguém a usaria?
- Quão confusa ela é?
- Ela corresponde ao uso comum mais provável?
- Será possível estendê-la no futuro?
- Seu nome representa o que ela faz?
- Seu nome está de acordo com outras funções semelhantes?
- Extensibilidade - SourceMod é completamente extensível. SourceMod fornece uma API completa em C++ para estender tanto o SourceMod quanto a API de eventos/nativas de plugins.
- Código Aberto - SourceMod, suas extensões e seus plugins são todos de código aberto sob a GNU General Public License!
Veja Também
Conclusão
É isso! Agora você já sabe como instalar e atualizar tanto o SourceMod quanto o MetaMod.
Se você tiver alguma dúvida ou feedback, responda a este tópico!

