Alguém sabe dizer se a função GetPlayerAnimationIndex(playerid) realmente retorna 0 no mobile? No meu caso sim e isso torna impossível detectar qualquer coisa baseada em animações!
Estou com um problema no loop, estou com a cabeça cheia por causa do trabalho e não consigo fazer um script decente.
Código PHP:
for(new i = 4; i <= MAX_MEMBER_TEAM(organization); ++i) { if(!strcmp("vazio", Org_Member[organization][i], false)) //aqui verifica se a vaga esta vazia { if(strcmp(Name(playerid), Org_Member[organization][i], false)) return 1; // aqui não funciona (o objetivo dessa parte é, se alguma vaga estiver com o nome do jogador FillVacancy é cancelado (FillVacancy é onde adiciona o jogador na tal vaga). FillVacancy(organization, i, playerid); //adiciona o jogador se a vaga estiver vazia } else return SendClientMessage(playerid, COLOR_GREY, "Todas as vagas foram preenchidas."); }
O problema que preenche todas as vagas(MAX_MEMBER_TEAM).
Preciso de alguém para otimizar esse código urgente.
Boa tarde, estou desenvolvendo um servidor, mais estou tendo um problema que não estou conseguindo resolver. Já tentei de muitas formas refazer o sistema mais nada adiantou, então resolvi vim aqui pedir ajuda de vocês, vamos lá... Meu servidor é em MySQL, antes estava carregando a conta corretamente e salvando mais agora quando eu entro não salvou nenhum arquivo de dados do jogador, o sistema funciona desta forma, quando o player cria a conta gera um arquivo na tabela 'users' e assim que o player termina de criar a conta e spawnar se cria os dados dele na tabela 'players' mais quando sai do servidor não salva os arquivos e quando eu entro novamente a skin e o resto dos dados não foram salvos, alguém consegue me ajudar com este problema?
[04:28:55 - PC:RPG]
[04:28:55 - PC:RPG] Filterscripts
[04:28:55 - PC:RPG] ---------------
[04:28:55 - PC:RPG] Loading filterscript 'UltraHost.amx'...
[04:28:55 - PC:RPG] [sv:dbg:main:AmxLoad] : net game pointer (value:0x57e4da60) received
[04:28:55 - PC:RPG] [sv:dbg:network:bind] : voice server running on port 41868
[04:28:55 - PC:RPG] Loaded 1 filterscripts.
[04:28:55 - PC:RPG] Error: Function not registered: 'CreateDynamicObject'
[04:28:55 - PC:RPG] Error: Function not registered: 'SSCANF_Init'
[04:28:55 - PC:RPG] Error: Function not registered: 'SSCANF_IsConnected'
[04:28:55 - PC:RPG] Error: Function not registered: 'SSCANF_Join'
[04:28:55 - PC:RPG] Error: Function not registered: 'SSCANF_Leave'
[04:28:55 - PC:RPG] Error: Function not registered: 'sscanf'
[04:28:55 - PC:RPG] Error: Function not registered: 'SetDynamicObjectMaterial'
[04:28:55 - PC:RPG] Error: Function not registered: 'mysql_log'
[04:28:55 - PC:RPG] Error: Function not registered: 'mysql_connect'
[04:28:55 - PC:RPG] Error: Function not registered: 'mysql_errno'
[04:28:55 - PC:RPG] Error: Function not registered: 'cache_get_row_count'
[04:28:55 - PC:RPG] Error: Function not registered: 'cache_get_row_int'
[04:28:55 - PC:RPG] Error: Function not registered: 'cache_get_row_float'
[04:28:55 - PC:RPG] Error: Function not registered: 'CreateDynamicPickup'
[04:28:55 - PC:RPG] Error: Function not registered: 'mysql_pquery'
[04:28:55 - PC:RPG] Error: Function not registered: 'cache_insert_id'
[04:28:55 - PC:RPG] Error: Function not registered: 'mysql_format'
[04:28:55 - PC:RPG] Error: Function not registered: 'DestroyDynamicPickup'
[04:28:55 - PC:RPG] Error: Function not registered: 'mysql_tquery'
[04:28:55 - PC:RPG] Error: Function not registered: 'cache_get_row'
[04:28:55 - PC:RPG] Error: Function not registered: 'cache_get_data'
[04:28:55 - PC:RPG] Error: Function not registered: 'cache_get_field_content_int'
[04:28:55 - PC:RPG] Error: Function not registered: 'cache_get_field_content_float'
[04:28:55 - PC:RPG] Error: Function not registered: 'cache_get_field_content'
[04:28:55 - PC:RPG] Error: Function not registered: 'CreateDynamicCP'
[04:28:55 - PC:RPG] Error: Function not registered: 'CreateDynamic3DTextLabel'
[04:28:55 - PC:RPG] Error: Function not registered: 'IsValidDynamicObject'
[04:28:55 - PC:RPG] Error: Function not registered: 'SetDynamicObjectPos'
[04:28:55 - PC:RPG] Error: Function not registered: 'SetDynamicObjectRot'
[04:28:55 - PC:RPG] Error: Function not registered: 'DestroyDynamic3DTextLabel'
[04:28:55 - PC:RPG] Error: Function not registered: 'UpdateDynamic3DTextLabelText'
[04:28:55 - PC:RPG] Error: Function not registered: 'DestroyDynamicObject'
[04:28:55 - PC:RPG] Error: Function not registered: 'EditDynamicObject'
[04:28:55 - PC:RPG] Error: Function not registered: 'IsValidDynamic3DTextLabel'
[04:28:55 - PC:RPG] Error: Function not registered: 'IsValidDynamicPickup'
[04:28:55 - PC:RPG] Error: Function not registered: 'IsValidDynamicMapIcon'
[04:28:55 - PC:RPG] Error: Function not registered: 'DestroyDynamicMapIcon'
[04:28:55 - PC:RPG] Error: Function not registered: 'CreateDynamicMapIcon'
[04:28:55 - PC:RPG] Error: Function not registered: 'AttachDynamicObjectToVehicle'
[04:28:55 - PC:RPG] Error: Function not registered: 'DestroyDynamicCP'
[04:28:55 - PC:RPG] Error: Function not registered: 'GetDynamicObjectPos'
[04:28:55 - PC:RPG] Error: Function not registered: 'MoveDynamicObject'
[04:28:55 - PC:RPG] Error: Function not registered: 'GetDynamicObjectRot'
[04:28:55 - PC:RPG] Error: Function not registered: 'IsDynamicObjectMoving'
[04:28:55 - PC:RPG] Error: Function not registered: 'SetDynamicObjectMaterialText'
[04:28:55 - PC:RPG]
[04:28:55 - PC:RPG]
[04:28:55 - PC:RPG]
[04:28:55 - PC:RPG] =======================================
[04:28:55 - PC:RPG] | |
[04:28:55 - PC:RPG] | YSI version 4.00.0001 |
[04:28:55 - PC:RPG] | By Alex "Y_Less" Cole |
[04:28:55 - PC:RPG] | |
[04:28:55 - PC:RPG] =======================================
[04:28:55 - PC:RPG]
[04:28:55 - PC:RPG]
[04:28:56 - PC:RPG] Number of vehicle models: 1
[04:28:56 - PC:RPG] Number of factions loaded: 0
[04:28:56 - PC:RPG] Number of vehicles loaded: 8
[04:28:56 - PC:RPG] Number of buildings loaded: 29
[04:28:56 - PC:RPG] Number of apartments loaded: 24
[04:28:56 - PC:RPG] Number of houses loaded: 63
[04:28:56 - PC:RPG] Number of business loaded: 31
[04:29:01 - PC:RPG] Connecting NPCs...
[04:29:41 - PC:RPG] [connection] incoming connection: 187.43.196.157:1745 id: 0
[04:29:42 - PC:RPG] [sv:dbg:network:connect] : connecting player (0) with address (187.43.196.157) ...
[04:29:42 - PC:RPG] [sv:dbg:network:connect] : player (0) assigned key (9dc42bbbe23f593f)
[04:29:42 - PC:RPG] [join] Panda.Paradiser has joined the server (0:187.43.196.157)
[04:29:42 - PC:RPG] [sv:dbg:network:receive] : player (0) identified (port:1746)
[04:30:11 - PC:RPG] [mysql] new account registered on database. ID: 3, Username: Panda.Paradiser
[04:30:32 - PC:RPG] [sv:dbg:network:connect] : disconnecting player (0) ...
[04:30:32 - PC:RPG] [part] Panda.Paradiser has left the server (0:0)
[04:30:33 - PC:RPG] [connection] incoming connection: 187.43.196.157:1773 id: 0
[04:30:35 - PC:RPG] [sv:dbg:network:connect] : connecting player (0) with address (187.43.196.157) ...
[04:30:35 - PC:RPG] [sv:dbg:network:connect] : player (0) assigned key (9dc42bbb51b1f659)
[04:30:35 - PC:RPG] [join] Panda.Paradiser has joined the server (0:187.43.196.157)
[04:30:36 - PC:RPG] [sv:dbg:network:receive] : player (0) identified (port:1774)
[04:31:59 - PC:RPG] [sv:dbg:network:connect] : disconnecting player (0) ...
[04:31:59 - PC:RPG] [part] Panda.Paradiser has left the server (0:0)
Estou quebrando a cabeça de verdade com esse sistema, é sistema de salvar armas do jogador, vou publicar todo o sistema se alguém conseguir desbugar ótimo. O problema é que salva as armas normalmente nos arquivos, mais na hora de sentar as armas existe um simples detalhe que não encontrei, não senta as armas para o jogador, fiz o sistema e agora estou tendo que refaze-lo para encontrar o bug.
Ou seja, no OnPlayerUpdateWeapons pega o ID da arma e a quantidade de munições. Até ae estamos indo bem...
Agora precisamos sentar as armas do jogador, código abaixo:
Código PHP:
forward SetPlayerWeapons(playerid); public SetPlayerWeapons(playerid) { if(IsPlayerConnected(playerid)) { ResetPlayerWeapons(playerid);
Já faz um tempo que não posto nada no fórum, agora preciso muito da ajuda de alguém que tenha mais experiência que eu. Existe um aplicativo android que liga automaticamente todos os veículos no servidor, por exemplo, o veículo é desligado, ele entra no veículo e consegue dar a partida sem as chaves, acredito que exista algo como o abaixo dentro do aplicativo quando ele entra no veículo.
Algo assim faz os veículos darem partida automaticamente sem precisar usar o comando partida do veículo, onde ele verifica se o jogador tem as chaves do veículo e então dá a partida. Lembrando que eu uso um sistema para ligar e desligar veículos com chaves, se um jogador for do Front Yard Ballas por exemplo, ele consegue dar a partida no veículo apertando Y, com o aplicativo android vantajoso ele só entra no veículo e o veículo dá a partida sem verificar se ele tem as chaves, pensei em fazer um anti-cheat, não consegui fazer sozinho. Alguém tem alguma sugestão?
Uma API completa para ambientes Node.js, projetada para consultas a servidores SA-MP (San Andreas Multiplayer) e compatível com o OPEN.MP (Open Multiplayer). Oferece recursos avançados de monitoramento e coleta de informações em tempo real.
Sobre a API:
O SA-MP Query Node é uma API desenvolvida especificamente para interagir com servidores SA-MP, permitindo a coleta de informações detalhadas sobre o servidor em tempo real. A API utiliza o protocolo de consulta nativo do SA-MP e implementa várias camadas de otimização para garantir consultas eficientes e confiáveis.
A API foi projetada com foco em:
Confiabilidade nas consultas
Eficiência no processamento
Facilidade de uso
Tratamento robusto de erros
Suporte completo a todas as funcionalidades do protocolo SA-MP
Funcionalidades
Sistema de Consulta Principal:
A API oferece um sistema de consulta completo que permite obter:
1 - Informações Básicas do Servidor:
Nome do servidor
Modo de jogo atual
Idioma configurado
Status de proteção por senha
Número máximo de jogadores
Número atual de jogadores online
2 - Lista Detalhada de Jogadores:
ID do jogador
Nome do jogador
Pontuação atual
Latência (ping) do jogador
3 - Regras do Servidor:
Configurações de lag compensation
Clima atual
Outras regras personalizadas definidas pelo servidor
4 - Medições de Desempenho:
Latência do servidor (ping)
Tempo de resposta das consultas
Estatísticas de conexão
Estrutura da API
1 - DNS_Cache
Código:
class DNS_Cache {
constructor() {
this.cache = new Map();
this.Resolve_DNS = promisify(dns.resolve4);
}
}
A classe DNS_Cache é responsável por:
Armazenar temporariamente resoluções DNS
Otimizar consultas repetidas
Reduzir a latência de conexão
Gerenciar o tempo de vida do cache
Métodos principais:
Get_IP_Address(host_name): Resolve e cache endereços IP
Cache automático com duração configurável (padrão: 5 minutos)
Fallback para hostname em caso de falha na resolução
2 - Query_Manager
Código:
class Query_Manager extends EventEmitter {
constructor() {
super();
this.Active_Queries = new Map();
}
}
O Query_Manager controla:
Gerenciamento de consultas ativas
Timeouts e retentativas
Eventos de conclusão de consulta
Limpeza de consultas expiradas
Funcionalidades:
Sistema de retry automático
Controle de tempo limite
Gerenciamento de múltiplas consultas simultâneas
Emissão de eventos de conclusão
3 - SAMP_Strings
Código:
class SAMP_Strings {
static charset = [/* conjunto de caracteres SA-MP */];
static Decode_String(buffer_data) { /* ... */ }
}
Responsável por:
Decodificação de strings do SA-MP
Suporte a caracteres especiais
Limpeza e sanitização de strings
Conversão de buffers para texto
Exemplos de Uso
1 - Consulta Básica
Código:
const query = require('samp-query-node');
query('127.0.0.1:7777', (erro, resposta) => {
if (erro) {
console.error('Erro na consulta:', erro);
return;
}
console.log('Informações do servidor:', resposta);
});
console.log('Nome do servidor:', resposta.hostname);
console.log('Jogadores:', resposta.onlinePlayers);
console.log('Modo de jogo:', resposta.gamemode);
// Processando lista de jogadores
resposta.players.forEach(jogador => {
console.log(`${jogador.name}: ${jogador.score} pontos`);
});
});
A API retorna um objeto detalhado com todas as informações do servidor:
Código:
{
// Informações básicas
address: "127.0.0.1", // Endereço do servidor
port: 7777, // Porta do servidor
hostname: "Server", // Nome do servidor
gamemode: "RolePlay", // Modo de jogo
language: "Português - Brasil", // Idioma
// Status do servidor
password: false, // Proteção por senha
maxPlayers: 100, // Máximo de jogadores
onlinePlayers: 45, // Jogadores online
ping: 58, // Latência em ms
queryTime: 1635789012345, // Timestamp da consulta
// Lista de jogadores
players: [
{
id: 0, // ID do jogador
name: "Calasans", // Nome
score: 63, // Pontuação
ping: 117 // Ping do jogador
},
],
// Regras do servidor
rules: {
allowed_clients: "0.3.7, 0.3.DL", // Versões permitidas de clientes
artwork: 1, // Habilitação de artwork
lagcomp: "On", // Status do lag comp
mapname: "San Andreas", // Nome do mapa
version: "0.3.7", // Versão do servidor
weather: 10, // ID do clima
weburl: "website.com", // URL do site do servidor
worldtime: "12:00" // Hora do mundo no servidor
}
}
Leia o repositório disponibilizado no GitHub para saber mais!