-
Posts
342 -
Joined
-
Last visited
-
Days Won
2
Everything posted by Doongogar
-
Este foi o recurso que eu encontrei que mais se aproximou do que deseja: Remover objetos do mapa Note que no próprio tópico do Lord Henry ele adiciona uma nota dizendo que alguns objetos não podem ser removidos por meio deste. Infelizmente, essa seria uma forma lenta e trabalhosa de remover por completo cidades inteiras. Acredito que não haja uma forma simples na qual você possa remover cidades, e acredito que não seja recomendado remover as cidades por completo, pois o próprio MTA não nos dá as ferramentas necessárias para tal. Como já sabemos, o MTA somente nos oferece recursos do próprio GTA San para podermos modificar. Retirar tantas coisas que já são do jogo, além de exigir tamanho esforço, pode não ser otimizado e gerar bugs e não ser totalmente funcional.
-
Se você quis dizer se essa é uma ACL padrão do MTA, então, não. Caso esteja procurando pelo original, pode encontrá-lo no GitHub: https://github.com/SkyFire/MTA/blob/master/MTA10_Server/mods/deathmatch/acl.xml
-
No olvides verificar qué parte del cuerpo fue golpeada, el argumento que representa la parte golpeada en el evento OnPlayerDamage es "bodypart" y el número que representa la cabeza es nueve, puedes hacer esto para verification: if (bodypart == 9) then
-
Não alterar tanto imagem com face virada para camera do client
Doongogar replied to Doongogar's topic in Programação em Lua
Dessa forma o client está conseguindo ver que a imagem e 2D se visualizar de baixo para cima ou de cima para baixo, e quando o player se movimenta a imagem aparentemente não segue o player em tempo real pois ela fica dando umas mini travadas, além de consumir muito FPS. Não teria como manter o meio pelo qual a imagem está sendo criada somente usando algum calculo para diminuir a imagem com relação na distancia de visão do client? Quando um player se distancia demais além de a imagem ficar grande demais ela "sai de perto do player" atingindo um distanciamento considerável do player que está com a imagem -
Consertar dbExec failed; (1) SQL logic error
Doongogar replied to Doongogar's topic in Programação em Lua
Descobri que quando eu boto um mod e ele dá esse erro de sql logic error, desligo e reinicio o servidor e então ligo o mod ele funciona perfeitamente, porém ainda sim é um contra-tempo a cada mod novo que utilize db ter que reiniciar o servidor então ainda preciso de ajuda. Apenas essa informação adicional... -
Consertar dbExec failed; (1) SQL logic error
Doongogar replied to Doongogar's topic in Programação em Lua
Então, eu fui em busca de mais informações e perguntei a algumas pessoas, eles disseram que isso pode estar ocorrendo por causa da minha hospedagem, e realmente ao tentar colocar outros mods que utilizam banco de dados a grande maioria dá esse mesmo erro. Há a possibilidade de realmente a hospedagem estar ligada a este problema, se sim, como eu poderia resolver? -
Não alterar tanto imagem com face virada para camera do client
Doongogar replied to Doongogar's topic in Programação em Lua
Eu dei uma verificada na função DxDrawMaterialLine3D e tentei fazer por meio deste, porém quando a tela do client se move, a imagem rotaciona junto com a tela do client proporcionando um posicionamento estranho da imagem em alguns angulos e também quando o player se move a imagem fica meio tremula meio que como se ela não atualizasse bem todo frame, e está reduzindo bastante o FPS também local screenWidth, screenHeight = guiGetScreenSize() local options = { scaleMultiplier = (screenWidth + 1920) / (1920 * 2), distance = 20, aimdistance = 0, } options.aimdistance = options.distance - options.distance * 0.15 function desenhar() for _, player in pairs(getElementsByType("player")) do if isElement(player) then if getElementData(player, "imortal") then local alpha = getElementAlpha(player) local px, py, pz = getElementPosition(player) local camX, camY, camZ = getCameraMatrix() local dist = getDistanceBetweenPoints3D(camX, camY, camZ, px, py, pz) local notModifiedDist = dist if notModifiedDist < options.distance then local headPosX, headPosY, headPosZ = getPedBonePosition(player, 4) if headPosX and headPosY and headPosZ then local height = - 0.3 local width = 0.3 local halfHeight = height / 2 local texture = dxCreateTexture("Logo.png") if texture then local bottomX, bottomY, bottomZ = headPosX, headPosY, headPosZ - halfHeight local topX, topY, topZ = headPosX, headPosY, headPosZ + halfHeight dxDrawMaterialLine3D(bottomX, bottomY, bottomZ, topX, topY, topZ, texture, width, tocolor(255, 255, 255, alpha)) end end end end end end end addEventHandler("onClientRender", root, desenhar) ali na altura eu deixei negativo pois a imagem estava sendo gerada de cabeça pra baixo, não sei o porque também... -
Consertar dbExec failed; (1) SQL logic error
Doongogar replied to Doongogar's topic in Programação em Lua
O erro que tá no debug é: dbExec failed; (1) SQL logic error Porém eu queria também mostrar como tá o db, vou tentar mandar o link da imagem upada pelo imgur: -
Ao iniciar o resource essa mensagem é exibida esse é o código que está dando erro, sinceramente não sei oque é pois não sei mexer nem um pouco em banco de dados marker = {} proposta = {} vehicle = {} dadosVenda = {} dados = {} blip_create = { } addEventHandler("onResourceStart", resourceRoot, function() db = dbConnect("sqlite", "dados.sqlite") dbExec(db, "CREATE TABLE IF NOT EXISTS Estoque(ID, Quantia)") dbExec(db, "CREATE TABLE IF NOT EXISTS Carros(ID INTEGER PRIMARY KEY AUTOINCREMENT, account, idCar, state, placa, imposto, seguro, dataCar, dataTuning)") dbExec(db, "CREATE TABLE IF NOT EXISTS Slots(account, quantia)") if config["Mensagem Start"] then outputDebugString("["..getResourceName(getThisResource()).."] Startado com sucesso!") end for i, v in ipairs(config["Markers"]) do marker[i] = createMarker(v[1], v[2], v[3]-1, "cylinder", 1.1, 139, 0, 255, 90) blip_create[i] = createBlipAttachedTo(marker[i], v[4] == "conce" and 55 or v[4] == "garagem" and 53 or 24) addEventHandler("onMarkerHit", marker[i], function(player, dim) if getElementType(player) == "player" then if dim then sendData(player, v[4]) triggerClientEvent(player, "JOAO.openConce", player, v[4], i) end end end) end setTimer(function() for i, v in ipairs(config["IDs Veículos"]) do local result = dbPoll(dbQuery(db, "SELECT * FROM Estoque WHERE ID = ?", v), -1) if #result == 0 then dbExec(db, "INSERT INTO Estoque(ID, Quantia) VALUES(?,?)", v, 30) end end end, 3000, 1) for i, v in ipairs(getElementsByType("player")) do local result = dbPoll(dbQuery(db, "SELECT * FROM Slots WHERE account = ?", puxarConta(v)), -1) if #result == 0 then dbExec(db, "INSERT INTO Slots(account, quantia) VALUES(?,?)", puxarConta(v), verifySlot(v)) end end dbExec(db, "UPDATE Carros SET state = ? WHERE state = ?", "Guardado", "Spawnado") end) Por fim aqui está o banco de dados, já chequei cada coluna e parece que tá tudo ai...
-
Esse código cria uma imagem virada para camera do client quando o player tem certo elementdata, porém quando eu vou para muito longe a imagem fica grande demais, e perto fica bom, teria um jeito de deixar esse discrepância menos perceptível sem alterar muito o tamanho da imagem? function desenharp() for _, player in ipairs(getElementsByType("player")) do if isElement(player) then if getElementData(player, "imortalp") == true then local alpha = getElementAlpha(player) local px, py, pz = getElementPosition(player) local camX, camY, camZ = getCameraMatrix() local dist = getDistanceBetweenPoints3D(camX, camY, camZ, px, py, pz) local notModifiedDist = dist if notModifiedDist < options.distance then local headPosX, headPosY, headPosZ = getPedBonePosition(player, 4) if headPosX and headPosY and headPosZ then local screenX, screenY = getScreenFromWorldPosition(headPosX, headPosY, headPosZ, 25, false) if screenX then local width, height = (47 * 3) * 1, (47 * 3) * 1 local iconX, iconY = math.floor(screenX - width / 2), math.floor(screenY - 80 - height / 2) dxDrawImage(iconX + 20, iconY + 120, width - 95, height - 95, "Patro.png", 0, 0, 0, tocolor(255, 255, 0, alpha)) end end end end end end end addEventHandler("onClientRender", root, desenharp) E caso o código apresente mais erros ou possíveis erros, porfavor sintam-se a vontade para aponta-los para quer eu possa corrigir.
-
function pontoPolicial(thePlayer) -- cria e nomeia a função local acc = getPlayerAccount(thePlayer) if isObjectInACLGroup("user."..getAccountName(acc), aclGetGroup("Policial")) then -- verifica se o player está na acl Policial aclGroupRemoveObject (aclGetGroup("Policial"), "user."..acc) -- remove o player da acl Policial else -- caso o player não esteja na acl Policial aclGroupAddObject (aclGetGroup("Policial"), "user."..acc) -- então adiciona o player na acl Policial end end addCommandHandler("ponto", pontoPolicial) -- comando para acionar a função Creio que assim funciona, e eu tenho quase certeza que as funções aclGroupAddObject e aclGroupRemoveObject requerem permissões para serem executadas, portanto o resource que conter esse código deve estar na acl Admin
-
Tenho uma scoreboard que busca pro players, porém ela só retorna players que tenham a letra maiúscula ou minúscula exatamente igual a pesquisa, gostaria que ela só retornasse aos caracteres independente da forma.
-
Duvida pa pum, só quero saber se tem algum comando que re-starte ou atualize o mtaserver.config com o server ligado, para eu poder mexer nele sem fechar o server
-
utilize a função 'code' para colocar um código no seu post, a função está localizada logo acima juntamente as outras ferramentas. Se você quer remover todas as armas que o jogador possui, você pode usar a função takeAllWeapons, porém se deseja retirar somente armas especificas, pode usar a função takeWeapon, a primeira retira todas as armas sem que o jogador possui, já a segunda você pode escolher qual arma você quer que a função retire, lembrando que ambas são rodadas somente no lado servidor
- 1 reply
-
- 1
-
Há um tempo atrás vi uns projetos de umas pessoas que supostamente eles fizeram um anti-spoofer fazendo com que quem tentasse entrar no servidor utilizando spoofer(remoção de banimento) não conseguisse, gostaria de saber se isso é possível mesmo de ser criado e como fazer um, pois também quero essa proteção.
-
Erro 'AutoStart' | Crashando MTA
Doongogar replied to Doongogar's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Obrigado pela dica, realmente tinha um mod que tava crashando e eu não sei o motivo, porém já vou o substitui-lo. Eu já havia checado os mods antes porém agora eu chequei com mais cuidado e já deu tudo certo muito obrigado. -
Isso acontece, pois o script está verificando se o player está em um grupo de ACL que não existe no seu servidor, pois você não a criou, verifique qual é o nome do grupo de ACL, o crie e então se adicione nele para usar a fábrica. Quando você for adicionar um script ao seu post utilize o formato 'code' encontrado acima na caixa de texto juntamente a outras ferramentas, é um símbolo de duas setas apontando a lados opostos: <>
-
Quando eu ligo os mods do servidor local, eu crasho após eles carregarem, aparentemente a maioria dos mods liga sem problemas, mas em questão de 10 segundos depois eu crasho e o jogo fecha por completo exibindo essa mensagem. Eu ligo os mods todos ao mesmo tempo com o 'AutoStart' sei que por estar iniciando varios mods ao mesmo tempo poderia mesmo crashar, porém quando eu entro novamente no servidor eu crasho no painel de login, antes os mods estavam funcionando tranquilamente, lembro-me de ter apagado alguns mods do jogo e cometi o erro de apagar mods que eu não deveria ter apagado do próprio mta, porém mesmo recolocando os mods do mta o erro permanece. Quando ligo manualmente os mods funciona normalmente, até tentei ligar metade dos mods manualmente e o resto utilizar o 'AutoStart' porém mesmo assim crasha. Alguém poderia me ajudar? OBS: consigo entrar em outros servidores sem problemas.
-
Para aparecer uma mensagem quando um player entra em um marker você precisar manipular o evento onMarkerHit e exibir a função outputChatBox Exemplo: Marker = createMarker(0, 0, 0, "cylinder", 2, 255, 0, 0) -- cria o marker function Aviso(player) if getElementType(player) == "player" then -- caso o tipo do elemento que hitou o marker seja "player" então... outputChatBox("Você entrou no marker", player, 255, 255, 255, true) -- exibe a mensagem para o player end end addEventHandler("onMarkerHit", Marker, Aviso) -- adiciona a função no marker "Marker" Já sobre a segunda questão, eu não entendi bem, porém darei um exemplo de código que ao player entrar no marker será criado um veiculo e automaticamente o player será colocado dentro do veiculo criado: Marker = createMarker(0, 0, 0, "cylinder", 2, 255, 0, 0) -- cria o marker function Veiculo(player) if getElementType(player) == "player" then -- caso o tipo do elemento que hitou o marker seja "player" então... local veh = createVehicle(411, 1, 1, 1) -- cria o veiculo warpPedIntoVehicle(player, veh) -- coloca o player dentro do veiculo, como não coloquei o assento especifico ele irá para o piloto end end addEventHandler("onMarkerHit", Marker, Veiculo) -- adiciona a função no marker "Marker" Ambos são o mesmo principio com alguma modificações. Nesse exemplo utilizei as funções warpPedIntoVehicle e createVehicle além das que eu já usei anteriormente
-
I didn't understand well, but for a login panel to work it needs to be in the admin acl as it needs administrative permissions to create and register accounts press P/resources/open admin group/type "resources.(resource name)"
-
here's a simple example, I don't recommend using it the way it is, and just so you understand the logic function engineOffByCrash() local thePlayer = getVehicleOccupant(source) -- 'source' is the vehicle in event 'onVehicleDamage' if thePlayer then -- Check there is a player in the vehicle local vehealth = getElementHealth(source) -- Get the vehicle's health if vhealth <= 320 then -- Checks whether the vehicle's health is equal to or less than 320 setVehicleEngineState(source, false) -- Turn off the vehicle end end end addEventHandler("onVehicleDamage", root, engineOffByCrash)
-
you can use getElementSpeed or getElementVelocity
-
WeaponIDs = { [36] = true, -- ID da bazuca por teleguiado [35] = true, -- ID da bazuca comun [38] = true, -- ID da minigum } function banPorArma(previous, next) if (WeaponIDs[next]) then -- verifica se a arma contém o ID na lista banPlayer(source) -- source é o player no evento onPlayerWeaponSwitch end end addEventHandler("onPlayerWeaponSwtich", root, banPorArma) Esse código é acionado quando um player troca de arma com o evento onPlayerWeaponSwitch e detecta se a arma 'seguinte' contém o ID na tabela weaponIDs, caso sim, o player é banido. Você pode adicionar mais pârametros na função banPlayer, só pesquisar na wiki os pârametros disponiveis. Lembrando que para usar a função banPlayer o resource precisar ter permissões Admin. Você pode adicionar mais IDs de armas, na página weapons tem todos os IDs de todas as armas do MTA.
- 1 reply
-
- 1
-
you could use the onElementDestroy event to check if the destroyed element is a car and if it has an owner, if so, run the event to save the vehicle that probably already has it in the dealership mod