Pular para o conteúdo

Solução de Problemas

As coisas que realmente dão errado e onde procurar.


Um simples restart não relê o fxmanifest.lua. Se você adicionou um arquivo — um novo idioma, por exemplo — digite refresh no console do servidor primeiro, e depois restart mic_drugdealer. Alterações no config.lua precisam apenas do restart.

Em ordem:

  • O lb-phone está rodando? O aplicativo aguarda por ele e se adiciona assim que ele inicia.
  • O emprego do jogador está em Config.BlockedAppJobs? Polícia, xerife, ambulância e mecânico não podem vê-lo por padrão. Teste com outro emprego.
  • Config.defaultApp está desativado? Então o aplicativo não aparece na tela inicial até que seja instalado pela App Store.

O console do servidor apresenta erros ao iniciar sobre getSharedObject ou GetCoreObject

Seção intitulada “O console do servidor apresenta erros ao iniciar sobre getSharedObject ou GetCoreObject”

Config.Framework não corresponde ao seu servidor, ou o framework iniciou depois deste resource. Use "ESX" ou "QB" em maiúsculas, e coloque ensure mic_drugdealer abaixo do seu framework no server.cfg.

No QBox, o valor é "QB" — o QBox executa resources QBCore através de sua camada de compatibilidade — mantendo Config.qbResourceName como "qb-core", e qbx_core deve iniciar antes de mic_drugdealer.

O aplicativo abre, mas diz “No drugs available”

Seção intitulada “O aplicativo abre, mas diz “No drugs available””

A pasta foi renomeada. As telas do aplicativo se comunicam com o resource pelo nome mic_drugdealer; volte o nome da pasta para o original.

Config.MinimumPolice vem configurado como 1, então se não houver ninguém online em um emprego de Config.PoliceJobs, ninguém compra. Defina como 0 para desativar a verificação, ou certifique-se de que os nomes dos seus empregos de polícia estejam em Config.PoliceJobs.

“You don’t have enough … in your inventory”

Seção intitulada ““You don’t have enough … in your inventory””

O nome do item em Config.drugs deve ser exatamente o nome do item no seu inventário. A lista padrão usa nomes como maria, coca e meta; os seus provavelmente são diferentes. Lembre-se também de que a quantidade é sorteada entre minAmount e maxAmount — um jogador carregando 2 pode acabar recebendo um pedido de 8.

O minLevel daquela droga está acima do nível do jogador. A aba PROFILE no aplicativo mostra o nível atual e quantas vendas faltam para o próximo. Diminua o minLevel ou edite os níveis em config.lua.

“The buyer rejected the offer and the sale failed!”

Seção intitulada ““The buyer rejected the offer and the sale failed!””

Isso é o Config.Failure: a chance, em 100, de a porta continuar fechada após a batida. O valor padrão é 55, então mais da metade das portas diz não. O jogador continua com as drogas; ele só precisa iniciar uma nova negociação.

O jogador levou mais tempo do que Config.DealTimeout segundos (300) para chegar até a porta. Aumente esse valor se as suas zonas ficarem longe de onde os jogadores costumam estar.

Verifique a tabela em Personalização na seção “Framework e dinheiro”. As duas surpresas comuns:

  • No QBCore, o dinheiro sujo é sempre pago como um item chamado blackmoney, mesmo com Config.MoneyAsItem desativado. Se esse item não existir no seu inventário, o pagamento é perdido. Crie-o ou defina Config.BlackMoney = false.
  • No ESX com Config.MoneyAsItem = true, o pagamento é um item. Isso é o que o ox_inventory espera; com um inventário que mantém o dinheiro em contas, defina MoneyAsItem = false.

O valor pago é maior do que a notificação informou

Seção intitulada “O valor pago é maior do que a notificação informou”

A notificação do celular mostra o preço base com o bônus de nível. O servidor então soma o bônus de polícia de Config.PriceMultipliers, portanto, com mais policiais online, o jogador recebe mais do que a notificação anunciou.

Apenas uma parte das vendas bem-sucedidas é denunciada — Config.PoliceAlertChance, 20 em 100 por padrão. Os policiais devem ter o lb-phone e um emprego listado em Config.PoliceJobs. O blip dura Config.PoliceBlipDuration segundos.

O progresso fica salvo em player_data.json dentro da pasta do resource. Se o servidor não puder gravar lá — uma pasta somente leitura, ou uma hospedagem que restaura os arquivos a cada reinicialização — nada é mantido. O console exibe um erro quando o salvamento falha.