Search the Community

Showing results for tags 'elements'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Multi Theft Auto: San Andreas 1.x
    • Support for MTA:SA 1.x
    • User Guides
    • Open Source Contributors
    • Suggestions
    • Ban appeals
  • General MTA
    • News
    • Media
    • Site/Forum/Discord/Mantis/Wiki related
    • MTA Chat
    • Other languages
  • MTA Community
    • Scripting
    • Maps
    • Resources
    • Other Creations & GTA modding
    • Competitive gameplay
    • Servers
  • Other
  • Archive
  • Private Bugtracker

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



About Me





Found 5 results

  1. addEventHandler + group elements I noticed that some people like to add 10000000000000000 addEventHandlers for each element, while you probably only need 1 addEventHandler. Using ONE addEventHandler on a group of elements? Answer: local group = createElement("groupMyCutePeds") -- Create a custom element and save it in to the variable <group>. -- Create 3 peds. local ped1 = createPed(120, 5540.6654, 1020.55122, 1240.545) local ped2 = createPed(120, 5541.6654, 1021.55122, 1240.545) local ped3 = createPed(120, 5542.6654, 1022.55122, 1240.545) -- Set the parent of the 3 peds. setElementParent(ped1, group) setElementParent(ped2, group) setElementParent(ped3, group) -- Add an addEventHandler and use the <group> as <attachedTo> element. addEventHandler("onPedWasted", group, -- "onPedWasted" = serverside. "onClientPedWasted" = clientside. function () outputChatBox("One of my cute peds just died. ;'( No exceptions!") end) Code is untested, but the method is tested. Syntax for functions in example createElement syntax element createElement ( string elementType, [ string elementID = nil ] ) setElementParent syntax bool setElementParent ( element theElement, element parent ) addEventHandler syntax bool addEventHandler ( string eventName, element attachedTo, function handlerFunction, [ bool getPropagated = true, string priority = "normal" ] ) DO NOT disable getPropagated getPropagated: A boolean representing whether the handler will be triggered if the event was propagated down or up the element tree (starting from the source), and not triggered directly on attachedTo (that is, handlers attached with this argument set to false will only be triggered if source == this). If you disable this, children of the <group> element are not included. Make use of the element tree Element tree For applying addEventHandlers to elements created by the resource: Use: resourceRoot / getResourceRootElement For applying addEventHandlers to elements created by scripts of the resource: Use: getResourceDynamicElementRoot For applying addEventHandlers to elements created by maps of the resource: Use: getResourceMapRootElement I hope your code will be without... print(10^10^10^10) -- Print here: ...addEventHandlers in the future.
  2. Hi. I have a problem, that whoever is online on my server, sees edit boxes, that should only appear to who clicked a button (i use localPlayer), and it simply just appears for the ones who already passed the login panel. Pieces of scripts: (Client and serverside) Client: function loginButton_Click() loginUsernameText = guiGetText (loginUsername) loginPasswordText = guiGetText (loginPassword) triggerServerEvent ("attemptLogin", localPlayer, localPlayer, loginUsernameText, loginPasswordText) end Server: function attemptLogin(element, accountname, password) local q = exports.db:sqlQuery ("SELECT * FROM users WHERE accountname = '"..accountname.."' AND password = '"..md5(password).."';") local result = dbPoll(q, -1) if #result > 0 then for k, v in ipairs(result) do triggerClientEvent ("outputAccountMessage", element, "Successful login!", "information") setElementData (element, "logged", true, true) triggerClientEvent ("destroyEdits", element) setElementData (element, "id", v['id'], true) setElementData (element, "admin", v['admin'], true) setElementData (element, "aduty", v['aduty'], true) setElementData (element, "anick", v['anick'], true) setElementData (element, "banned", v['banned'], true) setElementData (element, "accountname", v['accountname'], true) local q = exports.db:sqlQuery ("SELECT * FROM characters WHERE owner = '"..getElementData(element, "id").."';") local result = dbPoll(q, -1) if #result > 0 then for k, v in ipairs(result) do setElementData (element, "hud", true, true) setElementData (element, "characterChosen", true, true) spawnPlayer (element, tonumber(v['posX']), tonumber(v['posY']), tonumber(v['posZ'])) fadeCamera (element, true) setCameraTarget (element, element) showCursor (element, false) showChat (element, true) setPedArmor (element, v['armor']) setElementHealth (element, v['health']) setElementInterior (element, v['interior']) setElementDimension (element, v['dimension']) setElementData (element, "name", v['name'], true) setElementModel (element, v['skinID']) setElementData (element, "anick", v['anick'], true) setElementData (element, "aduty", v['aduty'], true) dbFree (q) end else setElementData (element, "characterChosen", false, true) triggerClientEvent ("characterCreationMenu", element, element, v['accountname']) end end else triggerClientEvent ("outputAccountMessage", element, "Login failure!", "error") end dbFree (q) end addEvent ("attemptLogin", true) addEventHandler ("attemptLogin", root, attemptLogin) I mean for example edit boxes will appear to every if localPlayer's account has no character that is owned by his account id. And at the call of "destroyEdits" the editBoxes will get destroyed for everyone who has visual on the login panel. What did i screw up?
  3. Working on a First Person Shooter gamemode, and i found a bug. The event onClientPreRender causes some delay at attachElements. Can somebody reproduce attachElements maths for me?
  4. this is the problem, how to fix this? code: local screenW, screenH = guiGetScreenSize() addEventHandler("onClientRender", root, function() local x, y, z = getElementPosition(localPlayer) local location = getZoneName ( x, y, z ) dxDrawImage(screenW * 0.0076, screenH * 0.7300, screenW * 0.2194, screenH * 0.2422, "mapbg.png", 360, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawText(location, screenW * 0.0965, screenH * 0.7370, screenW * 0.2250, screenH * 0.7567, tocolor(118, 224, 90, 255), 1.00, "default-bold", "left", "center", false, false, true, false, false) end ) addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), function () setPlayerHudComponentVisible( "area_name", false ) end) local sx, sy = guiGetScreenSize() local rt = dxCreateRenderTarget(290, 175) local xFactor, yFactor = sx/1366, sy/768 local yFactor = xFactor function findRotation(x1,y1,x2,y2) local t = -math.deg(math.atan2(x2-x1,y2-y1)) if t < 0 then t = t + 360 end; return t; end function getPointFromDistanceRotation(x, y, dist, angle) local a = math.rad(90 - angle); local dx = math.cos(a) * dist; local dy = math.sin(a) * dist; return x+dx, y+dy; end function drawRadar() showPlayerHudComponent("radar", false) if disableGTASAhealth then showPlayerHudComponent("health", false) end if disableGTASAarmor then showPlayerHudComponent("armour", false) end if disableGTASAoxygen then showPlayerHudComponent("breath", false) end if (not isPlayerMapVisible()) then local mW, mH = dxGetMaterialSize(rt) local x, y = getElementPosition(localPlayer) local X, Y = mW/2 -(x/(6000/worldW)), mH/2 +(y/(6000/worldH)) local camX,camY,camZ = getElementRotation(getCamera()) dxSetRenderTarget(rt, true) if alwaysRenderMap or getElementInterior(localPlayer) == 0 then dxDrawRectangle(0, 0, mW, mH, 0xFF5E656B) dxDrawImage(X - worldW/2, mH/5 + (Y - worldH/2), worldW, worldH, "image/world.jpg", camZ, (x/(6000/worldW)), -(y/(6000/worldH)), tocolor(255, 255, 255, 255)) end dxSetRenderTarget() -- dxDrawRectangle((10)*xFactor, sy-((200+10))*yFactor, (300)*xFactor, (200)*yFactor, tocolor(0, 0, 0, 175)) dxDrawImage((10+5)*xFactor, sy-((200+5))*yFactor, (300-10)*xFactor, (175)*yFactor, rt, 0, 0, 0, tocolor(255, 255, 255, 255)) (this not the full code)
  5. Hello, I am creating a PIN system on my server and wanted to ask you for help in my code. When I send the client to the server a trigger wanted to validate if the pin sent from the client to the server is an element of my table if yes setElementData will work and the Pin used will be unable to use again but in my script when it uses a pin all The others are disabled, can you help me? Note: I'm Brazilian, I'm sorry for English. local pins15k = {"UAIFKAJDKEFC15K", "KYJFKAJDEFKC15K", "BESFKSLLKEFC15K"} function PinEdit(Pin) if validatePin(Pin) then if getElementData(source, "Diamond") then setElementData(source, "Diamond", getElementData(source, "Diamond")+10000) else setElementData(source, "Diamond", 10000) end for k, v in ipairs(pins15k) do outputChatBox("["..k.."] = "..v) end else outputChatBox("Pin invalido", source) outputChatBox(tostring(pins15k)) end end addEvent("PinEdit", true) addEventHandler("PinEdit", getRootElement(), PinEdit) function validatePin(pin) local result = false for k, v in ipairs(pins15k) do if (pin == v) then pins15k[k] = nil result = true break end end return result end