Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 19/08/20 in all areas

  1. https://github.com/Vadya963/50pSublimeText3Package download from here you can read how to install it below
    1 point
  2. OK so after many requests from people asking me to install discord bots to their servers I have decided to make the simplest tutorial on setting up a bot for your servers. [NOTE]: THIS IS A VPS TUTORIAL. IF YOUR SERVER ISN'T RUNNING ON A VPS THIS WILL NOT WORK FOR YOU UNLESS YOU UNDERSTAND HOW NODE.JS WORKS. Part 1: Bot creation Part 2: Files Configuration Part 3: SSH commands That should be all now go have fun annoying players in your server. Some feedback would be appreciated Good luck
    1 point
  3. COMPLEX ROLEPLAY Despre noi. Salutare, mă numesc IAN și vreau să vă prezint proiectul la care lucrez în prezent. Îmi place foarte mult roleplay-ul și m-am gândit să încep un gamemode roleplay „from scratch”. Știu că toată lumea spune că deja roleplay-ul nu mai este ce a fost o data și că nici nu va fi, dar eu tind să cred ca acest server va fi un „game changer”, deoarece încerc să fac acest lucru pe placul tuturor persoanelor, cât și pentru cei ce joaca SA:MP dar și pentru cei de pe MTA (poate așa mai ridicăm comunitatea asta). Momentan lucrez singur la proiect, deci nu cred ca vor apărea update-uri foarte des pe acest topic, dar mi-am pus în gând sa îl termin. Ce am făcut până acum? Sistem pentru conectarea bazei de date, MySQL. Sistem de autentificare. Sistem de creare a unui caracter, dar și de a selecta unul. Toate comenzile pentru admini ce țin de jucători, dar și de vehicule. Sistem de vehicule, cu o librărie care îți permite să pui nume „custom” mașinilor. Nametag pentru toți jucătorii. Sistemul de grade pentru admini, fmt, vmt, supporteri, ș.a.m.d. Atunci când mergi, chiar dacă apeși pe „W”, mergi ca și cum ai fi apăsat pe „ALT”. Interfața server-ului este bazată pe „DGS”, librăria DirectX a lui thisdp. Echipa CX:RP. După cum am mai menționat și mai sus, momentan lucrez singur la acest proiect. Link-uri utile. Discord: https://discord.gg/ubZvYRF Vă mulțumesc pentru timpul acordat. Respectul meu pentru comunitatea MTA România.
    1 point
  4. Armazena o resultado do loop dentro de uma tabela vazia. Depois, só mandar a tabela para o cliente. -- Server-side function getObjectsFromACL(aclName) local result = {} local acl = aclGetGroup(aclName) if not acl then return false end local objectList = aclGroupListObjects(acl) for key, value in pairs(objectList) do table.insert(result, {objectName = value}) end return result end addCommandHandler("list", function(player) triggerClientEvent(player, "onPlayerRequestObjectList", resourceRoot, getObjectsFromACL("Moderator")) end) -- Client-side addEvent("onPlayerRequestObjectList", true) addEventHandler("onPlayerRequestObjectList", resourceRoot, function(list) for i, v in pairs(list) do outputChatBox(v.objectName) end outputChatBox("Foram mostrados " .. #list .. " resultado(s).") end)
    1 point
  5. o problema, então pode estar nas permissões da sua ACL. Caso, eventualmente, você fez alterações nas permissões da ACL, você pode ter bugado a permissão.
    1 point
  6. lembrando, faça esse processo com o servidor desligado, e sempre antes de fazer alterações (principalmente pelo ftp), faça um backup antes. Assim, evita de você perde seus dados, com algum erro, ou problema de transferência.
    1 point
  7. 1-Baixe este programa : https://sqlitebrowser.org/ 2- Assim que você baixa-lo, vá no seguinte diretório do seu server : \mods\deathmatch\ 3- Encontre o arquivo chamado: "internal.db" 4- Abra ele com o programa que você baixou no passo 1. 5- Navegue pelas tabelas das contas dos players e modifique os ids. Obs: Se você modificar pode acabar bugando alguns scripts que salvam dados pelos ids...
    1 point
  8. 1. Mosaic Download: https://community.multitheftauto.com/index.php?p=resources&s=details&id=18254 Video: 2. Speed Box Download: https://community.multitheftauto.com/index.php?p=resources&s=details&id=16184 Video: 3. Up Up Up Download: https://community.multitheftauto.com/index.php?p=resources&s=details&id=16176 Video:
    1 point
  9. 1 point
  10. So yes. Since you clicked on the button, which makes the button the source and not the gridlist. So that condition will never be true. Just change it to: if gridlist then -- or: if isElement(gridlist) then -- < if you do not trust anything Now you check if the gridlist is actually created. How does it feel to debug like this? Line for line until you know where and what the problem is.
    1 point
  11. I don't recommand you to bind "onClientGUIClick" on resourceRoot, it takes more CPU resource. Don't set the 4th argument to false when binding "onClientGUIClick" on resourceRoot.
    1 point
  12. If you are lazy to do that, just use onDgsMouseClickDown instead of onDgsMouseClick
    1 point
  13. MTA has a Discord with 4 scripting support channels. https://discord.com/invite/mtasa Refer to #botplayground and type .docs. You will get a useful list of documents, articles and guides helping you learn about Lua programming.
    1 point
  14. --#Client Side showPlayerHudComponent ( "crosshair", false ) --#Server Side showPlayerHudComponent ( element, "crosshair", false ) هذا مثال بسيط .. طبعا ذه الفنكشن علشان تخفي الحاجات , مثل الخريطة , التصويبة , الدم , الوقت ..
    1 point
  15. You will have to run this part, when the data is available: (line 7 until 11) local items = getElementData(localPlayer, "weaponmodel") column = DGS:dgsGridListAddColumn(gridlist, "Weapons", 0.5) for k, v in ipairs(items) do row = DGS:dgsGridListAddRow(gridlist, v[1]) DGS:dgsGridListSetItemText ( gridlist, row, column, v[1] ) end local items = getElementData(localPlayer, "weaponmodel") And if you only do this once, you probably do not need elementdata. addEvent("onLoadOwnWeapons", true) addEventHandler("onLoadOwnWeapons", localPlayer, function (items) column = DGS:dgsGridListAddColumn(gridlist, "Weapons", 0.5) -- < this line can be moved back to it's original spot. for k, v in ipairs(items) do row = DGS:dgsGridListAddRow(gridlist, v[1]) DGS:dgsGridListSetItemText ( gridlist, row, column, v[1] ) end end, false)
    1 point
  16. The problem was related to a LOD overlapping with the high detail model and was resolved (asked in GTAforums).
    1 point
  17. Hi, it's possible with dxCreateScreenSource and dxUpdateScreenSource. Check out this: https://community.multitheftauto.com/index.php?p=resources&s=details&id=2870
    1 point
  18. local number = "076" .. math.random(1000000, 9999999)
    1 point
  19. Your code doesn't work with GUI. You will get the same warning. local shop = {window = {},edit={}}; addEventHandler("onClientResourceStart", resourceRoot, function() shop.window[1] = dgs:dgsCreateWindow((sW-483)/2, (sH-352)/2, 483, 352, "some window", false, 0xff000000, 25, nil, 0xC800ff00, nil, 0x96141414, 5, false); shop.edit[1] = dgs:dgsCreateEdit(419, 81, 40, 27, "1", false, shop.window[1]); addEventHandler("onDgsTextChange", shop.edit[1], function() -- do something... end,false); end);
    1 point
  20. onClientResourceStart triggers later than the moment you try to attach the addEventHandler below.
    1 point
  21. É impossível obter jogadores que não estão online. Mas vc pode obter todos os logins registrados em tal ACL Group. addCommandHandler ("listgroup", function (thePlayer, cmd, aclGroup) -- Teste usando /listgroup Admin if (aclGroup) then if (not aclGetGroup(aclGroup)) then return outputChatBox ("ACL Group '"..aclGroup.."' não existe.", thePlayer, 255, 0, 0) end local table = aclGroupListObjects (aclGetGroup(aclGroup)) outputChatBox ("Logins registrados na ACL Group "..aclGroup..":", thePlayer) for _,name in pairs(table) do local objType = gettok (name, 1, string.byte('.')) -- objType recebe tudo que estiver antes do ponto. if (objType == "user") then -- Se o que estiver antes do ponto for "user", então: local login = gettok (name, 2, string.byte('.')) -- login recebe tudo que estiver depois do ponto. outputChatBox (login, thePlayer) end end else outputChatBox ("Erro de sintaxe. Use /listgroup <ACLGroup>", thePlayer, 255, 0, 0) end end)
    1 point
  22. Interesant, mai ales daca il faci de la 0, bafta
    1 point
  23. server-side addCommandHandler ("blips", function (thePlayer, cmd) if isObjectInACLGroup ("user." ..getAccountName(getPlayerAccount(thePlayer)), aclGetGroup ("Admin")) then triggerClientEvent (thePlayer, "validationRequest", thePlayer) else outputChatBox ("Você não tem permissão!", thePlayer, 255, 30, 30) end end) client-side function blips () if getElementData(localPlayer, "blips", true) then setElementData(localPlayer, "blips", false) outputChatBox ("Blips desligado") else setElementData(localPlayer, "blips", true) outputChatBox ("Blips ligado") end end -- addCommandHandler("blips", blips) addEvent ("validationRequest", true) addEventHandler ("validationRequest", getRootElement(), blips)
    1 point
  24. É a rádio padrão do GTA ou um mod de rádio personalizada? a rádio padrão do GTA eu só sei mudar estação, se há a possibilidade de personalizar mais do jeito que você quer eu não sei... Talvez esse link com funções de sound ajude
    1 point
  25. I already gave you the components that are in my first post. I don't think I can explain it any better, unless you ask specific questions. DX is an (after) effect, not an element, therefore those rectangle/text things on your screen are nothing but "AIR". Which means that if you want to check if you clicked on them, you need to check if the cursor position is within the position of the things you are about to draw. If the concept of DX-UI is unclear, how about you try something that shows DX and but works as a GUI? There is also a whole wiki . @thisdp did a very good job including all features from the original GUI and more.
    1 point
  26. Hello! I'm here to show you my feat with BriaN, this is a dm map based on the game ABZU. Our goal was to create an atmosphere like in that game, or atleast something similar to it.
    1 point
  27. local texts= {} local counter = 1 function createBlipText(text,x,y,size,color,font ,rot) local size = size or 1.3 local font = font or "default" local color = color or tocolor(255,255,255,255) local rot = rot or 0 texts[counter]={text,x,y,size,font ,rot,color} counter = counter+1 return texts[counter-1] end local blip = createBlipText("Test" ,591.02747, 871.34741 ) local screenSize = Vector2(guiGetScreenSize()) local function drawWorldPosMapText() if isPlayerMapVisible() then for k ,v in pairs( texts ) do local worldPos = Vector2(v[2] , v[3]) local mapMin, mapMax do local mx, my, Mx, My = getPlayerMapBoundingBox() if mx then mapMin = Vector2(mx, my) mapMax = Vector2(Mx, My) else return end end local fMx, fMy = (worldPos.x + 3000) / 6000, -(worldPos.y - 3000) / 6000 local fmx, fmy = 1 - fMx, 1 - fMy local screenMapPos = Vector2((fmx * mapMin.x) + (fMx * mapMax.x), (fmy * mapMin.y) + (fMy * mapMax.y)) if screenMapPos.x >= 0 and screenMapPos.y >= 0 and screenMapPos.x <= screenSize.x and screenMapPos.y <= screenSize.y then local width = dxGetTextWidth(v[1],v[4], v[5]) dxDrawText(v[1], screenMapPos.x - (width / 2), screenMapPos.y, screenMapPos.x + (width / 2), screenMapPos.y, v[7], v[4], v[5], "center", "center" ,false,false,false,false,false,v[6]) end end end end addEventHandler("onClientRender", root, drawWorldPosMapText)
    1 point
  28. Então vc veio do SAMP. Excelente, vc já deve saber como o GTA SA funciona mais do que um jogador comum saberia. Seja muito bem-vindo ao Multi Theft Auto. De cara, vou lhe passar alguns links importantes: Regras deste fórum (caso ainda não tenha visto): Página inicial da Wiki do MTA (acesse os links de Scripting): https://wiki.multitheftauto.com/wiki/Página_Inicial Na Wiki vc aprende sobre as funções usadas pelo MTA, por exemplo o createVehicle que serve para criar um veículo tal, numa coordenada tal. Mas tenha em mente que pouquíssimas páginas estão disponíveis em português. É necessário conhecimento intermediário em inglês para entender (assim como qualquer coisa relacionada a tecnologia, sem inglês vc não vai longe). Também na Wiki existem exemplos mostrando como usar determinada função, seus parâmetros e a sintaxe dela. Uma coisa que vc vai perceber logo de cara de diferença quanto ao SAMP, é que aqui as funções estão separadas em tipo client, shared e server. As funções client só funcionam em scripts client-side. Elas afetam somente o cliente do jogador, nunca o servidor. Por exemplo: Funções que criam elementos de menu, são client-side. Funções que verificam a conta dos jogadores, são server-side. Funções de cálculos, geralmente são shared e funcionam em ambos os tipos de script. Isso está explicado nos links da Wiki. A primeira dica que eu dou pra quem está começando no MTA mas já sabe programar, é baixar resources (mods) gratuitos e descompilados do site da comunidade do MTA e estudar como eles funcionam. Experimente resources bem simples primeiro. A segunda dica é comentar cada linha dos códigos. (Em Lua, use dois traços para iniciar um comentário. function qualquerCoisa (thePlayer, cmd) -- Início de função, sendo thePlayer o parâmetro de função e cmd o segundo parâmetro de função. if (cmd == "teste") then -- Se o comando utilizado para ativar essa função for /teste então: outputChatBox ("Comando teste executado.") else outputChatBox ("Comando teste falhou.") end -- Finaliza e fecha o escopo da condição. end -- Finaliza e fecha o escopo da função. addCommandHandler ("teste", qualquerCoisa) -- Adiciona um comando /teste para ativar a função qualquerCoisa. --[[ Isso é um Bloco de comentários. O código acima funciona tanto em scripts server-side quanto em client-side. ]] Busque sempre comentar cada linha dos seus scripts, assim vc sabe exatamente pra que serve cada linha e o que está acontecendo nela. Outra coisa importante, indente sempre seus códigos. Não faça um texto ilegível onde vc mesmo se perde e não sabe onde uma coisa começa e onde termina. Se você é novato, busque primeiro deixar seu resource funcionando. Depois você se preocupa em otimizá-lo. Scripters avançados já fazem otimizando direto, mas é necessário conhecimento para isso. Não tente "dar um passo maior do que sua perna". Como mencionado anteriormente, crie um servidor local para começar a testar seus códigos lá. Tutorial de como criar um servidor local também está naqueles links. Nossa comunidade está aqui para ajudar e não para programar para você. Se tiver dúvidas enquanto está tentando criar seu script, podemos ajudá-lo a resolver os erros ou apontar falhas de lógica, podemos até mostrar a parte corrigida. Vale lembrar que não damos suporte para scripts roubados de terceiros, crie seus próprios. Sobre a parte de projetos em si: Na pasta do MTA, em server\mods\deathmatch\resources você tem algumas pastas por padrão. As pastas que estão entre colchetes indicam ao MTA que os resources estão dentro dela e não que ela é um resource em si. Se vc criar uma pasta sem colchetes, o MTA vai considerá-la como um resource. Normalmente os donos de servidores colocam os resources tudo de qualquer jeito ali e vira uma bagunça. Mas no meu caso, eu deixo os mods separados naquelas [pastas] e inclusive criei outras como [vehicles] [maps]. Também criei uma pasta de estudos. Eu crio um resource com nome teste e só movo ele posteriormente para uma [pasta] adequada somente se eu termino de desenvolver ele e de corrigir seus erros. As vezes acontece de eu desistir de finalizá-lo pois ele se tornou complexo demais ou muito pesado ou simplesmente seu objetivo exige algo que está além da capacidade do GTA. Nesses casos, dou um nome para o resource mas ele continua na pasta de estudos.
    1 point
  29. Bom, da um trabalhinho a mais do que usar element-data, mas para ter um servidor bom, esforços são necessários.
    1 point
  30. De nada mano. Qualquer coisa estamos aqui. Não se esqueça de deixar um Thanks lá na resposta pra me ajudar. Abraço.
    1 point
  31. Coloque a tabela inteira numa variável e passe essa variável como argumento no triggerClientEvent. Então no client você poderá acessar esse argumento e obter a table. Exemplo maroto: Server-side: tabela = { [1] = "Elemento 1", [2] = "Elemento 2", [3] = "Elemento 3" } addCommandHandler ("eae", function (thePlayer, cmd) triggerClientEvent (thePlayer, "recebeTable", thePlayer, tabela) end) Client-side: addEvent ("recebeTable", true) addEventHandler ("recebeTable", getRootElement(), function (tabelaQualquer) outputChatBox ("Tabela recebida do server:") for i, valor in ipairs (tabelaQualquer) do outputChatBox (i.." = "..valor, 255, 255, 255) end end) (código não testado, avise se houver erros) Boa sorte.
    1 point
  32. ja coloquei o original, porém continua o erro
    0 points
  33. Let the kids make servers I agree the script is leaked. If you really wanna start a MTASA server you need to build it from nothing. I see lots and lots of posts with the old Owlgaming gamemode , come on guys , i'm tired of seeing every server in my country with the same gamemode , build something original!
    0 points
×
×
  • Create New...