Skip to content

Phone Smartphone ​

Módulo do celular. Traz ligações, mensagens, redes sociais, jogos, serviços e o painel de moderação. A tela é do phone: este resource só roda no servidor.

Precisa de: phone

Instalação ​

cfg
ensure phone
ensure phone_smartphone

Coloque depois do phone. As tabelas vêm do install.sql do phone. Veja a ordem de instalação.

Sem este módulo, ninguém abre o celular: os modelos de celular saem da loja e /celular não existe. O tablet continua funcionando. O phone_watch depende deste módulo.

Este módulo não tem arquivo de configuração. As opções ficam em phone/shared-side/config.lua.

Apps ​

GrupoApps
ComunicaçãoTelefone, Mensagens, Contatos
Redes sociaisBirdy, Instapic, Trendy, Flash, Match, DarkChat, Páginas
UtilidadesCalendário, Casa, Serviços, Tempo, Notícias, Gravador, Toques, Rádio, Saúde, Cripto
JogosOnde É?, Cobrinha, Blocos, Voo, Tijolos, Torre, Memória, Campo Minado
AdministraçãoAdmin

Veja ID, instalação e função de cada um na tabela de apps.

Número ​

O personagem ganha uma linha de 6 dígitos, no formato 123-456, na primeira vez que precisa dela.

Ligações ​

  • Atender: Y. Recusar: N.
  • Ligação de vídeo entre dois celulares.
  • Recado de voz de até 60 segundos. Exige envio de mídia.
  • Viva-voz: quem está a até 3 m ouve a ligação.
  • Modos do celular: avião, silencioso e não perturbe.

A ligação de vídeo funciona sem configuração, com STUN. Para usar TURN, informe uma chave TURN da Cloudflare:

ConvarO que é
cf_turn_key_idID da chave TURN
cf_turn_tokenToken da chave TURN. Use set, nunca setr

Orelhão ​

Os orelhões do mapa viram ponto de uso, por target ou pela tecla E, conforme Interaction. A ligação custa Payphone.Cost em dinheiro e o valor volta se ninguém atender. Sair a mais de 3 m encerra a ligação.

Serviços e empresas ​

O app Serviços abre chamados e liga para as empresas. A lista está fixa em server-side/services.lua:

LinhaGrupoCódigo
PolíciaPolicia190
HospitalParamedico192
MecânicaBennysOficina
BahamasBahamas
RestauranteRestaurante

Quem está em serviço no grupo vê os chamados, assume, comenta e encerra. Cargos 1 a 3 do grupo redistribuem chamados de outros membros. Chamados encerrados somem depois de 3 dias.

Alertas para a cidade ​

Os grupos de Alert.Groups enviam, pelo app Serviços, um alerta para todos os jogadores.

Toques ​

O jogador usa os toques gratuitos, compra os pagos em dinheiro ou no banco e cria toques próprios a partir do Gravador ou de um link. Toque próprio só toca depois de aprovado no app Admin.

Permissão ​

O app Admin exige o grupo Admin. Cada ação negada aparece no log do canal Phone.

AçãoRegra
Buscar jogadorPor passaporte, número ou nome
Trocar númeroSorteia outra linha
Bloquear celularAté 1440 minutos
NotificaçãoPara um jogador ou para todos
AppsLiga e desliga qualquer app que não seja fixo
ModeraçãoApaga posts de Birdy, Instapic, Páginas e Notícias
ToquesAprova ou recusa toques próprios
EstatísticasMensagens e ligações do dia

Os grupos de News.Groups publicam no app Notícias.

Configuração ​

Tudo fica em phone/shared-side/config.lua.

Redes sociais ​

OpçãoPadrãoO que muda
Flash.Friends200Máximo de amigos
Flash.Recipients20Destinatários por foto
Flash.Caption80Tamanho da legenda
Flash.Expire86400Segundos até a foto expirar
Match.Likes50Curtidas por dia
Match.Interests18 interessesInteresses que o jogador escolhe

Ligações e orelhão ​

OpçãoPadrãoO que muda
Payphone.Cost5Preço da ligação no orelhão
Calls.CompanyAnonymousfalsetrue deixa o jogador esconder o número ao ligar para empresas

Alertas e notícias ​

OpçãoPadrãoO que muda
Alert.GroupsPolícia, Hospital, PrefeituraQuem envia. Duty = true exige estar em serviço
Alert.Cooldown300Segundos entre alertas do mesmo jogador
Alert.Global60Segundos entre alertas de qualquer jogador
Alert.History20Alertas guardados
News.GroupsAdmin, como RedaçãoQuem publica
News.Categories6 categoriasCategorias das notícias
News.Cooldown600Segundos entre notícias urgentes da mesma redação

Cripto ​

OpçãoPadrãoO que muda
Crypto.CoinsKRO, PXL, GRN, NEOMoedas: Id, Name, Symbol, Color, Price, Volatility e Drift
Crypto.Tick60Segundos entre mudanças de preço
Crypto.Revert0.0005Força que puxa o preço de volta ao valor de Price
Crypto.Keep7Dias de histórico de preço
Crypto.Fee1.5Taxa, em %
Crypto.DailyLimit250000Limite diário de compra e venda
Crypto.MinOrder50Valor mínimo da ordem
Crypto.TransfertruePermite enviar para outro jogador

As 8 ações do app são fixas no código.

Jogos ​

Games guarda a pontuação máxima aceita em cada jogo. Acima do teto, a pontuação é recusada e o servidor dispara krs:security:Flagged.

JogoMax
cobrinha4000
blocos4000000
voo5000
tijolos3000000
stack10000
memoria100000
campo100000

Para programadores ​

Exports do servidor, em exports.phone_smartphone ou exports.phone:

lua
exports.phone:Number(passaporte)           -- número, ou false
exports.phone:Source(numero)               -- source do dono online, ou false
exports.phone:Formatted(passaporte)        -- "123-456", ou "Nenhum"
exports.phone:Format(numero)
exports.phone:All()                        -- { [passaporte] = numero }
exports.phone:Renumber(passaporte)         -- sorteia outro número
exports.phone:Move(de, para)               -- passa linha e dados de um passaporte para outro
exports.phone:CreateCall(source, numero)
exports.phone:PayphoneCall(source, numero)
exports.phone:EndCall(source)
exports.phone:OwnsRingtone(passaporte, id)
exports.phone:GrantRingtone(passaporte, id)

Eventos de servidor: phone:CallStarted, phone:CallAnswered e phone:CallEnded. Todos recebem uma tabela com Id, From, FromSource, FromNumber, To, ToSource, ToNumber, Company, Anonymous, State, Started, Answered e Ended.

Problemas comuns ​

MensagemCausa
Celular indisponível.O resource phone não está ligado
Seu celular foi bloqueado pela administração.Bloqueio feito no app Admin
Ninguém disponível para atender agora.Empresa sem ninguém em serviço
A ligação custa $5 em dinheiro.O jogador não tem o dinheiro para o orelhão
Chegue mais perto do orelhão.O jogador está a mais de 2 m
Clima indisponível no momento.O resource time_system não está ligado
[phone] o TURN da Cloudflare recusou a credencialcf_turn_key_id ou cf_turn_token errado. O vídeo volta a usar só STUN