galera estou com um problema no forward e public, tipo quero que cada 40 40 minutos o preço de algum produto muda, mas não para um player, para todos da mesma profissão mas está dando errado!
Gente, o meu servidor está estranho, quando começa entrar jogadores ele simplesmente começa a dar rts, teria algum plugin que eu poderia usar para saber o que está causando isso?
ola amigos gostaria de saber como posso criar algo para aparecer os nomes dos locais onde se passa por exemplo se eu estou em los santos aparecera uma gametxtforplayer dizendo onde estou , nao sei como cria isso ,pelo mapa todo ppois sei que tem os nomes de cada ocal do mapa no samp so nao sei como faco isso , ja testei alma include a_zone mas nao funciona pois foi removido do samp essa funcao
Galera, to usando a versão 3.0 do sampvoice, porém ele depois de alguns gmx ao apertar a tecla para falar, o servidor crasha
SERVERLOG
Código:
[19:41:49] [debug] Server crashed due to an unknown error
[19:41:49] [debug] Native backtrace:
[19:41:49] [debug] #0 00401c84 in ?? () in samp-server.exe
[19:41:49] [debug] #1 73dc1ec1 in ?? () in plugins\sampvoice.DLL
[19:41:49] [debug] #2 00469a66 in ?? () in samp-server.exe
[19:41:49] [debug] #3 0048d4db in ?? () in samp-server.exe
[19:41:49] [debug] #4 0049b4a1 in ?? () in samp-server.exe
[19:41:49] [debug] #5 0049b4b1 in ?? () in samp-server.exe
[19:41:49] [debug] Registers:
Inserido por: BitSain - 06/05/2024 14:55 - Fórum: Includes
- Sem Respostas
Include ShotDetect
Essa é uma include que tem de objetivo detectar se o jogador está ou não atirando com uma arma pois o SAMP (San Andreas Multiplayer) não tem uma função nativa que faz isso.
Obs.: sofrerá alterações.
Código PHP:
#include <ShotDetect>
public OnPlayerUpdate(playerid){ if(IsPlayerShooting(playerid)) //Se o valor de retorno for verdadeiro, o jogador está atirando { SendClientMessage(playerid, -1, "Você está Atirando"); } else if(!IsPlayerShooting(playerid)) //Se o valor de retorno for falso, o jogador não está atirando (pode ser somente else) { SendClientMessage(playerid, -1, "Você não esta Atirando"); } return true; }
Versão: v1.0 Última atualização: 02/02/2024 Link do Projeto: SAMP-ShotDetect
OBS.: Qualquer problema, crie uma issue no repositório da include.
Este tópico pode sofrer alterações ao decorrer do tempo, o primeira versão ainda não foi lançada.
Sobre o Editor Textdraw:
Bem, este editor de textdraw foi criado oficialmente por dimmy, e eu que estou dando a continuidade a este editor de TextDraw ( BitSain ).
Esse "novo projeto" que eu estou dando a continuidade eu irei fazer essas seguintes coisas: Correções de bugs, otimização, melhorias e suporte para outros idiomas.
Eu peguei esse editor por que a maioria dos mobiles utilizam ele, e eu sei a dificuldade para criar textdraws pelo mobile, já tive essa experiência (inclusive com esse editor).
Dos meus objetivos como eu já citei acima o principal é a otimização, para um melhor desempenho nos dispositivos pois esse criador as vezes é lento e chega a travar na maioria dos projetos mais pesadinhos.
Não é só isso que estou fazendo, também estou implementando novas funções e "macros" para poupar tempo.
Apesar de ser um início o projeto já está disponível.
O projeto foi iniciado em fevereiro, mas não fiz nenhuma atualização no repositório há um tempo já, mas estou fazendo as devidas melhorias no código localmente antes de fazer uma atualização no repositório.
Posso adiantar uma informação bem legal, que é a questão de importações de textdraw que está em fase de testes!
Esse tópico pode não parecer muito claro, mas como eu disse, é apenas um início de um grande trabalho..
GUIA Criador por: BitSain Última Atualização: 06/05/2024 às 14:57 Créditos ao criador no final do Guia.
INÍCIO DO GUIA
Nesse guia, eu irei explicar o que é e como instalar corretamente e sem nenhum problema o SAMPVOICE (v4.2) em seu servidor de GTA SAMP.
Bom, as informações que eu estou a passar é do documento oficial do sampvoice (sampvoice.chm -> arquivo HTML compilado).
Para consultar todas as informações referentes, abra o documento .chm do sampvoice (obs.: documento Russo, será necessário a tradução).
OBSERVAÇÃO: Este "GUIA" não está finalizado, irei complementando aos poucos pois as informações não são poucas, muita coisa foi alterada/adicionada/removida no plugin.
• O que é SAMPVOICE?
SAMPVOICE - é um kit de desenvolvimento de software (SDK) para implementação de sistemas de comunicação de voz em servidores SA-MP 0.3.7.
Este não é apenas um chat de voz, é uma ferramenta para criá-lo!
• Funcionalidade SAMPVOICE
- Verificando a versão do plugin do player
- Verificando se um jogador tem microfone
- Ativar/desativar a capacidade do player de ouvir outros players - Ativar/desativar a capacidade do player de ser ouvido por outros players
- Definir chaves de ativação de canal para o player Iniciar/parar a reprodução do canal com um comando do servidor Criar streams globais (som 2D)
- Criação de streams locais (áudio 3D)
- Vincule threads locais a objetos de jogo
- Definir vários parâmetros de fluxo (panorâmica, distância audibilidade, posição, etc.)
- Criação de efeitos sonoros (walkie-talkie, eco, etc.)
• Como funciona o SAMPVOICE?
O plugin consiste em três módulos: cliente, servidor de controle e servidor de voz. Cliente- este é um player com plugin, consumindo e produzindo tráfego de áudio. Servidor de controle - este é um servidor que recebe comandos do mod do jogo e transmitindo-os servidor de voz (via serviço de comando) e clientes relevantes. Servidor de voz- este é um servidor que distribui o que chega
tráfego de áudio, de acordo com o que o gerente lhe prescreveu
servidor (enviar de tal e tal player para tal e tal stream e
etc.).
[!] -> As informações a seguir, eu posso tentar dizer que é a funcionalidade "atrás da cortina"; Configuração entre duas Máquinas para aliviar o servidor de SAMP.<- [!]
O servidor de voz foi necessário para aliviar o servidor SAMP, que já tem bastante trabalho.
Antes de considerar a configuração a seguir, vale dizer desde já que, por padrão, configurações do gerenciador e servidores de voz são configurados para serem executados na mesma máquina. Então e se o gerente e servidores de voz estão rodando na mesma máquina, você não precisa criar uma configuração e não leia mais sobre essa configuração, pule essa explicação e se dirija para o Capítulo "Inserindo o SAMPVOICE no seu código".
Os endereços (uma combinação das opções '*_host' e '*_port') são divididos em dois tipos: interno e externo.
Endereço interno - endereço dentro da máquina, para o valor '*_host' estão disponíveis as interfaces de rede da máquina (valores de exemplo: 0.0.0.0 (funciona em todas as interfaces disponíveis), 127.0.0.1 (também conhecido como localhost), 192.168.0.2 (pode ter um endereço diferente) (interface direcionada para sua rede local),
234.13.24.1 (você pode ter um endereço diferente) (interface direcionada para a Internet global)).
O valor '*_port' varia de 0 a 65535 (aqueles que não estão ocupados).
Um valor 0 significa selecionar uma porta dinâmica aleatória (normalmente 49152 a 65535).
Endereço externo - o endereço a partir do qual a máquina está acessível a algum cliente que esteja prestes a contatá-la.
Este endereço varia de acordo com o cliente. Se o cliente estiver dentro da rede local, você estará disponível
em 192.168.0.2 (este é apenas um exemplo), e se estiver batendo na rede global, então você está disponível
no seu endereço IP global 241.34.24.1 (também condicional, seu endereço de Internet corresponde ao endereço
o roteador final do seu provedor de Internet, ele pode ser encontrado através de serviços como 2ip).
Agora que você conhece a teoria, vamos dar uma olhada nas opções de configuração do servidor de controle e voz.
Citar:Servidor de controle
[Endereço interno] control_host - o host ao qual o serviço de controle está vinculado antes de se conectar ao serviço de comando
[Endereço interno] control_port - porta à qual o serviço de controle está vinculado antes de se conectar ao serviço de comando
[Endereço externo] command_host - o host do serviço de comando sob o qual está disponível para o serviço de controle
[Endereço externo] command_port - porta de serviço de comando sob a qual é acessível ao serviço de controle
[Endereço externo] voice_host - o host do serviço de voz sob o qual está disponível para clientes (jogadores)
[Endereço externo] voice_port - porta de serviço de voz na qual está disponível para clientes (jogadores)
Servidor de voz
[Endereço externo] control_host - host do serviço de controle sob o qual é acessível ao serviço de comando
[Endereço externo] control_port - porta do serviço de controle sob a qual é acessível ao serviço de comando
[Endereço interno] command_host - o host ao qual o serviço de comando está vinculado [Endereço interno] command_port - a porta à qual o serviço de comando está vinculado [Endereço interno] voice_host - o host ao qual o serviço de voz está vinculado [Endereço interno] voice_port - a porta à qual o serviço de voz está vinculado
Vamos considerar o caso quando você possui várias máquinas. Digamos que você tenha 2 máquinas acessíveis pela Internet: A (234.13.24.1) e B (234.13.24.2).
Você deseja executar um servidor SAMP na primeira máquina com o plugin SampVoice (que atuará como um servidor de controle).
na segunda máquina, inicie o servidor de voz para aliviar o servidor SAMP. Então, as configurações do servidor devem ficar assim:
Citar:Servidor de controle
control_host = 0.0.0.0 (ligar a todas as interfaces de rede) control_port = 2020
command_host = 234.13.24.2 (especifique o endereço IP global do serviço de comando)
porta_comando = 2020
voice_host = 234.13.24.2 (especifique o endereço IP global do serviço de voz para que os jogadores possam enviar pacotes para ele)
porta_voz = 2020
Servidor de voz
control_host = 234.13.24.1 (especifique o endereço IP global do serviço de controle)
porta_controle = 2020
command_host = 0.0.0.0 (ligamos a todas as interfaces de rede, pois este é um serviço público)
porta_comando = 2020
voice_host = 0.0.0.0 (ligamos a todas as interfaces de rede, pois este é um serviço público)
porta_voz = 2020
Agora vejamos outro caso em que você tem várias máquinas e uma rede local.
Digamos que você tenha 2 máquinas acessíveis pela Internet: A (234.13.24.1) e B (234.13.24.2).
Neste caso, A e B estão conectados por cabo a uma rede local, onde A (192.168.0.1) e B (192.168.0.2).
qual é a vantagem desta abordagem? A comunicação entre os servidores de controle e de voz é realizada através de um canal físico fechado, ou seja, ninguém poderá se conectar ao servidor de voz, exceto o único um participante de uma rede local fechada - um servidor de controle. Mas isso é um exagero na maioria dos casos.
Você deseja executar um servidor SAMP com o plugin SampVoice na primeira máquina (que atuará como servidor de gerenciamento). E na segunda máquina, inicie um servidor de voz para que descarregue o servidor SAMP.
Então, as configurações do servidor devem ficar assim:
Citar:Servidor de controle
control_host = 192.168.0.1 (ligamos à interface de rede de uma rede local fechada)
porta_controle = 2020
command_host = 192.168.0.2 (especifique o endereço do serviço de comando dentro de uma rede local fechada)
porta_comando = 2020
voice_host = 234.13.24.2 (especifique o endereço IP global do serviço de voz para que os jogadores possam enviar pacotes para ele)
porta_voz = 2020
Servidor de voz
control_host = 192.168.0.1 (especifique o endereço do serviço de controle dentro de uma rede local fechada)
porta_controle = 2020
command_host = 192.168.0.2 (ligamos à interface de rede de uma rede local fechada)
porta_comando = 2020
voice_host = 0.0.0.0 (ligamos a todas as interfaces de rede, pois este é um serviço público)
porta_voz = 2020
• Inserindo o SAMPVOICE no seu Código:
Código Base:
Código:
#include <sampvoice>
#define GLOBAL_CHANNEL 0
#define LOCAL_CHANNEL 1
new SV_UINT:gstream = SV_NONE;
new SV_UINT:lstream[MAX_PLAYERS] = { SV_NONE, ... };
public OnPlayerConnect(playerid) {
if (SvGetVersion(playerid) == 0) { // Verificando a disponibilidade do plugin
SendClientMessage(playerid, -1, "Falha ao encontrar o plugin.");
}
else if (SvHasMicro(playerid) == SV_FALSE) { // Verificando a disponibilidade do microfone
SendClientMessage(playerid, -1, "Falha ao encontrar o microfone.");
}
else {
if(gstream != SV_NONE) {
SvSetKey(playerid, 0x5A, GLOBAL_CHANNEL); // Z key
SvAttachStream(playerid, gstream, GLOBAL_CHANNEL);
SvAttachListener(gstream, playerid);
SvSetIcon(gstream, "speaker");
SendClientMessage(playerid, -1, "Pressione Z para falar no chat global.");
}
if((lstream[playerid] = SvCreateStream(40.0)) != SV_NONE) {
SvSetKey(playerid, 0x42, LOCAL_CHANNEL); // B key
SvAttachStream(playerid, lstream[playerid], LOCAL_CHANNEL);
SvSetTarget(lstream[playerid], SvMakePlayer(playerid));
SvSetIcon(lstream[playerid], "speaker");
SendClientMessage(playerid, -1, "Pressione B para falar no chat local.");
}
}
}
public OnPlayerDisconnect(playerid, reason) {
// Removendo o stream local do player após desconectar
if(lstream[playerid] != SV_NONE) {
SvDeleteStream(lstream[playerid]);
lstream[playerid] = SV_NONE;
}
}
public OnGameModeInit() {
// Remova o comentário da linha para ativar o modo de depuração
// SvEnableDebug();
gstream = SvCreateStream();
}
public OnGameModeExit() {
if(gstream != SV_NONE){
SvDeleteStream(gstream);
gstream = SV_NONE;
}
}
Já observado, você percebe a ausência de 2 funções -> 'OnPlayerActivationKeyPress' e 'OnPlayerActivationKeyRelease'. Sim, elas foram removidas.
Aqui está todas as funções nativas do SAMPVOICE atualmente (4.2):
Boa noite, pessoal eu coloquei/tentei por o voip e eu peguei la do youtube e fui colocando de boa, é a primeira vez que deu errado quando coloquei o voip, eu upei a gm na host e entrei pelo mobile e o outro pelo pc, quando ativei o voip pelo celular o server cai. Voces poderia me dizer uma certa suposição do que seria? coloquei include, plugin e tudo.