-
Posts
3,875 -
Joined
-
Days Won
67
Everything posted by DNL291
-
Como desvincula o emprego de mecânico da agência?
DNL291 replied to NeoGM's topic in Programação em Lua
Esse é o código do mecânico, não vejo nada relacionada à agência. Use o botão <> para postar o código da próxima vez: -
Coloque isto no seu código: local frozenPlayers = {} addEventHandler( "onResourceStop", resourceRoot, function() for thePlayer in pairs(frozenPlayers) do setElementFrozen( thePlayer, false ) end end ) local SetElementFrozen = setElementFrozen function setElementFrozen( elem, bool ) if not isElement(elem) then return false end if getElementType(elem) == "player" then bool = bool and true or nil frozenPlayers[ elem ] = bool end return SetElementFrozen( elem, bool ) end addEventHandler( "onPlayerQuit", root, function() if frozenPlayers[ source ] then frozenPlayers[ source ] = nil end end ) (não-testado)
-
Meu Painel Admin Bugou!
DNL291 replied to NeoGM's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Verifique as permissões do resource na ACL e se o admin não está com erros por conta de alguma modificação. Quando postar no fórum lembre-se de postar no subfórum Other languages > Portuguese / Português Posts em português devem estar nessa seção. @NeoGM -
Obviamente vai ter que refazer tudo pra funcionar como uma arma. Com createWeapon acho que dá pra fazer. Ou se não quiser ter todo esse trabalho, apenas oculte a arma do jogador e anexe no player o object.
-
Sim, getElementsByType("vehicle") vai funcionar da mesma forma, basta iterar a tabela de todos veículos retornada e o valor será o elemento-veículo assim como está no loop dos players. O evento "onResourceStart" não têm nada a ver com isso, ele só está sendo chamado internamente quando o resource é ligado e não fornece nenhum parâmetro ou "elementos" para isso.
-
marker de spawn de veiculos junto com skin por grupo ACL
DNL291 replied to FOXERzz's topic in Programação em Lua
Se você pesquisar pelo fórum vai encontrar alguns códigos parecidos. Funções/evento que você vai precisar: createMarker onMarkerHit isPlayerInACL - função útil createVehicle setElementModel -
Movido para Portuguese / Português > Programação em Lua @+MarceloM.
-
Não reviva tópicos por favor, crie um novo com a sua dúvida.
-
local damagePlayers = {} function onDamage( ) if damagePlayers[source] and isTimer(damagePlayers[source]) then killTimer(damagePlayers[source]) end damagePlayers[source] = setTimer( function(p) if isElement(p) then damagePlayers[p] = nil end end, 10000, 1, source ) end addEventHandler( "onPlayerDamage", root, onDamage ) Nesse código eu fiz um timer quando o jogador leva hit e reseta depois de 10 segundos. No comando do teleporte você só irá fazer uma verificação na tabela damagePlayers: if damagePlayers[thePlayer] then return outputChatBox("Você não pode usar esse comando agora!", thePlayer) end Coloque isso no inicio do comando do teleporte.
-
Põe uma verificação com getElementDimension e getElementInterior
-
Assim: function Vehicle2 (hitPlayer) if getElementType(hitPlayer) == "player" then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(hitPlayer)), aclGetGroup("Mecanico")) then local vehicle = getPedOccupiedVehicle(hitPlayer) if vehicle and veh[hitPlayer] and vehicle == veh[hitPlayer] then destroyElement(veh[hitPlayer]) veh[hitPlayer] = nil else outputChatBox("Você não esta em um veículo", hitPlayer, 0, 0, 0) end end end end addEventHandler("onMarkerHit", Marker2, Vehicle2) Na função Vehicle1 você deve trocar Veh1 por veh[hitPlayer].
-
Troque isPedInVehicle por getPedOccupiedVehicle(hitPlayer) e verifique se é o mesmo element que veh[hitPlayer].
-
Faça no lado server: createMarker, onMarkerHit, isPlayerInACL (função útil), triggerClientEvent. No client faça um evento para a função markerPanel para ser chamado pelo lado server.
-
if getElementType(hitPlayer) == "player" then
-
Você não vai precisar de isElementWithinMarker no evento "onMarkerHit". Use hitPlayer em vez de player e veh[hitPlayer] em vez de vehicle, também verifique se o hitPlayer é um elemento player com getElementType. Além disso, o vehicle não está sendo adicionado na table 'veh' na função Vehicle1.
-
Não seria mais fácil adicionar a coluna usando a função exportada? https://wiki.multitheftauto.com/wiki/Resource:Dxscoreboard
-
Não vai deixar lento. Tente: function getPlayer(player, cmd, id) if tonumber(id) then local mx, my, mz = getElementPosition(player) local player2 = getPlayerFromID ( tonumber(id) ) if not player2 or not isElement(player2) then return outputChatBox( "Player Offline", player ) end local trplayername = getPlayerName(player):gsub("#%x%x%x%x%x%x","") setElementPosition(player2, mx+rand, my+rand, mz + 1) for i, p in ipairs(getElementsByType("player")) do local xp, yp, zp = getElementPosition ( p ) if getDistanceBetweenPoints3D ( mx, my, mz, xp, yp, zp ) <= 50 then outputChatBox ( "#c9c9c9[#1a6cefFW-COMANDO#c9c9c9]O #1a6cef".. trplayername .."#c9c9c9 Puxou o #1a6cef".. tostring(id), p, 255, 0, 0, true ); end end end end addCommandHandler("tr", getPlayer)
-
Você só pode estar usando o comando kick como eu falei, por isso tá sempre kickando mesmo com a função banPlayer. Teste o meu código e use /kickar que vai funcionar.
-
kick é um comando do resource admin, vai executar ele quando usar o comando. Mude para outro nome ou remova o kick do admin. Tente isto: function kikarplayer ( source, commandName, kickedName, ... ) if isPlayerInACL(source, "Admin") or isPlayerInACL(source, "SuperModerator") or isPlayerInACL(source, "Console") then local r = {...} if not kickedName or #r == 0 then return outputChatBox ("#bf2e2e* Erro: /kick [nick] [motivo]", source, 255, 255, 255, true) end local kickerName = getPlayerName(source):gsub("#%x%x%x%x%x%x","") local kickedPlayer = getPlayerFromPartialName(kickedName) if not isElement(kickedPlayer) then return outputChatBox ("#bf2e2e* Erro: Player Invalido!", source, 255, 255, 255, true) end local reason = table.concat(r," ") outputChatBox ( "#c9c9c9[#1a6cefFW-INFORMA#c9c9c9]O #1a6cef"..kickerName.." #c9c9c9Kickou o Player #1a6cef" ..getPlayerName(kickedPlayer):gsub("#%x%x%x%x%x%x","").. "#c9c9c9 | Motivo #1a6cef" ..reason.. "#c9c9c9", getRootElement(), 255, 0, 0, true ) kickPlayer ( kickedPlayer, source, reason ) else outputChatBox ("#bf2e2e* Erro: Você Não tem Permissão!", source, 255, 255, 255, true) end end addCommandHandler("kickar", kikarplayer) function isPlayerInACL(player, acl) local accountName = getAccountName( getPlayerAccount(player) ) if accountName ~= "guest" and type( aclGetGroup(acl) ) == "userdata" then return isObjectInACLGroup( "user."..accountName, aclGetGroup(acl) ) end return false end function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end
-
A linha 29 deve ficar assim: if ( isObjectInACLGroup ("user."..accName, aclGetGroup( GroupName ) ) ) then Sempre que for testar um script, deixei seu debug ativado com o comando /debugscript 3
-
Mude source para player e para mostrar para quem foi puxado use player2. Se você quer que mostre essa mensagem para jogadores a uma determinada distância do player use: getDistanceBetweenPoints3D e faça um loop nos jogadores do server verificando a distância.
-
Meu mapmanager esta bugado
DNL291 replied to V1RU5's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
O mapmanager está requisitando permissões Digite isto no console aclrequest allow mapmanager all E verifique se o mapmanager consta no grupo Moderator na acl.xml. @V1RU5 -
Preciso de ajuda com um script de animação
DNL291 replied to SchmidtNeO's topic in Programação em Lua
Provavelmente é porque no freeroam a anim está sendo setada no lado server. -
Eu testei a função com várias formas de códigos hexadecimal e funcionou sem retornar nil; Talvez foi um erro causado no seu teste?
-
Erro no meu script [Mecanico]
DNL291 replied to EduardoMega's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Atualize o server para uma versão mais atual. @EduardoMega