21.05.2010, 19:48
(
Последний раз редактировалось [VGS]Protioso; 12.07.2010 в 04:47.
)
Olб amores!
Antes de tudo, saiba, em poucas palavras, que "streamer" й algo que permite que vocк possa colocar alйm dos limites.
Hoje vou apresentar a vocкs um include que na verdade й mais que um pois reъne outros 4 que sгo unificados a ele. Hб um bom tempo eu jб estava fazendo alguns deles por necessidade prуpria... Acabou que fiquei com alguns includes feitos que foram muito ъteis para o que eu queria fazer naquele momento. Aн no comeзo do ano decidi unificб-los e melhorar alguns colocando umas funзхes extras entre outros detalhes e entгo comecei. Demorei pra caralho pois meu tempo й muito curto, e ainda decidi fazer mais um include. Entre testes lagados (к meu pc) e compilaзхes agora estб pronto e creio que tenha ficado bom e com alguns diferenciais dos demais includes do tipo. Vocкs vгo ver algumas datas como 29 de janeiro de 2010, que foi quando eu achei que tinha acabado, no entanto quis adicionar mais algumas funзхes mas o tempo novamente correu contra isso, mas enfim o que vale й a intenзгo.
P-Streamer nгo й um include que objetivou alta performance, velocidade e bla bla bla... Й um include que eu garanto o funcionamento correto, com funзхes ъnicas e que CUMPREM O QUE PROMETEM. Vocк vai adicionar objetos e nгo vai ficar caindo na бgua quando se teleportar, por exemplo (no caso de uma ilha). Existem algumas coisas ainda a serem vistas para versхes futuras, mas pra agora estб tudo nos conformes.
Como maioria deve saber meus includes antes de serem lanзados ficam em testes por semanas senгo meses... Mas mesmo assim, sempre escapa alguma coisa, mas acredite que serб reduzido ao mнnimo possнvel.
Instalaзгo:
1°- Certifique-se de possuir o include PSF (Protioso String Funзхes);
2°- Extraia o arquivo compactado no mesmo local onde fica sua pasta PAWNO;
3°- Adicione o include que vocк quer usar:
#include "PSO" // objetos
#include "PGP" // pickups
#include "PMS" // mapicons
#include "PCS" // checkpoints
Vocк pode adicionar um deles ou todos ou quantos quiser.
Abaixo o include todo serб comentado, se vocк quer usar sу as funзхes principais nгo й necessбrio ler tudo, basta saber como tais funзхes sгo usadas! Informaзхes mais relevantes estгo destacadas.
Sobre os includes que compхem o PS
- Protioso Gerenciamento de Pickups (PGP)
- Protioso Streamer de Objetos (PSO)
- Protioso Mapicon Streamer (PMS)
- Protioso Checkpoint Streamer (PCS)
E lembre-se: й ALTAMENTE recomendado que vocк leia o manual de cada include (inserido na respectiva pasta de cada um). Vocк DEVE definir as configuraзхes do include conforme sua necessidade, para isso basta abrir e editar como quiser o arquivo de configuraзгo de cada include que fica na respectiva pasta do mesmo.
DICAS DE COMO CONVERTER DO MODO NORMAL PARA O P-STREAMER
- Hб um arquivo junto do pacote com o nome "Dicas para conversгo.txt", abra-o e terб informaзхes relacionadas de como converter/adaptar objetos, pickups, mapicons e checkpoints. Nгo se assuste, й fбcil!
"MULTI SCRIPTS"
Й um termo que criei para designar a funзгo de cada include poder ser usado mutuamente em um servidor em scripts separados. Exemplo: usar o PSO (streamer de objeto) em um gamemode e em um filterscript. Todos os includes do p-streamer jб vгo de fбbrica configurados para isso (se vocк nгo usar claro que pode desabilitar, basta ir no arquivo de configuraзгo do respectivo include e alterar o valor de MULTI_SCRIPTS para 0, com exceзгo do PCS que jб funciona assim por natureza sem interferir em nada). Entгo viva a conectividade mъtua, xф limites!
"CALLBACKS" (funзхes opcionais)
Callbacks sгo funзхes que o include chama quando certo evento acontece. Por exemplo, um jogador entrou em um checkpoint ou permaneceu em uma pickup... Ele vai reconhecer isso e vai "chamar" a funзгo no seu script. Vocк sу precisarб ter tal funзгo no seu script (no script que vocк definiu os includes). Com exceзгo do PMS, todos os outros possuem callbacks, basta vocк ler o manual de cada include para saber mais.
NOTA: Callbacks sгo opcionais porйm sгo ъteis, certamente vocк desejarб usar algum.
FILTERSCRIPTS QUE ACOMPANHAM O PROTIOSO STREAMER
>> P-Streamer Criador de Novos Elementos (CNE): usado para adicionar novas pickups, checkpoints e mapicons. Basta utilizar /tiposalvamento e selecione o que deseja salvar/criar. Saiba mais lendo o arquivo filterscripts\INFO_CNE.txt
>> Protioso Conversor de Mapas (PCM): este й fбcil! Converte objetos do MTA Race ou DM para o formato PSO ou CreateObject. Saiba mais lendo o arquivo filterscripts\INFO_conversor_mapas.txt. De brinde/exemplo jб vгo dois mapas com cуdigo original e convertido que com este ъltimo vocк pode usar a funзгo pso_CriarObjetosDoArquivo(arquivo[]); (exemplo: pso_CriarObjetosDoArquivo("PCM/Mapas Convertidos/PSO_lv_arborizada.txt"); no OnGameModeInit).
No mais...
Protioso, por que vocк coloca os arquivos todos separados?
R: Й uma questгo de organizaзгo, eu tenho jб um esquema de onde tal coisa vai e onde vai estar... Separo por ordem, jб virou um costume meu.
Protioso, preciso adicionar alguma funзгo no OnGameModeInit, OnPlayerDisconnect ou outra coisa?
R: Nгo! Vocк sу precisa usar as funзхes normais, sem precisar adicionar algo extra. SE vocк quiser utilizar um "Callback" aн й opзгo sua, se vocк precisar sinta-se livre!
Fui compilar meu script e o compilador indicou erros no include, o que faзo?
R: Primeiro de tudo baixe novamente o include, pois vocк pode estar com uma versгo velha que possa nгo ter compatibilidade com o que vocк estб fazendo, ou possuнa alguns erros que foram corrigidos. Se persistir, informe o erro para poder ser resolvido!
AGRADECIMENTOS
Agradeзo ao [VGS]speli_OC e ao [VGS]Kelvin pela grande ajuda nos testes. Sempre estiveram dispostos (pelo menos foi o que pareceu hehe) quando convidava-os para ir comigo no servidor testar. Tiveram paciкncia com meu bruto lag e isso foi fundamental. Parceria, beijos.
Nгo tгo diretamente, mas agradeзo ao ****** por ter criado um tуpico no fуrum oficial do sa-mp com dicas muito ъteis.
O que pode vir nas prуximas versхes?
* Talvez trocar as enumeraзхes e variбveis comuns pelas novas populares 'pvar', mas isso fica pra muito mais a frente, pois quando fiz os includes isto ainda nгo existia e cб entre nуs й um puta saco entediante mudar todo o sistema original para isso!
* Quem sabe uma maior eficiкncia/agilidade, mas que nгo comprometa suas funcionalidades.
* Streamer de 3DTextLabel? Bom, eu jб tinha atй comeзado a fazer, mas na hora que fui colocar a funзгo para o texto aparecer vi que nгo hб virtualworld Player3DTextLabel. Achei meio tosco isso, pois a versгo do streamer nгo poderia ser comparada a versгo original para criar 'globalmente'. Sem falar que jб hб um streamer original nesta funзгo, basta vocк usar distвncias mais curtas que o limite certamente irб aumentar!
------
Download versгo 1.0 (17 de julho de 2010)
Atualizado 12/07/2010, totalizando 5 atualizaзхes atй o presente momento.
AVISO: nгo me responsabilizo por scripts obtidos por outras referкncias! Os originais e garantidos sгo apenas no link acima!
------
Й isso pessoal, espero que faзam um bom proveito, com moderaзгo! Boa sorte, abraзos!
Antes de tudo, saiba, em poucas palavras, que "streamer" й algo que permite que vocк possa colocar alйm dos limites.
Hoje vou apresentar a vocкs um include que na verdade й mais que um pois reъne outros 4 que sгo unificados a ele. Hб um bom tempo eu jб estava fazendo alguns deles por necessidade prуpria... Acabou que fiquei com alguns includes feitos que foram muito ъteis para o que eu queria fazer naquele momento. Aн no comeзo do ano decidi unificб-los e melhorar alguns colocando umas funзхes extras entre outros detalhes e entгo comecei. Demorei pra caralho pois meu tempo й muito curto, e ainda decidi fazer mais um include. Entre testes lagados (к meu pc) e compilaзхes agora estб pronto e creio que tenha ficado bom e com alguns diferenciais dos demais includes do tipo. Vocкs vгo ver algumas datas como 29 de janeiro de 2010, que foi quando eu achei que tinha acabado, no entanto quis adicionar mais algumas funзхes mas o tempo novamente correu contra isso, mas enfim o que vale й a intenзгo.
P-Streamer nгo й um include que objetivou alta performance, velocidade e bla bla bla... Й um include que eu garanto o funcionamento correto, com funзхes ъnicas e que CUMPREM O QUE PROMETEM. Vocк vai adicionar objetos e nгo vai ficar caindo na бgua quando se teleportar, por exemplo (no caso de uma ilha). Existem algumas coisas ainda a serem vistas para versхes futuras, mas pra agora estб tudo nos conformes.
Como maioria deve saber meus includes antes de serem lanзados ficam em testes por semanas senгo meses... Mas mesmo assim, sempre escapa alguma coisa, mas acredite que serб reduzido ao mнnimo possнvel.
Instalaзгo:
1°- Certifique-se de possuir o include PSF (Protioso String Funзхes);
2°- Extraia o arquivo compactado no mesmo local onde fica sua pasta PAWNO;
3°- Adicione o include que vocк quer usar:
#include "PSO" // objetos
#include "PGP" // pickups
#include "PMS" // mapicons
#include "PCS" // checkpoints
Vocк pode adicionar um deles ou todos ou quantos quiser.
Abaixo o include todo serб comentado, se vocк quer usar sу as funзхes principais nгo й necessбrio ler tudo, basta saber como tais funзхes sгo usadas! Informaзхes mais relevantes estгo destacadas.
Sobre os includes que compхem o PS
- Protioso Gerenciamento de Pickups (PGP)
Quote:
Este й um dos mais antigos do pacote, tanto й que estб na versгo 1.4. Esta versгo й ъnica, vocк sу encontra no PS, nгo tem separada. A versгo anterior (1.3b) nгo possuнa streamer e era muito diferente da atual. Porйm 3/4 das funзхes originais foram mantidas, algumas trocaram o nome e outras deixaram de existir mas a entrada de funзхes novas balanceou tal perda. Este include й EXTREMAMENTE fбcil de se usar e й indicado para pessoas INICIANTES e EXPERIENTES. Primeiro porque como dito й fбcil de usar e segundo porque suas funзхes possuem uma ramificaзгo enorme de uso, podendo servir para um simples filterscript atй um complexo gamemode. E й claro vocк pode adicionar alйm do limite de 2048 pickups (sa-mp 0.3), quantas vocк quiser, basta configurar o limite que quiser no arquivo de configuraзгo dele. O streamer sу й ativo se o limite original do sa-mp exceder. FUNЗХES native pgp_AdicionarPickup(PGP_Modeloid, tipo, Float, Float:y, Float:z, virtualworld = 0, Float:raio_stream = PGP_RAIO_STREAM_PADRAO); native pgp_DestruirPickup(pgpid); native pgp_RecriarPickup(pgpid); native pgp_Anexar3DTextLabel(pgpid, msg[], cormsg, Float:eixoz_pickup = 0.50); native pgp_Desanexar3DTextLabel(pgpid); native pgp_Atualizar3DTextLabel(pgpid, msg[], cormsg); native pgp_Atualizar3DTextLabelTodo(pgpid, msg[], cormsg, Float:eixoz_pickup = 0.50); native pgp_RetirarPickup(pgpid); native pgp_MudarRaioStream(pgpid, Float:novo_raio_stream); native pgp_MudarVirtualWorld(pgpid, novo_virtualworld); native pgp_MudarModelo(pgpid, novomodeloid); native pgp_MudarTipo(pgpid, novotipo); native pgp_DesativarPickup(pgpid); native pgp_PickupPGPAtiva(pgpid); native pgp_JogadorNaPickup(playerid, pgpid); native pgp_JogadorEmPickupModelo(playerid, PGP_Modeloid); native pgp_ModeloPickup(pgpid); native pgp_PegarPickupJogador(playerid); native pgp_PegarIDRaio(playerid); native pgp_PickupExiste(pgpid); native pgp_JogadorEstaEmPickup(playerid); native pgp_PegarPosicaoPickup(pgpid, &Float, &Float:y, &Float:z); native pgp_PegarVirtualWorld(pgpid); native pgp_Pegar3DEixoZ(pgpid); native pgp_Pegar3DCor(pgpid); native pgp_PegarMSG3D(pgpid); native pgp_PegarRaioStream(pgpid); native pgp_CriarPickupsDoArquivo(arquivo[]); native pgp_JogadorEmPickup(playerid, pgpid); // "callback" native pgp_JogadorSaiuPickup(playerid, pgpid); // "callback" native pgp_JogadorEntrouEmRaio(playerid, pgpid); // "callback" native pgp_JogadorSaiuRaio(playerid, pgpid); // "callback" |
Quote:
Tб cansado de criar seu mapa e na hora que vai pro local cair no 'nada'? Use jб PSO, pois ele realmente funciona, sem falar de suas outras funзхes que sгo muito cabнveis para diversas situaзхes. O PSO tambйm conta com um sistema dinвmico e configurбvel, o modo 'streamer' sу й acionado se realmente exceder o limite original do sa-mp e vocк pode optar, quando o streamer estiver ativo, se quer conservar os objetos (os objetos sу serгo destruнdos se o limite exceder e haver mais objetos a serem criados em uma бrea) ou se quer que eles sejam destruнdos automaticamente assim que o jogador se distanciar do raio previsto. Й simples e eficaz, nгo tem mais o que falar! Infelizmente como o sa-mp 0.3 retirou a funзгo AttachPlayerObjectToPlayer, a funзгo "attach" nгo foi possнvel de se colocar no streamer. Mas vocк pode usar pelo modo normal por CreateObject e usando a funзгo AttachObjectToPlayer que nгo terб problemas com as funзхes do include, porйm sу poderб adicionar certo limite! FUNЗХES native pso_CriarObjeto(modeloid, Float, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:raio_stream = PSO_RAIO_STREAM_PADRAO, virtualword = -1); native pso_CriarObjetoJogador(playerid, modeloid, Float, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:raio_stream = PSO_RAIO_STREAM_PADRAO, virtualword = -1); native pso_RemoverObjeto(psoid); native pso_MoverObjeto(psoid, Float, Float:y, Float:z, Float:velocidade); native pso_PararMovimentoObjeto(psoid); native pso_MudarPosObjeto(psoid, Float, Float:y, Float:z); native pso_MudarRotObjeto(psoid, Float:rx, Float:ry, Float:rz); native pso_MudarModeloObjeto(psoid, novo_modeloid); native pso_MudarVirtualWorldObjeto(psoid, novo_virtualworld); native pso_MudarRaioStreamObjeto(psoid, Float:novo_raiostream); native pso_MudarJogadorIDObjeto(psoid, novo_playerid); native pso_PegarPosObjeto(psoid, &Float, &Float:y, &Float:z); native pso_PegarRotObjeto(psoid, &Float:rx, &Float:ry, &Float:rz); native pso_PegarModeloObjeto(psoid); native pso_PegarJogadorIDObjeto(psoid); native pso_ObjetoAtivo(psoid); native pso_PegarRaioStreamObjeto(psoid); native pso_PegarVirtualWorldObjeto(psoid); native pso_CriarObjetosDoArquivo(arquivo[]); native pso_ObjetoMovido(psoid); // "callback" native pso_ObjetoJogadorMovido(playerid, psoid); // "callback" |
Quote:
Assim como os demais includes jб citados, ele tambйm sу ativa o streamer se o limite original do sa-mp exceder. Os mapicons criados pelo PMS nгo piscam, como em alguns outros includes. Vocк pode atualizar as informaзхes do include mesmo depois de ter criado sem ter que destruн-lo para readaptб-lo as novas exigкncias. Possui vбrias funзхes simplificadas e nгo te deixarб na mгo! FUNЗХES native pms_CriarMapIcon(Float, Float:y, Float:z, modeloid, cor, Float:raio_visualizacao = PMS_RAIO_STREAM_PADRAO, virtualword = -1); native pms_CriarMapIconJogador(playerid, Float, Float:y, Float:z, modeloid, cor, Float:raio_visualizacao = PMS_RAIO_STREAM_PADRAO, virtualword = -1); native pms_RemoverMapIcon(pmsid); native pms_ModeloValido(modeloid); native pms_ColocarVirtualWorld(pmsid, virtualword); native pms_ColocarModelo(pmsid, modeloid); native pms_ColocarDistancia(pmsid, Float:distancia); native pms_ColocarCor(pmsid, cor); native pms_ColocarCoordenadas(pmsid, Float, Float:y, Float:z); native pms_PegarVirtualWorldMapIcon(pmsid); native pms_PegarCorMapIcon(pmsid); native pms_PegarPosMapIcon(pmsid, &Float, &Float:y, &Float:z); native pms_PegarRaioMapIcon(pmsid); native pms_PegarModeloMapIcon(pmsid); native pms_MapIconAtivo(pmsid); native pms_CriarMapIconsDoArquivo(arquivo[]); |
Quote:
Muitos programadores (profissionais ou nгo) gostam de usar checkpoints para indicar bancos, lojas entre outros. As vezes precisam fazer muita 'ginбstica' para poder adaptar seu script ao sistema simplуrio de checkpoints do sa-mp (apenas um й permitido para o mapa todo) ou usam sistemas mais inferiores que apresentam instabilidades. PCS й um include eficiente para todos os tipos de trabalhos e fornece mais seguranзa tendo em vista que se for detectada alguma imperfeiзгo original do sa-mp, ele soluciona e readapta o sistema sem causar nenhum dano e sem vocк perceber! FUNЗХES native pcs_CriarCheckpoint(Float, Float:y, Float:z, Float:tamanho, Float:raio_visualizacao, virtualworld = -1); native pcs_CriarJogadorCheckpoint(playerid, Float, Float:y, Float:z, Float:tamanho, Float:raio_visualizacao, virtualworld = -1); native pcs_AtualizarCheckpoint(pcsid, Float, Float:y, Float:z, Float:tamanho, Float:raio_visualizacao, virtualworld); native pcs_DesativarCheckpoint(pcsid); native pcs_PegarPosCheckpoint(pcsid, &Float, &Float:y, &Float:z); native pcs_PegarVirtualWorldCheckpoint(pcsid); native pcs_PegarTamanhoCheckpoint(pcsid); native pcs_PegarRaioCheckpoint(pcsid); native pcs_PegarCheckpointJogador(playerid); native pcs_PegarCheckpointMostrado(playerid); native pcs_JogadorNoCheckpoint(playerid, cpsid); native pcs_CheckpointAtivo(pcsid) native pcs_CriarCheckpointsDoArquivo(arquivo[]); native pcs_JogadorEntrouCheckpoint(playerid, pcsid); // "callback" native pcs_JogadorSaiuCheckpoint(playerid, pcsid); // "callback" |
DICAS DE COMO CONVERTER DO MODO NORMAL PARA O P-STREAMER
- Hб um arquivo junto do pacote com o nome "Dicas para conversгo.txt", abra-o e terб informaзхes relacionadas de como converter/adaptar objetos, pickups, mapicons e checkpoints. Nгo se assuste, й fбcil!
"MULTI SCRIPTS"
Й um termo que criei para designar a funзгo de cada include poder ser usado mutuamente em um servidor em scripts separados. Exemplo: usar o PSO (streamer de objeto) em um gamemode e em um filterscript. Todos os includes do p-streamer jб vгo de fбbrica configurados para isso (se vocк nгo usar claro que pode desabilitar, basta ir no arquivo de configuraзгo do respectivo include e alterar o valor de MULTI_SCRIPTS para 0, com exceзгo do PCS que jб funciona assim por natureza sem interferir em nada). Entгo viva a conectividade mъtua, xф limites!
"CALLBACKS" (funзхes opcionais)
Callbacks sгo funзхes que o include chama quando certo evento acontece. Por exemplo, um jogador entrou em um checkpoint ou permaneceu em uma pickup... Ele vai reconhecer isso e vai "chamar" a funзгo no seu script. Vocк sу precisarб ter tal funзгo no seu script (no script que vocк definiu os includes). Com exceзгo do PMS, todos os outros possuem callbacks, basta vocк ler o manual de cada include para saber mais.
NOTA: Callbacks sгo opcionais porйm sгo ъteis, certamente vocк desejarб usar algum.
FILTERSCRIPTS QUE ACOMPANHAM O PROTIOSO STREAMER
>> P-Streamer Criador de Novos Elementos (CNE): usado para adicionar novas pickups, checkpoints e mapicons. Basta utilizar /tiposalvamento e selecione o que deseja salvar/criar. Saiba mais lendo o arquivo filterscripts\INFO_CNE.txt
>> Protioso Conversor de Mapas (PCM): este й fбcil! Converte objetos do MTA Race ou DM para o formato PSO ou CreateObject. Saiba mais lendo o arquivo filterscripts\INFO_conversor_mapas.txt. De brinde/exemplo jб vгo dois mapas com cуdigo original e convertido que com este ъltimo vocк pode usar a funзгo pso_CriarObjetosDoArquivo(arquivo[]); (exemplo: pso_CriarObjetosDoArquivo("PCM/Mapas Convertidos/PSO_lv_arborizada.txt"); no OnGameModeInit).
No mais...
Protioso, por que vocк coloca os arquivos todos separados?
R: Й uma questгo de organizaзгo, eu tenho jб um esquema de onde tal coisa vai e onde vai estar... Separo por ordem, jб virou um costume meu.
Protioso, preciso adicionar alguma funзгo no OnGameModeInit, OnPlayerDisconnect ou outra coisa?
R: Nгo! Vocк sу precisa usar as funзхes normais, sem precisar adicionar algo extra. SE vocк quiser utilizar um "Callback" aн й opзгo sua, se vocк precisar sinta-se livre!
Fui compilar meu script e o compilador indicou erros no include, o que faзo?
R: Primeiro de tudo baixe novamente o include, pois vocк pode estar com uma versгo velha que possa nгo ter compatibilidade com o que vocк estб fazendo, ou possuнa alguns erros que foram corrigidos. Se persistir, informe o erro para poder ser resolvido!
AGRADECIMENTOS
Agradeзo ao [VGS]speli_OC e ao [VGS]Kelvin pela grande ajuda nos testes. Sempre estiveram dispostos (pelo menos foi o que pareceu hehe) quando convidava-os para ir comigo no servidor testar. Tiveram paciкncia com meu bruto lag e isso foi fundamental. Parceria, beijos.
Nгo tгo diretamente, mas agradeзo ao ****** por ter criado um tуpico no fуrum oficial do sa-mp com dicas muito ъteis.
O que pode vir nas prуximas versхes?
* Talvez trocar as enumeraзхes e variбveis comuns pelas novas populares 'pvar', mas isso fica pra muito mais a frente, pois quando fiz os includes isto ainda nгo existia e cб entre nуs й um puta saco entediante mudar todo o sistema original para isso!
* Quem sabe uma maior eficiкncia/agilidade, mas que nгo comprometa suas funcionalidades.
* Streamer de 3DTextLabel? Bom, eu jб tinha atй comeзado a fazer, mas na hora que fui colocar a funзгo para o texto aparecer vi que nгo hб virtualworld Player3DTextLabel. Achei meio tosco isso, pois a versгo do streamer nгo poderia ser comparada a versгo original para criar 'globalmente'. Sem falar que jб hб um streamer original nesta funзгo, basta vocк usar distвncias mais curtas que o limite certamente irб aumentar!
------
Download versгo 1.0 (17 de julho de 2010)
Atualizado 12/07/2010, totalizando 5 atualizaзхes atй o presente momento.
AVISO: nгo me responsabilizo por scripts obtidos por outras referкncias! Os originais e garantidos sгo apenas no link acima!
------
Й isso pessoal, espero que faзam um bom proveito, com moderaзгo! Boa sorte, abraзos!