Carregando mapas com o Streamer sem pesar o servidor
Com dezenas de mapas, o OnGameModeInit vira uma lista gigante de CreateDynamicObject. Organizar bem o carregamento facilita a manutenção e evita desperdício.
Um arquivo por mapa
gamemodes/
└── mapas/
├── prefeitura.inc
├── delegacia_ls.inc
├── pista_stunt_aeroporto.inc
└── interior_casa_media.inc
Cada arquivo tem uma função:
stock Mapa_Prefeitura()
{
CreateDynamicObject(19447, 1481.0, -1772.0, 18.8, 0.0, 0.0, 0.0);
// ...
}
E no início do gamemode:
public OnGameModeInit()
{
Mapa_Prefeitura();
Mapa_DelegaciaLS();
// ...
return 1;
}
Mundos e interiores
Objetos de interiores devem ser criados no interior e no virtual world certos:
CreateDynamicObject(modelo, x, y, z, rx, ry, rz, .worldid = 10, .interiorid = 1);
Assim, o Streamer nem considera esses objetos para quem está na rua.
Distância de stream
O parâmetro de distância define a partir de quantos metros o objeto aparece:
- Objetos pequenos (mesas, cadeiras): distâncias curtas;
- Estruturas grandes (prédios, pontes): distâncias maiores;
- Padrão muito alto para tudo = mais objetos visíveis = mais carga para o cliente.
Materiais e textos
SetDynamicObjectMaterial e SetDynamicObjectMaterialText deixam mapas mais bonitos, mas cada material é mais informação para enviar. Use com critério.
Carregamento sob demanda
Mapas de eventos e minigames não precisam existir o tempo todo. Crie os objetos quando o evento começa e destrua quando termina (DestroyDynamicObject, guardando os IDs).
Mapas em arquivos
Alguns servidores carregam mapas de arquivos de texto ou do banco, sem recompilar. É mais flexível, mas exige um carregador bem testado e validação dos dados.
Verifique o total
Acompanhe a quantidade de objetos com as funções de contagem do Streamer. Um número que só cresce indica objetos sendo criados sem ser destruídos.
Hospede seu servidor com a VittHost
Nos planos OPENMP-BR da VittHost, mapas grandes rodam em servidores no Brasil com painel Pterodactyl, proteção DDoS, MySQL incluso, compatibilidade total com scripts SA-MP e teste grátis de 3 dias.