Jump to content

[M]ister

Members
  • Posts

    444
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by [M]ister

  1. Ah sim, queria apenas deixar claro ao @#Gubiani que ele pode criar n-veículos, que o script suportaria...
  2. Apenas se o assunto for o mesmo createVehicle (411, 2475, -1657, 14, 0, 0, 0) createVehicle (411, 2475, -1657, 14, 0, 0, 0) addEventHandler("onResourceStart", resourceRoot, function() for _, veh in ipairs(getElementsByType("vehicle", resourceRoot)) do toggleVehicleRespawn(veh, true) setVehicleIdleRespawnDelay(veh, 10000) -- respawnar após 10 segundos sem ninguém no veículo setVehicleRespawnDelay(veh, 5000) -- respawnar em 5 segundos após o veículo explodir end end ) setTimer(function() for _,veh in ipairs(getElementsByType("vehicle", resourceRoot)) do if isElementInWater(veh) and not next(getVehicleOccupants(veh)) then respawnVehicle(veh) end end end,5000,0) -- a cada 5 segundos verifica se existe veículo na água, caso sim, aciona a função para respawnar ele addEventHandler ( "onVehicleRespawn", resourceRoot, function() setVehicleEngineState(source,false) end ) Esse timer com verificação para respawnar caso caia na água acho meio desnecessário, pois se caiu na água o player vai sair do veículo ou vai morrer e dessa forma já vai ser respawnado pela função setVehicleIdleRespawnDelay()
  3. Agora acho que deve funcionar a minha solução também: createVehicle (411, 2475, -1657, 14, 0, 0, 0) createVehicle (411, 2475, -1657, 14, 0, 0, 0) addEventHandler("onVehicleExit", resourceRoot, -- resourceRoot define que nosso evento só será acionado nos veículos criados pelo próprio resource function(player) if (numeroPassageiros(source) == 0) then outputChatBox("Seu veiculo será respawnado em 10 segundos! Entre nele novamente",player) setTimer(function(veh) if (numeroPassageiros(veh) == 0) then respawnVehicle(veh) setVehicleEngineState(veh,false) end end,10000,1,source) end end ) function numeroPassageiros(veh) local numero = 0 for assento, jogador in pairs(getVehicleOccupants(veh)) do numero = numero + 1 end return numero end A função getVehicleOccupants() retorna uma tabela com indexes desordenados que se referem ao assento que o player ocupa, podendo começar inclusive com 0, e nesses casos o uso da # (hashtag) na tentativa de obter a quantidade de elementos é incorreta, e retornará sempre o valor: 0 ... por isso nã solução que lhe enviei anteriormente não foi funcional
  4. É, pelo que vi não era para acontecer de respawnar com o jogador dentro, depois posso tentar verificar melhor... Exatamente, no script que mandei passou despercebido a verificação se o veículo que irá respawnar é o mesmo criado e armazenado na variável "carro"
  5. Se quiser aproveitar algo: carro = createVehicle (411, 2475, -1657, 14, 0, 0, 0) addEventHandler("onVehicleExit", root, function(player) if (#getVehicleOccupants(source) == 0) then outputChatBox("Seu veiculo será respawnado em 10 segundos! Entre nele novamente",player) setTimer(function(veh) if (#getVehicleOccupants(veh) == 0) then respawnVehicle(veh) setVehicleEngineState(veh,false) end end,10000,1,source) end end ) Dessa forma ele não irá respawnar quando sair do veículo caso exista outros jogadores dentro.
  6. Talvez funcione: local cmds = { ["sairbp"] = "BOPE", ["exemplo2"] = "ACL2", } function sair(player,cmd) if (cmds[cmd] and aclGetGroup(cmds[cmd])) then local account = getPlayerAccount(player) if (account) and not (isGuestAccount(account)) then if isObjectInACLGroup("user."..getAccountName(account), aclGetGroup(cmds[cmd])) then aclGroupRemoveObject(aclGetGroup(cmds[cmd]), "user."..getAccountName(account)) outputChatBox("*Você saiu com sucesso da acl: "..cmds[cmd], player, 0, 255, 0) else outputChatBox("*Você não está inserido na acl: "..cmds[cmd], player, 255, 0, 0) end else outputChatBox("*Você precisa estar logado para poder utilizar este comando", player, 255, 0,0) end end end addEventHandler("onResourceStart", resourceRoot, function() for cmd,acl in pairs(cmds) do addCommandHandler(cmd, sair) end end ) *Creio eu que seja necessário conceder privilégios de admin
  7. fetchRemote() executeCommandHandler() developers.soundcloud.com
  8. É, não sei o que ocorreu então, porque ao meu ver é funcional... Enfim, já mais que mostrei uma possibilidade de se fazer isso, agora tente encontrar o porque de não estar funcionando ou tente outro tipo de solução, porque pelo que eu saiba tú @FeniXMTA é "scripter" pelo que falam no Facebook...
  9. É, quando você adquire toplist eles avisam para não trocar de nome durante a promoção, eu não sei o que acontece se mudar... se some do toplist, se realmente o nome muda e não influencia no toplist, etc... Eu não arriscaria os 12 euros kkk... Tente procurar respostas no seguinte endereço: https://forum.multitheftauto.com/topic/86819-buy-top-20-position-in-the-mta-server-browser-for-20-days/ Seria mais eficaz também se mandasse uma PM para o @ccw (com texto em inglês)
  10. Agora eu realmente testei, e funcionou como devia (testei com um ped)! Uma observação, só iria fazer efeito 5 minutos após ativar o script, segue algumas melhorias abaixo no script do lado servidor: local update = 5 -- min local defaultAcls = { "Everyone", "Moderator", "SuperModerator", "Admin", "Console" } function setAclData(player) local account = getPlayerAccount(player) if (account) and not (isGuestAccount(account)) then local acl = {} local accountName = getAccountName(account) local objectString = "user."..accountName for _,group in ipairs(aclGroupList()) do if (isObjectInACLGroup(objectString, group)) then local isDefaultAcl = false local groupName = aclGroupGetName(group) for _,default in pairs(defaultAcls) do if (groupName == default) then isDefaultAcl = true break end end if (not isDefaultAcl) then table.insert(acl,groupName) end end end if #acl > 0 then setElementData(player,"acls",acl) end end end setTimer(function() for _,player in ipairs(getElementsByType("player")) do setAclData(player) end end, update*60000, 0) addEventHandler("onResourceStart", resourceRoot, function() for _,player in ipairs(getElementsByType("player")) do setAclData(player) end end ) addEventHandler("onPlayerLogin", root, function() setAclData(source) end ) Por padrão, todos usuários estão inclusos na ACL "Everyone" e pelo script anterior ninguém ia conseguir matar ninguém e nesse corrige isso, além de possibilitar que staffs também possam se matar....
  11. Você publicou sua dúvida em uma área incorreta, aqui se destina a TUTORIAIS! Área correta: https://forum.multitheftauto.com/forum/127-programação-em-lua/ addCommandHandler("puxartodos", function(player) local team = getPlayerTeam(player) if team then local x,y,z = getElementPosition(player) for _, pteam in ipairs(getPlayersInTeam(team)) do setElementPosition(pteam,x,y,z) end end end )
  12. https://forum.multitheftauto.com/topic/107785-anti-kill-team-acl/
  13. Realmente não sei porque a galera do brasil ainda teima em fazer o sistema de ACL como se fosse de team, cada um tem um proposito... Tal tarefa seria bem mais fácil se estivesse usando as funcionalidades especificas de team! Enfim, tentei criar um script aqui rapidão, que talvez consiga suprir suas necessidades... server-side local update = 5 -- min setTimer(function() for _,player in ipairs(getElementsByType("player")) do local account = getPlayerAccount(player) if (account) and not (isGuestAccount(account)) then local acl = {} local accountName = getAccountName(account) local objectString = "user."..accountName for _,group in ipairs(aclGroupList()) do if (isObjectInACLGroup(objectString, group)) then local groupName = aclGroupGetName(group) table.insert(acl,groupName) end end if #acl > 0 then setElementData(player,"acls",acl) end end end end,update*60000,0) client-side addEventHandler ( "onClientPlayerDamage", getLocalPlayer(), function(attacker) local aclAttacker = getElementData(attacker,"acls") or false local aclSource = getElementData(source,"acls") or false local allowAttack = true if (aclAttacker and aclSource) then for _,aclName in ipairs(aclAttacker) do for _,aclName2 in ipairs(aclSource) do if aclName == aclName2 then allowAttack = false break end end if not allowAttack then break end end end if not allowAttack then cancelEvent() end end ) Não testei, e nem sei se esta é a melhor forma de fazer isso!
  14. https://community.multitheftauto.com/index.php?p=resources&s=details&id=14317 https://community.multitheftauto.com/index.php?p=resources&s=details&id=10804
  15. Tente isso: local inUse = {} local handling = { [527] = function (veh) -- cole aqui o código gerado em https://www.bento.me.uk/phs/mtahc/hndl2lua.html end, [411] = function (veh) -- cole aqui o código gerado em https://www.bento.me.uk/phs/mtahc/hndl2lua.html end, } addEventHandler ( "onPlayerVehicleEnter", root, function(veh,seat) if seat ~= 0 then return end if inUse[veh] then return end if not handling[getElementModel(veh)] then return end handling[getElementModel(veh)](veh) inUse[veh] = true end ) addEventHandler ( "onVehicleExplode", root, function() if inUse[source] then inUse[source] = nil end end ) addEventHandler ( "onElementDestroy", root, function() if getElementType(source) == "vehicle" then if inUse[source] then inUse[source] = nil end end end ) Não sei se o seu caso é converter os handlings que veem em alguns mods de veículos, se for, basta converter nesse ferramenta: https://sites.google.com/view/potholestudios/gaming/multi-theft-auto/handling-to-lua-converter e então substituir o comentário pelo código gerado... (Não testei o script)
  16. E qual seria a solução ? Eu mesmo já tive alguns problemas na hora de converter modelos e bugar a textura, ficando ela branca... Sendo que quando testava com outros modelos ela ficava normal, então não sei se seria erro no script ou dos próprios arquivos .dff e .txd. Obs: Eu tentava carregar o .txd antes do .dff como recomenda na wiki
  17. Olhei rapidão aqui, tente descomentar a linha 144 addEventHandler("onClientResourceStart",getResourceRootElement(getThisResource()),loginPanel)
  18. Então não possui o " local mainWindow = " ? E mesmo assim dá erro ?? Por favor, poste o código completo... fica difícil tentar deduzir....
  19. O adequado seria para cada novo assunto criar um novo tópico.. mas vamos lá No debug simplesmente está dizendo que as variáveis (mainWindow, registerWindow) não existem, provavelmente você está definindo-as como variáveis locais dentro de um bloco de código, procure no seu código algo do tipo local mainWindow = (código...) local registerWindow = (código...) E remova essa palavra "local" da frente
  20. Quando você está chamando o evento "reloadWeapon" você não defini quem é o thePlayer Sempre que usar o triggerServerEvent (client-side), a função que você está chamando no lado (server) vai receber a variável pré-definida (client) que corresponde ao player que acionou tal evento, sendo assim, o correto é você trocar o thePlayer por client
  21. Na estrutura if-elseif você só precisa definir o "end" no último bloco do elseif
  22. Hello guys, I come to the forum to ask some help about a question ... Is there any connection of weapon property damage getWeaponProperty(weapon,"pro", "damage" ) with amount player health lost ? Because I tested and got these results: How silenced-pistol(40) can cause more damage than sawed-off (10) ? I tested with a ped, and then the real damaged with silenced-pistol was 4% of ped health. But with sawed-off the ped lost 46% So, does anyone know how it works ?
  23. Provavelmente o resource que você está utilizando não é dos melhores (nem se que remove o som original) Tente esse: LINK1, LINK2
  24. É só você definir a janela como invisível assim que você cria ela: wnd = guiCreateWindow(497, 145, 301, 423, "Mudança de clima e tempo", false) guiSetVisible(wnd,false) Ah, agora que vi... tira aquele showCursor(true) da linha 18 também, se não irá aparecer o cursor do mouse (quando o script iniciar) sem a janela estar aberta!
  25. Cara, fui testar aqui e vi que realmente nem funciona certo! Ele ordena como esperado, só que se você tentar ordenar a coluna do gridList de forma decrescente ele ainda buga nos decimais...
×
×
  • Create New...