{"id":180818,"date":"2025-03-06T15:16:42","date_gmt":"2025-03-06T14:16:42","guid":{"rendered":"https:\/\/fivemx.com\/?p=180818"},"modified":"2026-08-11T12:02:49","modified_gmt":"2026-08-11T10:02:49","slug":"taximetro-simples","status":"publish","type":"post","link":"https:\/\/rpcrate.com\/pt\/simple-taximeter\/","title":{"rendered":"Tax\u00edmetro Simples para FiveM"},"content":{"rendered":"<p>O tax\u00edmetro de n1nja exibe uma tarifa baseada na dist\u00e2ncia para motorista e passageiros. O manifesto declara a vers\u00e3o 1.0.3 e nenhuma depend\u00eancia de ESX ou QBCore. O c\u00f3digo analisado n\u00e3o cont\u00e9m d\u00e9bito banc\u00e1rio, pagamento de passageiro ou integra\u00e7\u00e3o de cobran\u00e7a persistente.<\/p>\n<h2>Tarifa, controles e hist\u00f3rico<\/h2>\n<p>O cliente Lua mede o movimento do ve\u00edculo a cada segundo e multiplica a dist\u00e2ncia acumulada por Config.FareRate. A dist\u00e2ncia aparece em metros: a taxa fornecida de 0.5 gera, portanto, uma tarifa exibida de $500 em 1.000 metros. Escolha uma taxa adequada \u00e0 economia do servidor; esse c\u00e1lculo n\u00e3o inclui cobran\u00e7a separada por tempo de espera.<\/p>\n<p>X alterna a exibi\u00e7\u00e3o; n\u00e3o inicia nem interrompe o c\u00e1lculo da tarifa. Os demais controles est\u00e3o em Config.Keys. A lista fornecida inclui taxi, kuruma e adder; substitua-a pela frota desejada. Config.PauseOnReset controla se a reinicializa\u00e7\u00e3o pausa o tax\u00edmetro.<\/p>\n<p>O hist\u00f3rico de corridas \u00e9 uma tabela Lua no cliente, limitada a dez entradas por padr\u00e3o. Zerar uma corrida n\u00e3o vazia registra tarifa e dist\u00e2ncia. N\u00e3o h\u00e1 banco de dados nem armazenamento persistente; n\u00e3o descreva isso como um registro dur\u00e1vel entre reconex\u00f5es ou reinicializa\u00e7\u00f5es do recurso.<\/p>\n<h2>Valida\u00e7\u00e3o no servidor e lista de testes<\/h2>\n<p>O cliente normal restringe o controle ao motorista, mas os manipuladores do servidor n\u00e3o verificam se o remetente dirige o ve\u00edculo enviado. O relato de passageiros aceita uma lista de destinat\u00e1rios do cliente, e as atualiza\u00e7\u00f5es retransmitem sua tarifa e dist\u00e2ncia. Valide participa\u00e7\u00e3o no ve\u00edculo, permiss\u00f5es do remetente, tipos de dados e frequ\u00eancia das atualiza\u00e7\u00f5es antes do uso p\u00fablico; nunca use esses valores diretamente como autoridade para cobran\u00e7as.<\/p>\n<p>Coloque o recurso em uma pasta taximeter e configure-o antes de iniciar em um servidor de desenvolvimento. Teste exibi\u00e7\u00e3o de motorista e passageiros, iniciar\/pausar\/zerar, troca de ve\u00edculo, uma rota medida e reconex\u00e3o ap\u00f3s uma corrida registrada. Verifique qualquer sistema separado de pagamento de forma independente.<\/p>\n<h2>Fonte e escopo da an\u00e1lise<\/h2>\n<p>C\u00f3digo-fonte conferido em 10 de setembro de 2026 na revis\u00e3o 36d7b3931de28965ad0139c7018534382977f801. Os resultados se baseiam no manifesto, configura\u00e7\u00e3o, Lua e c\u00f3digo da interface do navegador; n\u00e3o foi testada a sincroniza\u00e7\u00e3o multijogador nem a precis\u00e3o da tarifa.<\/p>\n<p><a href=\"https:\/\/github.com\/secretn1nja\/taximeter\/tree\/36d7b3931de28965ad0139c7018534382977f801\">Examinar o c\u00f3digo do tax\u00edmetro<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Confira o tax\u00edmetro FiveM de n1nja: c\u00e1lculo da tarifa, controles, hist\u00f3rico tempor\u00e1rio, aus\u00eancia de cobran\u00e7a e limites da valida\u00e7\u00e3o no servidor.<\/p>","protected":false},"author":27669,"featured_media":181051,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2297,2298],"tags":[3001,2928,3000],"class_list":["post-180818","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-free","category-scripts","tag-fivem-script","tag-free","tag-free-script"],"_links":{"self":[{"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/posts\/180818","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/users\/27669"}],"replies":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/comments?post=180818"}],"version-history":[{"count":6,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/posts\/180818\/revisions"}],"predecessor-version":[{"id":214331,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/posts\/180818\/revisions\/214331"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/media\/181051"}],"wp:attachment":[{"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/media?parent=180818"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/categories?post=180818"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/tags?post=180818"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}