-
Posts
3,980 -
Joined
-
Last visited
-
Days Won
181
Everything posted by Lord Henry
-
Isso geralmente é feito em HUDs editados. Você pode desativar a função que faz aparecer os nomes originais dos veículos ao entrar neles e criar um resource próprio que faça aparecer os nomes modificados. Para desativar os nomes dos veículos aparecendo na tela ao entrar neles use isso: (exemplo client-side) setPlayerHudComponentVisible ("vehicle_name", false) Se o seu objetivo é mudar os nomes dos veículos que aparecem no painel Admin, você deve editar o painel admin. (nada recomendável a não ser que vc saiba oq está fazendo) Se seu objetivo é mudar os nomes dos veículos que aparecem no Freeroam (F1), basta editar o arquivo vehicles.xml que está em deathmatch\resources\[gameplay]\freeroam\vehicles.xml. Boa sorte.
-
Olá novamente @VazErn. Bom, eu andei estudando esse resource object_preview até saber como usar ele direito e consegui fazer este exemplo em DX (apesar de eu não gostar de painéis DX). O único problema é que qualquer painel que você criar, seja ela em GUI ou DX, vai sempre aparecer na frente do objeto, independente se você tentar mover essa GUI para trás. Mas isso seria problema do próprio object_preview em si que está sempre renderizando atrás de todos os elementos da câmera. Testei aqui e está tudo funcionando normal e sem erros, acabei me empolgando e fazendo alguns botões funcionais no painel xD. Mas ta ae seu exemplo, copie tudo e teste no seu servidor local para ver como funciona. Comando pra abrir o painel: /teste Edit: Deixei o código comentado pra ajudar a entender o código, pois sei que ficou um tanto complexo.
-
setElementPosition deveria mover o jogador e não o veículo, pois o mesmo foi destruído. Se você ler a Wiki da função OnVehicleStartExit vai perceber que o source dela é o veículo e não o jogador. Portanto no setElementPosition, troque source por thePlayer.
-
Cara, ta difícil entender esse código. Ele está muito complexo, com condições separadas em linhas diferentes. Vou deixar em aberto pra outra pessoa responder.
-
Na verdade elseif sempre vem antes do else. if condition then -- Se for isso, então: --code elseif condition then -- Senão se for isso, então: --code2 else -- Senão: return false end O else sozinho indica uma condição de escape final, se não entrar em nenhuma condição anterior, ele vai entrar obrigatoriamente nesse else pois ele não tem condição. O elseif nada mais é do que um segundo if, que será verificado somente se não entrar no if anterior (ou elseif anterior). Se o if anterior for verdadeiro, ele não vai entrar neste elseif. Também é possível colocar if seguido de outro if, para casos específicos onde você quer que sejam executadas as duas condições simultaneamente. Para fazer isso é necessário fechar o escopo do if anterior para abrir o outro. if condition then --code end if condition then --code2 end Se colocar elseif sem ter um if anterior em aberto, está errado. Se colocar um else sem ter pelo menos um if anterior em aberto, está errado. Pode não ter elseif anterior. Se colocar qualquer condição após um else em aberto, está errado pois ele nunca irá entrar nesta condição. Exceto se a condição estiver dentro do escopo do else. Se colocar condição no else, está errado. Se fechar o escopo de um if antes do elseif ou else, está errado pois eles precisam de um if em aberto para ter else. O if só deve ser fechado após os elses. Os elses são fechados automaticamente ao fechar o primeiro if. Ou seja, apenas um end para todos eles já basta. -------------------------------------------------------- A propósito @Marcos^v7, não use nomes iguais de parâmetros diferentes para funções diferentes. Na sua função de saída, você está chamando o mesmo elemento de entrada, isso pode causar conflito. Substitua o parâmetro pHitElement por pLeaveElement. function saindo (pLeaveElement) if getElementType (pLeaveElement) == 'player' then outputChatBox ("[BOSS] - Você saiu da área BOSS.", pLeaveElement, 145, 0, 0, true) elseif getElementData (pLeaveElement, "zombie") and getElementType (pLeaveElement) == 'ped' then killPed (pLeaveElement) end end
-
Desmontar veiculos ja montados, alguem ajuda ?
Lord Henry replied to rafaelcvc's topic in Programação em Lua
Sim jovem, mas já pensou em pegar o código de lá? Ou então pelo menos ver como ele é feito e tentar fazer outro? -
Desmontar veiculos ja montados, alguem ajuda ?
Lord Henry replied to rafaelcvc's topic in Programação em Lua
Isso tem no gamemode Dayz. -
Desmontar veiculos ja montados, alguem ajuda ?
Lord Henry replied to rafaelcvc's topic in Programação em Lua
Acho que ninguém aqui tem. Não entendi oq vc quis dizer com "desmontar" carros. -
Problema loja de carros / kill e death
Lord Henry replied to Nicolas Eoq's topic in Programação em Lua
Sobre a loja de carros, você pode programar um sistema de banco de dados, recomendo em SQLite por ser mais fácil e por ser nativo do MTA. Ou se preferir pode ser em MySQL que também é compatível, mas este outro é mais complexo e exige certas configurações de acesso. Você pode aprender sobre as funções de banco de dados aqui: ExecuteSQLQuery Se você não conseguir de jeito nenhum, você pode baixar essa loja de carros que funciona em SQLite direto do site da comunidade oficial do MTA: shopcar-system (by LordHenry) --------------------------------------------------------------------------------- Sobre salvar o kills/death do jogador, basta salvar esses dados quando ele deslogar, usando setAccountData. E quando ele logar, carregue esses dados usando getAccountData. Não se esqueça de que se o resource for desligado, ele deve salvar as datas de todo mundo em suas respectivas contas para não haver perda de dados, para isso use a função onResourceStop. Edit: Ah, e para fazer uma função funcionar quando o jogador deslogar, use onPlayerLogout e para fazer ela funcionar quando o jogador logar, use onPlayerLogin. Espero ter ajudado, abraço. -
Servidor com mesmo nome que o meu
Lord Henry replied to zeebacon's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Olá. Infelizmente não existe nenhuma regra que proíba copiar nomes de outros servidores nem gamemodes. No seu caso, o suposto servidor cópia aparenta estar realmente agindo de má fé, pois copiar 2x tanto o nome quanto o nome de uma mesma equipe junto com o gamemode é no mínimo muito suspeito. O que você pode fazer, porém não é tão viável, seria você registrar em cartório o nome da sua equipe como uma marca registrada. Assim a equipe do servidor cópia precisará de sua autorização para usar o nome de sua equipe, pois será uma marca registrada sua. Caso eles continuem usando sem sua autorização, você pode iniciar um processo judicial por violação de marca comercial. O MTA não interfere neste caso. Outra coisa que talvez seja mais viável, seria você provar que o suposto servidor envolvido esteja violando alguma regra gravíssima do MTA, como por exemplo, ter mods que ofereçam risco aos jogadores, expondo informações pessoais dos jogadores, ter algum mod que cause danos na máquina dos jogadores (apesar de isto ser extremamente difícil, pois o MTA bloqueia funções que tentam alterar arquivos externos do MTA.) ou de alguma forma provar que eles estejam causando algum crime real. Neste caso, o MTA pode suspender o IP do servidor denunciado. ---------------------------------------------------------------------------------------------------------- Por curiosidade, você tem alguma print mostrando o nome completo do seu servidor e o nome do servidor cópia? -
Este fórum é relacionado a Multi Theft Auto, não a corporações militares. Se no seu servidor existe essa corporação, pergunte para eles como ingressar.
-
Você precisa de ajuda ou precisa que programem o script pra você? A maioria aqui não trabalha de graça. Posso te ajudar lhe mostrando o caminho de onde você deve estudar: SetPedAnimation - Coloca a animação no player. GetElementHealth - Verifica quanto de vida o jogador possui. OnPlayerDamage - Evento que ativa toda vez que o jogador recebe dano. Para que o evento só aconteça quando o jogador tiver 10 ou menos de vida, basta criar uma condição if (vidaJogador <= 10) then Boa sorte, se tiver mais dúvidas relacionadas a isso, pode perguntar.
-
Problema com veiculo e spawn
Lord Henry replied to Nicolas Eoq's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Nesse broph.lua estão todos os veículos que devem ser criados ao iniciar o gamemode junto com os modelos e posições de cada um. Você pode apagá-los ou alterá-los. O mesmo com as posições de respawn e spawn e skins aleatórias após morrer. Estão todos neste arquivo. -
Problema na acl
Lord Henry replied to Nicolas Eoq's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Seu painel precisa de acesso admin para funcionar. Na ACL Group "admin" coloque "resource.admin_pt-br". Faça isso pelo painel admin original ou então desligue o servidor, coloque manualmente seu painel admin no ACL.xml e depois inicie o servidor. Em relação ao erro, seu painel está reclamando que não tem acesso a permissão "aclGroupAddObject", portanto ele não consegue adicionar nenhum objeto nas ACL Groups.- 1 reply
-
- 1
-
Se for um painel DX, vc precisa copiar a área de clique junto com o botão, já que as funções de clique nem sempre ficam anexadas aos retângulos dos botões.
-
painel para ativar desativar txd dff
Lord Henry replied to magicplayerc's topic in Programação em Lua
Estude isso e boa sorte: EngineLoadDFF EngineLoadTXD EngineImportTXD EngineReplaceModel -
Calma galera. É que ontem de manhã tinha um cara de perfil troll postando coisas sem relação com mta, falando mal de política, falando de prostituição e governo, fazendo spam em vários posts, enfim. Reportei todos e eles já foram removidos. Acho que houve apenas um equívoco aqui, onde o usuário pode ter sido confundido com o troll. Aqui não há nada errado, estamos na sessão geral de Português. Logo anúncios são permitidos. Eu particularmente também não gosto dessas postagens de divulgação, não acrescentam em nada na comunidade. Mas estão no direito deles de postar o que quiserem nesta sessão, o que faço é apenas ignorar. #Paz
-
Favor não reviver o tópico com anúncios.
-
Isso aparenta ser problema do servidor que usa algum mod que sua máquina não aguenta. Tente ir em um servidor bem leve e teste pra ver se o problema continua. Já me ocorreu de eu não conseguir jogar em determinado servidor pois lá eles usavam um Shader de qualidade gráfica que minha placa de vídeo fraca não aguentou e ficava crashando direto meu MTA. Então fui jogar em outro servidor e parou de acontecer.
-
Não entendi o objetivo deste script, ele deve matar o jogador após o tempo enquanto ele estiver com menos de 30HP e cancelar esse timer quando o jogador tem 30HP ou mais? Se for isso, faça assim: function Anim() if not getElementData (source, "timeDeath") then local life = getElementHealth (source) if (life <= 30) then outputChatBox ("Sua vida é: "..life) setPedAnimation (source, "CRACK", "crckdeth2") addEventHandler("onClientRender", root, deadRender) -- Supondo que essa função exista e esteja correta. -- setElementData (localPlayer, "pubg:time", getTickCount() + 120000) -- Não entendi a utilidade disto, então removi. setElementData (source, "timeDeath", true) -- unbindKey ("lshift", "both", Anim) -- Não entendi a utilidade disto, então removi. theTimer = setTimer (function() local life = getElementHealth (source) if (life <= 30) then -- setElementHealth (localPlayer, 0) -- Isso é o mesmo que killPed. killPed (source) removeEventHandler ("onClientRender", root, deadRender) setElementData (source, "timeDeath", false) end end, 120000, 1) elseif (life > 30) then -- Se a vida for maior que 30, então: if isTimer (theTimer) then -- Se existe o Timer, então: killTimer (theTimer) -- Cancela o Timer e não mata o jogador. end end end end addEventHandler ("onClientPlayerDamage", root, Anim)
-
O erro acontece pois você está tentando obter o nome de um true (valor booleano) em vez de um jogador. Além disso, você não declarou em lugar nenhum thePlayer, isso significa que o getElementData ali sempre será false. E também não entendi pra que serve esse isVehicleNoNeed, que também não foi declarado em lugar nenhum e portanto não funciona. Uma pergunta: Essa mensagem do chat deve aparecer somente no chat do jogador que digitou /hab? Ou deve aparecer no chat de todo mundo?
-
MTA com som mas eu não ouço.
Lord Henry replied to Netus+'s topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
@Netus+ Na verdade ele se refere a ir no MTA: ESC >> Opções >> Áudio >> Redefinir as configurações. -
timer every 1 second Micro-dúvida em relação ao desempenho
Lord Henry replied to Lord Henry's topic in Programação em Lua
Ainda estou tentando fazer client-side. Estou tendo que mudar a lógica de tudo, passar todas as variáveis pro client.- 8 replies
-
- trigger
- accountdata
-
(and 2 more)
Tagged with:
-
[Ajuda] Pegar quantidade player do time
Lord Henry replied to TeixeiraRB's topic in Programação em Lua
function verificaRoubo () local theTeam = getTeamFromName ("PM") if (theTeam) then if countPlayersInTeam (theTeam) >= 5 then -- Se tem 5 ou mais jogadores no time "PM", então inicia o roubo. -- Inicia o roubo. else -- Cancela o roubo. end end end