Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Zango

  1. Yes, you can make an URL like this mtasa://
  2. It's because you are trying to turn table 'v' into a string. As you can find on the wiki for dbPoll, in your case 'p' will be like this { { colname1=value1, colname2=value2, ... }, { colname1=value3, colname2=value4, ... }, ... } So you need to refer to the column name first outputChatBox(k.." = "..v.id); For your purpose, I suggest using inspect instead which converts a table to a readable string. function listTable(queryHandle) local db = dbConnect("sqlite","blips.db") local p = dbPoll(dbQuery(db, "SELECT id,icon,name FROM tabelaBlips"), -1); i
  3. This extension has code completion for VS code. It's the only one I know of.
  4. You need to parse radians to it, like this isMouseInCircleSector(sx/2, sy/2, 330, math.rad(0), math.rad(90))
  5. If you only want to see if the point is inside one of the circle's quadrants, it can be done really simple. If you want to check for any sector, I have made the following, where you define the sector from two angles. It would also be possible to define the sectors from vectors instead. local sx, sy = guiGetScreenSize( ) function isMouseInCircleSector(cx, cy, r, angleStart, angleEnd) local mx, my = getCursorPosition() if not mx then return end -- Relativise mouse position to circle center mx = mx * sx - cx my = my * sy - cy -- Convert angles to vectors local x1, y1 = r * mat
  6. addEventHandler("onClientMarkerHit", root, MKH_OPEN) If you bind this event handler to the local player instead addEventHandler("onClientMarkerHit", localPlayer, MKH_OPEN) The GUI should only open when you hit the marker.
  7. setCameraTarget() To focus camera on player again
  8. The map editor can now remove collisionless world objects, if you toggle "Enable collision patches" in the options. This will also make these models selectable when placed as objects. https://mirror.mtasa.com/mtasa/resources/
  9. Zango


    Try downloading the latest version, from mtasa.com, and run MTADiag again
  10. Zango

    aiming problem

    What version of MTA are you on? type "ver" in console (F8) Does this happen on one server or several? Can you upload a video of this?
  11. Zango

    [Help] Turf

    Have a look at the radar area functions and colshape functions. What are you looking to do?
  12. The only way right now is it to interrupt the entering task, like you do when you hold movement keys as a player during jacking. If you set the "backwards" control state after jacking starts, you can do this. The current implementation of jacking is very lacking in this aspect. If jacking is aborted for one of many reasons, the server doesn't know how far the jacker is, ie. if he physically pulled out the jacked ped yet, so it relies on the jacker to abort properly. But for peds, if the syncer changes the jacking isn't aborted properly and the jacker will be warped into the car. This is s
  13. It will give you better results, as in the random numbers wont be the same each time you run the script. But it wont make the Lua random generator better, it has a propensity for certain numbers and patterns like any pseudo-random number generator. If you need better randomness you can consider fetching numbers from random.org, they have an API.
  14. local last_button_action = 0 function onClientKey(button, pressOrRelease) if not pressOrRelease then return end local boundKeys = getBoundKeys("vehicle_secondary_fire") if not boundKeys then return end if not boundKeys[button] then return end local tick = getTickCount() if tick - last_button_action < 500 then cancelEvent() return end last_button_action = tick end addEventHandler("onClientKey", root, onClientKey) This will limit the vehicle_secondary_fire control to once every 500 ms, it should be enough to block the super jump on bike. This applies to all vehicles,
  15. If you want to get the target in the center of the screen, you can use getCameraMatrix. It returns the camera position and lookat position, which is a unit vector from the camera position, so you can easily multiply it to get a point further out. Made the following so you can see if thats what you need. local scrW, scrH = guiGetScreenSize() local maxTargetDistance = 100 addEventHandler("onClientPreRender", root, function() local cx, cy, cz, lx, ly, lz = getCameraMatrix() local px = cx + (lx - cx) * maxTargetDistance local py = cy + (ly - cy) * maxTargetDistance local pz = cz
  16. To see errors and warnings from your script, use /debugscript 3. The problem here is you are parsing a resource element into triggerClientEvent where it expects a player. function ShowImage (player) The player here is a resource, because you have bound it to onResourceStart. If you want to send this image to everyone on the server, use root as "sendTo" parameter. triggerClientEvent ( root, "onClientGotImage", root, response ) I've made a few changes to it, see the comments here: -- server function ShowImage() outputChatBox ( "event called, fetching image..."
  17. I tested it and it looked fine. Can you show with a screenshot what looks wrong?
  18. Try using modulate_add as blend mode instead of add before fading it (line 18)
  19. What doesn't work? Are you getting an error? Use /debugscript 3
  20. Do you want to fade two images with each other? Or fade the current image to nothing and then fade the next image from nothing? Use alpha in tocolor to fade it. (red, green, blue, alpha). dxDrawImage(0, 0, screenSize.x, screenSize.y, backgroundTexture, angle, 0, -120, tocolor(255, 255, 255, 255)) To fade it a bit dxDrawImage(0, 0, screenSize.x, screenSize.y, backgroundTexture, angle, 0, -120, tocolor(255, 255, 255, 100)) Now you need to add or subtact a bit of alpha every render. If you add 1 alpha, the effect will take 255 frames, so about 4 seconds at 60 FPS. Let me k
  21. If you haven't already, you need to find the scoreboard resource, by default it will be in server\mods\deathmatch\resources\[gameplay]\scoreboard Scoreboard has a few different settings you can adjust. In meta.xml at the bottom you will find settings to toggle whether teams and country flag will always or never be shown. You can also disable colorcoded names there. You probably want to force teams to be shown. Change <setting name="*forceShowTeams" value="false" to <setting name="*forceShowTeams" value="true" Besides those settings there are some the players can change
  22. Head into server\mods\deathmatch\resources\[managers]\mapmanager. Open meta.xml. Find <setting name="*color" value="#E1AA5A"/> Change the hexadecimal value to fe. value="#0000FF". Go here to convert RGB to Hex: https://www.rgbtohex.net/rgbtohex/
  23. You can open a file handle on server.log and read it periodically. Move the pointer to end of file after opening it initially, and read from it at some interval (500ms should feel like realtime).
  24. I made the below function as you might find it useful to animate multiple floating arrows, as alternative to the static approach above. Use createAnimatedArrow(...) instead of createMarker(...) for your arrow. It uses the stream in/out events so we don't waste CPU on markers that are far away. You could further optimise it to bind/unbind the render event at the first and last stream in / out, saving 1 pairs call. local markers = {} local animationMethod = "InOutQuad" -- What easing function to use, see https://wiki.multitheftauto.com/wiki/Easing local animationTime = 1000 -- The
  25. It's worth mentioning you can carjack a dead ped, if you are looking to make a workaround. However it's almost impossible to create a workaround that looks good and works well. I've considered a lot of approaches for a workaround, but it's ridiculous for such a basic mechanic that should just work. Better to focus our efforts on fixing it in MTA.
  • Create New...