Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    3,992
  • Joined

  • Last visited

  • Days Won

    183

Everything posted by Lord Henry

  1. Você quer que a mensagem O NOME Setou o Player NOME de DM apareça somente pros jogadores que estiverem nos grupos Admin, SuperModerador, Moderador, DM?
  2. Texto corrigido para se adequar as regras de formatação do fórum. Movido para a seção correta de Programação em Lua. Da próxima vez, utilize o botão <> do fórum para postar códigos em vez de colar direto no texto. Veja as regras do fórum aqui:
  3. Da pra fazer com isso: function isResourceRunning (resourceName) local res = getResourceFromName (resourceName) if (res) then if (getResourceState (res) == "running") then return true else return false end end end Adicione essa função acima no seu script. Depois quando quiser verificar se o resource Freeroam está ligado ou não, basta verificar com: if (isResourceRunning ("freeroam")) then -- Se o resource freeroam está ativo, então: -- Faz alguma coisa end Sua função vai ficar assim: function assignNewTeam (source, commandName) if (isResourceRunning ("freeroam")) then local theTeam -- Cria a variável do time mas não atribui valor nenhum a ela de propósito. if (getTeamFromName ("R7")) then -- Se já existe um time com o nome "R7", então: theTeam = getTeamFromName ("R7") -- A variável recebe o time que já existe. else -- Se não existe nenhum time com esse nome criado, então: theTeam = createTeam ("R7", 0, 255, 0) -- Cria o time e coloca ele nessa variável. end setPlayerTeam (source, theTeam) -- Coloca o player que digitou o comando nesse time. end end addCommandHandler ("navio", assignNewTeam)
  4. A sua função do /navio e do /navio2 ficam tentando criar o time cada vez que alguém usa o comando. Na segunda vez ele dará erro, pois o time já existe. function assignNewTeam (source, commandName) local theTeam -- Cria a variável do time mas não atribui valor nenhum a ela de propósito. if (getTeamFromName ("R7")) then -- Se já existe um time com o nome "R7", então: theTeam = getTeamFromName ("R7") -- A variável recebe o time que já existe. else -- Se não existe nenhum time com esse nome criado, então: theTeam = createTeam ("R7", 0, 255, 0) -- Cria o time e coloca ele nessa variável. end setPlayerTeam (source, theTeam) -- Coloca o player que digitou o comando nesse time. end addCommandHandler ("navio", assignNewTeam)
  5. Eu disse parâmetro de função e não parâmetro de evento. function unassignTeam () local theTeam = getPlayerTeam (source) if theTeam then setPlayerTeam (source, nil) end end addEventHandler ("onPlayerWasted", root, unassignTeam)
  6. OnPlayerWasted não usa aqueles parâmetros de função. No seu caso, daria pra deixar sem parâmetro nenhum.
  7. Por favor não reviva tópicos antigos. Crie um tópico na seção de Programação em Lua com sua dúvida. Regras do fórum:
  8. Tópico movido para a seção correta de Programação em Lua. Da próxima vez, veja as regras do fórum e poste na seção adequada. Há erros de sintaxe no seu meta, esse é um dos motivos para ele não estar funcionando.
  9. Obter a posição do capô em relação ao mundo: local hoodX, hoodY, hoodZ = getVehicleComponentPosition (theVehicle, "bonnet_dummy", "world") E dai pra saber a distância do capô e o jogador, usa um getDistanceBetweenPoints3D.
  10. Ele está dizendo que tentou chamar uma função de um resource que não está ativo no servidor (scr-Lib). Para corrigir esse problema, baixe, instale e ative o resource scr-Lib. Mesmo problema que o anterior, mas este está pedindo o resource msgdx. Sobre o seu terceiro problema, o resource funciona, mas não de maneira fixa. Você pode facilmente construir um resource com ID fixo usando a função getAccountID. Este ID é fixo na conta do jogador, mesmo que ele relogue, a conta vai permanecer com este mesmo ID.
  11. Exemplo maroto pra vc: server-side: function loadCarMod (prevAcc, currAcc) if (getAccountData (currAcc, "vehMod.490")) then -- Exemplo de nome de data, no caso se o veículo 490 estiver salvo como modificado na conta, então: triggerClientEvent (source, "enableVehMod.490", source, true) -- Ativa o evento no cliente do jogador que logou. (não afeta outros jogadores) e também envia o valor true como primeiro parâmetro de função. end end addEventHandler ("onPlayerLogin", root, loadCarMod) function saveCarMod (status) -- Parâmetro de função que foi passado pelo triggerServerEvent lá no client-side. local acc = getPlayerAccount (client) -- client = Variável nativa que significa: localPlayer do client-side que ativou este evento. if (not isGuestAccount (acc)) then -- Se o jogador está logado, então: (a conta não é guest) setAccountData (acc, "vehMod.490", status) -- Salva a data do veículo como true ou como false na conta do jogador. end end addEvent ("saveVehMod.490", true) addEventHandler ("saveVehMod.490", root, saveCarMod) client-side: local txd = engineLoadTXD ("fbiranch.txd") local dff = engineLoadDFF ("fbiranch.dff", 490) -- 490 é o ID do veículo a ser modificado, no caso o FBI Rancher. function startVehMod (state) -- state é o primeiro parâmetro de função, seu valor foi enviado pelo server-side no triggerClientEvent. if (state) then -- Se state for igual a true (ou qualquer valor que não seja false nem nil), então: engineImportTXD (txd, 490) engineReplaceModel (dff, 490) -- Em vez de colocar isso em uma função com evento "onClientResourceStart" pra ativar pra todo mundo, ativa somente pelo trigger do server-side no cliente específico. else -- Se state não for true, então: engineRestoreModel (490) -- Desativa a modificação no veículo, voltando para o modelo original. end end addEvent ("enableVehMod.490", true) addEventHandler ("enableVehMod.490", root, startVehMod) function vehManagement (cmd, parameter) -- Aqui eu vou fazer por comando no exemplo, mas vc pode fazer por painel. if (parameter) then -- Se parameter == true ou qualquer coisa que não seja false nem nil, então: outputChatBox ("Modificação do veículo 490 ativada.") startVehMod (parameter) -- Ativa o mod do veículo. triggerServerEvent ("saveVehMod.490", localPlayer, true) -- Manda o true para o server-side, que irá salvar o novo status do veículo na conta do jogador como ativado. else outputChatBox ("Modificação do veículo 490 desativada.") startVehMod (parameter) -- Desativa o mod do veículo. triggerServerEvent ("saveVehMod.490", localPlayer, false) -- Manda o false para o server-side, que irá salvar o status do veículo na conta do jogador como desativado. end end addCommandHandler ("veh490", vehManagement) -- Como funciona: /veh490 true ou então /veh490 false Obs: Não testado, fiz de cabeça e serve apenas como exemplo. Edit: Obrigado.
  12. tonumber é uma função que precisa de argumentos pra funcionar. Não tem como usá-la sozinha sem nada.
  13. Está com erro no resto do seu script. Na parte que vc está dando algum valor pra variável weapon.
  14. É mais fácil vc simplesmente fazer a imagem com dxDrawImage. Assim, ela só aparece nos frames que o jogador estiver com mais de 180 de ping. local x, y = guiGetScreenSize() function teste () if (getPlayerPing (localPlayer) > 180) then dxDrawImage (x*0.85, y*0.85, x*0.03, y*0.05, "net.png") end end addEventHandler ("onClientRender", root, teste)
  15. Vc colocou thePed no lugar de testPed
  16. Por isso vc faz com accountData em vez de elementData. Pois dai vc salva os dados entre as sessões de jogo.
  17. No notepad++ também dá pra configurar o TAB pra ser espaços em vez de tabulação. Se não me engano, fica em Preferences >> Language.
  18. Sim, use o Resource:Bone_attach
  19. Não entendi direito o que vc quer fazer. É pra destruir o guiCreateStaticImage?
  20. Só dá pra fazer com animações específicas. Não são todas.
  21. Sendo mais claro, por ser uma função client-side, você pode simplesmente determinar qual client vai executar ela em vez de anexar a função no onClientResourceStart. Daria pra você fazer server-side uma função com onPlayerLogin, se a conta do jogador que logou tiver tal data, faz um triggerClientEvent pra ativar o veículo pra ele. Isso iria ativar somente no cliente desse determinado jogador que logou. Os demais jogadores continuariam vendo o veículo original.
  22. Indentação faz parte da programação. Se você já passou pelo trabalho de programar (o que já deveria ter feito indentando em vez de fazer depois), a parte de indentar é tranquila. Tenho uma pergunta pra vc: Indentação com espaços ou com tabulações? Qual deles vc usa?
  23. Indentação manual no notepad++. Seleciona as linhas e aperta TAB pra adicionar 1 nível de indentação. Pra recuar um nível de indentação, usa Shift+TAB.
×
×
  • Create New...