{"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-simple","status":"publish","type":"post","link":"https:\/\/rpcrate.com\/es\/simple-taximeter\/","title":{"rendered":"Simple tax\u00edmetro para FiveM"},"content":{"rendered":"<p>El tax\u00edmetro de n1nja muestra al conductor y a los pasajeros una tarifa basada en la distancia. El manifiesto declara la versi\u00f3n 1.0.3 y ninguna dependencia de ESX o QBCore. El c\u00f3digo revisado no contiene deducciones bancarias, pagos de pasajeros ni integraci\u00f3n de facturaci\u00f3n persistente.<\/p>\n<h2>Tarifa, controles e historial<\/h2>\n<p>El cliente Lua mide el movimiento del veh\u00edculo cada segundo y multiplica la distancia acumulada por Config.FareRate. La distancia se muestra en metros: la tasa suministrada de 0.5 produce una tarifa mostrada de $500 en 1.000 metros. Elige una tasa adecuada para la econom\u00eda del servidor; este c\u00e1lculo no incluye un cargo separado por tiempo de espera.<\/p>\n<p>X alterna la visualizaci\u00f3n; no inicia ni detiene el c\u00e1lculo de la tarifa. Los dem\u00e1s controles se configuran en Config.Keys. La lista suministrada incluye taxi, kuruma y adder; sustit\u00fayela por tu flota prevista. Config.PauseOnReset controla si el restablecimiento pausa el tax\u00edmetro.<\/p>\n<p>El historial de viajes es una tabla Lua del cliente, limitada a diez entradas por defecto. Restablecer un viaje no vac\u00edo registra su tarifa y distancia. No hay base de datos ni almacenamiento persistente; no lo describas como un registro duradero entre reconexiones o reinicios del recurso.<\/p>\n<h2>Validaci\u00f3n del servidor y lista de pruebas<\/h2>\n<p>El cliente normal limita el control al conductor, pero los manejadores del servidor no verifican que el remitente conduzca el veh\u00edculo enviado. El informe de pasajeros acepta una lista de destinatarios del cliente, y las actualizaciones retransmiten su tarifa y distancia. Valida la pertenencia al veh\u00edculo, permisos del remitente, tipos de datos y frecuencia de actualizaci\u00f3n antes del uso p\u00fablico; nunca uses directamente estos valores como autoridad para cobrar.<\/p>\n<p>Coloca el recurso en una carpeta taximeter y config\u00faralo antes de iniciarlo en un servidor de desarrollo. Prueba las pantallas del conductor y pasajeros, iniciar\/pausar\/restablecer, cambios de veh\u00edculo, una ruta medida y la reconexi\u00f3n despu\u00e9s de un viaje registrado. Verifica por separado cualquier sistema externo de pagos.<\/p>\n<h2>Fuente y alcance de la revisi\u00f3n<\/h2>\n<p>C\u00f3digo fuente revisado el 10 de septiembre de 2026 en la revisi\u00f3n 36d7b3931de28965ad0139c7018534382977f801. Los hallazgos se basan en el manifiesto, la configuraci\u00f3n, Lua y el c\u00f3digo de la interfaz del navegador; no se prob\u00f3 la sincronizaci\u00f3n multijugador ni la precisi\u00f3n de la tarifa.<\/p>\n<p><a href=\"https:\/\/github.com\/secretn1nja\/taximeter\/tree\/36d7b3931de28965ad0139c7018534382977f801\">Examinar el c\u00f3digo del tax\u00edmetro<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Revisa el tax\u00edmetro FiveM de n1nja: c\u00e1lculo de tarifa, controles, historial temporal, ausencia de cobros y l\u00edmites de validaci\u00f3n del 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\/es\/wp-json\/wp\/v2\/posts\/180818","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/users\/27669"}],"replies":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/comments?post=180818"}],"version-history":[{"count":6,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/posts\/180818\/revisions"}],"predecessor-version":[{"id":214331,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/posts\/180818\/revisions\/214331"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/media\/181051"}],"wp:attachment":[{"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/media?parent=180818"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/categories?post=180818"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rpcrate.com\/es\/wp-json\/wp\/v2\/tags?post=180818"}],"curies":[{"name":"gracias","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}