{"id":200178,"date":"2025-10-17T09:12:49","date_gmt":"2025-10-17T07:12:49","guid":{"rendered":"https:\/\/fivemx.com\/?p=200178"},"modified":"2026-08-16T13:45:25","modified_gmt":"2026-08-16T11:45:25","slug":"como-mudar-o-manuseio-do-veiculo","status":"publish","type":"post","link":"https:\/\/rpcrate.com\/pt\/how-to-change-vehicle-handling\/","title":{"rendered":"Altere e teste o comportamento de dire\u00e7\u00e3o dos ve\u00edculos no FiveM"},"content":{"rendered":"<p class=\"translation-block\">Para uma altera\u00e7\u00e3o persistente no comportamento do ve\u00edculo, edite a entrada completa de <code>handling.meta<\/code> usada pelo modelo e teste um ve\u00edculo rec\u00e9m-gerado nas mesmas condi\u00e7\u00f5es. Deixe os scripts de ajuste em tempo de execu\u00e7\u00e3o fora da compara\u00e7\u00e3o at\u00e9 saber quais valores eles sobrescrevem.<\/p>\n<p>A configura\u00e7\u00e3o e os exemplos de c\u00f3digo aqui s\u00e3o voltados ao FiveM para GTA V Legacy. O Enhanced tem regras diferentes de runtime e de compatibilidade; verifique <a href=\"https:\/\/docs.fivem.net\/docs\/developers\/legacy-vs-enhanced\/\">as altera\u00e7\u00f5es de Legacy para Enhanced do Cfx.re<\/a> antes de aplic\u00e1-las a um servidor Enhanced.<\/p>\n<h2 id=\"find-the-owning-resource\">Encontre o recurso respons\u00e1vel<\/h2>\n<p class=\"translation-block\">Localize a entrada do ve\u00edculo em <code>vehicles.meta<\/code> e leia <code>handlingId<\/code>. Encontre o <code>handlingName<\/code> correspondente nos dados completos de comportamento do ve\u00edculo. Procure em outros recursos nomes de handling duplicados e fun\u00e7\u00f5es nativas que alterem o handling em tempo de execu\u00e7\u00e3o.<\/p>\n<p>Fa\u00e7a backup do recurso e registre os valores originais. Trabalhe em um servidor isolado, usando um ve\u00edculo ou pacote compat\u00edvel com a edi\u00e7\u00e3o de GTA dele. N\u00e3o substitua um arquivo completo de metadados por um pequeno fragmento de exemplo.<\/p>\n<h2 id=\"register-the-actual-file\">Registre o arquivo real<\/h2>\n<p>Se o recurso j\u00e1 declara seu arquivo de handling, mantenha essa declara\u00e7\u00e3o. Um arquivo em <code data-no-translation=\"\" translate=\"no\">data\/handling.meta<\/code> \u00e9 registrado no manifesto com:<\/p>\n<pre data-no-translation=\"\" translate=\"no\"><code data-no-translation=\"\" translate=\"no\">files { 'data\/handling.meta' }\ndata_file 'HANDLING_FILE' 'data\/handling.meta'<\/code><\/pre>\n<p>Mantenha todos os outros arquivos e registros necess\u00e1rios. Se voc\u00ea introduzir um novo nome de handling, atualize, no ve\u00edculo pretendido, o <code data-no-translation=\"\" translate=\"no\">handlingId<\/code> de forma consistente. Alterar uma entrada compartilhada por v\u00e1rios modelos muda a base comum deles, ent\u00e3o identifique primeiro todos os que a utilizam.<\/p>\n<h2 id=\"change-a-small-specific-behavior\">Altere um comportamento pequeno e espec\u00edfico<\/h2>\n<p>Escolha um objetivo, como uma dist\u00e2ncia de frenagem menor ou uma transi\u00e7\u00e3o mais control\u00e1vel. Inspecione o valor original, altere-o moderadamente e guarde o par exato de antes e depois. Por exemplo, este \u00e9 um campo dentro de uma entrada completa existente, n\u00e3o um arquivo completo de handling:<\/p>\n<pre data-no-translation=\"\" translate=\"no\"><code data-no-translation=\"\" translate=\"no\">&lt;fBrakeForce value=\"0.90\" \/&gt;<\/code><\/pre>\n<p>Trate a for\u00e7a do motor, o arrasto, as rela\u00e7\u00f5es de marcha, a tra\u00e7\u00e3o e a suspens\u00e3o como valores que interagem. <code data-no-translation=\"\" translate=\"no\">fInitialDriveMaxFlatVel<\/code> n\u00e3o \u00e9 uma leitura direta e garantida da velocidade m\u00e1xima em km\/h. Os valores do centro de rolagem n\u00e3o s\u00e3o o deslocamento do centro de massa. N\u00e3o aplique uma \u201ccorre\u00e7\u00e3o\u201d universal para sa\u00edda de frente ou capotamento sem uma compara\u00e7\u00e3o medida.<\/p>\n<h2 id=\"test-the-saved-result\">Teste o resultado salvo<\/h2>\n<ol>\n<li>Reinicie o recurso afetado no servidor de teste e crie um ve\u00edculo novo.<\/li>\n<li>Use o mesmo trajeto, clima, melhorias do ve\u00edculo e dispositivo de controle nas duas configura\u00e7\u00f5es.<\/li>\n<li>Compare a acelera\u00e7\u00e3o, a frenagem a partir de uma velocidade fixa, curvas constantes, transi\u00e7\u00f5es e recupera\u00e7\u00e3o ap\u00f3s uma derrapagem.<\/li>\n<li>Teste a colis\u00e3o e o comportamento visto por outro jogador conectado.<\/li>\n<li>Reconecte e reinicie para confirmar que as configura\u00e7\u00f5es salvas do recurso continuam sendo a origem do resultado.<\/li>\n<\/ol>\n<h2 id=\"understand-runtime-overrides\">Entenda as substitui\u00e7\u00f5es em tempo de execu\u00e7\u00e3o<\/h2>\n<p>No FiveM, <code data-no-translation=\"\" translate=\"no\">SetVehicleHandlingFloat<\/code> recebe o identificador de uma entidade de ve\u00edculo, uma classe de handling, um campo e um valor. Passar um hash de modelo obtido de <code data-no-translation=\"\" translate=\"no\">GetEntityModel<\/code> ou <code data-no-translation=\"\" translate=\"no\">GetHashKey<\/code> como primeiro argumento est\u00e1 incorreto. Leia a <a href=\"https:\/\/github.com\/citizenfx\/fivem\/blob\/master\/ext\/native-decls\/SetVehicleHandlingFloat.md\">assinatura exata da fun\u00e7\u00e3o nativa<\/a> antes de us\u00e1-la.<\/p>\n<p>Substitui\u00e7\u00f5es em tempo de execu\u00e7\u00e3o precisam tratar explicitamente a propriedade da entidade, o respawn e a restaura\u00e7\u00e3o dos valores originais. N\u00e3o transmita para todos listas de campos e valores enviadas pelo cliente. Se os jogadores puderem solicitar uma configura\u00e7\u00e3o de ajuste, o servidor deve autorizar uma configura\u00e7\u00e3o fixa e validada, e a implementa\u00e7\u00e3o deve considerar como ela se aplica entre os clientes.<\/p>\n<h2 id=\"if-nothing-changes\">Se nada mudar<\/h2>\n<p class=\"translation-block\">Verifique o arquivo ativo, seu registro no manifest e a correspond\u00eancia de <code>handlingId<\/code>. Confira se outro recurso ou menu de ajustes sobrescreve o mesmo campo. Teste um ve\u00edculo novo ap\u00f3s reiniciar. Resolva o conflito entre os recursos respons\u00e1veis, em vez de depender de uma solu\u00e7\u00e3o fr\u00e1gil baseada na ordem de inicializa\u00e7\u00e3o.<\/p>\n<h2 id=\"keep-a-useful-tuning-record\">Mantenha um registro \u00fatil dos ajustes<\/h2>\n<p>Registre o modelo, a vers\u00e3o do recurso, as altera\u00e7\u00f5es nos campos, as condi\u00e7\u00f5es de teste e a contrapartida observada. Pe\u00e7a a outro piloto que repita o teste. Mantenha a configura\u00e7\u00e3o original dispon\u00edvel e publique apenas os valores que voc\u00ea realmente verificou; uma configura\u00e7\u00e3o de handling \u00e9 espec\u00edfica do ve\u00edculo e do uso pretendido.<\/p>\n<h2 id=\"reference-documentation\">Documenta\u00e7\u00e3o de refer\u00eancia<\/h2>\n<p><a href=\"https:\/\/docs.fivem.net\/docs\/game-references\/data-files\/\">Cfx.re \u2014 arquivos de dados<\/a> \u00b7 <a href=\"https:\/\/github.com\/dexyfex\/CodeWalker\">Fonte: dexyfex\/CodeWalker<\/a><\/p>","protected":false},"excerpt":{"rendered":"<p class=\"translation-block\">Para uma altera\u00e7\u00e3o persistente no comportamento do ve\u00edculo, edite a entrada completa de <code>handling.meta<\/code> usada pelo modelo e teste um ve\u00edculo rec\u00e9m-gerado nas mesmas condi\u00e7\u00f5es. Deixe os scripts de ajuste em tempo de execu\u00e7\u00e3o fora da compara\u00e7\u00e3o at\u00e9 saber quais valores eles sobrescrevem.<\/p>","protected":false},"author":1,"featured_media":200179,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1902,1899],"tags":[2931,2948],"class_list":["post-200178","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fivem-related","category-tutorials","tag-car","tag-vehicle"],"_links":{"self":[{"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/posts\/200178","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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/comments?post=200178"}],"version-history":[{"count":5,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/posts\/200178\/revisions"}],"predecessor-version":[{"id":217338,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/posts\/200178\/revisions\/217338"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/media\/200179"}],"wp:attachment":[{"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/media?parent=200178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/categories?post=200178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rpcrate.com\/pt\/wp-json\/wp\/v2\/tags?post=200178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}