DraKiNs lançou um sistema de streamer de objetos para versão 0.3d
Segundo os testes tudo saiu tranquilo, atualmente apenas tem três principais funções.
Implementação:
Como alguns streamer objetos existentes, o ips stream usa filterscript onde há a raiz da cada função em um filterscript, portanto será necessário ser plugado um filterscript para carregar as funções e uma include no seu gamemode para ser declarado as novas funções.
No server.cfg:
filterscripts streamer
No gamemode ou local onde queres colocar o streamer:
#include ipsstream
Prontinho.
Para mudar a capacidade padrão dos objetos deve-se mudar no filterscripts, onde há:
#define MAX_STREAM 10000
é a capacidade de objetos suportada, pode colocar mais que isto (veja no suporte abaixo)
Onde há:
#define MIN_INTERVAL 00500
Deve ser colocado o intervalo para criar os objetos (tempo para atualizar, não coloque muito para não dar muita latência)
Funções:
Como disse anteriormente são funções básicas:
Quote:
DestroyObject(objeto id para destruir); CreateObject(parametros igual da sa:mp, criar objeto) MoveObject(parametros igual da samp 0.3d, mover objeto) |
Suporte:
Segundo os testes feitos, o sistema suporta até 1000 objetos para cada jogador em um determinado quadro de poucos metros. E suporta 500 mil objetos para todo o servidor.
Também suporta 4 mil objetos em uma longa área, por jogador
Velocidade:
Todo sistema é percorrido por um circuito foreach criado pela própria equipe, sem a menor lentidão do sistema.
Também foi usado um algorítimo de busca e remoção de objetos criado por Bruno da Silva (chamado Fluxo Stream)..
Como costume, ele fez um tópico explicando sobre como funcionaria, segue um resumo da sua explicação:
PORTUGOL DO ALGORITIMO:
Quote:
CRIAR TODOS OBJETOS CASO NUMERO TOTAL DE OBJETOS CRIADOS ACIMA FOR MAIOR QUE O PERMITIDO DELETAR OBJETOS LONGES, DEIXANDO APENAS OS PERTOS DO PONTO CENTRAL |
* Observem que os objetos criados ficaram ao lado do jogador, de forma que os objetos estourados ficaram extremamente longes, assim fazendo com que a eficiente deste sistema fosse melhor que a dos outros.
Também contamos com um ótimo sistemas de circuito para obter melhor velocidade nas checagens dos objetos por slots e dos jogadores usando um ótimo algorítimo de lista ligada no qual prima em a célula atual direicionar para próxima célula fazendo um loop interno pela array.
Novas funções Versão 2.0:
- Agora compactável com 0.3d 0.3c 0.3b
- Adicionado Interior e Virtual World na função CreateObject
Novas funções Versão 3.0:
O Bruno resolveu inovar nesta nova versão do seu streamer e criou um sistema de carregar objetos do mta sem conversão !!
- Carregar Objetos direto do [b].map
Basta usar apenas uma função e carregue os objetos a partir de seu arquivo *map gerado pelo MTA
Exemplo:
CreateObjectsFromMAPFile("mapadomta.map");
Também agora vem com um carregador de mapas que estão no formato TXT, podendo até escolher o delimitador das posiçõe x,y,z etc
Bastando usar uma função:
- Carregar objetos diretos de um arquivo de texto
CreateObjectsFromTXTFile("mapa.txt", '|');
'|' é a divisória que divide x|y|z|rx|ry|rx e outros ...
- Carregar parametros únicos de um arquivo do mta
Por exemplo:
GetMapXMLParam("<object id=\"object (barrel4) (16)\" doublesided=\"false\" model=\"1225\" interior=\"0\" dimension=\"0\" posX=\"4724.2119140625\" posY=\"-1238.6279296875\" posZ=\"6.3207788467407\" rotX=\"0\" rotY=\"0\" rotZ=\"3.9990234375\" />", "rotZ=\"\");
O exemplo desta função acima pegará a posição rotZ do objeto que foi pego no primeiro parametro (em formato de arquivo para mta)
Download:
Versão 3.0:
Para efetuar o download do pacote todo:
Pacote todo :-> Ainda não hospedado
Para pegar código no pastebin de ambos scripts:
streamer.pwn :-> http://pastebin.com/A9fSPz7E
ipsstream.inc :-> http://pastebin.com/Lz0WK2VJ
Autoria:
Desenvolvido por Bruno da Silva
Auxiliado por RockFire
Obrigado a Pharrel e MiTToS pelas dicas das funções
_
Nenhum comentário:
Postar um comentário