-
Posts
3,875 -
Joined
-
Days Won
67
Everything posted by DNL291
-
You're mixing server-side function with client functions. Try this: GUIEditor = { button = {}, window = {}, label={} } addCommandHandler("onResourcestart", resourceRoot, function() GUIEditor.window[1] = guiCreateWindow(227, 127, 571, 514, "Panel de tags Apocalipsis Mundial", false) guiWindowSetSizable(GUIEditor.window[1], false) guiSetVisible( GUIEditor.window[1], false ) GUIEditor.button[1] = guiCreateButton(17, 73, 155, 47, "【ИλŽÎ】", false, GUIEditor.window[1]) GUIEditor.button[2] = guiCreateButton(212, 73, 155, 47, "➳SparTan➹", false, GUIEditor.window[1]) GUIEditor.button[3] = guiCreateButton(398, 73, 155, 47, "җΛҚĀTŠŨKÎҗ", false, GUIEditor.window[1]) GUIEditor.button[4] = guiCreateButton(17, 181, 155, 47, "╚>SΛÏЎAJIŇ<╝", false, GUIEditor.window[1]) GUIEditor.button[5] = guiCreateButton(212, 186, 155, 47, "Ω »GᴏᴅOғWᴀʀ« Ω", false, GUIEditor.window[1]) GUIEditor.button[6] = guiCreateButton(398, 186, 155, 47, "[»Aᴘᴏᴄᴀʟɪᴘꜱɪꜱ«]", false, GUIEditor.window[1]) GUIEditor.button[7] = guiCreateButton(17, 289, 155, 47, "Proximamente", false, GUIEditor.window[1]) GUIEditor.button[8] = guiCreateButton(212, 289, 155, 47, "Proximamente", false, GUIEditor.window[1]) GUIEditor.button[9] = guiCreateButton(398, 289, 155, 47, "Proximamente", false, GUIEditor.window[1]) GUIEditor.button[10] = guiCreateButton(17, 394, 155, 47, "Proximamente", false, GUIEditor.window[1]) GUIEditor.button[11] = guiCreateButton(212, 394, 155, 47, "Proximamente", false, GUIEditor.window[1]) GUIEditor.button[12] = guiCreateButton(398, 394, 155, 47, "Proximamente", false, GUIEditor.window[1]) GUIEditor.button[13] = guiCreateButton(50, 136, 91, 24, "Probar", false, GUIEditor.window[1]) GUIEditor.button[14] = guiCreateButton(241, 136, 91, 24, "Probar", false, GUIEditor.window[1]) GUIEditor.button[15] = guiCreateButton(424, 136, 91, 24, "Probar", false, GUIEditor.window[1]) GUIEditor.button[16] = guiCreateButton(50, 248, 91, 24, "Probar", false, GUIEditor.window[1]) GUIEditor.button[17] = guiCreateButton(50, 351, 91, 24, "Probar", false, GUIEditor.window[1]) GUIEditor.button[18] = guiCreateButton(244, 250, 91, 24, "Probar", false, GUIEditor.window[1]) GUIEditor.label[1] = guiCreateLabel(50, 50, 92, 13, "$500,000", false, GUIEditor.window[1]) GUIEditor.label[2] = guiCreateLabel(240, 47, 92, 13, "$600,000", false, GUIEditor.window[1]) GUIEditor.label[3] = guiCreateLabel(438, 47, 92, 13, "$500,000", false, GUIEditor.window[1]) GUIEditor.label[4] = guiCreateLabel(50, 163, 92, 13, "$600,000", false, GUIEditor.window[1]) GUIEditor.label[5] = guiCreateLabel(244, 168, 92, 13, "$500,000", false, GUIEditor.window[1]) GUIEditor.label[6] = guiCreateLabel(429, 166, 92, 13, "$200,000", false, GUIEditor.window[1]) end) function guiToggleVisible ( ) guiSetVisible( GUIEditor.window[1], not guiGetVisible(GUIEditor.window[1]) ) showCursor( guiGetVisible(GUIEditor.window[1]) ) end addCommandHandler ( "tags", guiToggleVisible ) addEventHandler ( "onClientGUIClick", guiRoot, function() if source == GUIEditor.button[1] then if (getPlayerMoney(localPlayer) >= 500000) then triggerServerEvent("tag:onRequestBuyTag", localPlayer, "Nazi" ) else outputChatBox("No tienes suficiente dinero", 255, 0, 0) guiSetVisible( GUIEditor.window[1], false ) showCursor(false) end elseif source == GUIEditor.button[2] then if (getPlayerMoney(localPlayer) >= 600000) then triggerServerEvent("tag:onRequestBuyTag", localPlayer, "Spartan" ) else outputChatBox("No tienes suficiente dinero", 255, 0, 0) guiSetVisible( GUIEditor.window[1], false ) showCursor(false) end elseif source == GUIEditor.button[3] then if (getPlayerMoney(localPlayer) >= 500000) then triggerServerEvent("tag:onRequestBuyTag", localPlayer, "Akatsuki" ) else outputChatBox("No tienes suficiente dinero", 255, 0, 0) guiSetVisible( GUIEditor.window[1], false ) showCursor(false) end elseif source == GUIEditor.button[4] then if (getPlayerMoney(localPlayer) >= 600000) then triggerServerEvent("tag:onRequestBuyTag", localPlayer, "Saiyayin" ) else outputChatBox("No tienes suficiente dinero", 255, 0, 0) guiSetVisible( GUIEditor.window[1], false ) showCursor(false) end elseif source == GUIEditor.button[5] then if (getPlayerMoney(localPlayer) >= 500000) then triggerServerEvent("tag:onRequestBuyTag", localPlayer, "GodOfWar" ) else outputChatBox("No tienes suficiente dinero", 255, 0, 0) guiSetVisible( GUIEditor.window[1], false ) showCursor(false) end elseif source == GUIEditor.button[6] then if (getPlayerMoney(localPlayer) >= 200000) then triggerServerEvent("tag:onRequestBuyTag", localPlayer, "APC" ) else outputChatBox("No tienes suficiente dinero", 255, 0, 0) guiSetVisible( GUIEditor.window[1], false ) showCursor(false) end elseif source == GUIEditor.button[13] then outputChatBox("#101010【#660099ŇλŽĬ#101010】", 255, 0, 0) elseif source == GUIEditor.button[14] then outputChatBox("#FFCC00➳#222222SᴘᴀʀTᴀɴ#FFCC00➹", 255, 0, 0) elseif source == GUIEditor.button[15] then outputChatBox("#ff0000җ»#303030ΛҚĀTŠŬKÎ#ff0000«җ", 255, 0, 0) elseif source == GUIEditor.button[16] then outputChatBox("#00ffff╚>#ffff00SΛÏЎAJIŇ#00ffff<╝", 255, 0, 0) elseif source == GUIEditor.button[17] then outputChatBox("#550000Ω »#ffffffGᴏᴅOғWᴀʀ#550000« Ω", 255, 0, 0) elseif source == GUIEditor.button[18] then outputChatBox("#000000》»#00FFFFAᴘᴏᴄᴀ#00FF99ʟɪᴘꜱɪꜱ#000000«《", 255, 0, 0) end end ) local Groups = { ["Nazi"] = 500000, ["Akatsuki"] = 500000, ["Quinx"] = 500000, ["GodOfWar"] = 500000, ["Spartan"] = 600000, ["Saiyayin"] = 600000, ["APC"] = 200000 } function onRequestBuyTag( tag ) if not tag or not aclGetGroup(tag) then return end if isGuestAccount(getPlayerAccount(client)) then return outputChatBox("You're not logged in!", client, 255, 0, 0) end tag = tostring(tag) local accountName = getAccountName(getPlayerAccount(client)) if isObjectInACLGroup( "user."..accountName, aclGetGroup(tag)) then outputChatBox("You're already in this group!", client, 255, 0, 0) else takePlayerMoney( client, Groups[tag] or 0 ) outputChatBox("Has adquirido este tag", client, 255, 0, 0) removeFromOtherGroups( client ) aclGroupAddObject (aclGetGroup(tag), "user."..accountName) end end addEvent( "tag:onRequestBuyTag", true ) addEventHandler( "tag:onRequestBuyTag", root, onRequestBuyTag ) function removeFromOtherGroups(player) local accName = getAccountName(getPlayerAccount(player)) for gname in pairs(Groups) do if isObjectInACLGroup( "user."..accName, aclGetGroup(gname)) then aclGroupRemoveObject (aclGetGroup(gname), "user."..accName) end end end
-
onPlayerWasted getZoneName (enable the 4th argument "citiesonly") For the spawn locations, I recommend using a table with cities as key with their respective coordinates.
-
Provavelmente se trata de um script do gamemode. Tente encontrar esse código nos seus resources. Você pode usar uma ferramenta de busca com palavras-chave (ex: "is connecting" ou o evento "onPlayerConnect"/"onPlayerJoin").
-
@LegendMercy poderia mostrar qual texto do IP mostra quando ele entra? se puder, mostre um print com essa mensagem.
-
Erro de compibilidade MTA 64bits
DNL291 replied to Douglas Burigo's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Você tem outras partições/disco rigído no PC? Porque a unidade principal é a C, mas o MTA/GTA estão na unidade J. -
Erro de compibilidade MTA 64bits
DNL291 replied to Douglas Burigo's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
O programa gera um link upado no Pastebin, o link é automaticamente copiado pro seu clipboard, aí é só colar ele aqui. -
Maybe that's what you're looking for.
-
Erro de compibilidade MTA 64bits
DNL291 replied to Douglas Burigo's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Baixe e execute o MTADiag: https://mirror.multitheftauto.com/mtasa/utils/MTADiag.exe Siga as instruções e coloque aqui o link Pastebin do programa. -
setTimer( function(p) if playerTempVeh[p] then playerTempVeh[p] = nil end if isElement(p) then setElementFrozen( p, true ) setTimer( setElementFrozen, 150, 1, p, false ) end end,10000, 1, player ) Substitua o timer com esse código. Se você perceber qualquer erro, digite /debugscript 3 e mostre aqui a mensagem do debug.
-
Try: db = dbConnect( ) -- your database connection function db_query ( ... ) local data = { ... } return dbPoll ( dbQuery ( db, ... ), - 1 ) end function db_exec ( ... ) return dbExec ( db, ... ); end addEventHandler( "onResourceStart", resourceRoot, function() db_exec ( "CREATE TABLE IF NOT EXISTS weapons ( AccountID TEXT, weps TEXT )" ) for i, player in pairs(getElementsByType"player") do local accid = tostring(getElementData(player, "Player:AccountID")) local d = db_query( "SELECT * FROM weapons WHERE AccountID=? LIMIT 1", accid ) if not (d) then db_exec ( "INSERT INTO `weapons` (`AccountID`, `weps` ) VALUES ( ?, ? );", accid, "[ [ ] ]" ) end end end ) addEventHandler("onPlayerSpawn",root,function () local accid = tostring(getElementData(source, "Player:AccountID")) if not accid then return end local weapons = db_query( "SELECT weps FROM weapons WHERE AccountID=? LIMIT 1", accid ) if (weapons) and type(weapons) == "table" and table.length(fromJSON(weapons)) > 0 then takeAllWeapons(source) for weapon, ammo in pairs(fromJSON(weapons)) do giveWeapon(source, weapon, ammo, true) end end end) addEventHandler( "onPlayerLogin", root, function( ) setTimer( function(player) local accid = tostring(getElementData(player, "Player:AccountID")) local d = db_query( "SELECT * FROM weapons WHERE AccountID=? LIMIT 1", accid ) if not (d) then db_exec ( "INSERT INTO `weapons` (`AccountID`, `weps` ) VALUES ( ?, ? );", accid, "[ [ ] ]" ) end end, 100, 1, source ) end ) addEventHandler("onPlayerQuit",root,function () local account = getPlayerAccount(source) if (account) and not (isGuestAccount(account)) then savePlayerWeapons( source ) end end) addEventHandler("onResourceStop",resourceRoot,function (resource) for _, thePlayer in pairs(getElementsByType("player")) do local account = getPlayerAccount(thePlayer) if (account) and not (isGuestAccount(account)) then savePlayerWeapons( thePlayer ) end end end) function savePlayerWeapons( player ) local accid = tostring(getElementData(player, "Player:AccountID")) db_exec ( "UPDATE weapons SET weps=? WHERE AccountID=?", toJSON(getAllPedWeapon(player) or {}), accid ) end function getAllPedWeapon(thePed) local weapons = { } for slot=1, 12 do local weapon = getPedWeapon(thePed, slot) local ammo = getPedTotalAmmo(thePed, slot) if (weapon > 0) and (ammo > 0) then weapons[weapon] = ammo end end return weapons end function table.length(T) local count = 0 for _ in pairs(T) do count = count + 1 end return count end
-
Não sei se entendi.. tente a função guiSetEnabled
-
Pra deixar ela pra trás de outros GUIs use guiMoveToBack. Você também pode usar guiBringToFront para deixa a imagem que você quer na frente.
-
De nada! Como você pode ver no timer, coloquei 10 segundos no tempo limite para o jogador poder entrar no veículo (às vezes tem aquele bug do ped travar em outras coisas e demorar muito), aí dou um freeze e unfreeze pra parar a animação de entrar.
-
Acho que entendi o que você disse. Fiz um código que verifica se o jogador está entrando no veículo, tente isto: local playerTempVeh = {} local posicoes = { { 2457.5451660156, -1658.8039550781, 13.3046875 }, } function PosicaoPlayer ( thePlayer, command ) if (getElementDimension(thePlayer) ~= 0) then return end local azar = math.random ( #posicoes ) local veh = getPedOccupiedVehicle(thePlayer) if veh and not playerTempVeh[thePlayer] then setElementPosition(veh, unpack ( posicoes [ azar ] ) ) outputChatBox ( "#ffffff「 #00ccffTELE #ffffff」 #FFFFFF".. getPlayerName(thePlayer) .." #FFFFFFFoi para o CJ com seu veículo #ffffff( #00ccff/cjcar #ffffff)", root, 0, 255, 0, true ) end end addCommandHandler ( "cjcar", PosicaoPlayer ) -- addEventHandler( "onVehicleStartEnter", root, function(player,seat) playerTempVeh[player] = source setTimer( function(p) if playerTempVeh[p] then playerTempVeh[p] = nil end setElementFrozen( p, true ) setTimer( setElementFrozen, 50, 1, p, false ) end,10000, 1, player ) end ) addEventHandler( "onElementDestroy", root, function() if getElementType(source) ~= "vehicle" then return end local enteringPlayers = getPlayersFromVehicleInTable( playerTempVeh, source ) if enteringPlayers and #enteringPlayers > 0 then for i, player in ipairs(enteringPlayers) do if isElement(player) and playerTempVeh[player] then playerTempVeh[player] = nil end end end end ) addEventHandler( "onVehicleEnter", root, function(p, seat) if playerTempVeh[p] then playerTempVeh[p] = nil end end ) function removeFromTable() if playerTempVeh[source] then playerTempVeh[source] = nil end end addEventHandler( "onPlayerQuit", root, removeFromTable ) addEventHandler( "onPedWasted", root, removeFromTable ) function getPlayersFromVehicleInTable( t, v ) if type(t) ~= "table" or not isElement(v) then return false end local players = {} for player, vehicle in pairs(t) do if vehicle == v then table.insert( players, player ) end end return players end
-
gta san andeas e mta parou de fucionar
DNL291 replied to Edson's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Mostre o print do erro. Se o seu GTA:SA também não estiver abrindo, reinstale-o completamente, fazendo os backups caso necessário. Além disso, te sugiro dar uma olhada neste tópico -
local posicoes = { { 2457.5451660156, -1658.8039550781, 13.3046875 }, } function PosicaoPlayer ( thePlayer, command ) if (getElementDimension(thePlayer) ~= 0) then return end local azar = math.random ( #posicoes ) local veh = getPedOccupiedVehicle(thePlayer) if veh then if isVehicleEmpty( veh ) then outputChatBox("este veículo só tem o motorista") else outputChatBox("este veículo tem passageiro(s)") end setElementPosition(veh, unpack ( posicoes [ azar ] ) ) outputChatBox ( "#ffffff「 #00ccffTELE #ffffff」 #FFFFFF".. getPlayerName(thePlayer) .." #FFFFFFFoi para o CJ com seu veículo #ffffff( #00ccff/cjcar #ffffff)", root, 0, 255, 0, true ) end end addCommandHandler ( "cjcar", PosicaoPlayer ) function isVehicleEmpty( vehicle ) if not isElement( vehicle ) or getElementType( vehicle ) ~= "vehicle" then return true end local passengers = getVehicleMaxPassengers( vehicle ) if type( passengers ) == 'number' then for seat = 1, passengers do if getVehicleOccupant( vehicle, seat ) then return false end end end return true end
-
getVehicleOccupant ( veículo, assento ) assento: 0 é o do motorista; 1 pra cima são os passageiros. Você pode usar esta função: isVehicleEmpty Se quiser fazer a verificação só pros passageiros, modifique o inicio do loop for seat = 0, e substitua 0 com 1.
-
local weaponsTable = { [53] = true, [54] = true, [55] = true, } if weaponsTable[ weapon ] then -- se essas armas da tabela forem permitidas end -- -- se for para bloqueá-las na checagem if weaponsTable[ weapon ] ~= true then end
-
These settings you mentioned I don't think it's possible to get via script. The function used to disable shaders is engineRemoveShaderFromWorldTexture. You can get client settings/infos with this function: dxGetStatus
-
debug.getinfo (https://www.lua.org/pil/23.1.html) An example: function a() local callingFunction = debug.getinfo(2) if callingFunction then print(callingFunction.name) end end function b() a() end b() EDIT After rereading your message, I realized that I answered it wrong since you meant the resource name and not the function name. So in this case, you can use the hidden variable "sourceResource", which represents the resource that called the exported function. --- function from resource1 function Func() local callingRes = sourceResource if callingRes then outputChatBox("That function called by: ".. getResourceName(callingRes)) -- print 'That function called by: resource2' end end Maybe this is only possible with the call function, I haven't tested it using exports.
-
Você se refere ao dx-rectangle funcionando como o progress-bar da GUI? Use uma variável com o tamanho total da barra; digamos que você nomeia ela como barWidth. Você vai precisar fazer o seguinte calculo no 3º argumento de dxDrawRectangle, que é a largura: progressoAtual = (getHungerState() / 100) * barWidth Se você quer dizer o calculo da barra, isso é o principal, que é o calculo do progresso atual.
-
Primeiramente, nesses casos você precisa depurar seu código, colocando um output para o chat pra saber o que getHungerState realmente retorna. Você poderia postar seu código aqui, ou se não quiser compartilhar ele publicamente é só enviar em privado pra alguém que possa te ajudar.
-
Não cheguei a testar a performance dessa função, mas acho que não é pesada assim não, seja em uso de memória ou processamento. Na verdade, seria muito mais leve optar por ela em vez de mapear os objetos manualmente. É a função usada pelo Map Editor, quando o jogador seleciona os objetos do GTA.
- 6 replies
-
- getpedcontactelement
- onclientclick
-
(and 1 more)
Tagged with:
-
processLineOfSight Acho que é possível com essa função.
- 6 replies
-
- 1
-
- getpedcontactelement
- onclientclick
-
(and 1 more)
Tagged with:
-
Isso não seria um sistema de médico? Tente isto: addCommandHandler ("s", function (thePlayer, command, Jogador) local accountname = getAccountName(getPlayerAccount(thePlayer)) if isObjectInACLGroup("user." .. accountname, aclGetGroup("SAMU")) then if Jogador then local targetPlayer = getPlayerFromName ( Jogador:gsub("#%x%x%x%x%x%x", "") ) else return outputChatBox ( "Sintaxe incorreta! /"..command.." <nome_do_jogador>", thePlayer ) end if targetPlayer then setElementHealth ( targetPlayer, getPedMaxHealth(targetPlayer) ) triggerClientEvent(thePlayer, "SAMU", thePlayer) setPedAnimation(thePlayer, "medic", "CPR") outputChatBox ( "Você foi curado por "..getPlayerName(thePlayer).." !", targetPlayer ) outputChatBox ( "Você curou o jogador "..getPlayerName(targetPlayer).." !", thePlayer ) else outputChatBox ( "Não há nenhum jogador chamado " .. Jogador .. "!", thePlayer ) end else outputChatBox ( "Você não pode usar este comando", thePlayer ) end end) function getPedMaxHealth(ped) -- Output an error and stop executing the function if the argument is not valid assert(isElement(ped) and (getElementType(ped) == "ped" or getElementType(ped) == "player"), "Bad argument @ 'getPedMaxHealth' [Expected ped/player at argument 1, got " .. tostring(ped) .. "]") -- Grab his player health stat. local stat = getPedStat(ped, 24) -- Do a linear interpolation to get how many health a ped can have. -- Assumes: 100 health = 569 stat, 200 health = 1000 stat. local maxhealth = 100 + (stat - 569) / 4.31 -- Return the max health. Make sure it can't be below 1 return math.max(1, maxhealth) end