Documentação do Pulse Phone
Requisitos
2. Requisitos
| O quê | Obrigatório? | O que acontece sem ele |
|---|---|---|
| OneSync ativo | Obrigatório | A verificação de arranque falha com OneSync ... off. Adicione set onesync on. |
| Game build 2699 ou mais recente | Obrigatório | O modelo do telemóvel não faz streaming. Defina sv_enforceGameBuild. |
| oxmysql (ou ghmattimysql, mysql-async) em MariaDB 10.6+ ou MySQL 8 | Recomendado | Sem nenhum resource SQL a correr, os dados ficam no armazenamento chave/valor do servidor. São persistentes, mas não os pode consultar, e a partir de cerca de 30 jogadores deve usar uma base de dados. |
| Um script de voz: pma-voice, mumble-voip, SaltyChat, TokoVOIP ou YACA | Recomendado | As chamadas ligam mas não têm áudio. |
| screenshot-basic | Recomendado (o resource padrão, ou a cópia mais leve incluída na sua transferência: veja o guia rápido, passo 6) | A câmara enquadra as fotos mas não as consegue guardar. |
| Um framework | Opcional | O telemóvel funciona em standalone: telemóveis associados à licença do jogador, e o telemóvel tem o seu próprio banco. |
Um bloco completo do server.cfg:
set onesync on
set sv_enforceGameBuild 2699 # or newer
ensure oxmysql
# ... your framework, then your inventory, banking, garage and housing scripts ...
ensure pma-voice
ensure screenshot-basic
ensure phone
# ... scripts that use the phone ...A base de dados. O armazenamento que o telemóvel usa é decidido em cada arranque:
| O seu servidor | Onde o telemóvel guarda os dados |
|---|---|
| oxmysql, mysql-async ou ghmattimysql a correr, e a base de dados responde | A base de dados. As tabelas são criadas no primeiro arranque e as novas são adicionadas sozinhas após cada atualização. |
| Nenhum resource SQL a correr | O armazenamento chave/valor do servidor, automaticamente. É persistente entre reinícios mas não pode ser consultado. A partir de cerca de 30 jogadores, ou se a consola avisar que guardar o armazenamento está lento, use uma base de dados. |
| Um resource SQL a correr, mas a base de dados não responde em 30 segundos | Nada é guardado até ela responder. A consola diz porquê, e o telemóvel tenta de novo a cada 15 a 60 segundos e termina o arranque sozinho assim que a base de dados responde. |
Neste último caso, pode dizer ao telemóvel para usar o armazenamento chave/valor com set phone_db_fallback "kvp" no server.cfg; esses dados ficam no armazenamento chave/valor e nunca são copiados para a base de dados mais tarde, por isso use isto num servidor de testes, não como forma de contornar uma ligação avariada. Cada consulta tem também um prazo de 10 segundos: uma consulta a que a base de dados nunca responde é indicada como falhada à app que a pediu, e a consola identifica essa consulta uma vez.
Bases de dados suportadas: MariaDB 10.6 ou mais recente, ou MySQL 8.0 ou mais recente. O phone.sql de cada versão é verificado numa base de dados MariaDB nova com o SQL mode do MySQL 8 antes de o pacote ser criado. Versões mais antigas (MariaDB 10.4 ou 10.5, MySQL 5.7) não são testadas nem suportadas, mesmo que possam funcionar.
O phone.sql é só para alojamentos que não deixam um resource criar tabelas. Não indica nenhuma collation: aplica-se o utf8mb4 padrão do seu servidor, tal como quando o telemóvel cria as tabelas sozinho. Pode ser corrido com segurança numa base de dados existente, e correr o novo outra vez após uma atualização só acrescenta o que falta.
O sv_stateBagStrictMode pode ficar ativo. Tudo o que os outros jogadores veem de um telemóvel (a animação de o segurar, o telemóvel na mão, o ecrã, a lanterna) é definido pelo servidor depois de verificar o valor, nunca pelo jogo do jogador.
Trocar de telemóvel
Tabelas de outro telemóvel. Se um telemóvel que usou antes deixou tabelas com os mesmos nomes (por exemplo phone_messages), são renomeadas para old_<name> no primeiro arranque, para que o Pulse Phone possa criar as suas. Nada é apagado. Se o utilizador da sua base de dados não puder renomear tabelas, a verificação de arranque mostra [FAIL] Database com os nomes das tabelas: dê ao utilizador permissões ALTER, ou renomeie cada uma para old_<name> na sua ferramenta de base de dados (HeidiSQL, phpMyAdmin), e reinicie.